PT09IHJlbGVhc2UgMS4wLjkgPT09CgoyMDEzLTA3LTMwIDExOjM1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdnB4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuOQoKMjAxMy0wNy0yOCAxNzozMjoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogRG9uJ3QgZm9yZ2V0IHVubWFwcGluZyBhbmQgdW5yZWZmaW5nIGJ1ZmZlcgoKMjAxMy0wNy0yNiAyMTowNjoxNyArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHVubWFwIGJ1ZmZlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTUxCgoyMDEzLTA3LTI2IDE2OjAyOjAxICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGZpeCBtZW1vcnkgbGVhayBpbiBjaGVja19zdWJ0aXRsZV9idWZmZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDkyMQoKMjAxMy0wNi0yMCAxMTozMToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBoYW5kbGUgU0VHTUVOVCBxdWVyeQoKMjAxMy0wNy0yOCAxODowOTozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBGaXggaGFuZGxpbmcgb2YgaW1hZ2UgdGFncwoJICBUaGUgY2FwcyBzaG91bGQgYmUgdXNlZCB0byBnZXQgdGhlIG1pbWV0eXBlIGFuZCB0aGVyZSBpcwoJICBvbmx5IGFuIGluZm8gc3RydWN0dXJlIGZvciB0aGUgR3N0U2FtcGxlIGlmIHRoZSBpbWFnZS10eXBlCgkgIGlzIG5vdCBOT05FLgoKMjAxMy0wNy0yOCAxODowNDozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBEb24ndCBjcmFzaCBpZiB0aGVyZSBpcyBubyBpbWFnZSB0YWcgaW5mb3JtYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTAxOAoKMjAxMy0wNC0xNSAxOTo1MzoyOCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogRGlzYWJsZSByZW5lZ290aWF0aW9uIGluIHRoZSBuZWdvdGlhdGUgbWV0aG9kCgkgIFRoaXMgd2F5LCB3ZSBkb24ndCBibG9jayB0aGUgaW5pdGlhbCBuZWdvdGlhdGlvbi4KCSAgVGhhbmtzIHRvIEplcmVteSBXaGl0aW5nIGZvciBkb2luZyBhbGwgdGhlIHRlc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5ODEKCjIwMTMtMDQtMTUgMTk6NDY6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIFJldmVydCAidjRsMjogZGlzYWJsZSByZW5lZ290aWF0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGQxYjI2ZTFkNTk0YWIyYjYzMzI0ZTQzYTM2MzMwNDc1ZTk4Y2RmMTguCgkgIFRoaXMgY2F1c2VzIHRoZSBpbml0aWFsIG5lZ290aWF0aW9uIHRvIG5ldmVyIGhhcHBlbiBpZiBhIHJlY29uZmlndXJlCgkgIGV2ZW50IGlzIHJlY2VpdmVkIGFmdGVyIGdzdF9iYXNlX3NyY19zdGFydF9jb21wbGV0ZSgpIGJ1dCBiZWZvcmUgdGhlIGxvb3AKCSAgc3RhcnRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTgxCgoyMDEzLTA3LTIyIDE4OjAwOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogZml4IG9uLXRoZS1mbHkgY2hhbmdpbmcgb2YgIm1vZGUiIGFuZCAiZmllbGRzIiBwcm9wZXJ0aWVzCgkgIFdlIGNhbGwgc2V0Y2FwcygpIHRvIHJlY29uZmlndXJlIG91cnNlbHZlcywgYnV0IHdlIG5lZWQgdG8gcGFzcwoJICB0aGUgY3VycmVudCAqc2luayogY2Fwcywgbm90IHRoZSBzb3VyY2UgY2FwcyB0aGVuLiBBbHNvIGZpeCBhCgkgIGNhcHMgbGVhay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTU5OQoKMjAxMy0wNy0xOSAxNToyNDowOCArMDIwMCAgUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KCgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICAoZHlufG11bHRpKXVkcHNpbms6IHVuYnJlYWsgb24gIUlQdjYgc3lzdGVtcyBhZnRlciAxMzAyNjhiYyAoQmluZCBzb2NrZXQgYmVmb3JlIHVzaW5nIGl0KQoJICBUaGUgZ19zb2NrZXQgZnVuY3Rpb25zIG9ubHkgdG91Y2ggdGhlIGVycm9yIGFyZ3VtZW50IG9uIGVycm9ycywgc28gY2xlYXIKCSAgZXJyIGJhY2sgdG8gTlVMTCBpbiBjYXNlIGdfc29ja2V0X25ldyAoR19TT0NLRVRfRkFNSUxZX0lQVjYpIGZhaWxlZCwgYXMKCSAgd2UgY2hlY2sgZm9yIGVyciAhPSBOVUxMIGxhdGVyIG9uIHRvIGtub3cgaWYgZ19zb2NrZXRfYmluZCgpIGZhaWxlZCwKCSAgb3RoZXJ3aXNlIHdlIGVycm91c2x5IGZhaWwgb24gc3lzdGVtcyB3aXRob3V0IElQdjYgc3VwcG9ydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDU1MwoKMjAxMy0wMS0yOCAxMjoyMzo0MSArMDEwMCAgTWFyYyBMZWVtYW4gPG1hcmMubGVlbWFuQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJICBydHA6IHJlbW92ZSBwYXlsb2FkIHJlcXVpcmVtZW50cyBmcm9tIHNlbGVjdGVkIGRlcGF5bG9hZGVycwoJICBlbmNvZGluZyBuYW1lIGlzIHJlcXVpcmVkIGluIHRoZSBjYXBzIGFuZCBpcyBhIGJldHRlciBmaXQgZm9yIGF1dG9wbHVnZ2luZyB0aGFuCgkgIHRoZSBwdCB2YWx1ZS4gSGFyZHdhcmUgbWFudWZhY3R1cmVycyBoYXZlIGEgYmFkIGhhYml0IG9mIHNraW1taW5nIHRocm91Z2ggUkZDcwoJICBhbmQgaW4gdGhpcyBjYXNlOyB1c2UgdW5hc3NpZ25lZCBudW1iZXJzIGZvciBlbmNvZGVycyBpbnN0ZWFkIG9mIGR5bmFtaWMKCSAgbnVtYmVycy4KCSAgSW4gZXNzZW5jZSwgdGhpcyBwYXRjaCB3aWxsIGFkZCBzdXBwb3J0IGZvciBhIGxvdCBvZiBCb3NjaCBoYXJkd2FyZSBlbmNvZGVycwoJICB3aXRob3V0IGJyZWFraW5nIGF1dG9wbHVnZ2luZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTI5MgoKMjAxMy0wMS0yOCAxMjo0MTowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIyZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSAgcnRwZGVwYXk6IHJlbW92ZSBwYXlsb2FkIHR5cGUgcmVzdHJpY3Rpb25zCgkgIFJlbW92ZSB0aGUgcHQgcmVzdHJpY3Rpb25zIGZvciBhbGwgdGhlIGRlcGF5bG9hZGVycyB0aGF0IGhhdmUgYW4KCSAgZW5jb2RpbmctbmFtZS4gV2UgY2FuIHVzZSB0aGlzIHRvIGF1dG9wbHVnIGRlY29kZXJzLgoJICBSZW1vdmUgdGhlIGVuY29kaW5nLW5hbWUgZm9yIGFsbCB0aGUgcGF5bG9hZGVycyB3aXRoIGEgZml4ZWQgcGF5bG9hZAoJICB0eXBlLgoJICBXZSBub3cgZWl0aGVyIGhhdmUgYW4gZW5jb2RpbmctbmFtZSBvciBhIHB0IGluIHRoZSBzaW5rcGFkIGNhcHMgb2YKCSAgYSBkZXBheWxvYWRlci4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzkyOTIKCSAgQ29uZmxpY3RzOgoJICBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jCgkgIGdzdC9ydHAvZ3N0cnRwdnA4ZGVwYXkuYwoKMjAxMy0wNy0xNyAxNzoxMTo0NCArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWFzdHJva2FkZW11eDogZG8gbm90IHB1c2ggZGlzY29udCBidWZmZXJzIGlmIHRoZXkgYXJlbid0IGRpc2NvbnQKCSAgVW5zZXQgdGhlIGRpc2NvbnQgZmxhZyBpbnN0ZWFkIG9mIHBvc3NzaWJseSBwdXNoaW5nIGEgYnVmZmVyIHdpdGgKCSAgYSBmbGFnIHRoYXQncyBzdGlsbCBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODIxMTAKCjIwMTMtMDctMTQgMTI6NTA6MTMgKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BoYWxvLmdlbi5uej4KCgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL3NwZWN0cnVtLWV4YW1wbGUuYzoKCSAgbGV2ZWw6IEZpeCB0aGUgc3BlY3RydW0gZXhhbXBsZSBmb3IgMS4wCgkgIFRoZSAibWVzc2FnZSIgcHJvcGVydHkgaGFzIGJlZW4gcmVwbGFjZWQgYnkgInBvc3QtbWVzc2FnZXMiLgoJICBQcmUtcGF0Y2ggb3V0cHV0OgoJICAodGVzdF9zcGVjdHJ1bToyMzEwMSk6IEdMaWItR09iamVjdC1XQVJOSU5HICoqOiBnX29iamVjdF9zZXRfdmFsaXN0OgoJICBvYmplY3QgY2xhc3MgYEdzdFNwZWN0cnVtJyBoYXMgbm8gcHJvcGVydHkgbmFtZWQgYG1lc3NhZ2UnCgkgIE5ldyBzcGVjdHJ1bSBtZXNzYWdlLCBlbmR0aW1lIDA6MDA6MDAuMTAwMDAwMDAwCgkgICh0ZXN0X3NwZWN0cnVtOjIzMTAxKTogR1N0cmVhbWVyLUNSSVRJQ0FMICoqOgoJICBnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWU6IGFzc2VydGlvbiBgR1NUX1ZBTFVFX0hPTERTX0xJU1QgKHZhbHVlKScgZmFpbGVkCgkgIFsuLi5dCgkgIFBvc3QtcGF0Y2g6CgkgIE5ldyBzcGVjdHJ1bSBtZXNzYWdlLCBlbmR0aW1lIDA6MDA6MDAuMTAwMDAwMDAwCgkgIGJhbmQgMCAoZnJlcSA0MDApOiBtYWduaXR1ZGUgLTY1Ljk4ODc3NyBkQiBwaGFzZSAxLjUzMzM5NwoJICBiYW5kIDEgKGZyZXEgMTIwMCk6IG1hZ25pdHVkZSAtNjUuNTQ1NTYzIGRCIHBoYXNlIC0wLjc4MDkwMAoJICBiYW5kIDIgKGZyZXEgMjAwMCk6IG1hZ25pdHVkZSAtNjQuNzkxOTQ2IGRCIHBoYXNlIC0wLjc5OTYxMQoJICBiYW5kIDMgKGZyZXEgMjgwMCk6IG1hZ25pdHVkZSAtNjQuNTU2MTc1IGRCIHBoYXNlIC0wLjA2MzYxNQoJICBbLi4uXQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MTc5CgoyMDEzLTA3LTEzIDIwOjU2OjI2ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogYmUgbGVzcyB2ZXJib3NlIHdoZW4gcGFyc2luZyBMT0FTIHN0cmVhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDE2MgoKMjAxMy0wNy0xMiAxMjozMTozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgc2luazogYWxhdy9tdWxhdyBjYXBzIGRvbid0IGhhdmUgYSBsYXlvdXQgcHJvcGVydHkKCjIwMTMtMDctMTIgMTI6Mjc6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmM6CgkgIHB1bHNlOiByZWxheCBtdWxhdyBhbmQgYWxhdyBmb3JtYXQgY2hlY2tzCgkgIFRoZSBhdWRpbyBsaWJyYXJ5IGNvbnNpZGVycyB0aGVtIGFzIGVuY29kZWQgZm9ybWF0cyBhbmQgZG9lcyBub3QgZmlsbCBpbiB0aGUKCSAgc2FtcGxlIHdpZHRoLiBUaGUgYXVkaW8gcmluZ2J1ZmZlcnMgaWRlbnRpZmllcyB0aGUgZm9ybWF0IGFzIGFsYXcvbXVsYXcgYW5kIHRoYXQKCSAgaXMgYWx3YXlzIDggYml0cy4KCj09PSByZWxlYXNlIDEuMC44ID09PQoKMjAxMy0wNy0xMiAxMToxNDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdnB4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuOAoKMjAxMy0wNy0wOSAxNTozNDowNCArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IGRlZmVyIHRoZSB3aW5kb3cgaGFuZGxlIHNldHVwIHRvIHRoZSBtYWluIHRocmVhZAoKMjAxMy0wNy0wOSAxNTozMzoxOCArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBkZWZhdWx0IHRvIHRoZSBtYWluIGluIGNhc2Ugd2UgYXJlIG5vdCBzZXR1cCB5ZXQKCjIwMTMtMDctMDcgMjI6MTY6MDUgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogY2xvc2UgdGhlIGludGVybmFsIHdpbmRvdyBjb3JyZWN0bHkKCjIwMTMtMDctMDcgMjE6MTQ6MjIgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBvbmx5IGNyZWF0ZSB0aGUgTlMgYXBwIHRocmVhZCBmb3IgQ29jb2Egb25jZQoJICBUaGUgaGVscGVyIHRocmVhZCBmb3IgQ29jb2EsIGluIGNhc2Ugbm8gTlMgcnVuIGxvb3AgaXMgcnVubmluZywKCSAgc2hvdWxkIGJlIHN0YXJ0ZWQgb25seSBvbmNlIGFuZCBzaGFyZWQgYWNyb3NzIGFsbCB0aGUgaW5zdGFuY2VzCgkgIHJ1bm5pbmcKCjIwMTMtMDYtMDUgMTc6MDI6NDkgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubToKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IGZpeCBzdXBwb3J0IGluIFZNJ3Mgd2l0aG91dCBoYXJkd2FyZSBhY2NlbGVyYXRpb24KCjIwMTMtMDQtMTUgMTQ6MzI6NDYgKzAwMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogZml4IHNlZ2ZhdWx0IGFjY2Vzc2luZyBvc3h3aW5kb3cgd2hlbiBub3Qgc2V0IHlldAoKMjAxMy0wNy0wOSAxMjo0MjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjogRml4IGhhbmRsaW5nIG9mIGJ1ZmZlcnMgd2l0aG91dCBhIGR1cmF0aW9uCgkgIFdlJ2xsIGhhdmUgdG8gcG9wIGJ1ZmZlciBmcm9tIGNvbGxlY3RwYWRzIGFuZCBzdG9yZSBpdAoJICBpbnRlcm5hbGx5IG9ubHkgdG8gZ2V0IHRoZSB0aW1lc3RhbXAgb2YgdGhlIG5leHQgYnVmZmVyLgoJICBJZiB3ZSBjb250aW51ZSB0byBrZWVwIGl0IGluIGNvbGxlY3RwYWRzLCBubyBuZXcgYnVmZmVyCgkgIHRvIGNhbGN1bGF0ZSB0aGUgZW5kIHRpbWUgd2lsbCBldmVyIGFycml2ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzc0MwoKMjAxMy0wNy0wOSAxMTo1MzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjogRml4IG5lZ290aWF0aW9uIHdpdGggMC8xIGZyYW1lcmF0ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzc0MwoKMjAxMy0wNy0wOSAxMToxNzo1OSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogVW5sb2NrIHN0cmVhbSBsb2NrIGFmdGVyIHVzZQoJICBTdHJlYW0gbG9jayBvZiBzaW5rIHBhZCB3YXMgbm90IHVubG9ja2VkIGFmdGVyIG5vbi11cGRhdGluZyBzZWVrLgoKMjAxMy0wNy0wOCAxNDowOTozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJICBydHBoMjYzcHBheTogRG9uJ3QgcGFzcyB1cHN0cmVhbSBmaWx0ZXIgY2FwcyB0byBkb3duc3RyZWFtCgkgIERvd25zdHJlYW0gdXN1YWxseSBjYW4ndCBhY2NlcHQgdmlkZW8veC1oMjYzIGJ1dCBvbmx5IGFwcGxpY2F0aW9uL3gtcnRwLAoJICBzbyB3ZSB3b3VsZCBhbHdheXMgZ2V0IGFuIGVtcHR5IGludGVyc2VjdGlvbiBoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjMyCgoyMDEzLTA2LTI1IDIxOjE2OjM4ICswMjAwICBBbGJhbiBCcm93YWV5cyA8cHJhaGFsQHlhaG9vLmNvbT4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IEFkZCBmbHZ2ZXJzaW9uIDEgdG8gdGhlIGZsYXNoLXZpZGVvIGNhcHMKCSAgVGhpcyBhbGxvd3MgdXNpbmcgYXZkZWNfZmx2IHdoaWNoIHJlcXVpcmVzIHRoaXMgZmllbGQgdG8gYmUKCSAgcHJlc2VudCBpbiB0aGUgY2Fwcy4gRkxWIG9ubHkgc3VwcG9ydHMgZmxhc2gtdmlkZW8gdmVyc2lvbiAxCgkgIHJpZ2h0IG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA3NgoKMjAxMy0wNi0yNyAwNzo0MDoyOSArMDIwMCAgRGF2aWQgU3ZlbnNzb24gRm9ycyA8ZGF2aWRzZkBheGlzLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBhdm9pZCBkb3VibGUgYnVmZmVyIHVubWFwIG9uIGVycm9yCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMxNzEKCjIwMTMtMDYtMjAgMTU6MzU6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyLmM6CgkgIHY0bDI6IGRvbid0IHJlZGVmaW5lIHRoZSBQRVJGT1JNQU5DRSBkZWJ1ZyB2YXJpYWJsZQoJICBJdCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gY29yZS4KCSAgZml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjczMgoKMjAxMy0wNi0yMCAxNDo0Mzo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IHJhY2UgaW4gc3RhdGUgY2hhbmdlIHRvIHBhdXNlZAoJICBXaGVuIHdlIGdvIHRvIHBhdXNlZCwgd2UgZmlyc3QgZmx1c2ggdGhlIGNvbm5lY3Rpb24gYW5kIHRoZW4gc2VuZCB0aGUgcGF1c2UKCSAgY29tbWFuZC4gQXMgYSByZXN1bHQgb2YgdGhlIGZsdXNoaW5nLCB0aGUgc2NoZWR1bGVkIHBhdXNlZCBjb21tYW5kIGNhbiBnZXQKCSAgbG9zdC4gV2FpdCB1bnRpbCB0aGUgY29ubmVjdGlvbiBpcyBjb21wbGV0ZWx5IGZsdXNoZWQgYW5kIHRoZSBydHNwIHRhc2sgaXMKCSAgd2FpdGluZyBiZWZvcmUgaXNzdWluZyB0aGUgcGF1c2VkIG9yIHBsYXlpbmcgcmVxdWVzdC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjcwNQoKMjAxMy0wNi0xNSAxMjoyOTozMSArMDIwMCAgSmVucyBHZW9yZyA8bWFpbEBqZW5zZ2Uub3JnPgoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSAgcnRwbXAydGRlcGF5OiBhY2NlcHQgbWlzbGFiZWxsZWQgc3RyZWFtcyBmcm9tIEdTdHJlYW1lciAwLjEwIGFzIHdlbGwKCSAgVGhlIG1wMnQgcGF5bG9hZGVyIGluIDAuMTAgbWlzbGFiZWxsZWQgdGhlIHN0cmVhbXMgYXMgTVAyVC1FUwoJICBpbnN0ZWFkIG9mIE1QMlQsIHNvIGFjY2VwdCB0aGF0IGFzIHdlbGwgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjQ1NwoJICBDb25mbGljdHM6CgkgIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmMKCjIwMTMtMDYtMDcgMTU6Mzg6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9NYWtlZmlsZS5hbToKCSAgcG5nOiBMaW5rIHdpdGggbGliZ3N0YmFzZSBmb3IgR3N0Qnl0ZVJlYWRlciBhbmQgR3N0QWRhcHRlcgoKMjAxMy0wNi0xNCAxNDowNzo0MiArMDIwMCAgQnJ1bm8gR29uemFsZXogPHN0ZW55YWtAZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IERvbid0IHVubG9jayBzdHJlYW0gbG9jayB3aXRob3V0IGxvY2tpbmcgaXQgZmlyc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjE2NwoKMjAxMy0wNi0xMSAxMjoyNTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogRG9uJ3QgZm9yd2FyZCBDQVBTIGV2ZW50cyBmcm9tIHVwc3RyZWFtCgkgIEp1c3QgdXNlIHRoZSBkZWZhdWx0IHBhZCBldmVudCBoYW5kbGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTc2CgoyMDEzLTA2LTA1IDEyOjEyOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkgIHVkcHNpbms6IGF2b2lkIGxlYWtpbmcgdGhlIGhvc3QKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTU4NgoKMjAxMy0wNC0yNCAxNjoyNDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkgIHZyYXdkZXBheTogcmV0dXJuIG91dHB1dCBidWZmZXIgZnJvbSBwcm9jZXNzCgkgIFJldHVybiB0aGUgb3V0cHV0IGJ1ZmZlciBmcm9tIHRoZSBwcm9jZXNzIGZ1bmN0aW9uIGluc3RlYWQgb2YgcHVzaGluZwoJICBpdCBvdXJzZWx2ZXMuIFRoaXMgd2F5LCB0aGUgc3ViY2xhc3MgY2FuIGFjdHVhbGx5IGRlYWwgd2l0aCB0aGUgcmV0dXJuCgkgIHZhbHVlIG9mIHRoZSBwdXNoLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNzI3CgoyMDEzLTA1LTI3IDIyOjQzOjI1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXI6IE1haW50YWluIHotb3JkZXIgd2hlbiBuZXcgcGFkIGFyZSBhZGRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMTA5CgoyMDEzLTA1LTI4IDE0OjMxOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogRml4IGZvciBzaW5nbGUtaW5jbHVkZXMgdGhhdCBhcmUgbm90IGluIDEuMCB5ZXQKCjIwMTMtMDItMTQgMTQ6MTM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiByZW1vdmUgc29mLW1hcmtlciBmcm9tIHRlbXBsYXRlIGNhcHMgZm9yIG5vdwoJICBOb3cgdGhhdCB0aGUgc3Vic2V0IGNoZWNrIGFjdHVhbGx5IHdvcmtzLCB0aGlzIGJyZWFrcwoJICB0aGluZ3Mgd2l0aCBkZW11eGVycyB0aGF0IGRvbid0IHB1dCBhICJzb2YtbWFya2VyIgoJICBpbiB0aGVpciBqcGVnIGNhcHMsIGFuZCB3ZSBkb24ndCBoYXZlIGEgZ29vZCBwYXJzZXIKCSAgdG8gcGx1ZyBlaXRoZXIgeWV0LgoKMjAxMy0wMi0xMyAxMjozMjoxMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAganBlZ2VuYzogUHV0IHRoZSBTT0YgbWFya2VyIGludG8gdGhlIGNhcHMKCjIwMTMtMDItMTMgMTI6MDI6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJICBydHAtcGF5bG9hZGluZzogRml4IHVuaXQgdGVzdCBjYXBzIGFuZCBBTVIgZGVwYXlsb2FkZXIgc2luayB0ZW1wbGF0ZSBjYXBzCgkgIEZpZWxkcyB3ZXJlIG1pc3NpbmcgZnJvbSB0aGUgYWN0dWFsIGNhcHMsIG9yIHRvbyBtYW55IGZpZWxkcwoJICBleGlzdGVkIGluIHRoZSB0ZW1wbGF0ZSBjYXBzLgoKMjAxMy0wMi0xMyAxMTo1MzowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogRml4IGNhcHMgdXNlZCBpbiB0aGUgdW5pdCB0ZXN0CgkgIFRoZSBBQUMgY2FwcyBwYXNzZWQgd2VyZSBpbmNvbXBsZXRlLgoKMjAxMy0wMi0xMyAxMTo0OTo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZW5jLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2twYXJzZS5jOgoJICB3YXZwYWNrOiBGaXggdW5pdCB0ZXN0cywgd2lkdGggaXMgbm93IGNhbGxlZCBkZXB0aCBpbiB0aGUgY2FwcyBpbiAxLjAKCjIwMTMtMDUtMjMgMTg6MTA6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICAoZHlufG11bHRpKXVkcHNpbms6IEJpbmQgc29ja2V0IGJlZm9yZSB1c2luZyBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwODc4CgoyMDEzLTA1LTE3IDEyOjM3OjU5ICswMjAwICBNaWNoYWVsIE9sYnJpY2ggPG0ub2xicmljaEBwZW5ndXRyb25peC5kZT4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJICBydHBtcDRhcGF5OiBjbGVhciBjb25maWcgYnVmZmVyIGJlZm9yZSB1c2luZyBpdAoJICBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHBhcnRzIG9mIHRoZSBtZW1vcnkgYXJlIG9ubHkgbW9kaWZpZWQgd2l0aCAifD0iCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA1MTQKCjIwMTMtMDUtMTQgMTU6MjM6MDggKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHNldCBhbGFjIGNhcHMgdXNpbmcgaW5mbyBmcm9tIGNvZGVjIGJ1ZmZlcgoJICBUaGUgc2FtcGxlcmF0ZSBmaWVsZCBpbiB0aGUgU1RTRCBhdG9tIGlzIG5vdCByaWdodCBmb3Igc29tZSBBTEFDIGZpbGVzCgkgICh1c3VhbGx5IHdoZW4gYXVkaW8gaXMgOTZrSHovMjRiaXRzKSwgc28gdGhlIGF1ZGlvIGNhcHMgbXVzdCBiZQoJICBleHRyYWN0ZWQgZnJvbSB0aGUgY29kZWMgZGF0YS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDM4MgoKMjAxMy0wNS0xNSAxMToxMzoxMiArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBkbyBub3QgcHVzaCBkaXNjb250IGJ1ZmZlcnMgaWYgdGhleSBhcmVuJ3QgZGlzY29udAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMTEwCgoyMDEzLTA0LTE3IDE2OjU0OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZG8gbm90IHB1c2ggZGlzY29udCBidWZmZXJzIGlmIHRoZXkgYXJlbid0IGRpc2NvbnQKCSAgcXRkZW11eCB0YWtlcyBpdHMgYnVmZmVycyBmcm9tIGEgR3N0QWRhcHRlci4gVGhvc2UgYnVmZmVycyBhcmUgY3JlYXRlZAoJICBmcm9tIHRoZSBsYXJnZXIgYnVmZmVyIHRoYXQgaXQgb2J0YWluZWQgZnJvbSB1cHN0cmVhbSBhbmQgdGhleSBjYXJyeQoJICB0aGUgc2FtZSBmbGFncywgaW5jbHVkaW5nIERJU0NPTlQgaWYgaXQgaXMgc2V0LiBJbiB0aGVzZSBjYXNlcywgYWxsCgkgIGJ1ZmZlcnMgdGhhdCBxdGRlbXV4IGlzIGdvaW5nIHRvIHB1c2ggd291bGQgYmUgbWFya2VkIGFzIERJU0NPTlQuCgkgIFRoaXMgc2NlbmFyaW8gY2FuIG1ha2UgcGFyc2Vycy9kZWNvZGVycyBmbHVzaCBvbiBldmVyeSBidWZmZXIgbGVhZGluZwoJICB0byBubyBkZWNvZGluZyBhdCBhbGwgaGFwZW5uaW5nLiBUaGlzIHBhdGNoIHByZXZlbnRzIHRoaXMgYnkgdW5zZXR0aW5nCgkgIHRoZSBmbGFnIGlmIGl0IHNob3VsZG4ndCBiZSBzZXQuCgoyMDEzLTA0LTE1IDE3OjM3OjAxICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5oOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogZml4IHNldHRpbmcgd2luZG93IGhhbmRsZSBhZnRlciB0cmFuc2l0aW9uCgkgIFRoZSBkZXN0cm95ZWQgZmxhZyB3YXMgbm90IHJlc2V0IHByb3Blcmx5IGFuZCBpdCdzIGFsc28gbm90IG5lZWRlZAoJICBhcyB3ZSBjYW4gY2hlY2sgb3N4d2luZG93ICE9IE5VTEwKCjIwMTMtMDUtMDcgMTY6MzI6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBCeSBkZWZhdWx0IGFzc3VtZSB0aGF0IHdlJ3JlIHdvcmtpbmcgb24gbm9uLXBhY2tldGl6ZWQgaW5wdXQKCSAgT25seSBkZXRlY3RpbmcgdGhpcyBpbiBzZXRfZm9ybWF0KCkgZG9lcyBub3Qgd29yayBiZWNhdXNlIHdlIG1pZ2h0CgkgIG5vdCBnZXQgYW55IGNhcHMgYXQgYWxsLCBlLmcuIGZyb20gZmlsZXNyYy4KCjIwMTMtMDUtMDcgMTY6MzA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgcG5nZGVjOiBJbXBsZW1lbnQgcGFyc2luZyBmdW5jdGlvbmFsaXR5CgkgIFRoaXMgYWxsb3dzIHRvIHBsdWcgcG5nZGVjIGRpcmVjdGx5IHdpdGhvdXQgYSBwYXJzZXIgaWYgdGhhdAoJICBpcyBkZXNpcmVkLgoJICBQYXJzaW5nIGNvZGUgaXMgYmFzZWQgb24gcG5ncGFyc2UuCgoyMDEzLTA1LTAxIDE1OjQ5OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBJZiB0aGUgYWRhcHRlciBpcyBlbXB0eSBvbiBFT1MgZG9uJ3QgdHJ5IHRvIG1hcCBpdHMgY29udGVudAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5MzE0CgoyMDEzLTA0LTMwIDE0OjM2OjM4ICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGFkZCBzdHJlYW0tZm9ybWF0PXJhdyB0byBhYWMgY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5MzAzCgoyMDEzLTAzLTA0IDE1OjQ5OjA2IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZ2VuYzogdW5tYXAgc291cmNlIGZyYW1lIHdoZW4gZG9uZSB0byBmaXggbWVtb3J5IGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTI2MAoKMjAxMy0wNC0yNyAxMToxNjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogYWRkIGluY2x1ZGVzIHRvIGdldCBzb2NrbGVuX3QgZGVmaW5lZCBvbiBXaW5kb3dzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI0MDAKCjIwMTMtMDItMTUgMTQ6MTE6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwc3JjOiB1c2UgZ19zb2NrZXRfc2V0X29wdGlvbigpIHRvIHNldCBidWZmZXIgc2l6ZSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMKCSAgU28gd2UgaGF2ZSB0byB3b3JyeSBsZXNzIGFib3V0IHBvcnRhYmlsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNDAwCgkgIENvbmZsaWN0czoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYwoKPT09IHJlbGVhc2UgMS4wLjcgPT09CgoyMDEzLTA0LTI2IDEyOjUyOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLWRpc3QuaDoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuNwoKMjAxMy0wNC0yNiAxMjo1MjowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDMtMDYgMTM6MTc6NTQgKzAwMDAgIFRvbSBHcmVlbndvb2QgPHRncmVlbndvb2RAVG9tcy1NYWNCb29rLVByby5sb2NhbD4KCgkqIGV4dC92cHgvZ3N0dnA4ZW5jLmM6CgkgIHZwOGVuYzogRml4IGZvciBkaXZpZGUgYnkgemVybyB3aGVuIHVzaW5nIDAvMSBmcmFtZXJhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTcwOQoKMjAxMi0xMC0wMSAwOToyOToyMSAtMDMwMCAgRGlvZ28gQ2FyYm9uZXJhIEx1dml6b24gPGRpb2dvLmx1dml6b25AZW5zaXRlYy5jb20uYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IHNhdmUgdGhlIGZvcm1hdCBjb3JyZWN0bHkKCSAgSWYgVFJZX0ZNVCBpcyBub3QgaW1wbGVtZW50ZWQsICBnc3RfdjRsMl9vYmplY3RfZ2V0X25lYXJlc3Rfc2l6ZSB3aWxsCgkgIHVzZSBTX0ZNVCBhbmQgd2lsbCBjaGFuZ2UgdGhlIGRldmljZSdzIG9wZXJhdGlvbiBtb2RlLiBUbyBzYXZlIHRoZQoJICBvbGQgZGV2aWNlIG1vZGUgd2UgbmVlZCB0byBzZXQgdGhlIHR5cGUgZmllbGQgb3IgZWxzZSBpdCB3aWxsIGZhaWwKCSAgdG8gc2F2ZSB0aGUgcHJldmlvdXMgZm9ybWF0LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MjA5CgoyMDEzLTA0LTIyIDEwOjE5OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkgIHJ0cGpwZWdkZXBheTogRHJvcCBmcmFtZSBpZiBpdCdzIGxlc3MgdGhhbiAyIGJ5dGVzIGxhcmdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc1NjAKCjIwMTMtMDQtMTggMDk6Mzc6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvcmluZ2J1ZmZlci5oOgoJICBvc3hhdWRpbzogSW5jbHVkZSBnc3RhdWRpb3JpbmdidWZmZXIuaCB0byBmaXggY29tcGlsYXRpb24gaW4gMS4wCgoyMDEzLTA0LTE3IDEwOjEwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgb3N4YXVkaW86IEZpeCBjb25maWd1cmUgY2hlY2sgZm9yIG9zeGF1ZGlvIHBsdWdpbgoKMjAxMy0wNC0xNyAyMTowNToxNCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSAgb3N4YXVkaW9zaW5rOiBjaGFubmVsLW1hc2sgY29uZmlndXJhdGlvbiBmaXhlcwoJICBTZXQgY2hhbm5lbC1tYXNrIGFjY29yZGluZyB0byBzaW5rJ3MgbGF5b3V0IGluIGNhc2Ugb2Ygc3RlcmVvIGxheW91dC4KCSAgQWxzbyBpbml0aWFsaXplIGFuZCByZXNldCB0aGUgbWFzayB3aGVuIGFuIHVucmVjb2duaXplZCBjaGFubmVsIGlzIGRldGVjdGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MjI0CgoyMDEzLTA0LTE3IDIwOjI0OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hjb3JlYXVkaW9jb21tb24uaDoKCSAgb3N4YXVkaW86IEZpeCBtZXJnZSBjb25mbGljdHMKCjIwMTMtMDQtMTcgMDk6NTA6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvcmluZ2J1ZmZlci5jOgoJICBvc3hhdWRpb3JpbmdidWZmZXI6IEZpcnN0IGNoZWNrIHRoZSB0eXBlLCB0aGVuIGNhc3QKCjIwMTMtMDQtMTYgMjI6NDY6MDAgKzA5MDAgIFRha2FzaGkgTmFrYWppbWEgPHRlZC5uYWthamltYUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9yaW5nYnVmZmVyLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuaDoKCSAgb3N4YXVkaW86IHVzZSBHU1RfSVNfT1NYX0FVRElPX1NJTksgaW4gcmluZyBidWZmZXIuCgoyMDEzLTA0LTEwIDIxOjA2OjE2ICswOTAwICBUYWthc2hpIE5ha2FqaW1hIDx0ZWQubmFrYWppbWFAZ21haWwuY29tPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvcmluZ2J1ZmZlci5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuaDoKCSAgb3N4YXVkaW86IGNhbGwgc2V0X2NoYW5uZWxfcG9zaXRpb25zKCkgaW4gb3N4YXVkaW9yaW5nYnVmZmVyIGFjcXVpcmUoKQoKMjAxMy0wNC0xMiAxMjoxODowNCAtMDcwMCAgVG9kZCBBZ3VsbmljayA8dG9kZEBhZ3Vsbmljay5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9yaW5nYnVmZmVyLmM6CgkgIG9zeGF1ZGlvOiB1c2UgR1NUX0FVRElPX0lORk9fKiBhY2Nlc3NvcnMKCSAgQ2hhbmdlcyBpbmNsdWRlIHRoZSBmb2xsb3dpbmc6CgkgICogVXBkYXRlIGNsYXNzbmFtZSByZWZlcmVuY2VzCgkgICogUmVwbGFjZSBHU1RfQk9JTEVSUExBVEVfRlVMTCB3aXRoIEdfREVGSU5FX1RZUEUKCSAgKiBVc2UgbmV3IEdzdEF1ZGlvSW5mbyBzdHJ1Y3QgYW5kIG1ldGhvZHMKCSAgKiBVc2UgbmV3IGJ1ZmZlciBtZW1vcnkgYWxsb2NhdGlvbiBzY2hlbWUKCSAgQ29uZmxpY3RzOgoJICBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9yaW5nYnVmZmVyLmMKCjIwMTMtMDQtMTIgMTE6NTE6NDYgLTA3MDAgIFRvZGQgQWd1bG5pY2sgPHRvZGRAYWd1bG5pY2suY29tPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpb2NvbW1vbi5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4Y29yZWF1ZGlvaGFsLmM6CgkgIG9zeGF1ZGlvOiBhZGp1c3QgZm9yIGNoYW5nZXMgdG8gZ2xpYiBtdXRleCBhcGkuCgoyMDEzLTA0LTEwIDAxOjIxOjQ5ICswOTAwICBUYWthc2hpIE5ha2FqaW1hIDx0ZWQubmFrYWppbWFAZ21haWwuY29tPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSAgb3N4YXVkaW86IHRyeSB0byBmaXggdXAgYWNjb3JkaW5nIHRvIFNlYmFzdGlhbidzIGNvbW1lbnRzCgoyMDEzLTA0LTA1IDEwOjAyOjM4ICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9yaW5nYnVmZmVyLmg6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuaDoKCSAgb3N4YXVkaW86IGJ1aWxkIGZpeGVzCgkgIEVuYWJsZSB0aGUgb3N4YXVkaW8gcGx1Z2luIGJ1aWxkIGluIGNvbmZpZ3VyZS5hYyBhbmQgZml4IHNvbWUKCSAgaW5jbHVkZSBkaXJlY3RpdmUgb3JkZXIgaXNzdWVzLgoKMjAxMy0wNC0wMiAyMjoyODowOSArMDkwMCAgdGVkLW4gPHRlZC5uYWthamltYUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSAgb3N4YXVkaW86IGZpeCBsYXlvdXQgZm9yIG9zeGF1ZGlvc3JjCgoyMDEzLTAzLTMwIDIyOjQ5OjM0ICswOTAwICB0ZWQtbiA8dGVkLm5ha2FqaW1hQGdtYWlsLmNvbT4KCgkqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvZWxlbWVudC5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9yaW5nYnVmZmVyLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3JpbmdidWZmZXIuaDoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmg6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuaDoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpb2NvbW1vbi5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4Y29yZWF1ZGlvY29tbW9uLmg6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hyaW5nYnVmZmVyLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hyaW5nYnVmZmVyLmg6CgkgIG9zeGF1ZGlvOiBwb3J0IHRvIHYuMS4wCgoyMDEzLTAzLTEwIDE3OjE3OjE3ICswMDAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9lbGVtZW50LmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hjb3JlYXVkaW9jb21tb24uaDoKCSAgb3N4YXVkaW86IEZpeGVzIGVycm9yOiAiR1NUX0xFVkVMX0RFRkFVTFQiIHJlZGVmaW5lZAoKMjAxMy0wMy0xMCAxNzoyNzozMCArMDAwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpb2hhbC5jOgoJICBvc3hhdWRpbzogZml4ZXMgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldHBpZCcKCjIwMTMtMDMtMDUgMjE6MjI6MTggKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvZWxlbWVudC5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hjb3JlYXVkaW8uYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpb3JlbW90ZWlvLmM6CgkgIG9zeGF1ZGlvOiBhZGQgc3VwcG9ydCBmb3IgaU9TIHVzaW5nIHRoZSBSZW1vdGVJTyBBdWRpb1VuaXQKCSAgQ29uZmxpY3RzOgoJICBzeXMvb3N4YXVkaW8vTWFrZWZpbGUuYW0KCjIwMTMtMDMtMDUgMjE6MTc6NTIgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vTWFrZWZpbGUuYW06CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hjb3JlYXVkaW8uYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpby5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4Y29yZWF1ZGlvY29tbW9uLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hjb3JlYXVkaW9jb21tb24uaDoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpb2hhbC5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5oOgoJICBvc3hhdWRpbzogYWRkIGEgZmHDp2FkZSBmb3IgdGhlIENvcmVBdWRpbyBBUEkKCjIwMTMtMDQtMTYgMTk6Mjk6NDggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJICB2aWRlb21peGVyOiBEb24ndCB1bnJlZiBxdWVyeSwgd2UgZG9uJ3Qgb3duIGl0CgkgIEZpeGVzIGRvdWJsZS11bnJlZiBidWcuIEJ1ZyBmb3VuZCBieSBZb3VuZXNzIEFsYW91aQoKMjAxMi0xMC0yNCAxMjoxNDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9hYWxpYi9NYWtlZmlsZS5hbToKCSogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJKiBleHQvZHYvTWFrZWZpbGUuYW06CgkqIGV4dC9mbGFjL01ha2VmaWxlLmFtOgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2phY2svTWFrZWZpbGUuYW06CgkqIGV4dC9qcGVnL01ha2VmaWxlLmFtOgoJKiBleHQvbGliY2FjYS9NYWtlZmlsZS5hbToKCSogZXh0L2xpYnBuZy9NYWtlZmlsZS5hbToKCSogZXh0L21pa21vZC9NYWtlZmlsZS5hbToKCSogZXh0L3B1bHNlL01ha2VmaWxlLmFtOgoJKiBleHQvcmF3MTM5NC9NYWtlZmlsZS5hbToKCSogZXh0L3Nob3V0Mi9NYWtlZmlsZS5hbToKCSogZXh0L3NvdXAvTWFrZWZpbGUuYW06CgkqIGV4dC9zcGVleC9NYWtlZmlsZS5hbToKCSogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbToKCSogZXh0L3ZweC9NYWtlZmlsZS5hbToKCSogZXh0L3dhdnBhY2svTWFrZWZpbGUuYW06CgkqIGdzdC9hbHBoYS9NYWtlZmlsZS5hbToKCSogZ3N0L2FwZXRhZy9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdXBhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYXV0b2RldGVjdC9NYWtlZmlsZS5hbToKCSogZ3N0L2F2aS9NYWtlZmlsZS5hbToKCSogZ3N0L2N1dHRlci9NYWtlZmlsZS5hbToKCSogZ3N0L2RlYnVndXRpbHMvTWFrZWZpbGUuYW06CgkqIGdzdC9kZWludGVybGFjZS9NYWtlZmlsZS5hbToKCSogZ3N0L2VmZmVjdHYvTWFrZWZpbGUuYW06CgkqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkqIGdzdC9mbHgvTWFrZWZpbGUuYW06CgkqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJKiBnc3QvZ29vbTJrMS9NYWtlZmlsZS5hbToKCSogZ3N0L2ljeWRlbXV4L01ha2VmaWxlLmFtOgoJKiBnc3QvaWQzZGVtdXgvTWFrZWZpbGUuYW06CgkqIGdzdC9pbWFnZWZyZWV6ZS9NYWtlZmlsZS5hbToKCSogZ3N0L2ludGVybGVhdmUvTWFrZWZpbGUuYW06CgkqIGdzdC9pc29tcDQvTWFrZWZpbGUuYW06CgkqIGdzdC9sYXcvTWFrZWZpbGUuYW06CgkqIGdzdC9sZXZlbC9NYWtlZmlsZS5hbToKCSogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJKiBnc3QvbW9ub3Njb3BlL01ha2VmaWxlLmFtOgoJKiBnc3QvbXVsdGlmaWxlL01ha2VmaWxlLmFtOgoJKiBnc3QvbXVsdGlwYXJ0L01ha2VmaWxlLmFtOgoJKiBnc3QvcmVwbGF5Z2Fpbi9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHNwL01ha2VmaWxlLmFtOgoJKiBnc3Qvc2hhcGV3aXBlL01ha2VmaWxlLmFtOgoJKiBnc3Qvc21wdGUvTWFrZWZpbGUuYW06CgkqIGdzdC9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSogZ3N0L3VkcC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvYm94L01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9jcm9wL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJKiBnc3Qvd2F2ZW5jL01ha2VmaWxlLmFtOgoJKiBnc3Qvd2F2cGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkqIHN5cy9kaXJlY3Rzb3VuZC9NYWtlZmlsZS5hbToKCSogc3lzL29zcy9NYWtlZmlsZS5hbToKCSogc3lzL29zczQvTWFrZWZpbGUuYW06CgkqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSogc3lzL29zeHZpZGVvL01ha2VmaWxlLmFtOgoJKiBzeXMvc3VuYXVkaW8vTWFrZWZpbGUuYW06CgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvd2F2ZWZvcm0vTWFrZWZpbGUuYW06CgkqIHN5cy94aW1hZ2UvTWFrZWZpbGUuYW06CgkgIGdzdDogQWRkIGJldHRlciBzdXBwb3J0IGZvciBzdGF0aWMgcGx1Z2lucwoJICBDb25mbGljdHM6CgkgIGdzdC9kdG1mL01ha2VmaWxlLmFtCgkgIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbQoJICBzeXMvdjRsMi9NYWtlZmlsZS5hbQoKMjAxMy0wMy0yNSAxMDoxMjowMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVidWd1dGlscy9nc3RjYXBzc2V0dGVyLmM6CgkgIGNhcHNzZXR0ZXI6IFByZXZlbnQgdW5uZWVkZWQgY2FwcyBjb3B5aW5nIGFuZCBhbGxvY2F0aW9uCgoyMDEzLTAyLTAxIDE0OjMzOjQxICswMTAwICBEaXJrIFZhbiBIYWVyZW5ib3JnaCA8dmhkaXJrQGdtYWlsLmNvbT4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGNhcHNzZXR0ZXIuYzoKCSAgY2Fwc3NldHRlcjogUGFzcyBhbnkgb3IgZmlsdGVyIGNhcHMgdXBzdHJlYW0KCSAgY2Fwc2V0dGVyIGFjY2VwdHMgYW55dGhpbmcgYW5kIGp1c3QgZm9yd2FyZHMgZGlmZmVyZW50IGNhcHMsCgkgIGFzIHN1Y2ggaXQgc2hvdWxkIHJldHVybiBBTlkgY2FwcyBvbiB0aGUgc2lua3BhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzAwNQoKMjAxMy0wNC0xNCAxMjozMjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmg6CgkgIHNvdXBodHRwc3JjOiBhZGQgYmFjayAiaXJhZGlvLW1vZGUiIHByb3BlcnR5IHRvIGRpc2FibGUgc2VuZGluZyBvZiBpY2VjYXN0IHJlcXVlc3QgaGVhZGVycwoJICBJbiAxLjAgd2Ugbm93IGFsd2F5cyBzZW5kIHRoZSBpY2VjYXN0IHJlcXVlc3QgaGVhZGVycyBieSBkZWZhdWx0LCB3aGljaAoJICBtYWtlcyB0aGUgc2VydmVyIHNlbmQgaWNlY2FzdHMgbWV0YWRhdGEgaW5zZXJ0ZWQgaW50byB0aGUgc3RyZWFtIGlmIGl0CgkgIHN1cHBvcnRzIHRoYXQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBzb21lIHVzZSBjYXNlcyB3aGVyZSB0aGlzIGlzIG5vdAoJICBkZXNpcmFibGUsIGxpa2Ugd2hlbiBqdXN0IHNhdmluZyBhIHJhZGlvIHN0cmVhbSB0byBkaXNrLCBzbyBhZGQgYmFjawoJICB0aGUgImlyYWRpby1tb2RlIiBwcm9wZXJ0eSB0byBhbGxvdyBwZW9wbGUgdG8gZGlzYWJsZSB0aGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTg0CgoyMDEzLTA0LTA4IDE3OjUzOjA5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBjaGVjayB2YWx1ZSBpbnNpZGUgZW5kYSB0byBzZXQgZW5kaWFubmVzcwoKMjAxMy0wNC0wOCAxMTozODozMyArMDIwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBlcnJvciBvdXQgaWYgd2UgcmVjZWl2ZSBlb3MgYmVmb3JlIGFueSB2YWxpZCBkYXRhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY2ODQKCjIwMTMtMDQtMDcgMDE6NDc6NTYgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGZvcmNlIGRlaW50ZXJsYWNpbmcgaW4gImludGVybGFjZWQiIG1vZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzQ2NwoKMjAxMy0wNC0wNSAwOTozNDoyMyArMDEwMCAgVG9kZCBBZ3VsbmljayA8dG9kZEBhZ3Vsbmljay5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvOiBpbmNsdWRlIHB0aHJlYWQuaCB0byBmaXggY29tcGlsZXIgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MzAzCgoyMDEzLTA0LTAzIDExOjA5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgdjRsMjogZnJlZSBhbGwgcXVldWVkIGJ1ZmZlcnMKCSAgRG9uJ3QganVzdCBsb29wIG92ZXIgdGhlIGZpcnN0IG51bV9xdWV1ZWQgYnVmZmVycyBidXQgbG9vcCBvdmVyCgkgIGFsbCB0aGUgYnVmZmVycyBhbmQgY2hlY2sgaWYgdGhleSBuZWVkIHRvIGJlIGZyZWVkLiBJdCBpcyBwb3NzaWJsZSB0aGF0CgkgIG5vdCBhbGwgYnVmZmVycyBhcmUgcXVldWVkIGFuZCB0aGVuIHRoZSBlbnRyeSBpbiBvdXIgYXJyYXkgd2lsbCBiZSBOVUxMLgoJICBUaG9zZSBidWZmZXJzIHRoYXQgYXJlIG5vdCBxdWV1ZWQgd2VyZSBmcmVlZCBpbiBzdG9wKCkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY2NTEKCjIwMTItMDgtMjkgMTc6MjQ6MDAgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgbWF0cm9za2FkZW11eDogaGFuZGxlIFRydWVIRCBhdWRpbyBjb2RlYyBpZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3MTEzCgoyMDEzLTAzLTE4IDEyOjMwOjUwICswMTAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXhtYXAuYzoKCSAgcXRtdXg6IGV4cG9zZSBtdWxhdyBjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYwNTIKCj09PSByZWxlYXNlIDEuMC42ID09PQoKMjAxMy0wMy0yMiAxMzo0MTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZweC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMS4wLjYKCjIwMTItMDYtMjIgMjE6NTY6NTIgKzAwMDAgIE5vcmJlcnQgV2FzY2hidWVzY2ggPG53YXNjaGJ1QG9wZW50di5jb20+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogZXJyb3Igb3V0IHByb3Blcmx5IHdoZW4gcmVjZWl2aW5nIGRhdGEgYWxvbmcgd2l0aCBhbiBlcnJvciBzdGF0dXMKCSAgV2hlbiByZWNlaXZpbmcgYW4gZXJyb3IgY29kZSBmcm9tIHRoZSBodHRwIHNlcnZlciwgc3VjaCBhcyA0MDQsCgkgIGRhdGEgbWlnaHQgYmUgc2VudCBhbG9uZyB3aXRoIGl0LCBsaWtlIGEgd2ViIHBhZ2UuIFdlIGRvbid0IHdhbnQKCSAgdG8gb3V0cHV0IHRoYXQgZGF0YSBpbiB0aGlzIGNhc2UsIGFuZCB3ZSBhbHNvIHdhbnQgdG8gcGFzcyB0aGUKCSAgRkxPV19FUlJPUiByZXR1cm4gYmFjayB0byB0aGUgYmFzZSBjbGFzcywgc28gaXQgY2FuIHN0b3AgcHJvcGVybHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MjkKCjIwMTMtMDMtMjIgMDg6NDc6MTcgKzAwMDAgIFJvZG9sZm8gU2NodWx6IGRlIExpbWEgPHJvZG9sZm9Acm9kc29mdC5vcmc+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IHNhbXBsZSBsZWFrIHdoZW4gcHJvY2Vzc2luZyBwcml2YXRlIHF0IHRhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1NQoKMjAxMy0wMy0yMiAwMjoyNDowMSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHNldCBzdHJlYW0gbGFuZ3VhZ2UgY29kZSBmcm9tIHRhZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzU4CgoyMDEzLTAzLTE5IDE4OjA5OjMxIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkgIG1wNG11eDogaW4gZmFzdHN0YXJ0IG1vZGUsIGRvbid0IG91dHB1dCB1cCB0byA0IGtCIG9mIGdhcmJhZ2UgYXQgdGhlIGVuZC4KCjIwMTMtMDMtMTggMTQ6NTk6MzUgKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMjogZml4IGNvbXBpbGF0aW9uIGFnYWluc3QgbmV3ZXIga2VybmVsIGhlYWRlcnMgYXMgb24gRkMxOQoKMjAxMy0wMy0xNCAxNDoxMjowNSArMDEwMCAgS2lzaG9yZSBBcmVwYWxsaSA8a2lzaG9yZS5hcmVwYWxsaUBnbWFpbC5jb20+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGZpeCBpbmZpbml0ZSBsb29wIG9uIEVPUyB3aXRoIG5vbi1kZWZhdWx0IG1ldGhvZHMgb3IgZmllbGRzCgkgIEZpeGVzIHByb2JsZW0gb2YgaW5maW5pdGUgbG9vcCBpbiBnc3RfZGVpbnRlcmxhY2VfcmVzZXRfaGlzdG9yeS4KCSAgTGFzdCBmaWVsZCBpbiB0aGUgaGlzdG9yeSB3YXMgbmV2ZXIgZGVpbnRlcmxhY2VkIGJlY2F1c2UgaWR4IGJlY29tZXMgbmVnYXRpdmUuCgkgIEhhcHBlbnMgZS5nLiB3aXRoIG1ldGhvZD1zY2FsZXJib2IgZmllbGRzPWJvdHRvbSBvcgoJICBtZXRob2Q9Z3JlZWR5bCBmaWVsZHM9dG9wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU2NDQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzE3MwoKMjAxMy0wMy0xMiAwOTo0ODozMSArMDAwMCAgS2lzaG9yZSBBcmVwYWxsaSA8a2lzaG9yZS5hcmVwYWxsaUBnbWFpbC5jb20+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJICBkdmRlbXV4OiBkb24ndCByZXR1cm4gRkFMU0Ugd2hlbiBkcm9wcGluZyBzaW5rIGV2ZW50cwoJICBGaXhlcyBwcm9ibGVtIGluIGNvbmp1bmN0aW9uIHdpdGggYXZpZGVtdXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU2NDMKCjIwMTMtMDMtMTEgMTQ6NTA6NDEgKzAxMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogRG9uJ3QgdXNlIHVwc3RyZWFtIGNhcHMgd2l0aCBwZWVyX3F1ZXJ5X2NhcHMgKCkKCSAgQ2FsbGluZyBnc3RfcGFkX3BlZXJfcXVlcnlfY2FwcyAoKSBvbiB0aGUgc3JjIHBhZCB3aXRoIHRoZSBjYXBzCgkgIHVwc3RyZWFtIGNhbiBwcm9kdWNlIGFzIGEgZmlsdGVyIGZyb20gZ3N0X3J0cF9oMjY0X3BheV9nZXRjYXBzICgpCgkgIGlzIHdyb25nIGFuZCBtYWtlcyBjYXBzIG5lZ290aWF0aW9uIGZhaWwgaWYgdXBzdHJlYW0gY2FwcyBhcmUgbm90CgkgIE5VTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU2MjkKCjIwMTMtMDItMjIgMTk6MDY6NTIgKzAxMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHNraXAgZGlzYWJsZWQgdHJhY2tzCgkgIElTTy9JRUMgMTQ0OTYtMTIgc3BlY2lmaWVzIGRpc2FibGVkIHRyYWNrcyBzaG91bGQgYmUgY29tcGxldGVseQoJICBpZ25vcmVkLCBzbyBqdXN0IGRvIGl0LgoJICBBdm9pZHMgZGVhZGxvY2sgZHVyaW5nIHByZXJvbGxpbmcgZm9yIHNvbWUgZmlsZXMuCgkgIEFsc28gcHJldmVudHMgJ2NoYXB0ZXInIHN1YnRpdGxlIHRyYWNrcyBmcm9tIHNob3dpbmcgdXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM5OTMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyODc5MAoKMjAxMy0wMi0yNiAxNDoxODoyMCAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkgIHJ0cG1wNGdkZXBheTogc3RyZWFtdHlwZSBpcyBub3QgcHV0IGJ5IGFsbCBSVFNQIHNlcnZlciwgbm90IG1ha2UgaXQgb3B0aW9uYWwKCSAgU3BlY2lmaWMgY2FzZSBoZXJlIGlzIFdvd3phIDMuNS4wCgoyMDEzLTAyLTI1IDA5OjU4OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSAgdGVzdHM6IHJlLWFkZCBzdXBwcmVzc2lvbiBmb3IgR1ZhbHVlQXJyYXkgd2FybmluZ3MgdG8gdW5pdCB0ZXN0IGFzIHdlbGwKCjIwMTMtMDItMjUgMDA6MzU6MTggKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgbGV2ZWw6IHB1dCBiYWNrIGRlcHJlY2F0aW9uIHdhcm5pbmdzCgoyMDEzLTAyLTI0IDE5OjA1OjA3ICswMTAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIGxldmVsOiBzZW5kIGxhc3QgbWVzc2FnZSBvbiBFT1MKCjIwMTMtMDItMjMgMTQ6MzQ6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHB1c2ggbW9kZTogaGFuZGxlIHNvbWUgbW9yZSAwLXNpemUgYnVmZmVyIGNhc2VzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5NDQKCjIwMTMtMDItMTMgMTA6NDY6NTQgKzAxMDAgIFBhdWwgSEVOUllTIDx2aXNlY2hlbGxlQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogRml4IHdyb25nIGNvZGUgb3JnYW5pc2F0aW9uIGluIGNhc2Ugb2YgY29sbGlzaW9uCgkgIGNoYW5nZV9zc3JjIGZpZWxkIG9mIFJUUFNlc3Npb24gc2hvdWxkIGJlIHNldCBiZWZvcmUgY2FsbGluZwoJICBydHBfc2Vzc2lvbl9zY2hlZHVsZV9ieWVfbG9ja2VkICgpIGFzIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsIHJlY29uc2lkZXIgZnVuY3Rpb24KCSAgdGhhdCB3aWxsIHdha2UgdXAgcnRjcF90aHJlYWQgd2hpY2ggd2lsbCBjYWxsIHJ0cF9zZXNzaW9uX29uX3RpbWVvdXQgKCkgdGhhdCB3aWxsCgkgIGNoZWNrIGNoYW5nZV9zc3JjIHRvIGNoYW5nZSB0aGUgc3NyYy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDE4NAoKMjAxMy0wMi0yMCAxNTo0Njo0MyArMDEwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSAgYXVwYXJzZTogZG8gbm90IGxlYWsgc3JjX2NhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDI3NQoKMjAxMy0wMi0xOCAxNjozMjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IHBvdGVudGlhbCBjcmFzaCBvbiBzaG9ydCBNT09WIGF0b20KCSAgRG9uJ3QgdW5tYXAgc2hvcnQgTU9PViBhdG9tIGJ1ZmZlciB0d2ljZSwgd2hpY2ggaGFwcGVuZWQKCSAgaW4gdGhlIGNhc2Ugd2hlcmUgd2UgZG9uJ3QgZml4IHVwIHRoZSBNT09WIGF0b20uCgkgIEZpeGVzIGNyYXNoZXMgd2hlbiB0aHVtYm5haWxpbmcgcGFydGlhbCBtcDQgZmlsZSB3aGVyZQoJICB0aGUgTU9PViBhdG9tIGlzIHN0aWxsIGluY29tcGxldGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQwMTAKCjIwMTMtMDItMTUgMTY6MjE6MjEgKzAxMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBzdGVyaWNzc29uLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IGRvbid0IGNoZWNrIHN0cmlkZSBmb3IgZW5jb2RlZCBmb3JtYXRzCgkgIERvbid0IHRyeSB0byBjaGVjayB0aGUgc3RyaWRlIGZvciBlbmNvZGVkIGZvcm1hdHMuIFNvbWUgZHJpdmVycyBvdXRwdXQKCSAgc29tZXRoaW5nICE9IDAgYW5kIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBmYWlsIG9uIHRoYXQuCgoyMDEzLTAyLTA3IDIyOjUxOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogZml4IGJ1aWxkIHdpdGggYXV0b21ha2UgMS4xMwoJICBBTV9DT05GSUdfSEVBREVSIC0+IEFDX0NPTkZJR19IRUFERVJTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTMzNzMKCjIwMTMtMDEtMjkgMTA6NDg6MTcgKzAxMDAgIFBhdWwgSEVOUllTIDx2aXNlY2hlbGxlQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgcnRwcHRkZW11eDogZm9yd2FyZCBzdGlja3kgZXZlbnRzIGFuZCB0aGVuIHNldCBjYXBzCgkgIFdoZW4gYSBuZXcgc3JjIHBhZCBpcyBhZGRlZCwgZmlyc3QgZm9yd2FyZCB0aGUgc3RpY2t5IGV2ZW50cyBhbmQgdGhlbgoJICBzZXQgdGhlIGNhcHMgb24gdGhlIHNyYyBwYWQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjc4NgoKMjAxMy0wMi0wNyAxNDozMjoyNiArMDEwMCAgTWFya292dHNldiBWYWRpbSA8di5tYXJrb3Z0c2V2IGF0IHNhbXN1bmcuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogaW1wcm92ZSBkZWJ1ZyBvdXRwdXQKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODkzNQoKMjAxMy0wMi0wNyAxMTo0MDozNSArMDEwMCAgVGltICdtaXRocm8nIEFuc2VsbCA8Z25vbWUgYXQgbWl0aGlzLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXIyOiBhdm9pZCBjYXBzIGxlYWsKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzMwNwoKMjAxMy0wMi0wNiAxMzo1MjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogb25seSBFT1Mgd2hlbiBvdXIgc291cmNlIHNlbmRzIEJZRQoJICBPbmx5IEVPUyB3aGVuIHdlIHJlY2VpdmUgYSBCWUUgZXZlbnQgZnJvbSB0aGUgU1NSQyBvZiBvdXIgc3RyZWFtLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NDUzCgoyMDEzLTAyLTA2IDEzOjQ3OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBzYXZlIHRoZSBzdHJlYW0gU1NSQwoJICBDb25mbGljdHM6CgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYwoKMjAxMy0wMi0wNiAxMzoxODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZmx1c2ggY29ubmVjdGlvbiB3aGVuIHN0b3BwaW5nCgkgIFdoZW4gd2Ugc3RvcCwgd2UgY2FuIGZsdXNoIGFsbCBwZW5kaW5nIGNvbW1hbmRzIHNvIHRoYXQgd2UgY2FuIHN0b3AgYW5kCgkgIGpvaW4gdGhlIHRhc2suCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5MjQKCjIwMTMtMDItMDMgMTM6MTQ6NTAgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgbGV2ZWw6IEFkZCBtaXNzaW5nIGNvbWEgYmV0d2VlbiBmb3JtYXRzCgoyMDEzLTAxLTMxIDIyOjU1OjE4ICsxMTAwICBNYXR0aGV3IFdhdGVycyA8eXN0cmVldDAwQGdtYWlsLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXI6IGZpeCBlb3MgdGltZXN0YW1wIGNoZWNrCgkgIGZpeGVzIGhhbmcgaW4gdmlkZW90ZXN0c3JjIG51bS1idWZmZXJzPTIwICEgdmlkZW9taXhlciAhIGZha2VzaW5rCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI5MzUKCjIwMTMtMDEtMTggMjE6MDg6MTIgKzA0MDAgIEFsZXhleSBDaGVybm92IDxhY2hlcm5vdkBuZW9zcGhlcmUuY29tPgoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lmg6CgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJICBvc3h2aWRlb3Npbms6IE1ha2UgR3N0TmF2aWdhdGlvbiBrZXkgaW5wdXQgZXZlbnRzIGluIG9zeHZpZGVvc2luayBjb21wYXRpYmxlIHdpdGggeCh2KWltYWdlc2luayBvbmVzCgoyMDEzLTAxLTI3IDEyOjU0OjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogcHVzaCBtb2RlOiBvbmx5IHBhcnNlIG1vb3YgMSBvbmNlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE1NzAKCjIwMTMtMDEtMjMgMjE6MzU6MjUgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmg6CgkgIHhpbWFnZXNyYzogU2V0IHRoZSBwaXhlbCBhc3BlY3QgcmF0aW8gY29ycmVjdGx5IGluIHRoZSBjYXBzCgoyMDEzLTAxLTIyIDE4OjEyOjEwICswMTAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAc3QuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogYWxsb3cgY2FsbGluZyBmcm9tIG91dC1vZi10cmVlCgkgIFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBzdC5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTIzMDkKCjIwMTMtMDEtMTkgMTM6Mjc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZG9uJ3QgZXJyb3Igb3V0IGlmIHBhX3N0cmVhbV9wcm9wbGlzdF91cGRhdGUoKSB3aXRoIG5ldyB0YWdzIGZhaWxzCgkgIFNob3VsZG4ndCByZWFsbHkgaGFwcGVuIHRoZXNlIGRheXMsIGJ1dCBpZiBpdCBkb2VzLCBpdCdzIG5vdCByZWFsbHkKCSAgYSBwcm9ibGVtIGVpdGhlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjA2OAoKMjAxMy0wMS0xMSAxOToyNDo0MyArMDQwMCAgQWxleGV5IENoZXJub3YgPGFjaGVybm92QG5lb3NwaGVyZS5jb20+CgoJKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubToKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IEZpeCBjcmFzaCBpbiBvc3h2aWRlb3Npbmsgd2l0aCBleHRlcm5hbCB3aW5kb3cgb3V0cHV0CgoyMDEzLTAxLTE2IDEyOjA0OjU5ICswNDAwICBBbGV4ZXkgQ2hlcm5vdiA8YWNoZXJub3ZAbmVvc3BoZXJlLmNvbT4KCgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJICBvc3h2aWRlb3Npbms6IE1ha2UgR3N0R0xWaWV3IHByb3BhZ2F0ZSBpbnB1dCBldmVudHMgdG8gaXRzIHBhcmVudCB2aWV3CgkgIEZpeGVzIGJ1ZyAjNjkxODMyCgo9PT0gcmVsZWFzZSAxLjAuNSA9PT0KCjIwMTMtMDEtMDggMDE6MTk6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pc29tcDQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12cHgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9zbC5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDEuMC41CgoyMDEzLTAxLTA0IDEzOjUzOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIGdka3BpeGJ1Zm92ZXJsYXkgZWxlbWVudCB0byBkb2NzCgoyMDEzLTAxLTAxIDEyOjE5OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICBkb2NzOiBmaXggZG9jcyBidWlsZCBhbmQgdXBkYXRlIGFmdGVyIHJlbW92YWwgb2Ygb2xkIGNhaXJvIGVsZW1lbnRzCgoyMDEzLTAxLTAxIDExOjUyOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvY2Fpcm8vLmdpdGlnbm9yZToKCSogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm8tbWFyc2hhbC5saXN0OgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm8uYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvb3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9vdmVybGF5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jYWlyby9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vY2Fpcm9fb3ZlcmxheS5jOgoJICBjYWlybzogcG9ydCBjYWlyb292ZXJsYXkgdG8gMC4xMQoJICBUaGUgb3RoZXIgZWxlbWVudHMgYXJlIG5vdCB0aGF0IGludGVyZXN0aW5nIG5vdyB0aGF0IHdlJ3JlCgkgIHVzaW5nIHBhbmdvY2Fpcm8gaW4gdGhlIHBhbmdvIHBsdWdpbiwgYW5kIHNob3VsZCBwcm9iYWJseQoJICBqdXN0IGJlIHJlbW92ZWQuCgoyMDEyLTEyLTMxIDE4OjU5OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1kZWNvZGViaW4tSDI2M3AtQU1SLnNoOgoJICBleGFtcGxlczogY2hlY2sgZm9yIHVyaSBhcmd1bWVudCBpbiBkZWNvZGViaW4taDI2NHAtYW1yIHNlcnZlciBleGFtcGxlCgkgIE90aGVyd2lzZSBwZW9wbGUgZ2V0IGEgcmF0aGVyIGNvbmZ1c2luZyBlcnJvciBtZXNzYWdlLgoKMjAxMy0wMS0wNCAxMDowMzozMiArMDEwMCAgUm9iZXJ0IEtyYWtvcmEgPHJvYi5rcmFrb3JhQG1lc3NhZ2VuZXRzeXN0ZW1zLmNvbT4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMjogQWxzbyBoYW5kbGUgdGhlIG5ldyBFTk9FTlQgcmV0dXJuIHZhbHVlIG9mIFZJRElPQ19RVUVSWUNUUkwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTA5OAoKMjAxMi0xMC0yNSAxMjoxODowMyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eF9mb3VyY2MuaDoKCSAgcXRkZW11eDogcmVhZCB2aWRlbyBmb3JtYXQgaGVhZGVyIGZ1bGx5IChzbyB3ZSBjYW4gZmluZCAncGFzcCcgYXRvbXMpIGZvciBtb3JlIGZvdXJjY3MuIEZpeGVzIGFzcGVjdCByYXRpbyBvZiBwcm9yZXMgZmlsZXMuCgoyMDEyLTEyLTE3IDE1OjE3OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdHdhdnBhY2twYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IE1ha2Ugc3VyZSB0aGUgY2FwcyBhcmUgYWN0dWFsbHkgd3JpdGFibGUgYmVmb3JlIGNoYW5naW5nIHRoZW0KCjIwMTItMTItMTcgMTU6MDE6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogVXNlIHRoZSBwZWVyIGNhcHMgZm9yIHJlc3RyaWN0aW9ucyBpbnN0ZWFkIG9mIHRoZSBzcmNwYWQgYWxsb3dlZCBjYXBzCgkgIE90aGVyd2lzZSB3ZSB3aWxsIGludGVyc2VjdCB3aXRoIHRoZSBzcmNwYWQgdGVtcGxhdGUgY2FwcyBhbmQgYWRkIGFsbCB0aGUgY2FwcyBmaWVsZHMKCSAgdGhhdCB0aGUgcGFyc2VyIHdpbGwgZXZlciBzZXQsIG5vIG1hdHRlciBpZiBkb3duc3RyZWFtIHJlc3RyaWN0cyB0aGlzIGZpZWxkIG9yIG5vdC4KCSAgVGhpcyByZXF1aXJlcyB1cHN0cmVhbSB0byBzZXQgdGhpcyBmaWVsZCBvbiB0aGUgY2FwcyB0byBzdWNjZXNzZnVsbHkgbmVnb3RpYXRlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMTg0CgoyMDEyLTEyLTIwIDE3OjEyOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggY21kIGNvbXBhcmlzb24KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDQ3NgoKMjAxMi0xMi0yMCAxNzoxMjoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogYWRkIHNvbWUgbW9yZSBkZWJ1ZwoKMjAxMi0xMi0yMCAxNTo1NTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5oOgoJICBqcGVnZW5jOiBwYXNzIGZsb3dyZXR1cm4gdXBzdHJlYW0KCj09PSByZWxlYXNlIDEuMC40ID09PQoKMjAxMi0xMi0xOCAxOToxMTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZweC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMS4wLjQKCjIwMTItMTItMTggMTg6NTM6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEyLTEyLTE4IDE1OjU2OjU5ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJICB3YXZwYWNrOiB1c2UgYXBwcm9wcmlhdGUgcHJpbnRmIGZvcm1hdCBmb3IgZ3NpemUKCjIwMTItMTItMTggMTU6NTU6NDMgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICB0YWdsaWI6IHVzZSBhcHByb3ByaWF0ZSBwcmludGYgZm9ybWF0IGZvciBnc2l6ZQoKMjAxMi0xMi0xOCAxNTo1NDowOCArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZmRlYy5jOgoJICBnZGtwaXhidWY6IHVzZSBhcHByb3ByaWF0ZSBwcmludGYgZm9ybWF0IGZvciBnc2l6ZQoKMjAxMi0xMi0xOCAxNTo0Njo1NiArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogdXNlIGFwcHJvcHJpYXRlIHByaW50ZiBmb3JtYXQgZm9yIGdzaXplCgoyMDEyLTEyLTE3IDE2OjM1OjU2ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmg6CgkgIGludGVybGVhdmU6IHNldCBzcmMgcGFkIGNhcHMgdXBvbiBsYXN0IHNpbmsgcGFkIENBUFMgZXZlbnQKCSAgR2F0aGVyIGNhcHMgb24gYWxsIHNpbmsgcGFkcyBiZWZvcmUgc2V0dGluZyB0aGUgc3JjIHBhZCBjYXBzLiBUaGlzIGlzCgkgIHNwZWNpYWxseSBuZWVkZWQgd2hlbiB0aGUgYXVkaW8gY2hhbm5lbCBtYXBwaW5nIGlzIHNldCBvbiB0aGUgc2luawoJICBwYWRzIGFuZCB0aGUgZWxlbWVudCBuZWVkcyB0byBwcmVzZXJ2ZSBpdCBvbiBpdHMgc3JjIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDI2NwoKMjAxMi0xMi0xNCAyMjoyNTowOCArMDAwMCAgS29vcCBNYXN0IDxrd21AcmFpbmJvdy1ydW5uZXIubmw+CgoJKiBjb25maWd1cmUuYWM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSAgdjRsMjogVGVhY2ggd2hlcmUgdGhlIHZpZGVvZGV2Mi5oIGhlYWRlciBsaXZlcyBvbiBmcmVlYnNkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwMjMzCgoyMDEyLTEyLTEzIDA5OjI3OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggVENQIHJlY29ubmVjdAoJICBJZ25vcmUgb3RoZXIgY29tbWFuZHMgd2hlbiByZWNvbm5lY3RpbmcsIG90aGVyd2lzZSB0aGUgbG9vcCBmdW5jdGlvbiB3b3VsZCBwYXVzZQoJICBhbmQgdGhlIHJlY29ubmVjdGlvbiB3b3VsZCBub3QgaGFwcGVuLiBDb250aW51ZSBsb29waW5nIGFmdGVyIGRvaW5nIGEgcmVjb25uZWN0CgkgIHNvIHRoYXQgd2UgaGF2ZSBhIGNoYW5jZSB0byBhY3R1YWxseSByZWFkIHRoZSBuZXcgZGF0YS4KCjIwMTItMTItMTIgMTI6MDc6MzQgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSAgZGVpbnRlcmxlYXZlOiBwcm9wZXJseSBzZXQgc3JjcGFkIGNoYW5uZWwgcG9zaXRpb24KCSAgVGhlIHNyYyBwYWQgY2FwcyBhbHdheXMgZGVzY3JpYmUgYSBzaW5nbGUgYXVkaW8gY2hhbm5lbCBzbyBvbmx5IHRoZQoJICBmaXJzdCBwb3NpdGlvbiBtYXR0ZXJzIGlmIGRlaW50ZXJsZWF2ZSBpcyBjb25maWd1cmVkIHRvIGtlZXAgY2hhbm5lbAoJICBwb3NpdGlvbnMgaW4gaXRzIHNyYyBwYWRzLgoKMjAxMi0xMi0xMCAxMTo0NDoyNiArMDAwMCAgQWxleGV5IENoZXJub3YgPDRlcm5vdkBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogRml4IHJlc2l6aW5nIHRoZSBDb2NvYSB3aW5kb3cgb24gcmVjZWl2aW5nIG5ldyBjYXBzCgkgIEZpeGVzIGJ1ZyAjNjg5NzMyLgoKMjAxMi0wOS0yNyAxMjoxNzo1OCAtMDcwMCAgQWxlaXggQ29uY2hpbGxvIEZsYXF1ZSA8YWxlaXhAb2Jsb25nLmNvbT4KCgkgIHJ0c3BzcmM6IGRvIG5vdCBjaGFuZ2Ugc3RhdGUgdG8gUExBWUlORyBpZiBjdXJyZW50bHkgY2hhbmluZyBzdGF0ZQoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYyAoZ3N0X3J0c3BzcmNfcGxheSk6IHN0YXRlIGNoYW5nZSBtaWdodCBiZQoJICBoYXBwZW5pbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHRocmVhZCwgc28gd2UgZG9uJ3QgY2hhbmdlIHRoZSBzdGF0ZSB0bwoJICBQTEFZSU5HIGluIHRoZSBnc3RydHNwc3JjIHRocmVhZCB1bmxlc3MgaXQgaXMgc2FmZS4KCSAgQSBzcGVjaWZpYyBjYXNlIGlzIHdoZW4gY2hhbmluZyB0aGUgc3RhdGUgdG8gTlVMTCBmcm9tIHRoZSBhcHBsaWNhdGlvbgoJICB0aHJlYWQuIFRoaXMgd2lsbCBzeW5jaHJvbm91c2x5IHRyeSB0byBzdG9wIHRoZSB0YXNrICh3aXRoIHRoZSBlbGVtZW50CgkgIHN0YXRlIGxvY2sgYWNxdWlyZWQpLCBidXQgd2Ugd2lsbCB0cnkgYSBnc3RfZWxlbWVudF9zZXRfc3RhdGUgZnJvbQoJICBnc3RydHNwc3JjIHRocmVhZCB3aGljaCB3aWxsIGJsb2NrIG9uIHRoZSBlbGVtZW50IHN0YXRlIGxvY2sgY2F1c2luZyBhCgkgIGRlYWRsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0MzEyCgoyMDEyLTExLTMwIDE3OjIyOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6CgkgIHNob3V0MnNlbmQ6IGFjY2VwdCBhdWRpby93ZWJtIGFzIHdlbGwgYXMgdmlkZW8vd2VibQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MzM2CgoyMDEyLTExLTMwIDE3OjIwOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbWF0cm9za2FtdXguYzoKCSAgd2VibXV4OiBmaXggbGlua2luZyB3aXRoIHNob3V0MnNlbmQgZWxlbWVudAoJICBTaG91dDJzZW5kIG9ubHkgYWNjZXB0cyB3ZWJtIGZvcm1hdCwgbm90IG1hdHJvc2thLCBidXQgZHVlCgkgIHRvIGEgYnVnIGluIG1hdHJvc2thbXV4LCB3ZWJtbXV4J3Mgc291cmNlIHBhZCBpcyBhbHNvIGNyZWF0ZWQKCSAgd2l0aCB0aGUgbWF0cm9za2Egc291cmNlIHBhZCB0ZW1wbGF0ZSBhcyBwYWQgdGVtcGxhdGUsIHdoaWNoCgkgIG1ha2VzIHRoZSBsaW5rIGZ1bmN0aW9uIHRoaW5rIGl0IGNhbid0IGxpbmsgd2VibW11eCB0byBzaG91dDJzZW5kLgoJICBBbHNvIGFkZCB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODkzMzYKCjIwMTItMTEtMjYgMTU6MTc6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvbGF3L211bGF3LWNvbnZlcnNpb24uYzoKCSAgbGF3OiBmaXggYWNjaWRlbnRhbCBmaWxlIHBlcm1pc3Npb25zIGNoYW5nZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDY5CgoyMDEyLTExLTI1IDE0OjE2OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGF2b2lkIGNyaXRpY2FscyBpZiB1bmtub3duIGZvdXJjYyBoYXMgc3BhY2UgYXQgYmVnaW5uaW5nIG9yIGVuZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTM2CgoyMDEyLTExLTI0IDE5OjMyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBmaXggYm9yZGVyIGZpbGxpbmcgZm9yIHBsYW5hciBZVVYgZm9ybWF0cwoJICBXZSB3b3VsZCBnZXQgYSBncmVlbiBib3JkZXIgaW5zdGVhZCBvZiBhIGJsYWNrIG9uZSwgZm9yCgkgIGV4YW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ5OTEKCjIwMTItMTEtMjQgMTQ6Mjc6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvbGF3L211bGF3LWNvbnZlcnNpb24uYzoKCSAgbXVsYXc6IGNvbnN0LWlmeSBzb21lIGFycmF5cwoKMjAxMi0xMS0wMiAxMjozODo0NCAtMDQwMCAgUm9sYW5kIEtyaWthdmEgPHJrcmlrYXZhQGdtYWlsLmNvbT4KCgkqIGdzdC9sYXcvbXVsYXctY29udmVyc2lvbi5jOgoJICBtdWxhd2RlYzogZml4IGludGVnZXIgb3ZlcnJ1bgoJICBUaGVyZSBtaWdodCBiZSBtb3JlIHRoYW4gNjU1MzUgc2FtcGxlcyBpbiBhIGNodW5rIG9mIGRhdGEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc0NjkKCjIwMTItMTEtMjIgMTE6MzQ6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHBhdXNlIHRoZSB0YXNrIGluc3RlYWQgb2Ygc3Bpbm5pbmcKCSAgQWN0dWFsbHkgcGF1c2UgdGhlIGxvb3AgdGFzayBpbnN0ZWFkIG9mIHNwaW5uaW5nIGZvcmV2ZXIuCgoyMDEyLTExLTIxIDEzOjA0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZweC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWcgZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjMgPT09CgoyMDEyLTExLTIxIDEwOjIyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdnB4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuMwoKMjAxMi0xMS0xNiAwOTowOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICBtdWx0aWZpbGVzaW5rOiBwb3N0IG1lc3NhZ2VzIGluIG1heC1zaXplIG1vZGUgYXMgd2VsbAoJICBObyByZWFzb24gbm90IHRvIHJlYWxseS4KCjIwMTItMTEtMTYgMTU6Mzg6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGhhbmRsZSBzZWdtZW50IGV2ZW50CgkgIE1ha2UgYSBzZWdtZW50IGV2ZW50IHdoZW4gd2Ugc2VuZCBhIG5ldyByYW5nZSBoZWFkZXIgdG8gYSBjbGllbnQgKGZpcnN0IFBMQVkKCSAgcmVxdWVzdCBvciBhZnRlciBhIHNlZWspLiBTZW5kIHRoZSBzZWdtZW50IGV2ZW50IGluIGludGVybGVhdmVkIG1vZGUuCgkgIENsZWFuIHRoZSBzZWdtZW50IGV2ZW50IG9uIGNsZWFudXAKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODM4MgoKMjAxMi0xMS0xNiAxNToxODowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IGNoZWNrIGZvciBhY3RpdmUgc3RyZWFtcwoJICBBIHN0cmVhbSBjYW4gYmUgYWN0aXZlIHdpdGhvdXQgYSBzcmNwYWQgeWV0IGFuZCB3ZSB3YW50IHRvIHNlbmQKCSAgZXZlbnRzIG9uIHRob3NlIHN0cmVhbXMgYXMgd2VsbC4KCjIwMTItMTEtMTYgMTM6MzE6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGNyZWF0ZSBhbmQgYWRkIHBhZHMgb3V0c2lkZSBvZiBsb2NrCgkgIENyZWF0ZSBhbmQgYWRkIHRoZSBnaG9zdHBhZCBmb3IgdGhlIG5ldyBzdHJlYW0gb3V0c2lkZSBvZiB0aGUgbG9jayBiZWNhdXNlIGl0CgkgIGlzIG5vdCBuZWVkZWQgYW5kIGNhdXNlcyBkZWFkbG9ja3MuCgoyMDEyLTExLTE2IDEyOjE2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBjbGVhciB2YXJpYWJsZXMgYmVmb3JlIHJldHJ5aW5nCgkgIEVsc2Ugd2UgbWlnaHQgdW5yZWYgYW4gb2xkIHVkcHNyYyB0d2ljZSBpbiBjbGVhbnVwLgoKMjAxMi0xMS0xNiAxMjowMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogcHJvcG9zZSBwb3J0cyBpbiBtdWx0aWNhc3QKCSAgV2hlbiB0aGUgdXNlciBjb25maWd1cmVkIGEgcG9ydC1yYW5nZSwgcHJvcG9zZSBwb3J0cyBmcm9tIHRoaXMgcmFuZ2UKCSAgYXMgdGhlIG11bHRpY2FzdCBwb3J0cy4gVGhlIHNlcnZlciBpcyBmcmVlIHRvIGlnbm9yZSB0aGlzIHJlcXVlc3QgYnV0IGlmIGl0CgkgIGhvbm91cnMgaXQsIGluY3JlbWVudCBvdXIgcG9ydHMgc28gdGhhdCB3ZSBzdWdnZXN0IHRoZSBuZXh0IHBvcnQgcGFpciBmb3IgdGhlCgkgIG5leHQgc3RyZWFtLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NDIwCgoyMDEyLTExLTE2IDExOjU4OjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0xMS0xNSAxNDozNzo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogcG9zdCBlcnJvciBiZWZvcmUgc3RvcHBpbmcKCjIwMTItMTEtMTIgMTE6MTQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBwcm90ZWN0IGFnYWluc3QgaW52YWxpZCBSVFAgcGFja2V0cwoKMjAxMi0xMS0xMiAxMzowMToyMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnB4L2dzdHZwOGVuYy5jOgoJICB2cDhlbmM6IERvbid0IGxlYWsgR3N0VmlkZW9Db2RlY0ZyYW1lcyB0aGF0IGNhdXNlIHRoZSBjcmVhdGlvbiBvZiBpbnZpc2libGUgZnJhbWVzCgkgIEZpeGVzIGJ1ZyAjNjgyNzE0LgoKMjAxMi0xMS0xMiAxMDo0NDowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICBwbmdkZWM6IEFjdHVhbGx5IHVzZSB0aGUgc3RvcCgpIHZmdW5jIGltcGxlbWVudGF0aW9uCgoyMDEyLTExLTEyIDEwOjMxOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cHgvZ3N0dnA4ZGVjLmM6CgkgIHZwOGRlYzogRml4IGxhc3QgY29tbWl0CgoyMDEyLTExLTA5IDExOjIyOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogQWxzbyBjbGVhciBHRXJyb3IKCjIwMTItMTEtMDkgMTE6MjA6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwc3JjOiBEb24ndCBlcnJvciBvdXQgaWYgd2UgZ2V0IGFuIElDTVAgZGVzdGluYXRpb24tdW5yZWFjaGFibGUgbWVzc2FnZSB3aGVuIHRyeWluZyB0byByZWFkIHBhY2tldHMKCSAgU2VlIGJ1ZyAjNTI5NDU0IGFuZCAjNjg3NzgyIGFuZCBjb21taXQKCSAgNzUxZjJiYjM2NDZmMmJlZmYzNjk4YzlmMDk5MDBkYmQwZWEwOGFiYgoKMjAxMi0xMS0wOSAxNjozMTowNSArMDEwMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZXh0L3ZweC9nc3R2cDhkZWMuYzoKCSAgdnA4ZGVjOiBEb24ndCBnaXZlIHVwIHNvIGVhc2lseSBpZiBmYWlsZWQgdG8gZGVjb2RlIGEgZnJhbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzQzNgoKMjAxMi0xMS0xMiAwOTo0ODo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnB4L2dzdHZwOGRlYy5jOgoJICB2cDhkZWM6IERvbid0IGNsZWFyIGlucHV0IHN0YXRlIGluIHJlc2V0KCkKCSAgVGhlIGlucHV0IHN0YXRlIGlzIHN0aWxsIHZhbGlkIGFmdGVyIGZsdXNoaW5nIHVudGlsCgkgIG5ldyBjYXBzIGFycml2ZS4KCSAgRml4ZXMgYnVnICM2ODgwOTIuCgoyMDEyLTExLTEyIDEwOjA4OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cHgvZ3N0dnA4ZGVjLmM6CgkgIHZwOGRlYzogQWxzbyBkZXN0cm95IGRlY29kZXIgaW4gc2V0X2Zvcm1hdCgpIGlmIGl0IHdhcyBjcmVhdGVkIGFscmVhZHkKCSAgRml4ZXMgYSBtZW1vcnkgbGVhay4KCjIwMTItMTEtMTIgMTA6MTA6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgcG5nZGVjOiBLZWVwIHRoZSBpbnB1dCBzdGF0ZSBpbiByZXNldCgpCgkgIEl0J3Mgc3RpbGwgdmFsaWQgYWZ0ZXIgYSBmbHVzaCBhbmQgd2UgbWlnaHQgbm90IGdldCBhIG5ldyBvbmUuCgoyMDEyLTExLTAyIDE2OjM5OjI4ICswMTAwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSAgc3BlZXhkZWM6IERvbid0IHVubWFwIG9yIGZpbmlzaF9mcmFtZSBhbiBpbnZhbGlkIEdzdEJ1ZmZlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NDY0CgoyMDEyLTExLTA2IDEzOjIyOjU4ICswMTAwICBNYXJjIExlZW1hbiA8bWFyYy5sZWVtYW5AZ21haWwuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwOiB0aGUgUlRDUCBwb3J0IG51bWJlciBpcyBpbmNsdXNpdmUKCSAgVGhlIGNvbmZpZ3VyZWQgcG9ydCBudW1iZXIgcGFpciBoYXMgaXRzIHVwcGVyIGJvdW5kIHNldCB0byB0aGUgbWF4aW11bQoJICBhbGxvd2VkIFJUQ1AgcG9ydCwgaW5jbHVzaXZlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTQyMAoKMjAxMi0xMS0wMiAxODo0NzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkgIHZyYXdkZXBheTogZG9uJ3QgYWNjZXNzIHJ0cCBidWZmZXIgYWZ0ZXIgdW5tYXAKCSAgUmVhZCB0aGUgbWFya2VyIGJpdCBiZWZvcmUgd2UgdW5tYXAgdGhlIHJ0cCBwYWNrZXQuCgoyMDEyLTExLTAyIDA5OjM0OjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cHgvZ3N0dnA4ZGVjLmM6CgkgIHZwOGRlYzogSW1tZWRpYXRlbHkgcmV0dXJuIGlmIG9wZW5pbmcgdGhlIGRlY29kZXIgZmFpbGVkCgkgIEluc3RlYWQgb2YgaWdub3JpbmcgYW55IGVycm9ycy4KCjIwMTItMTEtMDEgMjI6MDI6MzkgKzAxMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGV4dC92cHgvZ3N0dnA4ZGVjLmM6CgkgIHZwOGRlYzogU2hvcnQgY2lyY3VpdCBnc3RfdnA4X2RlY19oYW5kbGVfZnJhbWUgaWYga2V5ZnJhbWUgaXMgbWlzc2luZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3Mzc2CgoyMDEyLTExLTAxIDEzOjAzOjQ0ICswMDAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuYzoKCSAgdmlkZW9taXhlcjogZ2V0IGhlaWdodCB2aWEgR1NUX1ZJREVPX0ZSQU1FX0hFSUdIVCwgbm90IF9XSURUSAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3MzMwCgoyMDEyLTExLTAxIDEzOjAyOjE2ICswMDAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVib3g6IGZpeCBib3JkZXIgZmlsbGluZyBmb3IgZ3JheSBmb3JtYXRzCgkgIEdldCB0aGUgaGVpZ2h0IHZpYSBHU1RfVklERU9fRlJBTUVfSEVJR0hULCBub3QgX1dJRFRILgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3MzMwCgoyMDEyLTExLTAyIDEwOjUzOjU3ICsxMzAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuYzoKCSAgdmlkZW9jb252ZXJ0OiBDb21wYXJlIHkgb2Zmc2V0IHdpdGggaGVpZ2h0LCBub3Qgd2lkdGgsIHdoZW4gdGVzdGluZyBmb3Igb3ZlcmxhcAoJICBUaGlzIGNvdWxkIGhhdmUgcHJldmVudGVkIGltYWdlcyBzaG93aW5nIHRoYXQgc2hvdWxkIGhhdmUgd2hlbiB0aGUKCSAgc291cmNlIGhlaWdodCBpcyBncmVhdGVyIHRoYW4gaXRzIHdpZHRoLgoJICBXaGVuIHdpZHRoIGV4Y2VlZHMgaGVpZ2h0LCBhcyBpcyBjb21tb24sIGl0IHByb2JhYmx5IG9ubHkgY2F1c2VkIGEKCSAgbWluaXNjdWxlIGFtb3VudCBvZiB1bm5lY2Vzc2FyeSB3b3JrLiAgSSBoYXZlbid0IHRlc3RlZC4KCjIwMTItMTAtMjggMDA6MDc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IGRvbid0IGFzc2VydCBpbiBnZXRfdGltZSgpIHdoZW4gY2FsbGVkIGFmdGVyIHNodXRkb3duCgkgIFdoaWNoIG1pZ2h0IGhhcHBlbiBpZiB0aGUgc291cmNlIGdldHMgc2V0IHRvIE5VTEwgc3RhdGUgYmVmb3JlCgkgIHRoZSByZXN0IG9mIHRoZSBwaXBlbGluZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Njk4NQoKMjAxMi0xMC0zMCAxMToxMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2xldmVsL2xldmVsLWV4YW1wbGUuYzoKCSAgdGVzdHM6IGZpeCBsZXZlbCBleGFtcGxlCgkgIFVzZSB0aGUgR1ZhbHVlQXJyYXkgaW4gdGhlIG1lc3NhZ2UuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODcxNTQKCjIwMTItMTAtMjcgMjM6MjI6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvYXVwYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2xldmVsL01ha2VmaWxlLmFtOgoJKiBnc3QveTRtL01ha2VmaWxlLmFtOgoJICBnc3Q6IGZpeCB2YXJpYWJsZSBvcmRlciBpbiBzb21lIE1ha2VmaWxlLmFtCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODcwMTMKCjIwMTItMTAtMjcgMTc6Mjc6MTYgLTA0MDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBleHQvbGliY2FjYS9NYWtlZmlsZS5hbToKCSogZ3N0L2F1cGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9sZXZlbC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvY3JvcC9NYWtlZmlsZS5hbToKCSogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSAgZ3N0OiBhZGQgdmFyaW91cyBtaXNzaW5nIEdTVF9QTFVHSU5TX0JBU0VfTElCUyBpbiBNYWtlZmlsZS5hbQoJICBUaG9zZSBwbHVnaW5zIGRlcGVuZCBvbiBlaXRoZXIgbGliZ3N0YXVkaW8gb3IgbGliZ3N0dmlkZW8sCgkgIHdoaWNoIGFyZSBpbiBnc3QtcGx1Z2lucy1iYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3MDEzCgoyMDEyLTEwLTI1IDAwOjQ0OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSAgaW1hZ2VmcmVlemU6IHRoZSBuZXcgZ2V0X2NhcHMgYWxyZWFkeSBkb2VzIHRoZSBmaWx0ZXIgaW50ZXJzZWN0aW9uCgkgIEl0IHNob3VsZCBiZSBmYXN0ZXIgdG8gcGFzcyB0aGUgY2FwcyB0byBpbnRlcnNlY3QgYXMgdGhlIGZpbHRlciBjYXBzLAoJICByYXRoZXIgdGhhbiB1c2luZyBOVUxMIGFuZCBpbnRlcnNlY3RpbmcgJ21hbnVhbGx5JyBsYXRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjgzNwoKMjAxMi0xMC0yNSAwMDo0Mzo1MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBhdm9pZCBhc3NlcnRpb24gd2hlbiB1c2luZyBhY2NlcHQgY2FwcyBxdWVyeQoJICBUaGlzIHF1ZXJ5IG11c3QgcmVjZWl2ZSBhIGZpeGVkIGNhcHMsIHNvIGltYWdlZnJlZXplIHNob3VsZAoJICBmaXhhdGUgaXRzIGZyYW1lcmF0ZSBiZWZvcmUgc2VuZGluZyB0aGUgcXVlcnkgZG93bnN0cmVhbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjgzNwoKMjAxMi0xMC0yNSAxMjozMjowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pc29tcDQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12cHgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAoYnVnIGZpeGluZykKCj09PSByZWxlYXNlIDEuMC4yID09PQoKMjAxMi0xMC0yNSAwMTowMTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZweC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMS4wLjIKCjIwMTItMTAtMjQgMTM6NTA6MDAgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHVzZSBjb3JyZWN0IHR5cGUgZm9yIGNoYW5uZWwtbWFzayBiaXRtYXNrCgkgIEZpeGVzIGNyYXNoIG9uIDMyLWJpdCBzeXN0ZW1zLgoKMjAxMi0xMC0yNCAxMToxNzo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogRmx1c2ggdGhlIHJpbmdidWZmZXIgb24gR0FQIGV2ZW50cyB3aXRob3V0IGR1cmF0aW9uCgkgIFRoaXMgaXMgcmVxdWlyZWQgdG8gcHJvcGVybHkgc3RhcnQgdGhlIHJpbmdidWZmZXIgYW5kIGNsb2NrLgoKMjAxMi0xMC0wMiAyMDo1MToyOSArMDIwMCAgT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGV4dC92cHgvZ3N0dnA4ZW5jLmM6CgkgIHZwOGVuYzogc2V0IERFQ09ERV9PTkxZIGZsYWcgb24gaW52aXNpYmxlIEFsdFJlZiBmcmFtZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDIxNgoKMjAxMi0xMC0yMyAxNjowMjowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IGZpeCBjb3ZlcmFydCBleHRyYWN0aW9uIGlmIHZvcmJpcyBjb21tZW50cyBjb21lIGFmdGVyIHBpY3R1cmUgaGVhZGVyCgkgIFNlZSBzYW1wbGUgZmlsZSBmb3IgYnVnICM2ODQ3MDEuCgoyMDEyLTEwLTIzIDEzOjQ1OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogaWdub3JlIGJhZCBoZWFkZXJzIGlmIHdlIGhhdmUgYSB2YWxpZCBTVFJFQU1JTkZPIGhlYWRlcgoJICBJZiB3ZSBydW4gaW50byBhbnkgaGVhZGVyIHBhcnNpbmcgaXNzdWVzIGFuZCB3ZSBoYXZlIGEgdmFsaWQKCSAgU1RSRUFNSU5GTyBoZWFkZXIgYWxyZWFkeSwgZG9uJ3QgZXJyb3Igb3V0LCBidXQganVzdCBzdG9wCgkgIGhlYWRlciBwYXJzaW5nIGFuZCB0cnkgdG8gZmluZCBzb21lIGF1ZGlvIGZyYW1lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDcwMQoKMjAxMi0xMC0yMyAxMzo0MzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IHBvc3QgcHJvcGVyIGVycm9yIG1lc3NhZ2UgYW5kIGZpeCBidWZmZXIgbGVhayBvbiBoZWFkZXIgcGFyc2luZyBlcnJvcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NzAxCgoyMDEyLTEwLTIyIDIyOjMyOjQ5IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogd2l0aCByYXcgYXVkaW8sIHNldCBhIGRlZmF1bHQgY2hhbm5lbC1tYXNrIGZvciBtdWx0aWNoYW5uZWwgYXVkaW8uIFRoaXMgZG9lc24ndCBhY3R1YWxseSBwYXJzZSAnY2hhbicgYmVjYXVzZSBpdCdzIGFic3VyZGx5IGNvbXBsZXguCgoyMDEyLTEwLTIyIDE1OjU0OjE3ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVwZHNyYzogZml4IHR5cG8gY2F1c2luZyBjb21waWxhdGlvbiBlcnJvcgoJICBnc3R1ZHBzcmMuYzogSW4gZnVuY3Rpb24gJ2dzdF91ZHBzcmNfY3JlYXRlJzoKCSAgZ3N0dWRwc3JjLmM6MzY1OiBlcnJvcjogJ3JldCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY2NDIKCjIwMTItMTAtMjIgMTE6NTU6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aV8gZml4IGludmVydCBmdW5jdGlvbgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NTUwCgoyMDEyLTEwLTIyIDExOjU1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IGZpeCBkZWJ1ZwoKMjAxMi0xMC0yMiAxMTozOTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IGFkZCBzdXBwb3J0IGZvciAnZ2VuZXJpYycgc2FtcGxlcwoJICBBZGQgc3VwcG9ydCBmb3Igc3R1ZmZpbmcgYSBjb21wbGV0ZSBzdHJlYW0gaW50byAxIHNhbXBsZS4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY1NTAKCjIwMTItMTAtMjAgMTM6MDE6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJICB0ZXN0czogcmVtb3ZlIHN1cGVyZmx1b3VzIGdfdHlwZV9pbml0KCkgY2FsbAoJICBJdCdzIGRlcHJlY2F0ZWQgaW4gbmV3ZXIgR0xpYiBhbmQgbm90IG5lZWRlZCBoZXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NDU2CgoyMDEyLTEwLTIwIDExOjMyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGZpeCBjYXBzIGxlYWsgaW4gYWNjZXB0Y2FwcyBmdW5jdGlvbgoKMjAxMi0xMC0xOSAxOToyNDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZG9uJ3QgbGVhayBnc3RfcmlmZl9zdHJmX2F1ZHMgaW4gY2FzZSBvZiBNUy9SSUZGIGF1ZGlvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTIKCjIwMTItMTAtMTggMjI6MjA6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogdW5zaWduZWQgc3VidGl0bGUgdGVtcGxhdGUKCjIwMTItMTAtMTggMTE6MzI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGluIGFjY2VwdF9jYXBzKCkgY2hlY2sgaWYgcmluZyBidWZmZXIgaXMgTlVMTCBiZWZvcmUgZGUtcmVmZXJlbmNpbmcKCSAgQW5kIHNwcmlua2xlIHNvbWUgdGhyZWFkLXNhZmV0eSAodGFrZSBvYmplY3QgbG9jayBmb3IKCSAgYWNjZXNzaW5nIHJpbmcgYnVmZmVyLCBhbmQgcGEgbWFpbiBsb29wIGxvY2sgZm9yIHRoZQoJICBjb250ZXh0KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mzc4MgoKMjAxMi0wOS0xMyAwMDoxMDowMCArMDAwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmg6CgkgIHZpZGVvbWl4ZXIyOiBGaXggcmFjZSBjb25kaXRpb24gd2hlcmUgYSBzcmMgc2V0Y2FwcyBpcyBpZ25vcmVkCgkgIElmIGJvdGggcGFkcyByZWNlaXZlIGRhdGEgYXQgdGhlIHNhbWUgdGltZSwgdGhleSB3aWxsIGJvdGggZ2V0IHRoZWlyCgkgIHNpbmtfc2V0Y2FwcyBjYWxsZWQgd2hpY2ggd2lsbCBjYWxsIHRoZSBzcmNfc2V0Y2FwcywgYnV0IHRoZXJlIGlzCgkgIGEgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIHNlY29uZCBvbmUgbWlnaHQgbm90IGJlIGNhbGxlZC4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4NDIKCjIwMTEtMTAtMzEgMTU6NDM6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZG8gbm90IHVzZSB1bm9mZmljYWwgVl9NSlBFRyBjb2RlYyBpZAoJICBTaW5jZSBpdCdzIG5vdCBzcGVjJ2VkLCBjb25zaWRlciBpdCBhIFZmVyBjb21wYXRpYmlsaXR5CgkgIGNhc2UuIE1hbnkgYXBwbGljYXRpb25zIChlLmcuIGF2aWRlbXV4KSBkb24ndCB1bmRlcnN0YW5kCgkgIHRoZSB1bm9mZmljaWFsIFZfTUpQRUcgaWQuCgkgIEZpeGVzICM2NTk4MzcuCgkgIENvbmZsaWN0czoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jCgoyMDEyLTEwLTE3IDE3OjAzOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBleHQvdnB4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnB4L2dzdHZwOGVuYy5jOgoJICBqcGVnLCBwbmcsIHZweDogdXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoJICBBdm9pZHMgc29tZSBzdHJpbmcgY29waWVzLgoKMjAxMi0xMC0xNyAxNDoyMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkgIGpwZWdkZXBheTogc3RvcmUgcXVhbnQgdGFibGVzIGluIHppZ3phZyBvcmRlcgoKMjAxMi0xMC0xNyAxMzo1NTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRzZXNzaW9uOiBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMi0xMC0xNyAxMzozNTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGNsYXJpZnkgdGhlIG50cC1zeW5jIG9wdGlvbgoKMjAxMi0xMC0xNyAxMzoxNTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIHJ0cHNlc3Npb246IHVwZGF0ZSBjYXBzIGluIHRoZSBzb3VyY2UKCSAgSW5mb3JtIHRoZSBzb3VyY2Ugd2hlbiBjYXBzIGNoYW5nZWQuIFRoaXMgd2FzIHJlbW92ZWQgaW4gdGhlIHBvcnQgdG8gMS4wCgkgIGxlYXZpbmcgdGhlIHNvdXJjZSB1bmF3YXJlIG9mIHRoZSBjbG9jay1yYXRlIGFuZCB1bmFibGUgdG8gaW50ZXJwb2xsYXRlCgkgIHJ0cCB0aW1lc3RhbXBzIGZvciBTUiBwYWNrZXRzLgoKMjAxMi0xMC0xNyAxMjo0NjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgcnRwYmluOiBzZXQgUFRTIGFuZCBEVFMgaW4gaml0dGVyYnVmZmZlcgoKMjAxMi0xMC0xNyAxMjoyNDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGRpc2FibGUgY2hlY2sgZm9yIG50cC1zeW5jCgkgIERpc2FibGUgdGhlIGNoZWNrIGZvciB0aGUgbnRwLXN5bmMgbWV0aG9kLiBJdCBpcyBleHBlY3RlZCB0aGF0CgkgIGEgcmF0aGVyIGxhcmdlciBvZmZzZXQgbmVlZHMgdG8gYmUgYXBwbGllZCB3aXRoIHRoaXMgbWV0aG9kLgoKMjAxMi0xMC0xNyAxMjoxNzozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cGJpbjogdXNlIHJ1bm5pbmctdGltZSBmb3IgTlRQIHRpbWUKCSAgV2hlbiB1c2UtcGlwZWxpbmUtY2xvY2sgaXMgc2V0LCB1c2UgdGhlIHJ1bm5pbmctdGltZSBvZiB0aGUKCSAgcGlwZWxpbmUgdG8gY2FsY3VsYXRlIHRoZSBOVFAgdGltZXN0YW1wcy4gVGhpcyBtZXRob2Qgd291bGQgcHJldmlvdXNseQoJICBvbmx5IHdvcmsgd2hlbiB0aGUgYmFzZS10aW1lIGlzIHNldCB0byAwIGJ1dCB3aXRoIHRoaXMgY2hhbmdlIGl0IGNhbgoJICBhbHNvIHdvcmsgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBhbmQgd2UgY2FuIGFsc28gaW1wbGVtZW50IHBhdXNlL3Jlc3VtZQoJICBvZiB0aGUgc2VuZGVyIGFuZCByZWNlaXZlciBub3cuCgoyMDEyLTEwLTE3IDEwOjIwOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuaDoKCSAgdmlkZW9jcm9wOiBwb3J0IHRvIHZpZGVvZmlsdGVyCgoyMDEyLTEwLTE3IDA5OjM2OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiB1c2Ugb3V0X2luZm8gZm9yIG91dCBwcm9wZXJ0aWVzCgoyMDEyLTEwLTE2IDE0OjQwOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvbWVkaWFuLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb21lZGlhbi5oOgoJICBtZWRpYW46IHNtYWxsIGNsZWFudXBzCgoyMDEyLTEwLTE2IDEzOjU2OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC9tZWRpYW4vLmdpdGlnbm9yZToKCSogZ3N0L21lZGlhbi9NYWtlZmlsZS5hbToKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzoKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uaDoKCSogZ3N0L21lZGlhbi9tZWRpYW4udmNwcm9qOgoJICBtZWRpYW46IHJlbW92ZSBub3cgdGhhdCBpdCBpcyBpbiB2aWRlb2ZpbHRlcgoKMjAxMi0xMC0xNiAxMzo0OToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZW1vdmUgbWVkaWFuIGZyb20gYnVpbGQKCjIwMTItMTAtMTYgMTM6NDc6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb21lZGlhbi5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9tZWRpYW4uaDoKCSogZ3N0L3ZpZGVvZmlsdGVyL3BsdWdpbi5jOgoJICB2aWRlb21lZGlhbjogY29weSBtZWRpYSB0byB2aWRlb21lZGlhbgoJICBDb3B5IHRoZSBtZWRpYW4gdmlkZW8gZmlsdGVyIHRvIHZpZGVvZmlsdGVycyBhbmQgcmVuYW1lIHRvCgkgIHZpZGVvbWVkaWFuLgoKMjAxMi0xMC0xNiAxMzoxMjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L21lZGlhbi9NYWtlZmlsZS5hbToKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzoKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uaDoKCSAgbWVkaWE6IHBvcnQgdG8gMS4wCgoyMDEyLTEwLTE2IDAxOjAyOjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aWRlbXV4OiBhcHBlbmQgcGFsZXR0ZSBkYXRhIHRvIHBhbGV0dGVkIDgtYml0IFJHQiBmcmFtZXMKCSAgRml4ZXMgcGxheWJhY2sgb2YgOC1iaXQgaW5kZXhlZCBSR0IgdmlkZW9zLCB3aXRoIGZpeGVzIGluIC1iYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2MDQ2CgoyMDEyLTEwLTE1IDE1OjM2OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cHgvZ3N0dnA4ZW5jLmM6CgkgIHZwOGVuYzogQW5kIHRoaXMgdGltZSBmaXggdGhlIGRlZmF1bHQgdGFyZ2V0LWJpdHJhdGUgdmFsdWUgZm9yIHJlYWwKCjIwMTItMTAtMTUgMTU6MzA6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZweC9nc3R2cDhlbmMuYzoKCSAgdnA4ZW5jOiBGaXggZGVmYXVsdCB0YXJnZXQtYml0cmF0ZSB2YWx1ZQoKMjAxMi0xMC0xMyAwMDowMzoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBkb24ndCBhc3NlcnQgaWYgdXBzdHJlYW0gc2l6ZSBpcyBub3QgYXZhaWxhYmxlIHdoZW4gZ3Vlc3NpbmcgYml0cmF0ZXMKCSAgRml4ZXMgYWJvcnQgaW4gcHVzaCBtb2RlIHdoZXJlIHRoZSBzb3VyY2UgaXMgbm90IHNlZWthYmxlIGFuZCB0aGUKCSAgc2l6ZSBvZiB0aGUgZmlsZSBpcyBub3QgYXZhaWxhYmxlLCBhcyB3aXRoCgkgIGNhdCBmb28ubXA0IHwgZ3N0LWxhdW5jaC0xLjAgcGxheWJpbiB1cmk9ZmQ6Ly8wCgkgIExlc3Mgbm90aWNhYmxlIHdpdGggcmVsZWFzZXMsIHNpbmNlIHdlIGRpc2FibGUgYWxsCgkgIGdfYXNzZXJ0KCkgdGhlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYwMDgKCjIwMTItMTAtMTIgMTQ6Mzg6MzMgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5oOgoJICBxdGRlbXV4OiBhbGxvdyBtb3JlIHN0cmVhbXMuIEJ1bXAgdGhpcyBjb25zdGFudCB0byAzMiwgd2hpY2ggc2hvdWxkIGJlIGVub3VnaCBmb3IgcmVhbC13b3JsZCBmaWxlcy4KCjIwMTItMTAtMTIgMTQ6MzU6MjQgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBzdXBwb3J0IG1vcmUgZGlmZmVyZW50IGZvdXJjYyB2YWx1ZXMgZm9yIG90aGVyIFByb1JlcyB2YXJpYW50cy4KCjIwMTItMTAtMTEgMjI6MzY6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLUFNUi5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1IMjYzcC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1IMjY0LnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuYzoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLVZUUy1IMjYzcC1BVFMtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1WVFMtSDI2M3Auc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItYWxzYXNyYy1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWRlY29kZWJpbi1IMjYzcC1BTVIuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjYzcC1hbHNhc3JjLUFNUi5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjQtYWxzYXNyYy1QQ01BLnNoOgoJICBleGFtcGxlczogdXBkYXRlIHNvbWUgZWxlbWVudCBuYW1lcyBmb3IgMS4wIGluIFJUUCBleGFtcGxlcwoJICBnc3RydHBiaW4gLT4gcnRwYmluCgkgIGZmZGVjXyogICAtPiBhdmRlY18qCgkgIGZmZW5jXyogICAtPiBhdmVuY18qCgoyMDEyLTEwLTEwIDEyOjA1OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiByZW1vdmUgdW51c2VkIGluY2x1ZGUKCjIwMTItMTAtMTAgMTA6NTU6MjggKzAyMDAgIFJhc211cyBSb2hkZSA8cm9oZGVAZHVmZi5kaz4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgIG11bHRpdWRwc2luazogYWRkIG11bHRpY2FzdC1pZmFjZSBwcm9wZXJ0eQoJICB1ZHBzcmMgYWxyZWFkeSBoYXMgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgbXVsdGljYXN0IGludGVyZmFjZSwgd2hpY2gKCSAgaXMgdXNlZnVsIGZvciBtdWx0aS1ob21lZCBtYWNoaW5lcy4gVGhpcyBwYXRjaCBhZGRzIHRoZSBzYW1lIGNvZGUgdG8KCSAgdGhlIG11bHRpdWRwc2luay4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTg2NAoKMjAxMi0xMC0xMCAxMTozMjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIG11bHRpdWRwc2luazogZG9uJ3QgZXJyb3Igb24gc2VuZCBlcnJvcnMgYnV0IG9ubHkgd2FybgoJICBEb24ndCBlcnJvciBvbiBzZW5kIGVycm9ycyBidXQgc2ltcGx5IHBvc3QgYSB3YXJuaW5nLCBpdCdzIHBvc3NpYmxlCgkgIHRoYXQgdGhlIG5leHQgcGFja2V0IHdpbGwgYmUgZmluZS4KCjIwMTItMTAtMTAgMTA6Mjg6MjQgKzAyMDAgIFJhc211cyBSb2hkZSA8cm9oZGVAZHVmZi5kaz4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgIG11bHRpdWRwc2luazogYWRkIGZvcmNlLWlwdjQgb3B0aW9uCgkgIEFkZCBhbiBvcHRpb24gdG8gdGhlIG11bHRpdWRwc2luayB0aGF0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZvcmNlCgkgIHRoZSB1c2Ugb2YgYW4gSVB2NCBzb2NrZXQuCgkgIFRoaXMgY2FuIGUuZy4gYmUgdXNlZCB0byBoYW5kbGUgdGhlIGlzc3VlIGRlc2NyaWJlZCBpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyNDgxCgoyMDEyLTEwLTEwIDEwOjE4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSAgbXVsdGl1ZHBzaW5rOiByZW1vdmUgdW51c2VkIGZpZWxkCgoyMDEyLTEwLTEwIDEwOjEwOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwc3JjOiB1c2UgbmVnb3RpYXRlZCBhbGxvY2F0b3Igb3IgcG9vbAoJICBVc2UgdGhlIGJhc2UgY2xhc3MgdG8gYWxsb2NhdGUgYSBidWZmZXIgZm9yIHVzIGJlY2F1c2UgaXQga25vd3MgaG93CgkgIHRvIHVzZSB0aGUgbmVnb3RpYXRlZCBhbGxvY2F0b3Igb3IgYnVmZmVycG9vbC4KCjIwMTItMTAtMTAgMTA6MDk6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICBtdWx0aXVkcHNpbms6IHBvc3QgZXJyb3Igd2hlbiBzb21ldGhpbmcgZ29lcyB3cm9uZwoKMjAxMi0xMC0xMCAxMDowOToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICBzcGVjdHJ1bTogZWxlbWVudHMgcG9zdCBlbGVtZW50IG1lc3NhZ2VzCgoyMDEyLTEwLTA3IDE2OjU2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZweC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IChidWcgZml4aW5nKQoKPT09IHJlbGVhc2UgMS4wLjEgPT09CgoyMDEyLTEwLTA3IDE1OjMxOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdnB4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuMQoKMjAxMi0xMC0wNiAxNDo1NzoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmMwYjUyYyB0byA2YmI2OTUxCgoyMDEyLTEwLTA1IDE1OjEyOjI3IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSAgZGVpbnRlcmxlYXZlOiBvdXRwdXQgY2hhbm5lbHMgc2hvdWxkIGJlIG1hcmtlZCBhcyBNT05PLCBub3QgRlJPTlRfTEVGVCwgaWYgd2UncmUgbm90IHByZXNlcnZpbmcgaW5wdXQgY2hhbm5lbCBwb3NpdGlvbnMuCgoyMDEyLTEwLTA0IDE1OjEzOjIwIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkgIGludGVybGVhdmU6IHVzZSBnc3RfYXVkaW9fY2hhbm5lbF9wb3NpdGlvbnNfdG9fbWFzayBpbnN0ZWFkIG9mIGEgbG9jYWwgY29weSBvZiBoYWxmIG9mIGl0LiBIYW5kbGVzIHNvbWUgdmFsdWVzIG1vcmUgY29ycmVjdGx5LgoKMjAxMi0xMC0wNCAyMDozMjo0NSArMDIwMCAgUmFzbXVzIFJvaGRlIDxyb2hkZUBkdWZmLmRrPgoKCSogZ3N0L3J0cC9nc3RydHBnc3RkZXBheS5jOgoJICBnc3RydHBkZXBheTogZG9uJ3QgbGVhayBpbnB1dCBidWZmZXIKCSAgVGhlIHJ0cCBidWZmZXIgaXMgbmV2ZXIgdW5tYXBwZWQgaW4gdGhlIG5vcm1hbCBjb2RlIGV4aXQgcGF0aAoJICBvZiBnc3RfcnRwX2dzdF9kZXBheV9wcm9jZXNzKC4uKSByZXN1bHRpbmcgaW4gYSBtZW1vcnkgbGVhay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTUxMgoKMjAxMi0xMC0wNCAxODozNzoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHZpZGVvYmFsYW5jZTogQWRkIHN1cHBvcnQgZm9yIE5WMTIgYW5kIE5WMjEKCjIwMTItMTAtMDEgMTU6MTE6MDUgKzAyMDAgIFBhdHJpY2lhIE11c2NhbHUgPHBhdHJpY2lhQGF4aXMuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkgIHJ0cGgyNjRwYXk6IGRvIG5vdCBwdXNoIHVubWFwcGVkIGRhdGEKCSAgQWxzbyBkbyBub3QgdXNlIGEgR3N0QnVmZmVyIGFmdGVyIGl0IGhhcyBiZWVuIHB1c2hlZCBpbnRvIHRoZSBhZGFwdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MjEzCgoyMDEyLTEwLTAzIDEwOjUxOjQ1IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6CgkgIG1ldGEgaW5mbzogdGhyZWFkc2FmZSByZWdpc3RyYXRpb24gdXNpbmcgZ19vbmNlCgoyMDEyLTEwLTAxIDE1OjQ0OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHB1c2ggbW9kZTsgaGFuZGxlIHNvbWUgaW5pdGlhbCBqdW5rIGJlZm9yZSBoZHJsIGxpc3QKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTA1OQoKMjAxMi0xMC0wMSAxNDowMzoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy9nZGtwaXhidWZzaW5rLXRlc3QuYzoKCSAgdGVzdHM6IHBvcnQgZ2RrcGl4YnVmc2luayB0ZXN0CgoyMDEyLTA5LTI5IDExOjU5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOgoJICBQdXJnZSByZWZlcmVuY2VzIHRvIGxpYm9pbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMjg1CgoyMDEyLTA5LTI4IDE2OjUxOjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvYXZpLWlkcy5oOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiByZWNvZ25pemUgYWxsIHhzdWIgZnJhbWVzIGFzIGtleWZyYW1lcwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTc3CgoyMDEyLTA5LTI4IDE2OjUwOjI1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHB1c2ggbW9kZTogZmluZCB0aGUgY29ycmVjdCBjaHVuayBmb3Igc2VnbWVudCBmb2xsb3dpbmcgc2VlawoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTc3CgoyMDEyLTA5LTI3IDIyOjE3OjQ5ICswMTAwICBBcm5hdWQgVnJhYyA8cmF3b3VsQGdtYWlsLmNvbT4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5oOgoJICBxdGRlbXV4OiBmaXggcGFyc2luZyBpbiBwdXNoIG1vZGUgd2hlbiBtb292IGF0b20gaXMgYXQgdGhlIGVuZAoJICBXaGVuIHBsYXlpbmcgYW4gbXA0IGZpbGUgd2l0aCB0aGUgTU9PViBhdG9tIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUsIHBsYXliYWNrCgkgIGZhaWxzIHdpdGggdGhlIGVycm9yIG1lc3NhZ2UgIm5vICdtb292JyBhdG9tIHdpdGhpbiB0aGUgZmlyc3QgMTAgTUIiLiBUaGlzIGlzCgkgIGR1ZSB0byBhIG1pc3Rha2UgaW4gdGhlIHVwc3RyZWFtX3NpemUgdHlwaW5nLCBtYWtpbmcgdGhlIHNlZWsgdG8gdGhlIGVuZCBvZgoJICBmaWxlIG5ldmVyIGhhcHBlbmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDk3MgoKMjAxMi0wOS0yNyAxNTo1MDo0OSAtMDMwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJICBnYW1tYTogcmVtb3ZlIGR1cGxpY2F0ZSBlbnRyaWVzIGF0IGZvcm1hdCBhdCBjYXBzCgkgIEF2b2lkcyBleHRyYSBjYXBzL3N0cnVjdHVyZXMgcHJvY2Vzc2luZwoKMjAxMi0wOS0yNyAxNDoxMzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkgIHJ0cHZyYXdkZXBheTogbmVnb3RpYXRlIHBvb2wgd2l0aCBzcmNwYWQgY2FwcwoKMjAxMi0wOS0yNyAxMTowMjo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJICBkdmRlbXV4OiBUaGUgY29udmVydCBhbmQgZHVyYXRpb24gcXVlcmllcyBhcmUgbm90IHN1cHBvc2VkIHRvIGNoYW5nZSB0aGUgZm9ybWF0CgoyMDEyLTA5LTI2IDA5OjI4OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjogY2xlYXIgdmlkZW8gZnJhbWUgbW9yZSBjb3JyZWN0bHkKCSAgTWFrZSBzdXJlIG5vdCB0byB0b3VjaCBtZW1vcnkgdGhhdCBkb2Vzbid0IGJlbG9uZyB0bwoJICBvdXIgZnJhbWUsIHdlIG1pZ2h0IGJlIG9uZSBwYXJ0IG9mIGEgc2lkZS1ieS1zaWRlIDNECgkgIGZyYW1lLCBvciBpbiBhIHBpY3R1cmUtaW4tcGljdHVyZSBzY2VuYXJpby4KCjIwMTItMDktMjYgMDA6NDQ6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBtaW5vciBjbGVhbi11cAoJICBVc2UgR3N0Qnl0ZVdyaXRlciwgYmVjYXVzZSB3ZSBjYW4sIGFuZCBnX3ZhbHVlX3Rha2VfYm94ZWQuCgoyMDEyLTA5LTEwIDEwOjI3OjI4ICswNDAwICBEbWl0cml5IFNhbW9uZW5rbyA8ZG1pdHJpeS5zYW1vbmVua29AdGVsaWdlbnQucnU+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBmaXggc3BlZXggYXVkaW8gZGVjb2RpbmcgYnkgY3JlYXRpbmcgZmFrZSBzdHJlYW0gaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM2MjIKCjIwMTItMDktMjUgMjE6MjE6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB2aWRlb21peGVyOiBmaXggd2FybmluZ3Mgd2hlbiB1c2luZyB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kCgkgIGdzdF92aWRlb19mcmFtZV9tYXAoKSBpbmNyZWFzZXMgdGhlIHJlZmNvdW50LCB3aGljaCBtYWtlcwoJICB0aGUgYnVmZmVyIG5vdCB3cml0YWJsZSBhbnkgbW9yZSB0ZWNobmljYWxseSwgc28gY2FsbGluZwoJICBnc3RfYnVmZmVyX21lbXNldCgpIG9uIGl0IHdpbGwgY2F1c2UgbmFzdHkgd2FybmluZ3MuCgkgIFVuaXQgdGVzdCBkaXNhYmxlZCBiZWNhdXNlIGl0IHZlcnkgcmFyZWx5IChmb3IgbWUpCgkgIGZhaWxzLCBwb3NzaWJseSBuZWdvdGlhdGlvbi1yZWxhdGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0Mzk4CgoyMDEyLTA5LTI1IDEwOjQzOjI4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IEFkZCBzb21lIHVzZWZ1bCBkZWJ1ZyBsb2dnaW5nCgoyMDEyLTA5LTI1IDEwOjQxOjQ0ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IEZpeCB0ZWxlY2luZQoJICBUaGlzIG9ubHkgYWZmZWN0cyBiZWhhdmlvdXIgaW4gdGVsZWNpbmUgY2FzZXMgd2l0aCBwYXR0ZXJuIGxvY2tpbmcKCSAgZW5hYmxlZC4gVGhlIGRlZmF1bHQgY2FzZSBzaG91bGQgYmUgdW50b3VjaGVkLgoJICBUaGlzIHdvcmtzIHdpdGggdGhlIG91dHB1dCBmcm9tIGZpZWxkYW5hbHlzaXMgYXQgbGVhc3QsIGJ1dCB0aGUgZmllbGQKCSAgb3JkZXIgbG9va3Mgc3dhcHBlZCBmb3IgdGVsZWNpbmUgbWl4ZWQgYnVmZmVycyB3aXRoIHRoZQoJICBEYXZpZF9zbGlkZXNfU2NobGVlZiBjbGlwLgoKMjAxMi0wOS0yNSAxNDo0MzoxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnB4L2dzdHZwOGVuYy5jOgoJICB2cDhlbmM6IERpc2FibGUgR0xJQiBkZXByZWNhdGlvbiB3YXJuaW5ncwoJICBHVmFsdWVBcnJheSBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIDIuMzIgLi4uIGJ1dCB0aGVyZSdzIG5vIHVzYWJsZQoJICByZXBsYWNlbWVudCBmb3IgaXQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjI4CgoyMDEyLTA5LTI1IDE0OjE4OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXI6IEZpeCBsZWFrCgoyMDEyLTA5LTI0IDE2OjQ2OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pc29tcDQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12cHgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAoYnVnIGZpeGluZykKCj09PSByZWxlYXNlIDEuMC4wID09PQoKMjAxMi0wOS0yNCAxNDowNjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdnB4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAxLjAuMAoKMjAxMi0wOS0yNCAxMTo1Njo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6CgkgIHRlc3RzOiByZW1vdmUgZ19wcmludGVycigpIHRoYXQncyBub3QgbmVlZGVkIGFueSBsb25nZXIKCSAgbm93IHRoYXQgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIHByaW50cyBpdCBhcyB3ZWxsLgoKMjAxMi0wOS0yMyAxOTo1MDo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzoKCSAgdGVzdHM6IGRpc2FibGUgZmFpbGluZyByZXBsYXlnYWluIHRlc3RzCgoyMDEyLTA5LTIzIDE2OjMxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5oOgoJICBzbXB0ZTogc2VuZCBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTItMDktMjMgMTY6MTA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5oOgoJICBtdWx0aXBhcnRtdXg6IHNlbmQgc3RyZWFtLXN0YXJ0IGV2ZW50CgoyMDEyLTA5LTIzIDE2OjAyOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogc2VuZCBzdHJlYW0tc3RhcnQKCjIwMTItMDktMjMgMTU6NTc6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBzZW5kIHN0cmVhbS1zdGFydCBldmVudAoKMjAxMi0wOS0yMyAxNTo0ODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5oOgoJICBpbnRlcmxlYXZlOiBhZGQgYSBidW5jaCBvZiBGSVhNRXMKCSAgTmVlZHMgc29tZSBtb3JlIHdvcmssIHNvIHN0cmVhbS1zdGFydCwgY2FwcyBhbmQgdGFncyBhcmUKCSAgc2VudCBpbiB0aGUgcmlnaHQgb3JkZXIuCgoyMDEyLTA5LTIzIDE1OjE4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBzZW5kIHN0cmVhbS1zdGFydCBldmVudAoKMjAxMi0wOS0yMyAxNToxNjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogc2VuZCBzdHJlYW0tc3RhcnQgZXZlbnQKCjIwMTItMDktMjIgMTY6MDg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRmOTYyZjcgdG8gNmMwYjUyYwoKMjAxMi0wOS0yMSAyMTo1NDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGFuc3dlciBVUkkgcXVlcnkKCSAgV2l0aG91dCB0aGlzLCBzb21ldGhpbmcgYWxzbyBhbnN3ZXJlZCB0aGUgcXVlcnkKCSAgd2l0aCBUUlVFIGJ1dCB3aXRob3V0IHNldHRpbmcgYSB1cmksIG5vdCBzdXJlCgkgIHdoYXQgdGhhdCB3YXMuLgoKMjAxMi0wOS0yMCAxNzoyODo0NyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBNYWtlIHN1cmUgdGhlIGNhcHMgZG9uJ3QgaGF2ZSBkdXBsaWNhdGVkIHNwcy9wcHMKCjIwMTItMDktMjAgMTk6NTg6MTIgKzAyMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBNdXRlIHN0cmVhbSBwb3N0LWNvbm5lY3Rpb24gaWYgcmVxdWlyZWQKCSAgQSBidWcgaW4gUHVsc2VBdWRpbyBjYXVzZXMgUEFfU1RSRUFNX1NUQVJUX01VVEVEIHRvIGJlIHJlamVjdGVkIG9uCgkgIHJlY29yZCBzdHJlYW1zLiBVbnRpbCB0aGlzIGlzIGZpeGVkIHVwc3RyZWFtLCB3ZSBtdXRlIHRoZSBzdHJlYW0KCSAgbWFudWFsbHkgYXQgc3RhcnR1cC4gQmFzZWQgb24gYSBwYXRjaCBieSBBbGJhbiBCcm93YWV5cwoJICA8cHJhaGFsQHlhaG9vLmNvbT4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ0NjkKCjIwMTItMDktMjAgMTg6MDA6NTkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiAyNCBiaXQgYXVkaW8gaGVyZSBpcyBTMjRMRSwgbm90IFMyNF8zTEUuCgoyMDEyLTA5LTIwIDEwOjA3OjI0ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IGhhbmRsZSBsYXRlbmN5IHF1ZXJ5IGJlZm9yZSBzZXR0aW5nIHVwIHRoZSBidWZmZXJwb29sCgkgIEZpeGVzIGNyYXNoIGlmIG5vIGJ1ZmZlcnBvb2wgaXMgc2V0IHVwIHlldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDQzMAoKMjAxMi0wOS0xOSAwOToxNzowMyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkgIG9zeGF1ZGlvc2luazogU3BlY2lmeSBlbmRpYW5uZXNzIGluIElFQyA2MTkzNyBwYXlsb2FkaW5nCgkgIENvcnJlc3BvbmRzIHRvIGFuIEFQSSBjaGFuZ2UgaW4gZ3N0LXBsdWdpbnMtYmFzZS4gVGhpcyBuZWVkcyB0byBiZSBmaXhlZAoJICB0byBxdWVyeSB0aGUgZXhwZWN0ZWQgYnl0ZSBvcmRlciB1c2luZyBhcHByb3ByaWF0ZSBBUEkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMjEKCjIwMTItMDktMTkgMDk6MTU6NTMgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IFNwZWNpZnkgZW5kaWFubmVzcyBpbiBJRUMgNjE5MzcgcGF5bG9hZGluZwoJICBEaXJlY3RTb3VuZCBleHBlY3RzIG5hdGl2ZSBlbmRpYW4gYnl0ZSBvcmRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAyMQoKMjAxMi0wOS0xOSAwOToxMzoxMSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogU3BlY2lmeSBlbmRpYW5uZXNzIGluIElFQyA2MTkzNyBwYXlsb2FkaW5nCgkgIENvcnJlc3BvbmRzIHRvIGFuIEFQSSBjaGFuZ2UgaW4gZ3N0LXBsdWdpbnMtYmFzZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAyMQoKMjAxMi0wOS0xOSAwMDozOTowMSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBSZW1vdmUgaW5jb3JyZWN0IGxvZ2ljCgkgIEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgdGhlc2UgbGluZXMgd2VyZSBhZGRlZCwgdGhleSBkb24ndCBtYWtlIHNlbnNlIHRvCgkgIG1lIG5vdyBhbmQgYm90aCBEYXZpZCBhbmQgSSBhZ3JlZSB0aGF0IHJlbW92aW5nIHRoZW0gbW92ZXMgY2xvc2VyIHRvCgkgIHJlbGF0ZWQgbG9naWMgYmVpbmcgY29ycmVjdCwgdGhlcmVmb3JlLCB0aGV5J3JlIGJlaW5nIHJlbW92ZWQuCgkgIEkndmUgdGVzdGVkIGEgZmV3IHByb2dyZXNzaXZlLCBpbnRlcmxhY2VkIGFuZCB0ZWxlY2luZSBjbGlwcyBhbmQgdGhleQoJICBhbGwgYmVoYXZlIHByb3Blcmx5IHRpbWVzdGFtcC13aXNlIGFuZCB2aXN1YWxseSBhZnRlciB0aGVzZSBjaGFuZ2VzLgoKMjAxMi0wOS0xOSAwMDoxNzo0OSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggZmllbGQgZHVyYXRpb24KCSAgVGhlIGZyYW1lIHJhdGUgZnJhY3Rpb24gaXMgY29ycmVjdGx5IGFkanVzdGVkIGluIHRoZSBjYXNlcyBwcmVjZWRpbmcgdGhlCgkgIGZpZWxkIGR1cmF0aW9uIGNhbGN1bGF0aW9uIGFuZCBzbyB0aGUgZmFjdG9yIG9mIDIgaXMgaW5jb3JyZWN0LgoKMjAxMi0wOS0xOCAxMDozNDowMyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHJkaW8uY29tPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBGaXggVS9WIHN0cmlkZXMgZm9yIGEgbnVtYmVyIG9mIGNhc2VzLgoKMjAxMi0wOS0xOCAxMjoxMzoyMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJICB2aWRlb21peGVyOiBpbml0IHZpZGVvaW5mbwoJICAuLi4gdG8gcHJldmVudCByYW5kb20gYm9ndXMgY2FwcyBmaWVsZHMuCgoyMDEyLTA5LTE4IDEyOjEyOjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXI6IGNoYWluIHVwIHRvIGNvbGxlY3RwYWRzIHF1ZXJ5IGZ1bmN0aW9uCgoyMDEyLTA5LTE3IDEzOjE3OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXI6IERvbid0IGxldCBHc3RDb2xsZWN0UGFkIHNoYWRvdyBjdXN0b20gc2luayBwYWQgcXVlcnkgZnVuYwoJICBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgdGhlIGN1c3RvbSBwYWQgcXVlcnkgZnVuY3Rpb24gaXMgbm90IGNhbGxlZC4KCSAgVGhpcyBwYXRjaCwgc2V0IHRoYXQgcXVlcnkgZnVuY3Rpb24gb24gdGhlIEdzdENvbGxlY3RQYWRzIHRvIGF2b2lkIHRoaXMKCSAgc2hhZG93aW5nLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDIzNwoKMjAxMi0wOS0xNyAxODoyMzoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9maWxlcy9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRpc3QgaW1hZ2UuanBnIGZvciBqcGVnIHRlc3QKCj09PSByZWxlYXNlIDAuMTEuOTkgPT09CgoyMDEyLTA5LTE3IDE3OjU3OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45OQoKMjAxMi0wOS0xNyAxNjo1MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy50eXBlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pc29tcDQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12cHgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkgIGRvY3M6IHVwZGF0ZQoKMjAxMi0wOS0xNyAxMzozMDoxNSArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBGaXggc3BlYyBmaWxlIGZvciB2cDggbW92ZQoKMjAxMi0wOS0xNyAxMzoyMzozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYW5ub2RleDogQWRkIHRvIHRoZSBDUlVGVF9ESVJTCgoyMDEyLTA5LTE3IDEyOjE0OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkgIGRvY3M6IHVwZGF0ZQoKMjAxMi0wOS0xNyAwOTo0ODo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnB4L2dzdHZwOGVuYy5jOgoJICB2cDhlbmM6IENvcnJlY3RseSBmaW5pc2ggZnJhbWVzCgkgIFByZXZpb3VzbHkgd2Ugd291bGQgYWx3YXlzIGdldCB0aGUgc2FtZSBmcmFtZSBpZiBtdWx0aXBsZSBmcmFtZXMgYXJlIHBlbmRpbmcsCgkgIGxlYWtpbmcgbWVtb3J5IG9mIHRoZSBwcmV2aW91cyBmcmFtZXMgYW5kIGJyZWFraW5nIHRpbWVzdGFtcHMuCgoyMDEyLTA5LTE3IDA5OjQwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cHgvZ3N0dnA4ZW5jLmM6CgkgIHZwOGVuYzogQWxsb3cgY2hhbmdpbmcgYml0cmF0ZSBhbmQgb3RoZXIgcGFyYW1ldGVycyBkdXJpbmcgcGxheWJhY2sKCSAgRml4ZXMgYnVnICM2NDgyNzYuCgoyMDEyLTA5LTE3IDA5OjE2OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cHgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cHgvZ3N0dnA4ZW5jLmg6CgkgIHZwOGVuYzogU3RvcmUgY29uZmlndXJhdGlvbiBpbiB0aGUgdnB4X2NvZGVjX2VuY19jZmdfdCBzdHJ1Y3QgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBhbGwgdmFyaWFibGVzCgkgIEFsc28gcHJvdGVjdCBlbmNvZGVyIHdpdGggYSBtdXRleC4KCjIwMTItMDktMTYgMTY6MDM6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZweC9nc3R2cDhlbmMuYzoKCSAgdnA4ZW5jOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IG5ldyBwcm9wZXJ0eSBuYW1lcwoJICAuLi5hbmQgYWxzbyBsaW5rIHRvIHRoZSBXZWJNIGVuY29kZXIgcGFyYW1ldGVycyB3ZWJzaXRlLgoKMjAxMi0wOS0xNiAxNTo1Nzo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnB4L2dzdHZwOGVuYy5jOgoJICB2cDhlbmM6IE1ha2Ugc29tZSBwcm9wZXJ0eSBuYW1lcyBtb3JlIHJlYWRhYmxlCgoyMDEyLTA5LTE2IDE1OjQ3OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIHZwODogQWRkIHRlc3RzIHRvIC5naXRpZ25vcmUKCjIwMTItMDktMTYgMTU6NDY6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdnA4ZW5jLmM6CgkgIHZwOGVuYzogVXBkYXRlIHBhdGNoIHRvIHRoZSBuZXcgcHJvcGVydHkgbmFtZXMKCjIwMTItMDktMTYgMTU6NDY6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHZweDogSW50ZWdyYXRlIHRlc3QgaW50byB0aGUgYnVpbGQgc3lzdGVtIHRvbwoKMjAxMi0wMi0wNyAxNzowMDoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZwOGRlYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDYvNl0gdGVzdHM6IGZpeCBtb3JlIHVuaXQgdGVzdHMKCjIwMTEtMTEtMjQgMjE6NDI6MzkgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92cDhkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1LzZdIHRlc3RzOiB1cGRhdGUgZm9yIGdzdGNoZWNrIEFQSSBjaGFuZ2UKCjIwMTAtMDctMTAgMTU6NDY6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA0LzZdIHZwOGRlYzogQWRkIHNpbXBsZSB1bml0IHRlc3QgZm9yIHZwOGRlYwoKMjAxMC0wNy0xMCAxNTo0Njo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDMvNl0gdnA4ZW5jOiBJbXByb3ZlIHVuaXQgdGVzdCBhIGJpdAoKMjAxMC0wNy0xMCAxNTozMjoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDIvNl0gdnA4ZW5jOiBBbHNvIGNoZWNrIHRoZSBvdXRwdXQgY2FwcyBpbiB0aGUgdW5pdCB0ZXN0CgoyMDEwLTA3LTEwIDE1OjI5OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMS82XSB2cDhlbmM6IEFkZCBzaW1wbGUgdW5pdCB0ZXN0CgoyMDEyLTA5LTE2IDE1OjQzOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pc29tcDQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12cHgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGV4dC9NYWtlZmlsZS5hbToKCSAgdnB4OiBJbnRlZ3JhdGUgaW50byB0aGUgYnVpbGQgc3lzdGVtCgoyMDEyLTA5LTE2IDE1OjMzOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvR3N0VlA4RW5jLnByczoKCSogZXh0L3ZwOC9NYWtlZmlsZS5hbToKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuaDoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuaDoKCSogZXh0L3ZwOC9nc3R2cDh1dGlscy5jOgoJKiBleHQvdnA4L2dzdHZwOHV0aWxzLmg6CgkqIGV4dC92cDgvcGx1Z2luLmM6CgkqIGV4dC92cHgvR3N0VlA4RW5jLnByczoKCSogZXh0L3ZweC9NYWtlZmlsZS5hbToKCSogZXh0L3ZweC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZweC9nc3R2cDhkZWMuaDoKCSogZXh0L3ZweC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZweC9nc3R2cDhlbmMuaDoKCSogZXh0L3ZweC9nc3R2cDh1dGlscy5jOgoJKiBleHQvdnB4L2dzdHZwOHV0aWxzLmg6CgkqIGV4dC92cHgvcGx1Z2luLmM6CgkgIHZweDogUmVuYW1lIHZwOCBwbHVnaW4gdG8gdnB4CgkgIFRoaXMgaXMgdXNpbmcgbGlidnB4LCB3aGljaCBjYW4gc3VwcG9ydCBtb3JlIGNvZGVjcyB0aGFuIGp1c3QgVlA4CgkgIGFuZCB3aWxsIGxpa2VseSBzdXBwb3J0IGZ1dHVyZSBjb2RlY3MuCgoyMDEyLTA5LTE2IDE1OjMyOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIHZwODogQXBwbHkgcmVtYWluaW5nIGNoYW5nZXMgdGhhdCBnb3QgbG9zdCB3aGlsZSBtb3ZpbmcgdGhlIHBsdWdpbiB2aWEgZ2l0IGFtIHRoYW5rcyB0byBtZXJnZXMKCjIwMTItMDktMTYgMTU6MjU6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEzNC8xMzRdIHZwOGRlYzogVW5yZWYgaW5wdXQvb3V0cHV0IHN0YXRlcyB3aGVuIHN0b3BwaW5nIHRoZSBkZWNvZGVyCgoyMDEyLTA5LTE2IDE1OjE4OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvR3N0VlA4RW5jLnByczoKCSAgW01PVkVEIEZST00gQkFEIDEzMy8xMzRdIHZwOGVuYzogVXBkYXRlIHJlYWx0aW1lIHByb2ZpbGUgdG8gdGhlIG5ldyBwcm9wZXJ0aWVzCgoyMDEyLTA5LTE2IDEwOjU2OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMzIvMTM0XSB2cDg6IFJlcXVpcmUgbGF0ZXN0IGxpYnZweCByZWxlYXNlICgxLjEuMCBmcm9tIE1heSAyMDEyKQoJICBGaXhlcyBidWcgIzY4NDExNiBhbmQgc2ltcGxpZmllcyBjb25maWd1cmUgY2hlY2tzLgoKMjAxMi0wOS0xNSAyMDoyMzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTMxLzEzNF0gdnA4ZW5jOiBVc2UgYSBzdHJpbmcgZmllbGQgZm9yIHRoZSBwcm9maWxlIGluIHRoZSBjYXBzCgkgIEp1c3QgZm9yIGNvbnNpc3RlbmN5IHdpdGggYWxsIHRoZSBvdGhlciBjb2RlY3MuCgoyMDEyLTA5LTE1IDAwOjA0OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMzAvMTM0XSB2cDhlbmM6IENvcnJlY3RseSBzZXQgcHJvZmlsZSBpbiBjYXBzCgoyMDEyLTA5LTE0IDIzOjQxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMjkvMTM0XSB2cDg6IFVwZGF0ZSBjb3B5cmlnaHQgYW5kIGF1dGhvcnMKCjIwMTItMDktMDggMTU6Mzg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuaDoKCSAgW01PVkVEIEZST00gQkFEIDEyOC8xMzRdIHZwOGVuYzogUmV3b3JrIGVuY29kZXIgcHJvcGVydGllcyB0byBiZSBtb3JlIGluIGxpbmUgd2l0aCB0aGUgbGlidnB4IHRvb2xzIGFuZCBBUEkKCSAgQWxzbyBhZGQgYWxsIGF2YWlsYWJsZSBwcm9wZXJ0aWVzLgoKMjAxMi0wOS0xNCAxNzowODo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTI3LzEzNF0gcmVwbGFjZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgd2l0aCBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YWRhdGEKCjIwMTItMDctMTkgMDk6MDU6MjggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEyNi8xMzRdIHZwOGRlYzogQ2FsbCBnc3RfdmlkZW9fZGVjb2Rlcl9uZWdvdGlhdGUoKQoKMjAxMi0wOC0xNCAxMToxNzoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnA4L2dzdHZwOGRlYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMTI1LzEzNF0gdnA4ZGVjOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgZGVjb2RpbmcgdGhyZWFkcwoKMjAxMi0wOC0xNCAxMTowOTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTI0LzEzNF0gdnA4ZGVjOiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1GUUUgcG9zdHByb2Nlc3NpbmcgZmxhZwoJICBXaGljaCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgaWYgcG9zdHByb2Nlc3NpbmcgaXMgZW5hYmxlZC4KCjIwMTItMDgtMDkgMTM6Mzc6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9NYWtlZmlsZS5hbToKCSAgW01PVkVEIEZST00gQkFEIDEyMy8xMzRdIHZwODogVXNlIHBrZy1jb25maWcgZmlsZSBmb3IgZ2V0dGluZyB0aGUgTElCUyBhbmQgQ0ZMQUdTCgoyMDEyLTA4LTA4IDE3OjA2OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMjIvMTM0XSB2cDhlbmM6IFVwZGF0ZSB0aGUgcGVyLWNvbXBvbmVudCBzdHJpZGVzIGZvciBldmVyeSBmcmFtZSB0b28KCSAgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvZiBHc3RWaWRlb0FsaWdubWVudAoKMjAxMi0wNy0yNiAxOTozMToxNCArMDIwMCAgT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMjEvMTM0XSB2cDhlbmM6IGluaXRpYXRlIGVuY29kZXIgdG8gZml4IGEgY3Jhc2guCgkgIFdpdGhvdXQgdGhpcyBwYXRjaCB2cDhlbmMgc2VuZCBoZWFkZXIgYmVmb3JlIGFuZCBhZnRlciBmaXJzdAoJICBrZXkgZnJhbWUuIE9uIHNlY29uZCBrZXlmcmFtZSB2cDhkZWMgd2lsbCBjcmFzaCB3aXRob3V0IGdldHRpbmcKCSAgZGVjb2RlZCBmcmFtZS4gV2l0aCB0aGlzIHBpcGUgaXQgaXMgZWFzeSB0byByZXByb2R1Y2UgdGhpcyBpc3N1ZToKCSAgZ3N0LWxhdW5jaC0xLjAgdmlkZW90ZXN0c3JjICEgdnA4ZW5jICEgdnA4ZGVjICEgZmFrZXNpbmsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDY2NwoKMjAxMi0wNy0yOCAwMDozMjo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTIwLzEzNF0gdGFnOiBVcGRhdGUgZm9yIHRhZ2xpc3QvdGFnIGV2ZW50IEFQSSBjaGFuZ2VzCgoyMDEyLTA3LTIzIDEwOjM1OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMTkvMTM0XSBleHQ6IFVwZGF0ZSBmb3IgdmlkZW8gYmFzZSBjbGFzc2VzIEFQSSBjaGFuZ2VzCgoyMDEyLTA3LTIxIDE5OjU5OjIxICswMjAwICBPbGVrc2lqIFJlbXBlbCA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDExOC8xMzRdIHZwOGVuYzogZml4IG1lbW9yeSBsZWFrCgkgIHVucmVmIGZyYW1lLiBpIGhvcGUgaXQgaXMgY29ycmVjdCBwbGFjZSB0byBkbyBpdC4KCSAgU2lnbmVkLW9mZi1ieTogT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTItMDctMDYgMTE6NTA6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTE3LzEzNF0gdXBkYXRlIGZvciBxdWVyeSBhcGkgY2hhbmdlcwoKMjAxMi0wNy0wNiAxMToyNjo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMTYvMTM0XSB1cGRhdGUgZm9yIHF1ZXJ5IGFwaSBjaGFuZ2VzCgoyMDEyLTA3LTA2IDExOjAzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDExNS8xMzRdIHVwZGF0ZSBmb3IgYWxsb2NhdGlvbiBxdWVyeSBjaGFuZ2VzCgoyMDEyLTA2LTA3IDEyOjMzOjMxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMTQvMTM0XSB2cDg6IGZpeCBjb2RlYyBzdGF0ZSBsZWFrcwoJICBJIG9ubHkgdGVzdGVkIHRoYXQgdnA4ZW5jICEgdnA4ZGVjIGRvZXMgbm90IGNyYXNoLCBhcyB2YWxncmluZCBkb2VzIG5vdCBncm9rCgkgIGF0IGxlYXN0IG9uZSBvZiB0aGUgaW5zdHJ1Y3Rpb25zIHVzZWQgYnkgdnA4ZW5jLCBwcmV2ZW50aW5nIG1lIGZyb20gY2hlY2tpbmcKCSAgYSBsZWFrLCBhbmQgdGhlIGxhY2sgb2Ygb25lIGFmdGVyIHRoZSBwYXRjaC4KCjIwMTItMDYtMDYgMTM6MDI6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTEzLzEzNF0gdXBkYXRlIGZvciB0YWcgZXZlbnQgY2hhbmdlCgoyMDEyLTA1LTI4IDE2OjA1OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMTIvMTM0XSB2cDg6IFBvcnQgdG8gMC4xMSBhZ2FpbgoKMjAxMi0wNS0xOCAxMjo0Njo1NSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTExLzEzNF0gdnA4ZW5jOiBmaXggdGFyZ2V0IGJpdHJhdGUgY29uZmlnIHdpdGggbGlidnB4IDEuMS4wCgkgIGxpYnZweCAxLjEuMCBkaXNhbGxvd3MgYSBiaXRyYXRlIG9mIDAsIHdoaWNoIHdhcyB1c2VkIGJ5CgkgIHZwOGVuYyBhcyBhIGRlZmF1bHQgdmFsdWUuCgkgIEluc3RlYWQsIHdlIHVzZSB0aGUgZGVmYXVsdCBsaWJ2cHggYml0cmF0ZSwgc2NhbGVkIHRvIG91cgoJICB2aWRlbyBzaXplLCBpZiBubyBiaXRyYXRlIHdhcyBzcGVjaWZpZWQuCgkgIFRoaXMgZml4ZXMgZW5jb2RpbmcgVlA4IHZpZGVvIHdpdGggbGlidnB4IDEuMS4wLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MjQ1CgoyMDEyLTA1LTE2IDE0OjA0OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMTAvMTM0XSB2cDhlbmM6IFVwZGF0ZSBmb3IgR3N0VmlkZW9Db2RlY0ZyYW1lIEFQSSBjaGFuZ2VzCgoyMDEyLTA0LTI3IDE4OjIyOjQyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnA4L2dzdHZwOGRlYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMTA5LzEzNF0gdnA4ZGVjOiBJbXByb3ZlIG91dHB1dF9zdGF0ZSBoYW5kbGluZwoJICBBdm9pZCBnZXR0aW5nIG91dHB1dF9zdGF0ZSBmb3IgZXZlcnkgYnVmZmVyIGFzIHRoYXQgcmVxdWlyZXMKCSAgZ2V0dGluZyB0aGUgb2JqZWN0bG9jayBhbmQgZG9pbmcgcmVmZXJlbmNlIGNvdW50aW5nLiBTdG9yZSBpdCBsb2NhbGx5CgkgIHdoZW4gaXQgaXMgY3JlYXRlZCBhbmQgdXNlIGl0LgoKMjAxMi0wNC0yNyAwOTowNTo1NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEwOC8xMzRdIHZwOGRlYzogVXNlIG91dHB1dHN0YXRlIHdoZW4gY29weWluZyBvdXRwdXQgYnVmZmVyIGRhdGEKCSAgVXNpbmcgdGhlIGlucHV0IHN0YXRlIHdhcyBjYXVzaW5nIGEgY3Jhc2ggYmVjYXVzZSB0aGUgc3RyaWRlcy9vZmZzZXRzCgkgIHdvdWxkIGJlIHdyb25nLiBGaXggaXQgYnkgdXNpbmcgdGhlIG91dHB1dCBhcyB3ZSBhcmUgZGVhbGluZyB3aXRoCgkgIHRoZSBkZWNvZGVkIGZyYW1lLgoKMjAxMi0wNC0yNCAxMTowODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTA3LzEzNF0gdnA4OiBQb3J0IHRvIC1iYXNlIHZpZGVvIGJhc2UgY2xhc3NlcwoJICBDb25mbGljdHM6CgkgIGV4dC92cDgvTWFrZWZpbGUuYW0KCSAgZXh0L3ZwOC9nc3R2cDhkZWMuYwoJICBleHQvdnA4L2dzdHZwOGVuYy5jCgkgIEJhY2sgdG8gMC4xMCBzdGF0ZSBmb3Igbm93LCBuZWVkIHRvIGJlIHBvcnRlZCBhZ2Fpbi4KCjIwMTItMDUtMTggMTI6NDY6NTUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEwNi8xMzRdIHZwOGVuYzogZml4IHRhcmdldCBiaXRyYXRlIGNvbmZpZyB3aXRoIGxpYnZweCAxLjEuMAoJICBsaWJ2cHggMS4xLjAgZGlzYWxsb3dzIGEgYml0cmF0ZSBvZiAwLCB3aGljaCB3YXMgdXNlZCBieQoJICB2cDhlbmMgYXMgYSBkZWZhdWx0IHZhbHVlLgoJICBJbnN0ZWFkLCB3ZSB1c2UgdGhlIGRlZmF1bHQgbGlidnB4IGJpdHJhdGUsIHNjYWxlZCB0byBvdXIKCSAgdmlkZW8gc2l6ZSwgaWYgbm8gYml0cmF0ZSB3YXMgc3BlY2lmaWVkLgoJICBUaGlzIGZpeGVzIGVuY29kaW5nIFZQOCB2aWRlbyB3aXRoIGxpYnZweCAxLjEuMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjI0NQoKMjAxMi0wNC0wNSAxODowMjo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L3BsdWdpbi5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTA1LzEzNF0gZ3N0OiBVcGRhdGUgZm9yIEdTVF9QTFVHSU5fREVGSU5FKCkgQVBJIGNoYW5nZXMKCjIwMTItMDQtMDQgMTQ6NDE6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9NYWtlZmlsZS5hbToKCSAgW01PVkVEIEZST00gQkFEIDEwNC8xMzRdIGdzdDogVXBkYXRlIHZlcnNpb25pbmcKCjIwMTItMDMtMDYgMTU6MjE6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEwMy8xMzRdIHZwOGVuYzogRml4ICdhcmd1bWVudCB0byAnc2l6ZW9mJyBpbiAnbWVtc2V0JyBjYWxsIGlzIHRoZSBzYW1lIGV4cHJlc3Npb24gYXMgdGhlIGRlc3RpbmF0aW9uJyBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAxLTMwIDE3OjE3OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEwMi8xMzRdIHVwZGF0ZSBmb3IgSEVBREVSIGZsYWcKCjIwMTItMDEtMjUgMTg6NDk6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDEwMS8xMzRdIHBvcnQgc29tZSBtb3JlIHRvIG5ldyBtZW1vcnkgQVBJCgkgIEZpeGVzICM2Njg2NzcuCgoyMDEyLTAxLTI0IDExOjIyOjQ2ICswMTAwICBPbGVrc2lqIFJlbXBlbCAoQWxleGV5IEZpc2hlcikgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMDAvMTM0XSB2cDhlbmM6IHRyYWNlIG91dGdvaW5nIHRpbWVzdGFtcHMKCSAgYWRkIGluZm8gbGV2ZWwgcHJpbnRzIGZvciBvdXRnb2luZyB0aW1lc3RhbXBzLgoJICBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCAoQWxleGV5IEZpc2hlcikgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTItMDEtMDQgMTE6MDU6NDggKzAxMDAgIE9sZWtzaWogUmVtcGVsIChBbGV4ZXkgRmlzaGVyKSA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA5OS8xMzRdIHZwOGRlYzogdXNlIGlzX2FsdF9kYXRhIG9wdGlvbiB0byBwcmV2ZW50IHRpbWVzdGFtcCBjb2xsaXNpb25zCgkgIGFsdHJlZi9pbnZpc2libGUgZnJhbWVzIHVzdWFsbHkgc3RvcmVkIGluIGNvbnRhaW5lciB3aXRoIHNhbWUgdGltZXN0YW1wIGFzCgkgIGRlcGVuZGV0IGZyYW1lLiBUaGlzIG1ha2UgYmFzZXZpZGVvZGVjb2RlciB0byB1cGRhdGUgdGltZXN0YW1wIGZvciBkZXBlbmRldAoJICBmcmFtZSBhbmQgY291c2UgVFMgY29saXNpb24gb24gbmV4dCBmcmFtZToKCSAgXi0gaGVyZSBpcyBhbHRyZWYKCSAgdGltZSAgICAgOiAxIDIgMyA0IDUgNiA3IDggOQoJICB3ZWJtIHRzICA6IDEgICAzIDUgNSAgIDcgICA5CgkgIHZwOGRlYyB0czogMSAgIDMgICA3ICAgNyAgIDkKCSAgRml4IGJ1ZzogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTI0NQoJICBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCAoQWxleGV5IEZpc2hlcikgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTItMDEtMDIgMDg6Mjg6MTMgKzAxMDAgIE9sZWtzaWogUmVtcGVsIChBbGV4ZXkgRmlzaGVyKSA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9Hc3RWUDhFbmMucHJzOgoJKiBleHQvdnA4L01ha2VmaWxlLmFtOgoJICBbTU9WRUQgRlJPTSBCQUQgMDk4LzEzNF0gdnA4OiBhZGQgaW5pdGlhbCBwcmVzZXQgZmlsZQoJICBUaGlzIGlzIGluaXRpYWwgcHJlc2V0IGZpbGUsIGN1cnJlbnRseSB3aXRoIG9ubHkgb25lIHByb2ZpbGUKCSAgZm9yIHJlYWx0aW1lIGVuY29kaW5nLgoJICBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCAoQWxleGV5IEZpc2hlcikgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTEtMTEtMjggMTM6MDg6MjcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA5Ny8xMzRdIHZhcmlvdXM6IGZpeCBwYWQgdGVtcGxhdGUgcmVmIGxlYWtzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI2NjQKCjIwMTEtMTEtMjUgMTE6MzY6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA5Ni8xMzRdIHZwOGRlYzogdXNlIG5ldyBiYXNldmlkZW9kZWNvZGVyIEFQSSB0byBkcm9wIGZyYW1lcyBhbmQgZ2V0IFFvUyBtZXNzYWdlcyBwb3N0ZWQKCjIwMTEtMTEtMTAgMTU6MTM6MzQgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGV4dC92cDgvTWFrZWZpbGUuYW06CgkgIFtNT1ZFRCBGUk9NIEJBRCAwOTUvMTM0XSBtaW1pYywgb3BlbmN2LCB2cDgsIGFjbW1wM2RlYywgbGluc3lzOiBEb24ndCBidWlsZCBzdGF0aWMgcGx1Z2lucwoJICBQYXNzIC0tdGFnPWRpc2FibGUtc3RhdGljIHRvIGxpYnRvb2wgZXZlcnl3aGVyZSB3aGVyZSBpdCdzIGJlZW4gZm9yZ290dGVuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjM3NjgKCjIwMTEtMTEtMDMgMTQ6MDE6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA5NC8xMzRdIHZwODogUG9ydCB0byAwLjExCgoyMDExLTA4LTIxIDIwOjE1OjI1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwOTMvMTM0XSB2cDhlbmM6IGZpeCBkcm9wLWZyYW1lIHByb3BlcnR5CgkgIEZpeGVzICM2NTY5MjkuCgoyMDExLTA4LTE5IDE5OjE3OjE1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwOTIvMTM0XSB2cDg6IHByb2JlIGZvciB0aGUgbmV3IHR1bmluZyBBUEkgdG8ga2VlcCBidWlsZGluZyB3aXRoIG9sZGVyIGxpYnZweAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2OTI4CgoyMDExLTA4LTE4IDEwOjM5OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwOTEvMTM0XSB2cDhlbmM6IFJlbW92ZSB1bnVzZWQgYW5kIHVzZWxlc3MgdmFyaWFibGUgaW4gdGFncyBoYW5kbGluZwoKMjAxMS0wOC0xMiAxMjowODowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDkwLzEzNF0gdnA4ZW5jOiBVcGRhdGUgZm9yIGJhc2V2aWRlb2VuY29kZXIgOjpnZXRfY2FwcygpIHJlbW92YWwKCjIwMTEtMDctMDkgMTg6NTM6MjQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuaDoKCSAgW01PVkVEIEZST00gQkFEIDA4OS8xMzRdIHZwOGVuYzogQWRkIG1vcmUgcHJvcGVydGllcwoKMjAxMS0wNi0xOSAxNjowNjo0NiArMDIwMCAgQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuaDoKCSAgW01PVkVEIEZST00gQkFEIDA4OC8xMzRdIHZwOGVuYzogYWRkIG1pbi9tYXhzZWN0aW9uLXBjdCBvcHRpb24KCSAgVGhpcyBvcHRpb25zIHNob3VsZCBiZSBnb29kIHRvIHJlZGV1Y2UgZGVjb2RlIENQVSBsb2FkLgoJICBmb3IgbG93ZW5kIGhhcmR3YXJlOgoJICBtaW5zZWN0aW9uLXBjdD0xNSBtYXhzZWN0aW9uLXBjdD00MDAKCSAgZm9yIGhpZW5kIGh3OgoJICBtaW5zZWN0aW9uLXBjdD01IG1heHNlY3Rpb24tcGN0PTgwMAoJICBzZWUgZXhhbXBsZToKCSAgaHR0cDovL3d3dy53ZWJtcHJvamVjdC5vcmcvdG9vbHMvZW5jb2Rlci1wYXJhbWV0ZXJzLyMyLXBhc3NfdmJyX2VuY29kaW5nX2Zvcl9zbW9vdGhfcGxheWJhY2tfb25fbG93LWVuZF9oYXJkd2FyZQoJICBTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgRmlzaGVyIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAxMS0wNi0xOSAxMTowNTozNiArMDIwMCAgQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuaDoKCSAgW01PVkVEIEZST00gQkFEIDA4Ny8xMzRdIHZwOGVuYzogYWRkIGxhZy1pbi1mcmFtZXMgb3B0aW9uLgoJICBUaGlzIG9wdGlvbiBzZXQgbWF4aW11bSBvZiBmcmFtZXMgY29kZWMgc2hvdWxkIHJlbWVtYmVyLAoJICB0byBtYWtlIGJldHRlciBwcmVkaWt0aW9uIGZvciBhbHQtcmVmIGZyYW1lcy4KCSAgU2VlIGV4YW1wbGU6CgkgIGh0dHA6Ly93d3cud2VibXByb2plY3Qub3JnL3Rvb2xzL2VuY29kZXItcGFyYW1ldGVycy8jMi1wYXNzX2Jlc3RfcXVhbGl0eV92YnJfZW5jb2RpbmcKCSAgU2lnbmVkLW9mZi1ieTogQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoJICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCjIwMTEtMDYtMTkgMDc6MTY6NTcgKzAyMDAgIEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwODYvMTM0XSB2cDhlbmM6IHVzZSBtdWx0aXBhc3MuY2FjaGUgZmlsZSBuYW1lIGFzIGRlZmF1bHQgZm9yIG11bHRpcGFzcyBtb2RlLgoJICBTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgRmlzaGVyIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAxMS0wNy0yMSAwODowMzo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDg1LzEzNF0gdnA4ZW5jOiBVcGRhdGUgZm9yIEdzdEJhc2VWaWRlb0VuY29kZXI6OmZpbmlzaCgpIHNpZ25hdHVyZSBjaGFuZ2UKCjIwMTEtMDctMTIgMTg6MDU6MjUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDg0LzEzNF0gdnA4OiBGaXggc2V0LWJ1dC11bnVzZWQgd2FybmluZ3MKCjIwMTEtMDctMDkgMTE6MzE6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA4My8xMzRdIHZwOGVuYzogVXNlIGRlc3Ryb3kgbm90aWZ5IHRvIGZyZWUgdGhlIGNvZGVyIGhvb2sKCjIwMTEtMDYtMTggMTU6NTY6NDkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA4Mi8xMzRdIHZwOGVuYzogdXBkYXRlIGZvciBuZXcgbGlidnB4IGFwaQoKMjAxMS0wNi0yNiAxNToxNTo1NCArMDIwMCAgQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA4MS8xMzRdIHZwOGVuYzogZ2VuZXJhdGUgYSB0aW1lc3RhbXAgZm9yIGFsdC1yZWYgZnJhbWVzLgoJICBJdCB3aWxsIGZpeCBoYW5kbGluZyBvZiBhbHRyZWYvaW52aXNpYmxlIGZyYW1lcyBzaW5jZSBtYXRyb3NrYS1tdXgKCSAgZHJvcCBhbnkgZnJhbSB3aXRoIG5vIHRpbWVzdGFtcC4KCSAgc2VlIGFsc286CgkgIGh0dHA6Ly93d3cud2VibXByb2plY3Qub3JnL2NvZGUvc3BlY3MvY29udGFpbmVyLwoJICBUaGUgZW5jb2RlciB3aWxsIGN1cnJlbnRseSBzZXQgdGhlIEFSJ3MgdGltZXN0YW1wIGFzIGNsb3NlIGFzIHBvc3NpYmxlCgkgIHRvIHRoZSBwcmV2aW91cyBmcmFtZSB3aGlsZSBhdHRlbXB0aW5nIHRvIHByb3ZpZGUgYSB0aW1lc3RhbXAgdGhhdCBpcwoJICBzdHJpY3RseSBpbmNyZWFzaW5nLiBJbiBjYXNlcyB3aGVyZSB0aGUgdGltZSBiYXNlIGdpdmVuIHRvIHRoZSBlbmNvZGVyCgkgIGF0IGNvbmZpZ3VyZSB0aW1lIGlzIG5vdCBncmFudWxhciBlbm91Z2ggdG8gYWxsb3cgZm9yIHRoaXMgdGhlIEFSCgkgIHdpbGwgc2hhcmUgdGhlIHNhbWUgdGltZXN0YW1wIGFzIEQsIGJ1dCBzaG91bGQgYmUKCSAgdHJlYXRlZCBhcyBoYXZpbmcgbm8gZHVyYXRpb24uCgkgIEZpeGVzIGJ1ZyAjNjUyOTUxCgkgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTEtMDYtMTggMTc6NDc6MzYgKzAyMDAgIEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwODAvMTM0XSB2cDhkZWM6IGFkZCBjaGVjayBpZiB3ZSBoYXZlIGxlZ2FsIGFzcGVjdC1yYXRpbyBiZWZvcmUgcmVzZXQgaXQuCgkgIHRoZSBjb21taXQgZjliNTUyZjA0OTRlICh2cDhkZWM6IHNldCBwYXIgdG8gMS8xKQoJICB3aWxsIGZpeCBzaXR1YXRpb24gd2hlcmUgbm8gYXNwZWN0LXJhdGlvIGlzIHNldCwgYnV0IGl0IGJyYWtlCgkgIHN0cmVhbSB3aXRoIGF2YWlsYWJsZSBhc3BlY3QtcmF0aW8uIFRoaXMgcGF0Y2ggZml4IGl0LgoJICBGaXhlczogIzY1MjkwMi4KCSAgU2lnbmVkLW9mZi1ieTogQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKMjAxMS0wNi0wMyAxOTozNjo1OSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDc5LzEzNF0gdnA4ZGVjOiBzZXQgcGFyIHRvIDEvMQoKMjAxMS0wNS0xOCAxMzoyNzoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDc4LzEzNF0gdnA4ZW5jOiBOYW1lIG1heC9taW4gcXVhbnRpemVyIHByb3BlcnRpZXMge21heCxtaW59LXF1YW50aXplcgoJICBBbHNvIGltcHJvdmUgcXVhbGl0eSBwcm9wZXJ0eSBkZXNjcmlwdGlvbi4KCjIwMTEtMDUtMTggMTM6MjY6MjMgKzAyMDAgIEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNzcvMTM0XSB2cDhlbmM6IEFkZCBwcm9wZXJ0aWVzIHRvIHNlbGVjdCBhIG1heGltdW0gYW5kIG1pbmltdW0gcXVhbnRpemVyCgkgIEZpeGVzIGJ1ZyAjNjQxNDA1LgoKMjAxMS0wNS0xOCAxMzoxODo1OCArMDIwMCAgQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA3Ni8xMzRdIHZwOGVuYzogRml4IHF1YWxpdHkgdG8gKGNvbnN0YW50KSBxdWFudGl6ZXIgbWFwcGluZwoJICBUaGlzIG5vdyBhbGxvd3MgdG8gc2VsZWN0IGFsbCBwb3NzaWJsZSBxdWFudGl6ZXJzIGJldHdlZW4KCSAgMCBhbmQgNjMuCgkgIFNlZSBidWcgIzY0MTQwNS4KCjIwMTEtMDQtMDEgMjI6MTM6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA3NS8xMzRdIHZwOGRlYzogZGVidWcgY29kZSBzdHlsZSBmaXhlcwoKMjAxMS0wNC0wMSAyMjoxMzowMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDc0LzEzNF0gdnA4ZGVjOiBwcm9wYWdhdGUgZG93bnN0cmVhbSBmbG93IHJldHVybiB0byB1cHN0cmVhbQoKMjAxMS0wMy0zMCAxMDoxODoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDczLzEzNF0gYmFzZXZpZGVvZGVjb2RlcjogcmVhbGx5IGFuZCBvbmx5IHNldCBzcmMgcGFkIGNhcHMgd2hlbmV2ZXIgcmVxdWVzdGVkCgkgIC4uLiBzaW5jZSBzdWJjbGFzcyBpcyBleHBlY3RlZCB0byBiZSB3aXNlIGVub3VnaCB0byBrbm93IHdoZW4gdG8gZG8gc28uCgoyMDExLTAzLTI5IDEwOjQxOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNzIvMTM0XSBiYXNldmlkZW9kZWNvZGVyOiBpbnZva2Ugc3ViY2xhc3Mgc3RhcnQgbWV0aG9kIGF0IHN0YXRlIGNoYW5nZSBhbmQgdXNlIHNldF9mb3JtYXQKCSAgV2hpbGUgdGhpcyBjaGFuZ2VzIEFQSSBzbGlnaHRseSAoZS5nLiBhY3R1YWxseSB1c2VzIHNldF9mb3JtYXQgbm93KSwgd2hpY2ggaXMgT0sKCSAgZm9yIHVuc3RhYmxlIEFQSSwgaXQgaGFzIGZvbGxvd2luZyBtZXJpdHM6CgkgICogc3ltbWV0cmljIHcuci50LiBzdG9wIGF0IHN0YXRlIGNoYW5nZQoJICAqIGluIGxpbmUgd2l0aCBvdGhlciBiYXNlIGNsYXNzIHByYWN0aWNlCgkgICogb3RoZXJ3aXNlIG5vIHN1YmNsYXNzIG1ldGhvZCBhdCBzdGF0ZSBjaGFuZ2UgKGdsb2JhbCBhY3RpdmF0aW9uIHRpbWUpCgkgIE1vcmVvdmVyLCBzdWJjbGFzc2VzZSBhcmUgZWl0aGVyIHVuYWZmZWN0ZWQgb3IgdHJpdmlhbGx5IGFkanVzdGVkIGFjY29yZGluZ2x5LgoKMjAxMS0wMy0yOCAwODo1OToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDcxLzEzNF0gYmFzZXZpZGVvZGVjb2Rlcjogc3Vic3VtZSBza2lwX2ZyYW1lIGludG8gZmluaXNoX2ZyYW1lCgoyMDExLTAzLTI0IDE0OjEwOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNzAvMTM0XSBiYXNldmlkZW9lbmNvZGVyOiBwcm92aWRlIHByb3BlciB1cHN0cmVhbSBmbG93IHJldHVybiBoYW5kbGluZwoKMjAxMS0wMy0yNCAxMzo1OTozNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDY5LzEzNF0gdnA4ZW5jOiBtaW5vciBvcHRpbWl6YXRpb24gaW4gc2V0dGluZyB1cCBpbWFnZSBidWZmZXIKCjIwMTEtMDMtMjQgMTI6NTA6MjMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA2OC8xMzRdIHZwOGVuYzogcmVmYWN0b3IgZnJhbWUgcHJvY2Vzc2luZwoKMjAxMS0wMy0yNCAxMTo1NTo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDY3LzEzNF0gdnA4ZW5jOiBkbyBpbml0IGF0IHNldF9mb3JtYXQgdGltZQoKMjAxMS0wMy0yNCAxMDoxNTo1NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDY2LzEzNF0gdnA4ZW5jOiBmaXgga2V5ZnJhbWUgZm9yY2luZwoKMjAxMS0wMy0yMyAwOTo0NToyMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDY1LzEzNF0gYmFzZXZpZGVvY29kZWM6IHJlbW92ZSByZWR1bmRhbnQgY2FwcyBmaWVsZAoJICAuLi4gYXMgaXQgaXMgYWxyZWFkeSBhdCBoYW5kIGFzIHRoZSBzcmMgcGFkJ3MgbmVnb3RpYXRlZCBjYXBzLgoKMjAxMS0wMy0yMyAwODo1MDozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDY0LzEzNF0gdnA4ZW5jOiB1c2UgYmFzZWNsYXNzIGV2ZW50IHZpcnR1YWwgaGFuZGxlcgoKMjAxMS0wMi0yMCAxNDoxNjoxOCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5oOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDYzLzEzNF0gYmFzZXZpZGVvOiBtZXJnZSB1dGlscyBoZWFkZXIgaW50byBiYXNldmlkZW9jb2RlYwoKMjAxMS0wMy0xNyAxNjozNDowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L01ha2VmaWxlLmFtOgoJICBbTU9WRUQgRlJPTSBCQUQgMDYyLzEzNF0gdnA4OiBmaXggTElCQUREIG9yZGVyIGluIE1ha2VmaWxlLmFtCgoyMDExLTAyLTA0IDA5OjA4OjI2ICswMTAwICBBbGV4ZXkgRmlzaGVyIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDYxLzEzNF0gdnA4ZW5jOiBBZGQgZGVzY3JpcHRpb24gZm9yIGJpdHJhdGUgdW5pdHMuCgoyMDEwLTExLTMwIDE4OjQzOjI0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNjAvMTM0XSB2cDhlbmM6IFJlYWRkIHNldHRpbmcgb2YgZ3JhbnVsZXBvcwoJICBSZXZlcnQgcGFydHMgb2YgbGFzdCBwYXRjaCB0aGF0IHJlbW92ZWQgc2V0dGluZyBvZiBncmFudWxlcG9zLgoJICBvZ2dtdXggc3RpbGwgcmVxdWlyZXMgY29ycmVjdCBncmFudWxlcG9zIGluIGluY29taW5nIHBhY2tldC4KCjIwMTAtMTEtMjkgMjA6MjE6MzEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA1OS8xMzRdIHZwOGVuYzogRG9uJ3Qgb3ZlcnJpZGUgdGltZXN0YW1wcyBzZXQgYnkgYmFzZSBjbGFzcwoJICBCZWNhdXNlIHRoZSBiYXNlIGNsYXNzIGRvZXMgaXQgY29ycmVjdGx5LgoJICBGaXhlczogIzYzNTcyMCwgIzYyNTU1OC4KCjIwMTAtMTEtMjUgMTg6NTI6NDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDU4LzEzNF0gdnA4OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAxMC0xMC0wOSAxNzozNjowNyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDU3LzEzNF0gYmFzZXZpZGVvOiBNb3ZlIGNvbW1vbiBmaWVsZHMvZnVuY3Rpb25zIHRvIGJhc2Vjb2RlYwoKMjAxMC0wOS0xOCAxNzoyODo0OCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDU2LzEzNF0gYmFzZXZpZGVvOiBNb3ZlIGRlYWRsaW5lIHRvIGZyYW1lIHN0cnVjdHVyZQoKMjAxMC0wOC0xMyAxNDozNDoyMSArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNTUvMTM0XSB2cDhkZWM6IFNldCBHc3RCYXNlVmlkZW9EZWNvZGVyOjpwYWNrZXRpemVkIHRvIFRSVUUgYXMgc29vbiBhcyBwb3NzaWJsZQoJICBUaGlzIGZpeGVzIGFuIGluZmluaXRlIGxvb3AgaWYgYW4gRU9TIGV2ZW50IGlzIHJlY2VpdmVkIGJlZm9yZQoJICBHc3RCYXNlVmlkZW9EZWNvZGVyOjpzdGFydCgpIGlzIGNhbGxlZCwgZS5nLiBpbW1lZGlhdGVseSB3aGVuIHRoZQoJICBwYWRzIGFyZSBhY3RpdmF0ZWQuCgkgIEZpeGVzIGJ1ZyAjNjI2ODE1LgoKMjAxMC0wNy0xMCAxNjo1MjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDU0LzEzNF0gdnA4ZW5jOiBBZGQgc3VwcG9ydCBmb3IgZW5hYmxpbmcgYXV0b21hdGljIGluc2VydGlvbiBvZiBhbHQtcmVmIGZyYW1lcyBieSB0aGUgZW5jb2RlcgoKMjAxMC0wNy0xMCAxNjo1MTo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDUzLzEzNF0gdnA4ZW5jOiBGaXggaGFuZGxpbmcgb2YgaW52aXNpYmxlL2FsdCByZWYgZnJhbWVzCgoyMDEwLTA3LTAzIDE3OjQ3OjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmg6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNTIvMTM0XSB2cDg6IEFkZCBpbml0aWFsIGRvY3VtZW50YXRpb24sIGJhc2VkIG9uIHRoZSB0aGVvcmFkZWMvdGhlb3JhZW5jIGRvY3VtZW50YXRpb24KCjIwMTAtMDctMDMgMTc6MzQ6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9NYWtlZmlsZS5hbToKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuaDoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuaDoKCSogZXh0L3ZwOC9wbHVnaW4uYzoKCSAgW01PVkVEIEZST00gQkFEIDA1MS8xMzRdIHZwODogTW92ZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMsIGV0YyB0byBwdWJsaWMgaGVhZGVyIGZpbGVzIGZvciBndGstZG9jCgoyMDEwLTA2LTEyIDA5OjAyOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNTAvMTM0XSB2cDhlbmM6IEltcGxlbWVudCBtdWx0aXBhc3MgZW5jb2RpbmcKCSAgRml4ZXMgYnVnICM2MjEzNDguCgoyMDEwLTA2LTE0IDE1OjU2OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNDkvMTM0XSB2cDhlbmM6IFNldCBWUDhFX1NFVF9DUFVVU0VEIHRvIDAKCSAgVGhpcyBzZXR0aW5nIGNvbnRyb2xzIGhvdyBtdWNoIENQVSBjYW4gYmUgdXNlZCBieSB0aGUgZW5jb2Rlciwgc3BlY2lmaWVkCgkgIGluIGZyYWN0aW9ucyBvZiAxNi4gTmVnYXRpdmUgdmFsdWVzIG1lYW4gc3RyaWN0IGVuZm9yY2VtZW50IG9mIHRoaXMKCSAgd2hpbGUgcG9zaXRpdmUgdmFsdWVzIGFyZSBhZGFwdGl2ZS4KCSAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgLTQsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgbm90IHJ1bm5pbmcgYXMgZmFzdAoJICBhcyBwb3NzaWJsZSBhbmQgcHJvYmFibHkgYXJlIHdhc3Rpbmcgc29tZSBxdWFsaXR5LiAwIGlzIHRoZSByZWNvbW1lbmRlZAoJICBkZWZhdWx0IGJ5IGxpYnZweCB1cHN0cmVhbS4KCjIwMTAtMDYtMTQgMTU6NTE6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDA0OC8xMzRdIHZwOGVuYzogVXNlIFZQWCBkZWZpbmVzIGZvciBSRUFMVElNRSwgR09PRC9CRVNUIHF1YWxpdHkgZGVhZGxpbmVzIGluc3RlYWQgb2Ygb3VyIG93bgoJICBUaGVzZSBhcmUgdGhlIHZhbHVlcyB1c2VkIGZvciB0aGUgc3BlZWQgcHJvcGVydHkuCgoyMDEwLTA2LTAzIDEwOjQ5OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNDcvMTM0XSB2cDhlbmM6IGZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcgaW4gbG9nIG1lc3NhZ2UKCSAgZ3N0dnA4ZW5jLmM6NTY0OiBlcnJvcjogZm9ybWF0IOKAmCVk4oCZIGV4cGVjdHMgdHlwZSDigJhpbnTigJksIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlIOKAmHNpemVfdOKAmQoJICBnc3R2cDhlbmMuYzo3NDQ6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg4oCYc2l6ZV904oCZCgoyMDA5LTA3LTAzIDE2OjA4OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvTWFrZWZpbGUuYW06CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNDYvMTM0XSBiYXNldmlkZW8sIHZwODogZ3VhcmQgdW5zdGFibGUgQVBJIHdpdGggR1NUX1VTRV9VTlNUQUJMRV9BUEkKCSAgQWRkIHNvbWUgZ3VhcmRzIGFuZCBmYXQgd2FybmluZ3MgdG8gdGhlIGhlYWRlciBmaWxlcyB3aXRoIHN0aWxsIHVuc3RhYmxlCgkgIEFQSSwgc28gcGVvcGxlIHdobyBqdXN0IGxvb2sgYXQgdGhlIGluc3RhbGxlZCBoZWFkZXJzIGtub3cgdGhhdCBpdAoJICBhY3R1YWxseSBpcyB1bnN0YWJsZSBBUEkuCgkgIE1lcmdpbmcgcHJldmlvdXMgY29tbWl0IGludG8gY3VycmVudCBjb2RlYmFzZS4KCjIwMTAtMDYtMDEgMTU6NTQ6NTEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L3ZwOC9NYWtlZmlsZS5hbToKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvY29kZWMuYzoKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvY29kZWMuaDoKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvZGVjb2Rlci5jOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9kZWNvZGVyLmg6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb2VuY29kZXIuYzoKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvZW5jb2Rlci5oOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9wYXJzZS5jOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9wYXJzZS5oOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW91dGlscy5jOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW91dGlscy5oOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3R2aWRlb2NvbXBhdC5jOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3R2aWRlb2NvbXBhdC5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDQ1LzEzNF0gYmFzZXZpZGVvOiBNb3ZlIGJhc2UgdmlkZW8gZnJvbSB2cDggdG8gZ3N0LWxpYnMKCjIwMTAtMDUtMjYgMDY6NTI6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSogZXh0L3ZwOC9nc3R2cDh1dGlscy5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMDQ0LzEzNF0gdnA4OiBVc2UgVlBYX1BMQU5FXyogaW5zdGVhZCBvZiBQTEFORV8qCgoyMDEwLTA1LTI0IDExOjA0OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4dXRpbHMuaDoKCSAgW01PVkVEIEZST00gQkFEIDA0My8xMzRdIHZwODogQWRkIGNvbXBhdGlsaWJpdHkgZGVmaW5lcyB0byB3b3JrIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgbGlidnB4IHRvbwoKMjAxMC0wNS0yMyAwOToyODoxMyArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNDIvMTM0XSB2cDhkZWM6IHMvSU1HX0ZNVF9JNDIwL1ZQWF9JTUdfRk1UX0k0MjAvCgkgIFRoaXMgY29ycmVzcG9uZHMgdG8gdXBzdHJlYW0gbGlidnB4IGNvbW1pdCA2Y2Q0YTEwZTE2NzIwM2QxZGViNzlhYmY2MGVlNzI1OTllOTc4OTFiCgoyMDEwLTA1LTIyIDEyOjU1OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNDEvMTM0XSB2cDhlbmM6IEFsbG93IGEgbWF4aW11bSBrZXlmcmFtZSBkaXN0YW5jZSBvZiAwLCBpLmUuIGFsbCBmcmFtZXMgYXJlIGtleWZyYW1lcwoKMjAxMC0wNS0yMiAwODo0NTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDQwLzEzNF0gdnA4ZGVjOiBTZXQgZGVjb2RlciBkZWFkbGluZSBmcm9tIHRoZSBRb1MgaW5mb3JtYXRpb24KCjIwMTAtMDUtMjggMTY6MzU6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAzOS8xMzRdIHZwOGVuYzogTW92ZSBkZWJ1ZyBvdXRwdXQgb25lIGxpbmUgYWJvdmUgd2hlcmUgdGhlIHBhY2tldCBpcyBzdGlsbCB2YWxpZAoKMjAxMC0wNS0yOCAxNTo1MzozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDM4LzEzNF0gdnA4ZW5jOiBDb3JyZWN0bHkgaWdub3JlIG5vbi1mcmFtZSBwYWNrZXRzIGZyb20gdGhlIGVuY29kZXIKCSAgRml4ZXMgYnVnICM2MTk5MTYuCgoyMDEwLTA1LTIyIDA3OjQ0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb2RlY29kZXIuYzoKCSAgW01PVkVEIEZST00gQkFEIDAzNy8xMzRdIGJhc2V2aWRlb2RlY29kZXI6IFRha2UgdGhlIGZyYW1lIGR1cmF0aW9uIGludG8gYWNjb3VudCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBlYXJsaWVzdCB0aW1lCgkgIFRoaXMgZm9ybXVsYSBpcyB1c2VkIGluIG1hbnkgb3RoZXIgZWxlbWVudHMgdG9vLgoJICBGaXhlcyBidWcgIzYxOTMxOC4KCjIwMTAtMDUtMjIgMDc6MzU6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvZGVjb2Rlci5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDM2LzEzNF0gYmFzZXZpZGVvZGVjb2RlcjogUmVzZXQgUW9TIHZhbHVlcyB3aGVuIG5lY2Vzc2FyeQoKMjAxMC0wNS0yMiAwOTozNToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDM1LzEzNF0gdnA4ZW5jOiBVc2UgR1NUX1ZJREVPX0NBUFNfWVVWKEk0MjApIGluc3RlYWQgb2YgaGFuZHdyaXR0ZW4gSTQyMCBjYXBzIGZvciB0aGUgcGFkIHRlbXBsYXRlCgkgIEZpeGVzIGJ1ZyAjNjE5MzQ0LgoKMjAxMC0wNS0yMSAyMDo1MzozNiArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb2RlY29kZXIuYzoKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvZGVjb2Rlci5oOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW91dGlscy5oOgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDM0LzEzNF0gdnA4ZGVjOiBkcm9wIGxhdGUgZnJhbWVzIGFmdGVyIGRlY29kaW5nIHRoZW0KCSAgVGhpcyBzYXZlcyBhIG1lbWNweSwgd2hpY2ggaXMgYWx3YXlzIHNvbWV0aGluZy4KCjIwMTAtMDUtMjEgMjE6Mjg6MjkgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDMzLzEzNF0gdnA4ZW5jOiB0aHJlYWRzIHByb3BlcnR5CgkgIEluY3JlYXNpbmcgZnJvbSAxIHRvIDIgdGhyZWFkcyBvbiBhbiBUaGlua3BhZCBYNjBzIGRlY3JlYXNlZCBlbmNvZGUgdGltZQoJICBpbiBhIHRlc3QgZnJvbSB+MjQgcyB0byB+MTkgcywgc28gdGhpcyBpcyBxdWl0ZSB1c2VmdWwuCgkgIElkZWFsbHkgd2Ugc2hvdWxkIGxldCAwIGJlIHRoZSBkZWZhdWx0IGFuZCBhdXRvbWF0aWNhbGx5IG1hdGNoIHRoZSBudW1iZXIKCSAgb2YgQ1BVIGNvcmVzIChvciBzb21ldGhpbmcpLgoKMjAxMC0wNS0yMSAxNToxNzo0NiArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMzIvMTM0XSB2cDhlbmM6IGFkZCBtb2RlIHByb3BlcnR5IHRvIHN3aXRjaCBiZXR3ZWVuIENCUi9WQlIKCSAgQWx3YXlzIHVzaW5nIENCUiB3aGVuIGJpdHJhdGUgaXMgdXNlZCBpc24ndCB0aGF0IGdyZWF0LCBWQlIgbW9kZQoJICBjYW4gcHJvZHVjZSBtZWFuaW5nZnVsIHJlc3VsdHMgdG9vLgoKMjAxMC0wNS0yMSAxMDo1NDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDMxLzEzNF0gdnA4ZGVjOiBPbmx5IGVuYWJsZSBwb3N0cHJvY2Vzc2luZyBpZiB0aGUgZGVjb2RlciBzdXBwb3J0cyBpdAoKMjAxMC0wNS0yMSAwODoyMzo1OCArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC92cDgvcGx1Z2luLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMzAvMTM0XSB2cDg6IHR5cG86IHMvSEFWRV9WUDhfREVDT0RFUi9IQVZFX1ZQOF9FTkNPREVSLwoJICBGaXh1cCBmb3IgYnVnICM2MTkxNzIuCgoyMDEwLTA1LTIxIDA4OjEzOjA2ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAyOS8xMzRdIHZwODogbW92ZSAjaWZkZWYgSEFWRV9WUDhfRU5DT0RFUi9ERUNPREVSCgkgIE90aGVyd2lzZSB3ZSdsbCB0cnkgaW5jbHVkaW5nIGUuZy4gPHZweC92cDhjeC5oPiB3aGljaCBkb2Vzbid0IGV4aXN0LgoKMjAxMC0wNS0yMCAyMDowNjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDI4LzEzNF0gdnA4ZW5jOiBXcml0ZSBHU3RyZWFtZXIgZWxlbWVudCBhbmQgdmVyc2lvbiBpbiB0aGUgdm9yYmlzY29tbWVudCB2ZW5kb3Igc3RyaW5nCgoyMDEwLTA1LTIwIDE2OjQ5OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvcGx1Z2luLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMjcvMTM0XSB2cDg6IE9ubHkgZW5hYmxlIHRoZSBlbmNvZGVyIG9yIGRlY29kZXIgaWYgaXQncyBhdmFpbGFibGUgaW4gbGlidnB4CgkgIEZpeGVzIGJ1ZyAjNjE5MTcyLgoKMjAxMC0wNS0yMCAxMDoxOTo1NCArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvcGx1Z2luLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMjYvMTM0XSB2cDg6IGV4bGN1ZGUgZGVjL2VuYyBiYXNlZCBvbiBDT05GSUdfVlA4X0RFQ09ERVIvRU5DT0RFUgoJICBUaGlzIG1heSBub3QgYmUgdmVyeSBhdXRvdG9vbGlzaCwgYnV0IHdvcmtzIHdpdGggbGlidnB4IGluIHRoZSBzdGF0ZQoJICB0aGF0IGxpYnZweCBpcyBhY3R1YWxseSBpbi4gTW92ZWQgdGhlIGRlYnVnIGluaXQgdG8gdGhlIGVsZW1lbnRzCgkgIHRoZW1zZWx2ZXMgdG8gbWluaW1pemUgYW1vdW50IG9mICNpZmRlZnMKCjIwMTAtMDUtMjAgMDk6MjQ6NTMgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDI1LzEzNF0gdnA4ZW5jOiBMaW1pdCBtYXgtbGF0ZW5jeSB0byAyNSB0byBtYXRjaCBsaWJ2cHgKCSAgRnJvbSBsaWJ2cHgvdnA4L2VuY29kZXIvb255eF9pbnQuaDoKCSAgI2RlZmluZSBNQVhfTEFHX0JVRkZFUlMgKENPTkZJR19SRUFMVElNRV9PTkxZPyAxIDogMjUpCgkgIFdoaWxlIHdlIGRvbid0IG5lZWQgdG8gYmUgdGllZCB0byB3aGF0IGxpYnZweCBkb2VzIGludGVybmFsbHksIGl0CgkgIGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBwcmV0ZW5kIHRvIHN1cHBvcnQgbG9uZ2VyIGZyYW1lIGxhZ3MgdGhhbiBhcmUKCSAgYWN0dWFsbHkgcG9zc2libGUuCgoyMDEwLTA1LTIwIDA5OjU2OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvZ3N0dnA4dXRpbHMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAyNC8xMzRdIHZwODogVW5kZWYgSEFWRV9DT05GSUdfSCBiZWZvcmUgaW5jbHVkaW5nIGxpYnZweCBoZWFkZXJzCgkgIEEgcHVibGljIGxpYnZweCBoZWFkZXIgaW5jbHVkZXMgcHJpdmF0ZSBoZWFkZXJzIGlmIHRoaXMgaXMKCSAgZGVmaW5lZCwgY2F1c2luZyBjb21waWxhdGlvbiBmYWlsdXJlcyBiZWNhdXNlIHRoZSBwcml2YXRlIGhlYWRlcnMKCSAgYXJlIG5vdCBpbnN0YWxsZWQgb2YgY291cnNlLgoKMjAxMC0wNS0yMCAwODo1MzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDIzLzEzNF0gdnA4ZW5jOiBTb21lIG1vcmUgbWlub3IgYWRqdXN0bWVudHMgZm9yIHRoZSBPZ2cgbWFwcGluZwoKMjAxMC0wNS0xOSAyMzowMjoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDIyLzEzNF0gdnA4ZGVjOiBGaXggbWVtb3J5IGxlYWsKCjIwMTAtMDUtMTkgMjE6MzQ6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAyMS8xMzRdIHZwOGVuYzogQWRqdXN0IE9nZyBtYXBwaW5nIGZvciB0aGUgY2hhbmdlcwoKMjAxMC0wNS0xOSAxODoxMjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDIwLzEzNF0gdnA4ZGVjOiBBZGQgcHJvcGVydGllcyB0byBjb250cm9sIHRoZSBWUDggZGVjb2RlciBwb3N0IHByb2Nlc3NpbmcgZmVhdHVyZQoJICBUaGlzIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgZm9yIG5vdy4KCjIwMTAtMDUtMTkgMTc6MTY6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAxOS8xMzRdIHZwOGVuYzogUmVuYW1lIGtleWZyYW1lLWludGVydmFsIHRvIG1heC1rZXlmcmFtZS1kaXN0YW5jZQoJICBBbmQgdXNlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGJ1ZmZlciBzaXplcyB1bnRpbCB3ZSBleHBvc2UgdGhpcwoJICBzb21laG93LgoKMjAxMC0wNS0xOSAxNzoxMzoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L01ha2VmaWxlLmFtOgoJKiBleHQvdnA4L2dzdHZwOGRlYy5jOgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJKiBleHQvdnA4L2dzdHZwOHV0aWxzLmM6CgkqIGV4dC92cDgvZ3N0dnA4dXRpbHMuaDoKCSAgW01PVkVEIEZST00gQkFEIDAxOC8xMzRdIHZwODogSW1wcm92ZSBlcnJvciBoYW5kbGluZyBhbmQgZGVidWcgb3V0cHV0CgoyMDEwLTA1LTE5IDE0OjQ2OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMTcvMTM0XSB2cDg6IFVzZSBjb3JyZWN0IHN0cmlkZXMgYW5kIHBsYW5lIG9mZnNldHMgZm9yIEdTdHJlYW1lcgoKMjAxMC0wNS0xOCAxNDo0Nzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDE2LzEzNF0gdnA4ZW5jOiBJbXBsZW1lbnQgR3N0VGFnU2V0dGVyIGludGVyZmFjZQoKMjAxMC0wNS0xOCAxNDozMzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDE1LzEzNF0gdnA4ZW5jOiBGaXggc2V0dGluZyBvZiB0aGUga2V5ZnJhbWUgZmxhZyBvbiBlbmNvZGVkIGZyYW1lcwoKMjAxMC0wNS0xOCAxNDozMDoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDE0LzEzNF0gdnA4ZW5jOiBQb3N0IGFuIGVycm9yIG1lc3NhZ2Ugb24gdGhlIGJ1cyBpZiBlbmNvZGVyIGluaXRpYWxpemF0aW9uIGZhaWxzCgoyMDEwLTA1LTE4IDE0OjI4OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMTMvMTM0XSB2cDhkZWM6IEZpeCBtZW1vcnkgbGVha3MgYW5kIGZhaWwgaWYgaW5pdGlhbGl6aW5nIHRoZSBkZWNvZGVyIGZhaWxzCgoyMDEwLTA1LTE4IDAyOjQ0OjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMTIvMTM0XSB2cDhlbmM6IFNldCB0aW1lYmFzZQoJICBBbHNvIG1pc2MgY2xlYW51cC4KCjIwMTAtMDUtMTYgMTA6MzY6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAxMS8xMzRdIHZwOGRlYzogRml4IGRlY29kaW5nIG9mIGludmlzaWJsZSBmcmFtZXMKCjIwMTAtMDUtMTQgMTQ6MjY6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAxMC8xMzRdIHZwOGVuYzogVXBkYXRlIHRoZSBsYXRlbmN5IHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBlbmNvZGVyCgoyMDEwLTA1LTE0IDE0OjAyOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMDkvMTM0XSB2cDhkZWM6IENvcnJlY3RseSBpbml0aWFsaXplIHN0cmVhbSBpbmZvIGJlZm9yZSBwZWVraW5nIGF0IHRoZSBzdHJlYW0KCSAgT3RoZXJ3aXNlIHBlZWtpbmcgd2lsbCBmYWlsIGFuZCB3ZSdsbCBnZXQgaW52YWxpZCB2YWx1ZXMKCjIwMTAtMDUtMTQgMTE6MDE6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAwOC8xMzRdIHZwOGRlYzogTWFrZSBzdXJlIHRvIHBhc3MgYSBrZXlmcmFtZSBhcyBmaXJzdCBmcmFtZSB0byB0aGUgZGVjb2RlciwgY29weSBvdXRwdXQgZnJhbWVzIG9ubHkgb25jZSBhbmQgcmVxdWlyZSB3aWR0aC9oZWlnaHQvZXRjIG9uIHRoZSBpbnB1dCBjYXBzCgoyMDEwLTA1LTE0IDEwOjMwOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMDcvMTM0XSB2cDhlbmM6IEFkZCBzdXBwb3J0IGZvciBpbnZpc2libGUgZnJhbWVzIGFuZCB0aGUgT2dnIG1hcHBpbmcKCjIwMTAtMDUtMTQgMDE6MTQ6NDYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L3ZwOC9nc3R2cDhkZWMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAwNi8xMzRdIHZwOGRlYzogRml4IHJlc2V0IGFmdGVyIHNlZWtpbmcKCSAgQWxzbyByZW1vdmUgc29tZSB1bnVzZWQgY29kZS4KCjIwMTAtMDUtMTMgMjE6MTk6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAwNS8xMzRdIHZwOGVuYzogU2V0IGZyYW1lIG51bWJlcnMgYXMgYnVmZmVyIG9mZnNldHMKCjIwMTAtMDUtMTMgMjE6MTg6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3ZwOC9nc3R2cDhlbmMuYzoKCSAgW01PVkVEIEZST00gQkFEIDAwNC8xMzRdIHZwOGVuYzogQWx3YXlzIGdldCBhcyBtYW55IGZyYW1lcyBhcyBwb3NzaWJsZSBmcm9tIHRoZSBlbmNvZGVyCgoyMDEwLTA1LTEzIDIxOjA4OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMDMvMTM0XSB2cDhlbmM6IEZpbGwgdGhlIG9sZGVzdCBwZW5kaW5nIGZyYW1lIGluc3RlYWQgb2YgdGhlIG5ld2VzdAoKMjAxMC0wNS0xMyAyMDoyMDozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdnA4L2dzdHZwOGVuYy5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDAyLzEzNF0gdnA4ZW5jOiBDb3JyZWN0bHkgc2V0IGRlbHRhIHVuaXQgZmxhZyBmb3Igbm9uLWtleWZyYW1lcwoKMjAxMC0wNS0xMyAwMTowNDowNCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvdnA4L01ha2VmaWxlLmFtOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9jb2RlYy5jOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9jb2RlYy5oOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9kZWNvZGVyLmM6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb2RlY29kZXIuaDoKCSogZXh0L3ZwOC9nc3QvdmlkZW8vZ3N0YmFzZXZpZGVvZW5jb2Rlci5jOgoJKiBleHQvdnA4L2dzdC92aWRlby9nc3RiYXNldmlkZW9lbmNvZGVyLmg6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb3BhcnNlLmM6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb3BhcnNlLmg6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb3V0aWxzLmM6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdGJhc2V2aWRlb3V0aWxzLmg6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdHZpZGVvY29tcGF0LmM6CgkqIGV4dC92cDgvZ3N0L3ZpZGVvL2dzdHZpZGVvY29tcGF0Lmg6CgkqIGV4dC92cDgvZ3N0dnA4ZGVjLmM6CgkqIGV4dC92cDgvZ3N0dnA4ZW5jLmM6CgkqIGV4dC92cDgvcGx1Z2luLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwMDEvMTM0XSB2cDg6IEFkZCBlbmNvZGVyL2RlY29kZXIKCjIwMTItMDktMTUgMjI6MTY6NTIgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZSB3aXRoIEYxOCBuYW1lIGNoYW5nZSBhbmQgYWRkIGRlaW50ZXJsYWNlcgoKMjAxMi0wOS0xNSAxOTowNjowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJICB1c2UgZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfbWV0YWRhdGEgdG8gcmVwbGFjZSBvYnNvbGV0ZSBBUEkKCjIwMTItMDktMTQgMTc6NTU6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJICByZXBsYWNlIF9nZXRfY2Fwc19yZWZmZWQgd2l0aCBfZ2V0X2NhcHMKCjIwMTItMDktMTQgMTc6MDc6MjYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkgIHJlcGxhY2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlIHdpdGggZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X21ldGFkYXRhCgoyMDEyLTA5LTE0IDEzOjMwOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3QvcnRwL1JFQURNRToKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvZXF1YWxpemVyL2RlbW8uYzoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1WVFMtSDI2M3AtQVRTLVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItVlRTLUgyNjNwLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWRlY29kZWJpbi1IMjYzcC1BTVIuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjYzcC1hbHNhc3JjLUFNUi5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjQtYWxzYXNyYy1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvc2hhcGV3aXBlLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9jYW1jdHJsLmM6CgkqIHRlc3RzL2ljbGVzL2dka3BpeGJ1ZnNpbmstdGVzdC5jOgoJICBmaXggbW9yZSBjYXBzCgoyMDEyLTA5LTE0IDAyOjU3OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjk0ID09PQoKMjAxMi0wOS0xNCAwMjo0ODo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjk0CgoyMDEyLTA5LTE0IDAxOjUwOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEyLTA5LTE0IDAxOjQ2OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wOS0xNCAwMDo0NzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tlbmMuYzoKCSAgdGVzdHM6IHB1c2ggc3RyZWFtLXN0YXJ0IGFuZCBzZWdtZW50IGV2ZW50cyBpbiB3YXZwYWNrZW5jIHRlc3QKCjIwMTItMDktMTMgMTA6NTY6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJICB2NGwyOiByZW1vdmUgdW51c2VkIHByb3BlcnRpZXMKCjIwMTItMDktMTMgMTA6MTU6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IGRpc2FibGUgcmVjb25maWd1cmUKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM5MDIKCjIwMTItMDktMTAgMjI6MDk6NTkgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogRG9uJ3QgdHJlYXQgZXZlcnkgY3VzdG9tLWRvd25zdHJlYW0gZXZlbnQgYXMgRU9TCgkgIERvbid0IGZhbGwgdGhyb3VnaCB0byB0aGUgRU9TIGhhbmRsaW5nIGFmdGVyIHJlY2VpdmluZyBhCgkgIGN1c3RvbS1kb3duc3RyZWFtIGV2ZW50LgoKMjAxMi0wOS0xMiAyMTowNTo0NCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgY29sbGVjdHBhZHM6IHJlbW92ZSBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbAoJICBSZW5hbWUgZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwoKSB0byBnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQoKSBhbmQgZml4IGFsbAoJICBpbnZvY2F0aW9ucy4KCjIwMTItMDktMTIgMTc6MTQ6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgdWRwOiBhZGQgaW5jbHVkZSBmb3IgSVBQUk9UT18qCgoyMDEyLTA5LTEyIDE2OjM5OjA4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIHVkcDogcHJvcGVybHkgbWF0Y2ggYnJhY2VzIGFuZCBjcHAgZGlyZWN0aXZlcwoJICBGaXhlcyBjb21waWxhdGlvbiB3aGVyZSBJUFY2X1RDTEFTUyBub3QgZGVmaW5lZC4KCjIwMTItMDktMTIgMTQ6NDI6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgc2hhcGV3aXBlOiBVc2UgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHdoZXJlIG5lZWRlZAoJICBBbmQgY2xlYW4gdXAgZ2V0X2NhcHMgY29kZSB3aGlsZSBJJ20gYXQgaXQKCjIwMTItMDktMTIgMTM6Mjg6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGltcHJvdmUgZnJhbWVyYXRlIHRyYW5zZm9ybQoJICBIYW5kbGUgR19NQVhJTlQgaW4gdGhlIGZyYW1lcmF0ZXMgYmV0dGVyLiBJZiB3ZSBjYW5ub3QgZG91YmxlIG9yIGRpdmlkZSB0aGUKCSAgZnJhbWVyYXRlLCBjbGFtcCB0byB0aGUgc21hbGxlc3QvbGFyZ2VzdCBwb3NzaWJsZSB2YWx1ZSB3ZSBjYW4gZXhwcmVzcyBpbnN0ZWFkCgkgIG9mIGZhaWxpbmcuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4NjEKCjIwMTItMDktMTIgMTM6MTc6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IHNtYWxsIGNsZWFudXAKCjIwMTItMDktMDcgMTc6MjA6NTcgLTA0MDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5oOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJICB2aWRlb21peGVyMjogQWRkaW5nIG52MTIgYW5kIG52MjEgc3VwcG9ydAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzODQxCgoyMDEyLTA5LTEyIDEwOjE4OjUzICswMjAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBhZGQgc3VwcG9ydCBmb3IgcHJvcmVzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4MzkKCjIwMTItMDktMTIgMDA6MTY6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6CgkgIHRlc3RzOiBmaXggbW9zdCBvZiB0aGUgcmdhbmFseXNpcyB1bml0IHRlc3RzCgkgIEJlZm9yZSB0aGUgZWxlbWVudCB3b3VsZCBwb3N0IG1lc3NhZ2VzIG9uIHRoZSBidXMgaXRzZWxmLCBub3cKCSAgdGhlIHNpbmtzIGRvIHRoYXQgYmFzZWQgb24gdGhlIHRhZyBldmVudHMgdGhleSByZWNlaXZlLiBCdXQKCSAgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBwcm9wZXIgc2luayBlbGVtZW50cyBpbiB0aGVzZSB1bml0IHRlc3RzLAoJICBidXQganVzdCBkYW5nbGluZyBwYWRzLCB3ZSBoYXZlIHRvIHBvc3QgdGhlIHRhZyBtZXNzYWdlcyB0aGUKCSAgdGVzdCBjaGVja3MgZm9yIG91cnNlbHZlcy4KCSAgRG93biBmcm9tIDUyLzU1IGZhaWxpbmcgdG8gNy81MiBmYWlsaW5nLgoKMjAxMi0wOS0xMSAxNzozNjo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3JuZGJ1ZmZlcnNpemUuYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBleHQsIGdzdDogb25seSBhY3RpdmF0ZSBpbiBwdWxsIG1vZGUgaWYgdXBzdHJlYW0gaXMgc2Vla2FibGUKCjIwMTItMDktMTEgMTU6Mzg6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IGRpc2FibGUgcmVuZWdvdGlhdGlvbgoJICBXZSBjYW4ndCB5ZXQgd2FpdCBmb3IgdGhlIGJ1ZmZlcnBvb2wgdG8gRFJBSU4gYmVmb3JlIHN0YXJ0aW5nIHJlbmVnb3RpYXRpb24gc28KCSAgZGlzYWJsZSBpdCBmb3Igbm93LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyNzcwCgoyMDEyLTA5LTExIDEyOjQ4OjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJICB0ZXN0czogcnRwYmluOiBwb3J0IHRvIHRoZSBuZXcgR0xpYiB0aHJlYWQgQVBJCgoyMDEyLTA5LTExIDEyOjM2OjU2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5oOgoJICBkaXJlY3Rzb3VuZHNpbms6IHBvcnQgdG8gdGhlIG5ldyBHTGliIHRocmVhZCBBUEkKCjIwMTItMDktMTEgMTE6NTk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZG9uJ3QgcmVzZXQgc2VnbWVudAoJICBEb24ndCByZXNldCB0aGUgc2VnbWVudCBiZWNhdXNlIHdlIG5lZWQgdGhlIHZhbHVlcyBmb3IgYWNjdW11bGF0aW9uLiB0aGUgc2VnbWVudAoJICBpcyByZXNldCBhdCBzdGFydCBhbmQgYWZ0ZXIgYSBmbHVzaGluZyBzZWVrLiBGaXhlcyBzb21lIHByb2JsZW1zIHdpdGggZmlsZXMgd2l0aAoJICBxdWlja3RpbWUgc2VnbWVudHMuCgoyMDEyLTA5LTEwIDE3OjE0OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzZGVtdXguYzoKCSAgdGVzdHM6IGZpeCBpZDNkZW11eCB0ZXN0CgoyMDEyLTA5LTEwIDE0OjMxOjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvYW1mZGVmcy5oOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSAgZ3N0OiBhZGp1c3QgY29tbWVudCBzdHlsZQoKMjAxMi0wOS0xMCAxNDozMDo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiByZW1vdmUgZGVmdW5jdCBjb21tZW50ZWQgY29kZQoKMjAxMi0wOS0xMCAxMzozNToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogY29uc2lkZXIgc3RyZWFtIGFsaXZlIHdoZW4gbm90IGNvbm5lY3RlZCB5ZXQKCSAgV2hlbiB3ZSBzdGFydCBhbmQgcmVuZWdvdGlhdGUsIHRoZXJlIGlzIGEgbW9tZW50IHdoZXJlIHRoZSBzdHJlYW0gaXMgY3JlYXRlZCBidXQKCSAgbm90IHlldCBjb25uZWN0ZWQuIE1ha2Ugc3VyZSBhbGwgZnVuY3Rpb25zIGRlYWwgd2l0aCB0aGlzIHNpdHVhdGlvbiBjb3JyZWN0bHkKCSAgaW5zdGVhZCBvZiBlcnJvcmluZyBvdXQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEyNDcKCjIwMTItMDktMTAgMTI6MTU6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IGRvbid0IGZhaWwgd2hlbiBub3QgbmVnb3RpYXRlZCB5ZXQKCSAgV2hlbiBnZXRfdGltZSBpcyBjYWxsZWQgYnV0IHdlIGFyZSBub3QgeWV0IG5lZ290aWF0ZWQsIHJldHVybiAwIGluc3RlYWQgb2YKCSAgcG9zdGluZyBhbiBlcnJvci4gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiYXNlIGNsYXNzIGlzIHN0aWxsIG5lZ290aWF0aW5nIHdoZW4KCSAgb3VyIGdldF90aW1lIGlzIGNhbGxlZC4KCjIwMTItMDktMTAgMTE6MzI6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgdXBkYXRlIGZvciBhdWRpbyBiYXNlIHNyYyBhcGkgY2hhbmdlCgoyMDEyLTA5LTEwIDAwOjQyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHZpZGVvL3gtM2l2eCBhbmQgdmlkZW8veC14dmlkIC0+IHZpZGVvL21wZWcsbXBlZ3ZlcnNpb249NAoJICBJZiBpdCBldmVyIHR1cm5zIG91dCB0aGF0IHdlIHJlYWxseSBtdXN0IHVzZSB0aG9lIHNwZWNpZmljCgkgIGZvdXJjY3MgYW5kIG5vdCB0aGUgZ2VuZXJpYyBvbmUsIHdlIGNhbiBzdGlsbCBhZGQgYSBmbGF2b3IKCSAgZmllbGQgdG8gdGhlIGNhcHMgbGF0ZXIuCgoyMDEyLTA5LTA3IDE2OjE1OjQyICswMjAwICBEYW5pZWxhIDxkYW5pZWxhLm11enp1QHNlbGV4ZWxzYWcuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhdm9pZCBsZWFrCgkgIFdoZW4gc2V0dXAgZmFpbHMsIG1ha2Ugc3VyZSB0byBjbGVhbnVwIGFmdGVyd2FyZHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM1MDkKCjIwMTItMDktMDcgMTU6MjM6NDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJICBydHBhbXJkZXBheTogdW5tYXAgcnRwIGJ1ZmZlcgoJICAuLi4gdGhlcmVieSBwbHVnZ2luZyBhIG1lbWxlYWsuCgoyMDEyLTA5LTA3IDE0OjEzOjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkgIHRlc3RzOiBydHAtcGF5bG9hZGluZzogYWRqdXN0IHRvIG1vZGlmaWVkIGJ1ZmZlcmxpc3Qgc2VtYW50aWNzCgkgIC4uLiBub3cgaW1wbGVtZW50ZWQgYnkgYnVmZmVyIG1lbW9yeSBibG9ja3MuCgoyMDEyLTA5LTA3IDE0OjExOjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBhdm9pZCBjcmFzaGluZyBvbiBOVUxMIGFjY2VzcyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTA5LTA3IDE0OjExOjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSAgcnRwaDI2M3BwYXk6IHBsdWcgY2FwcyBsZWFrCgoyMDEyLTA5LTA2IDE3OjA5OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiByZW1vdmUgcmVkdW5kYW50IF9zZXRfYWxsb2NhdGlvbiBjYWxsCgoyMDEyLTA5LTA2IDE3OjA1OjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsYWNlLmM6CgkgIHRlc3RzOiBkZWludGVybGFjZTogZG8gbm90IGxlYWsgZGVpbnRlcmxhY2UgcGFkcwoKMjAxMi0wOS0wNiAxNzowNDozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IHBsdWcgc29tZSBsZWFrcwoKMjAxMi0wOS0wNiAxNjo0OTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogcmV1c2UgY29yZSBmdW5jdGlvbiBmb3IgR0NECgoyMDEyLTA5LTA2IDE2OjMxOjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogc3VwcG9ydCBmaWx0ZXIgaW4gZ2V0Y2FwcwoKMjAxMi0wOS0wNiAxNjozMDo0NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGRvIG5vdCBsZWFrIGdldGNhcHMgcmVzdWx0CgoyMDEyLTA5LTA2IDE2OjIzOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICBkZWludGVybGFjZTogYWRkIHN1cHBvcnQgZm9yIGJ1ZmZlcnBvb2wKCSAgQWRkIGJ1ZmZlcnBvb2wgc3VwcG9ydCB0byBhdm9pZCBhIG1lbWNweSBpbiB0aGUgdmlkZW9zaW5rIHdoZW4gYWN0aXZlbHkKCSAgaW50ZXJsYWNpbmcuCgkgIFJlbW92ZSBzb21lIGNvbW1lbnRlZCBvYnNvbGV0ZSBjb2RlLgoKMjAxMi0wOS0wNiAxMzozODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogcHJveHkgYWxsb2NhdGlvbiBxdWVyeSBpbiBwYXNzdGhyb3VnaAoJICBXZSBjYW4gbGV0IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHBhc3Mgd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIGluIHBhc3N0aHJvdWdoIG1vZGUuCgoyMDEyLTA5LTA2IDEzOjIzOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiB1c2UgZGVmYXVsdCBldmVudCBmdW5jdGlvbnMKCSAgaW5zdGVhZCBvZiBibGluZGx5IGZvcndhcmRpbmcgdW5rbm93biBldmVudHMuCgoyMDEyLTA5LTA2IDEzOjIzOjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBzbWFsbCBjbGVhbnVwcwoKMjAxMi0wOS0wNiAxMjo1NjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogY2FsbCBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXJzCgkgIENhbGwgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciBpbnN0ZWFkIG9mIGZvcndhcmRpbmcgdGhlIHF1ZXJ5IGJsaW5kbHkuIEZpeGVzCgkgIGlzc3VlcyBvZiBzdHJpZGVzIGJlY2F1c2Ugb2YgcHJveHlpbmcgdGhlIGFsbG9jYXRpb24gcXVlcnkgd3JvbmdseS4KCjIwMTItMDktMDYgMTA6NDI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IHJlbW92ZSB1bnVzZWQgY29kZS4KCjIwMTItMDktMDYgMTA6NDI6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTA5LTA1IDExOjUwOjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkgIGR2ZGVtdXg6IHJlbW92ZSBvYnNvbGV0ZSB1cGRhdGUgbmV3c2VnbWVudCBoYW5kbGluZyBjb2RlCgoyMDEyLTA5LTA0IDEyOjM1OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICB2aWRlb2JhbGFuY2U6IGF2b2lkIGRlYWRsb2NrCgkgIF91cGRhdGVfcHJvcGVydGllcyB0YWtlcyB0aGUgb2JqZWN0IGxvY2sgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIHdoZW4gdGhlCgkgIG9iamVjdCBsb2NrIGlzIGFscmVhZHkgdGFrZW4uCgoyMDEyLTA5LTAzIDEyOjQ2OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZXh0cmFjdCBpbnRlcmxhY2VkLW5lc3Mgb2YgdmlkZW8gdHJhY2sgZnJvbSBpbnRlcmxhY2UtbW9kZSBmaWVsZAoJICBpbnN0ZWFkIG9mIHRoZSBvbGQgYm9vbGVhbiAiaW50ZXJsYWNlZCIgZmllbGQuCgoyMDEyLTA5LTAzIDAyOjUxOjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F2aW11eC5jOgoJICB2aWRlby94LXh2aWQgLT4gdmlkZW8vbXBlZyxtcGVndmVyc2lvbj00CgoyMDEyLTA5LTAyIDAyOjUwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIHRleHQvcGxhaW4gKyB0ZXh0L3gtcGFuZ28tbWFya3VwIC0+IHRleHQveC1yYXcKCjIwMTItMDktMDIgMDE6MzE6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uIC0+IGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbl9jaGFuZ2VkCgoyMDEyLTA4LTMwIDIyOjA3OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBzZXNzaW9uOiBhbHNvIHN0b3AgcHJvYmF0YXRpb24gb24gZXhpc3Rpbmcgc291cmNlcwoJICBSZWNlaXZpbmcgYW4gUlRDUCBwYWNrZXQgc2hvdWxkIGFsc28gc3RvcCBwcm9iYXRpb24gb24gc291cmNlcyB3ZSBoYXZlIHNlZW4KCSAgYmVmb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzMDY1CgoyMDEyLTA4LTIyIDE2OjM2OjIxIC0wNzAwICBBbGVpeCBDb25jaGlsbG8gRmxhcXVlIDxhbGVpeEBvYmxvbmcuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRwOiBtYWtlIHJ0cCBwYWNrZXQgcHJvYmF0aW9uIGNvbmZpZ3VyYWJsZSAoYnVnICM2ODI1MTIpCgoyMDEyLTA4LTMwIDEyOjIxOjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zm92ZXJsYXkuYzoKCSAgZ2RrcGl4YnVmOiBhZGp1c3QgdG8gbW9kaWZpZWQgdmlkZW8gb3ZlcmxheSBjb21wb3NpdGlvbiBBUEkKCjIwMTItMDgtMzAgMTE6MzA6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBmaXh1cCAwLjExIHBvcnQgb2Ygc3VzcGVjdCBmcmFtZSBjaGVja2luZwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTU5CgoyMDEyLTA4LTI4IDE4OjU2OjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGF2b2lkIGludmFsaWQgSDI2NCBieXRlc3RyZWFtIGNvZGVjX2RhdGEKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTM2OQoKMjAxMi0wOC0yOCAxOTowMDo0NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogcG9ydCBzZWdtZW50IGV2ZW50IGNyZWF0aW9uIHRvIDAuMTEKCjIwMTItMDgtMjggMTY6Mjg6MTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHJlbGVhc2UgZXh0cmEgZXZlbnQgcmVmIHdoZW4gcmVwbGFjaW5nIHBlbmRpbmcgbmV3c2VnbWVudCBldmVudAoKMjAxMi0wNy0wMyAxNzo1MDoyNCArMDIwMCAgRGF2aWQgQ29ydm95c2llciA8ZGF2aWQuY29ydm95c2llckBvcmFuZ2UuY29tPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eF9kdW1wLmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eF9kdW1wLmg6CgkqIGdzdC9pc29tcDQvcXRkZW11eF9mb3VyY2MuaDoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmM6CgkgIGlzb21wNDogYWRkIERBU0ggdGZkdCBib3ggc3VwcG9ydAoJICBNUEVHIERBU0ggaGFzIGRlZmluZWQgYSBzZXQgb2YgbmV3IGJveGVzIHRvIHNwZWNpZnkgZHVyYXRpb24sIGluZGV4ZXMgYW5kCgkgIG9mZnNldHMgb2YgSVNPQk1GRiBmcmFnbWVudHMuCgkgIFRoZSBUcmFjayBGcmFnbWVudCBCYXNlIE1lZGlhIERlY29kZSBUaW1lICh0ZmR0KSBCb3ggY2FuIGluIHBhcnRpY3VsYXIgYmUKCSAgaW5jbHVkZWQgaW5zaWRlIGEgdHJhZiBib3ggdG8gc3BlY2lmeSB0aGUgYWJzb2x1dGUgZGVjb2RlIHRpbWUsIG1lYXN1cmVkIG9uIHRoZQoJICBtZWRpYSB0aW1lbGluZSwgb2YgdGhlIGZpcnN0IHNhbXBsZSBpbiBkZWNvZGUgb3JkZXIgaW4gdGhlIHRyYWNrIGZyYWdtZW50LgoJICBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIGJ5IHRoZSBpc29tcDQgZGVtdXggdG8gZmluZCBvdXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YKCSAgYW4gTVA0IGZyYWdtZW50IGluIHRoZSB0aW1lbGluZS4KCSAgVGhpcyBwYXRjaCBhZGRzIGNvZGUgdG8gaXNvbXA0IHRvOgoJICAtIHBhcnNlIHRoZSB0ZmR0IGJveAoJICAtIGFkanVzdCB0aGUgdGltZS9wb3NpdGlvbiBtZW1iZXIgb2YgdGhlIG5ldyBzZWdtZW50IHNlbnQgd2hlbiBwbGF5YmFjayBzdGFydHMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzUzNQoKMjAxMi0wOC0yNiAyMjozOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmM6CgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY3RhZy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZvdmVybGF5LmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwY2xpZW50c2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGV4dC90YWdsaWIvZ3N0YXBldjJtdXguY2M6CgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9lY2hvLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlva2FyYW9rZS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3R3YXZwYWNrcGFyc2UuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zcmMuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmM6CgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHB1c2hmaWxlc3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdG9wLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJpcHBsZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHN0cmVhay5jOgoJKiBnc3QvZWZmZWN0di9nc3R2ZXJ0aWdvLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVybmJhbmRzLmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJKiBnc3QvZ29vbTJrMS9nc3Rnb29tLmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9pc29tcDQvYXRvbXNyZWNvdmVyeS5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LWRvYy5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL3dlYm0tbXV4LmM6CgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmM6CgkqIGdzdC9ydHAvUkVBRE1FOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnJhZGlvLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3Jtc2luay5jOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jYWlyby9jYWlyb19vdmVybGF5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtQU1SLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3Auc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1WVFMtSDI2M3AtQVRTLVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItVlRTLUgyNjNwLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWFsc2FzcmMtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1kZWNvZGViaW4tSDI2M3AtQU1SLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLXY0bDItSDI2M3AtYWxzYXNyYy1BTVIuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjY0LWFsc2FzcmMtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvc2hhcGV3aXBlL3NoYXBld2lwZS1leGFtcGxlLmM6CgkqIHRlc3RzL2ljbGVzL2dka3BpeGJ1ZnNpbmstdGVzdC5jOgoJKiB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOgoJICBkb2NzOiBnc3QtbGF1bmNoIC0+IGdzdC1sYXVuY2gtMS4wIGFuZCBmZm1wZWdjb2xvcnNwYWNlIC0+IHZpZGVvY29udmVydAoKMjAxMi0wOC0yNiAyMjozMjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgZG9jczogZ3N0LWxhdW5jaC0wLjExIC0+IGdzdC1sYXVuY2gtMS4wCgoyMDEyLTA4LTI2IDIyOjA4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiB0aGUgZmllbGQgaW4gY2FwcyBpcyAiaW50ZXJsYWNlLW1vZGUiIG5vdCAiaW50ZXJsYWNlLW1ldGhvZCIKCSAgRml4IGRlaW50ZXJsYWNlIHVuaXQgdGVzdC4gTmVlZCB0byBzZXQgcmlnaHQgZmllbGQgb24gb3V0cHV0IGNhcHMuCgkgIEFsc28gcmVtb3ZlIHJpZ2h0IGZpZWxkIChub3Qgb2xkIDAuMTAgImludGVybGFjZWQiIGJvb2xlYW4gZmllbGQpCgkgIGZyb20gY2FwcyBpbiB1bml0IHRlc3QgYmVmb3JlIGNvbXBhcmluZyBvbGQgYW5kIG5ldy4KCjIwMTItMDgtMjYgMjE6NDU6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pY3lkZW11eC5jOgoJICB0ZXN0czogZml4IGljeWRlbXV4IHVuaXQgdGVzdAoJICBXYXMgd2FpdGluZyBmb3IgYSB0YWcgbWVzc2FnZSBvbiB0aGUgYnVzLCB3aGljaCB3b3VsZCBuZXZlcgoJICBjb21lLCBiZWNhdXNlIGVsZW1lbnRzIGRvbid0IHBvc3QgdGhvc2UgdGhlbXNlbHZlcyBhbnkgbW9yZQoJICBidXQgbGV0IHNpbmtzIHBvc3QgdGhlbSBmcm9tIHRhZyBldmVudHMuIE9ubHkgdGhhdCB0aGVyZSBhcmUKCSAgbm8gc2lua3MgaW4gdGhpcyB1bml0IHRlc3QuCgoyMDEyLTA4LTI2IDIxOjI3OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6CgkgIHRlc3RzOiBmaXggdmlkZW9jcm9wIGNyb3BfdG9fMXgxIHVuaXQgdGVzdCBmb3IgR1JBWTggZm9ybWF0CgkgIFVwZGF0ZSB0YWJsZSB3aXRoIHBpeGVsIHZhbHVlcyB3aXRoIHRoZSB2YWx1ZSBhY3R1YWxseSBwcm9kdWNlZAoJICBieSB2aWRlb3Rlc3RzcmMuCgoyMDEyLTA4LTI3IDA5OjAwOjQ1ICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IE9ubHkgcHJpbnQgY2FwcyBpZiB0aGV5J3JlIHByb3ZpZGVkCgoyMDEyLTA4LTI0IDE5OjQzOjA4ICswMTAwICBNaWNoYWVsIFJ1Ymluc3RlaW4gPG1ydWJpbnN0ZWluQHJhaS1kZXYuY29tPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuYzoKCSAgdmlkZW9taXhlcjogZml4IGVuZGlhbm5lc3MgY2hlY2sgb24gc3lzdGVtcyB3aGVyZSBub24tZ2xpYiBlbmRpYW5uZXNzIGRlZmluZXMgYXJlIG5vdCBzZXQKCSAgT24gV2luZG93cyBMSVRUTEVfRU5ESUFOIHdpdGhvdXQgdGhlIEdfIGluIHdhcyBub3QgZGVmaW5lZCwgIHNvIHRoZQoJICB0ZXN0IGNvbWVzIG91dCB3cm9uZy4KCjIwMTItMDgtMjIgMTc6MjM6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICB1ZHBzaW5rOiBkb24ndCBjcmFzaCBvbiBOVUxMIGVycm9yCgkgIENoZWNrIGlmIHRoZXJlIGlzIGFuIGVycm9yIGJlZm9yZSByZXRyaWV2aW5nIGl0cyBtZXNzYWdlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MjQ4MQoKMjAxMi0wOC0yMiAxMzozMDoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjY4YWNlZSB0byA0Zjk2MmY3CgoyMDEyLTA4LTIyIDEzOjE4OjAwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgZ3RrLWRvYyByZXEgdG8gMS4xMiAobWFyLTIwMDkpCgkgIFRoaXMgYWxsb3dzIHVzIHRvIGUuZy4gdW5jb25kaXRpb25hbGx5IHVzZSBndGtkb2MtcmViYXNlLgoKMjAxMi0wOC0yMiAxMToyMTozOCArMDIwMCAgTWFydGluIEVydHNhYXMgPG1lcnRzYXNAY2lzY28uY29tPgoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5oOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogTWFrZSBvc3h2aWRlb3NpbmsgdXNlIHRoZSBub24tZGVwcmVjYXRlZCB0aHJlYWRpbmcgYXBpIGZyb20gZ2xpYi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MjQ0NgoKMjAxMi0wOC0xNCAxNTo0MDozMSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IEhhbmRsZSBuZWdvdGlhdGlvbiBldmVudHMKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2U6CgkgIGEpIERlc3Ryb3kgYW4gZXhpc3Rpbmcgc3RyZWFtIGlmIGEgbmVnb3RpYXRlKCkgcmVxdWVzdCBjb21lcyBpbjogdGhpcyBpcwoJICByZXF1aXJlZCB3aGVuIHJlY2VpdmluZyBhIGRvd25zdHJlYW0gcmVuZWdvdGlhdGlvbiByZXF1ZXN0IGFmdGVyIGEKCSAgc3RyZWFtIGhhcyBiZWVuIGNyZWF0ZWQuCgkgIGIpIENyZWF0ZSBhIG5ldyBzdHJlYW0gb24gcHJlcGFyZSgpOiB0aGlzIGlzIHJlcXVpcmVkIHNpbmNlIHdlIGRvIGEKCSAgc2V0Y2FwcygpIGluIG5lZ290aWF0ZSgpLCB3aGljaCBjYXVzZXMgdGhlIHN0cmVhbSB0byBiZSBkcm9wcGVkIGJ5IGEKCSAgcmluZ2J1ZmZlciByZWxlYXNlKCkgY2FsbCAodGhpcyBkb2VzIG5vdCBoYXBwZW4gZHVyaW5nIGZpcnN0IG5lZ290aWF0aW9uCgkgIHNpbmNlIHRoZSByZWxlYXNlIGlzIG9ubHkgZG9uZSBvbiBhIHJ1bm5pbmcgcmluZ2J1ZmZlcikuIFRoZSBzdWJzZXF1ZW50CgkgIGNhbGwgdG8gcmluZ2J1ZmZlciBhY3F1aXJlKCkgZmFpbHMgYmVjYXVzZSB0aGUgc3RyZWFtIHdhcyBsb3N0IG9uCgkgIHJlbGVhc2UoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTI0NwoKMjAxMi0wOC0xNCAxNTozODoyNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmM6CgkgIHB1bHNlOiBDbGVhciB1bnBvc2l0aW9uZWQgZmxhZyB3aGVuIHNldHRpbmcgcG9zaXRpb25zCgkgIElmIGNvbnZlcnRpbmcgYSBQQSBjaGFubmVsIG1hcCB0byBnc3QgY2hhbm5lbCBwb3NpdGlvbnMgcmVzdWx0cyBpbiBhCgkgIHZhbGlkIHNldCBvZiBjaGFubmVsIHBvc2l0aW9ucywgd2UgY2xlYXIgdGhlIHVucG9zaXRpb25lZCBmbGFnIGZyb20gdGhlCgkgIHJpbmdidWZmZXIgc3BlYy4KCjIwMTItMDgtMTQgMDk6Mzc6NDUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBSZW1vdmUgcmVkdW5kYW50IGNoYW5uZWwtbWFzayBzZXR0aW5nIGZvciBzdGVyZW8gY2FzZQoJICBUaGUgZ3N0YXVkaW8gaGVscGVyIGxpYnJhcmllcyBhbHJlYWR5IHRha2UgY2FyZSBvZiB0aGlzIGNhc2UgZm9yIHVzLgoKMjAxMi0wOC0xNCAwOTozNjozMCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IERvbid0IHVzZSBtZW1zZXQgdG8gc2V0IGludmFsaWQgY2hhbm5lbCBwb3NpdGlvbnMKCSAgVGhpcyBpdGVyZWF0ZXMgb3ZlciB0aGUgR3N0QXVkaW9JbmZvIHRvIHNldCBpbnZhbGlkIGNoYW5uZWwgcG9zaXRpb25zCgkgIHJhdGhlciB0aGFuIHVzZSBtZW1zZXQoKSB3aGljaCB3b3JrcyByaWdodCBub3cgYmVjYXVzZSBpdCBhc3N1bWVzIHRoYXQKCSAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fSU5WQUxJRCBpcyAtMS4KCjIwMTItMDgtMjIgMTA6MzA6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZzaW5rLmM6CgkgIGdka3BpeGJ1ZnNpbms6IG1pbm9yIGRvY3MgaW1wcm92ZW1lbnQKCjIwMTItMDgtMjIgMTA6MjM6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmcGx1Z2luLmM6CgkgIGdka3BpeGJ1ZjogcmUtZW5hYmxlIGFscmVhZHktcG9ydGVkIGdka3BpeGJ1ZnNpbmsKCjIwMTItMDgtMjIgMTA6MDg6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmb3ZlcmxheS5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZvdmVybGF5Lmg6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnBsdWdpbi5jOgoJICBnZGtwaXhidWY6IHBvcnQgZ2RrcGl4YnVmb3ZlcmxheSBlbGVtZW50IHRvIDAuMTEKCjIwMTItMDgtMjIgMDA6MDA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9nZGtfcGl4YnVmL01ha2VmaWxlLmFtOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmg6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZmRlYy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZkZWMuaDoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmcGx1Z2luLmM6CgkgIGdka3BpeGJ1ZjogcmUtZW5hYmxlIGFscmVhZHktcG9ydGVkIGdka3BpeGJ1ZiBlbGVtZW50IGFzIGdka3BpeGJ1ZmRlYwoJICBOb3Qgc3VyZSB3aHkgaXQgYXMgZGlzYWJsZWQgZXhhY3RseSBnaXZlbiB0aGF0IGl0IGhhZCBhbHJlYWR5CgkgIGJlZW4gcG9ydGVkICh0aG91Z2ggd2l0aG91dCBtZXRhcyBvciBiYXNlY2xhc3MpLgoJICBNb3ZlIHBsdWdpbl9pbml0IGJpdHMgaW50byBzZXBhcmF0ZSBzb3VyY2UgZmlsZSwgYW5kIHJlbmFtZQoJICBkZWNvZGVyIGVsZW1lbnQgdG8gZ2RrcGl4YnVmZGVjLgoKMjAxMi0wOC0yMSAyMzoyNTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdF9sb2FkZXIuYzoKCSAgZ2RrcGl4YnVmOiByZW1vdmUgb2xkIGFuZCB1bnVzZWQgZ3N0X2xvYWRlciBzb3VyY2UgZmlsZQoJICBPbmNlIHVwb24gYSB0aW1lIHVzZWQgdG8gbG9hZCBHU3RyZWFtZXIgdmlkcyB2aWEgR2RrUGl4YnVmIEFQSS4KCjIwMTItMDgtMTYgMTY6NTE6MTYgLTA3MDAgIEFsZWl4IENvbmNoaWxsbyBGbGFxdWUgPGFsZWl4QG9ibG9uZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBtYWtlIGppdHRlcmJ1ZmZlciBkcm9wLW9uLWxhdGVuY3kgYXZhaWxhYmxlIChmaXggIzY4MjA1NSkKCSAgQ29uZmxpY3RzOgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmgKCjIwMTItMDgtMjEgMTk6NDc6NDUgKzA4MDAgIEh1YWNhaSBDaGVuIDxjaGVuaGNAbGVtb3RlLmNvbT4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMjogbWFrZSBnc3RfdjRsMl9maWxsX2xpc3RzKCkgYWRhcHQgdG8ga2VybmVsIDMuMysKCSAgV2hlbiBkbyB2NGwyX2lvY3RsKCkgd2l0aCBWSURJT0NfRU5VTUlOUFVUIGZhaWxzIG9uIHNvbWUgZGV2aWNlcywKCSAga2VybmVscyBiZWZvcmUgMy4zLjAgcmV0dXJuIEVJTlZBTCwgYnV0IG5ld2VyIGtlcm5lbHMgcmV0dXJuIEVOT1RUWS4KCSAgVGhpcyBwYXRjaCBtYWtlIHRob3NlIGRldmljZXMgd29yayB3ZWxsIG9uIGtlcm5lbCAzLjMrLgoJICBSZWxhdGVkIGtlcm5lbCBjb21taXQ6CgkgIGh0dHA6Ly9naXQua2VybmVsLm9yZy8/cD1saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdDthPWNvbW1pdDtoPTA3ZDEwNmQwYTMzZDYwNjNkMjA2MTMwNTkwM2RlYjAyNDg5ZWJhMjAKCSAgU2lnbmVkLW9mZi1ieTogSHVhY2FpIENoZW4gPGNoZW5oY0BsZW1vdGUuY29tPgoJICBTaWduZWQtb2ZmLWJ5OiBSdWkgV2FuZyA8d2FuZ3JAbGVtb3RlLmNvbT4KCSAgU2lnbmVkLW9mZi1ieTogSmllIENoZW4gPGNoZW5qQGxlbW90ZS5jb20+CgoyMDEyLTA4LTIwIDIzOjMwOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIHZpZGVvL3gtZHZkLXN1YnBpY3R1cmUgLT4gc3VicGljdHVyZS94LWR2ZAoKMjAxMi0wOC0xNyAyMDo1Mjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgIG11bHRpZmlsZXNyYzogZml4IGV4YW1wbGUgcGlwZWxpbmUgaW4gZG9jcwoKMjAxMi0wOC0xNyAxNDo1OTo1NyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9lcXVhbGl6ZXIuYzoKCSAgZXF1YWxpemVyOiBlbmFibGUgcHJlc2V0cyBmb3IgdGhlIG4tYmFuZCBlcXVhbGl6ZXIKCSAgQWRkIGEgdGVzdCBmb3Igc2F2aW5nIGFuZCByZXN0b3JpbmcgdGhlIHByZXNldC4KCjIwMTItMDgtMTQgMDE6MjA6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGZpeCBub3QtbmVnb3RpYXRlZCBlcnJvcnMgb24gdmFyaWFibGUgb3IgbWlzc2luZyBmcmFtZXJhdGUgaW4gaW5wdXQgY2FwcwoJICBSZW1vdmUgc29tZSBib2d1cyBjb2RlIEkgYWRkZWQgZHVyaW5nIHBvcnRpbmcgdGhhdCB3b3VsZCBlcnJvciBvdXQKCSAgb24gbWlzc2luZyBvciB2YXJpYWJsZSBmcmFtZXJhdGVzIGluIGlucHV0IGNhcHMuIEhhbmRsZSB0aGlzIGxpa2UKCSAgd2UgZG8gaW4gMC4xMAoJICBGaXhlcyB0ZXN0X21vZGVfZGlzYWJsZWRfcGFzc3Rocm91Z2ggdW5pdCB0ZXN0IGNoZWNrLgoKMjAxMi0wOC0xMiAxMzoxNjozMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOgoJICBsYXc6IEZpbHRlciBsYXlvdXQgY2FwcyBmaWVsZAoJICBUaGUgbGF5b3V0IGNhcHMgZmllbGQgc2hvdWxkbid0IGJlIHBhc3NlZCB0aHJvdWdoIHRvIHRoZSBzaW5rIHBhZAoJICBvZiB7bXUsYX1sYXdkZWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODE2NzcKCjIwMTItMDgtMDkgMTk6NDE6MzQgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogYWxsb3cgYSBUT0Mgd2l0aCBzaW5nbGUgYWx0ZXJuYXRpdmUgdG9wLWxldmVsIGVudHJ5CgkgIEFsbG93IGEgVE9DIHRoYXQgaGFzIGEgc2luZ2xlIGFsdGVybmF0aXZlIHRvcC1sZXZlbCBlbnRyeQoJICB3aXRoIG11bHRpcGxlIHNlcXVlbmNlIHN1Yi1lbnRyaWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NDA4OTEKCjIwMTItMDgtMDkgMTA6MzE6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFuZCBmaXggdGhlIEdUSyBjaGVjayB0byB1c2UgdGhlIGNvcnJlY3QgcGtnLWNvbmZpZyBwYWNrYWdlIG5hbWUKCjIwMTItMDgtMDkgMTA6MjU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEZpeCBHVEsgcmVxdWlyZWQgdmVyc2lvbiB2YXJpYWJsZSBuYW1lCgoyMDEyLTA4LTA5IDA4OjM1OjIzICswMTAwICBNYXR0aGlhcyBDbGFzZW4gPG1jbGFzZW5AcmVkaGF0LmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IGZpeCBidWlsZCB3aXRoIHJlY2VudCBrZXJuZWxzLCB0aGUgdjRsMl9idWZmZXIgaW5wdXQgZmllbGQgd2FzIHJlbW92ZWQKCSAgVGhpcyB3YXMgdW51c2VkIGFwcGFyZW50bHkgYW5kIHJlbW92ZWQgaW4gdGhlIGtlcm5lbCBpbiBjb21taXQ6CgkgIEZyb20gMmI3MTlkN2JhZjQ5MGUyNGNlN2Q4MTdjNjMzN2I3Yzg3ZmRhODRjMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKCSAgRnJvbTogU2FrYXJpIEFpbHVzIDxzYWthcmkuYWlsdXNAaWtpLmZpPgoJICBEYXRlOiBXZWQsIDIgTWF5IDIwMTIgMDk6NDA6MDMgLTAzMDAKCSAgU3ViamVjdDogW1BBVENIXSBbbWVkaWFdIHY0bDogZHJvcCB2NGwyX2J1ZmZlci5pbnB1dCBhbmQgVjRMMl9CVUZfRkxBR19JTlBVVAoJICBSZW1vdmUgaW5wdXQgZmllbGQgaW4gc3RydWN0IHY0bDJfYnVmZmVyIGFuZCBmbGFnIFY0TDJfQlVGX0ZMQUdfSU5QVVQgd2hpY2gKCSAgdGVsbHMgdGhlIGZvcm1lciBpcyB2YWxpZC4gVGhlIGZsYWcgaXMgdXNlZCBieSBubyBkcml2ZXIgY3VycmVudGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNDkxCgkgIENvbmZsaWN0czoKCSAgc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYwoKMjAxMi0wOC0wOCAxNzoyNTozNiAtMDcwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJICBydHBoMjY0cGF5OiBNYWtlIGl0IGFjdHVhbGx5IHdvcmsgYWZ0ZXIgY2xlYW51cHMKCjIwMTItMDgtMDggMTc6Mzk6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgZ3N0OiBTZXQgYWxpZ25tZW50IGF0IHRoZSBjb3JyZWN0IHBsYWNlIG9mIEdzdEFsbG9jYXRpb25QYXJhbXMKCjIwMTItMDgtMDggMTY6MjU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTMgPT09CgoyMDEyLTA4LTA4IDE1OjIyOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45MwoKMjAxMi0wOC0wOCAxNToxNzoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL2NvbW1vbi90dW5lci1lbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL3R1bmVyLWVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vdHVuZXItbWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vdHVuZXItbWFyc2hhbC5oOgoJICB3aW4zMjogYWRkIGdlbmVyYXRlZCB0dW5lci1tYXJzaGFsL2VudW10eXBlcyBmaWxlcyBmb3IgdjRsMnNyYyBhbmQgdXBkYXRlCgkgIEFuZCBnc3QtaW5kZW50IHRoZSByaWdodCBydHAgbWFyc2hhbCBmaWxlczsgYWRkIG1pc3NpbmcgZmlsZXMgdG8gTUFOSUZFU1QuCgoyMDEyLTA4LTA4IDE1OjEwOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0LmM6CgkgIGdzdDogdXBkYXRlIGRpc3RlZCBvcmMgZmlsZXMKCjIwMTItMDgtMDggMTE6MzE6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgU2lsZW5jZSBzb21lICd2YXJpYWJsZSBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkJyBjb21waWxlciB3YXJuaW5ncwoJICBXaGVuIGNvbXBpbGluZyB3aXRoIC1ER19ESVNBQkxFX0FTU0VSVAoKMjAxMi0wOC0wOCAxMDo1Njo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG1vb3ZyZWNvdmVyLmM6CgkqIHRlc3RzL2ljbGVzL3hpbWFnZXNyYy10ZXN0LmM6CgkgIE5vIGNvZGUgd2l0aCBzaWRlLWVmZmVjdHMgaW5zaWRlIGdfYXNzZXJ0KCkgcGxlYXNlCgoyMDEyLTA4LTA3IDExOjE0OjIxIC0wNzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgbXVsdGl1ZHBzaW5rOiBSZXR1cm4gRkxVU0hJTkcgaW5zdGVhZCBvZiBFUlJPUiBvbiB1bmxvY2sKCSAgSWYgdGhlIGJhc2UgY2xhc3MgYXNrcyBtdWx0aXVkcHNpbmsgdG8gdW5sb2NrLCB0aGVuIGl0IHNob3VsZCByZXR1cm4KCSAgRkxVU0hJTkcsIG5vdCBFUlJPUgoKMjAxMi0wNy0yNiAxNjoxOTo1NyArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmg6CgkgIGZsYWNlbmM6IGFkZCBUT0Mgc3VwcG9ydAoJICBBZGQgVE9DIGFzIGVtYmVkZGVkIGN1ZXNoZWV0cyBpbiBmbGFjIGZpbGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQwODkKCjIwMTItMDgtMDcgMTI6MTI6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBnZW5lcmF0ZSBlbXB0eSB2b3JiaXNjb21tZW50IGZvciBjb21wbGV0ZSBzdHJlYW1oZWFkZXJzIGlmIG5lZWRlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMzM1CgoyMDEyLTA4LTA2IDE4OjAyOjUwIC0wNzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgIHJ0cHNzcmNkZW11eDogQmxvY2sgcGFkIHdoaWxlIGl0IGlzIGFubm91bmNlZC4KCSAgQmxvY2sgdGhlIFJUUCBwYWQgYW5kIGFzc29jaWF0ZWQgUlRDUCBwYWRzIHdoaWxlIHRoZXkgYXJlIGJlaW5nCgkgIGFubm91bmNlZC4gVGhpcyBpdCB0byBwcmV2ZW50IGEgcmFjZSB3aGVyZSBvbmUgaXMgYW5ub3VuY2VkIGFuZAoJICBiZWZvcmUgdGhlIGNhbGxiYWNrIGhhcyBjb25uZWN0ZWQgaXQsIHRoZSBvdGhlciBvbmUgZ2V0cyBhIGJ1ZmZlci4KCSAgV2UgY2FuJ3QgdXNlIHRoZSAicGFkbG9jayIgb2Ygc3NyY2RlbXV4IGJlY2F1c2UgaXQgY2F1c2VzIGRlYWRsb2Nrcy4KCjIwMTItMDgtMDYgMTU6MDA6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVuLWRvIGFjY2lkZW50YWwgY29tbW9uIHVwZGF0ZSByZXZlcnQgaW4gY29tbWl0IDdiNTkyNWI1CgoyMDEyLTA4LTA2IDE0OjUwOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSAgcnRwbXBhcm9idXN0ZGVwYXk6IHNldCBjb3JyZWN0IGRhdGFfc2l6ZSBmb3IgZ2VuZXJhdGVkIGR1bW15IGZyYW1lCgkgIC4uLiB3aGljaCBwcmV2ZW50cyBnZXR0aW5nIHN0dWNrIGluIGEgbG9vcCBpZiBzdWNoIG9uZSBpcyBuZWVkZWQuCgoyMDEyLTA4LTA2IDE0OjUwOjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSAgcnRwbXBhcm9idXN0ZGVwYXk6IGltcHJvdmUgYW5kIGZpeCBkZWJ1ZyBzdGF0ZW1lbnQKCSAgLi4uIHNvIGl0IHJlYWxseSBpbmZvcm1zIGFib3V0IG5leHQgcmF0aGVyIHRoYW4gcGFzdCBmcmFtZS4KCjIwMTItMDgtMDYgMTI6MzQ6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJICBydHBtcGFyb2J1c3RkZXBheTogdXBkYXRlIGF2YWlsYWJsZSBieXRld3JpdGVyIHNwYWNlIHdoZW4gcmVwb3NpdGlvbmluZwoJICAuLi4gYW5kIGFkZCBzb21lIG1vcmUgYXNzZXJ0IHRvIGNhdGNoIHBvdGVudGlhbCBzdXJwcmlzZXMgZWFybHkgb24uCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA1NTgKCjIwMTItMDgtMDQgMTI6NDc6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBnc3Q6IEFkZCBzdHJlYW0taWQgdG8gc3RyZWFtLXN0YXJ0IGV2ZW50cwoKMjAxMi0wOC0wNCAxMjo1NDozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogQ2hhaW4gdXAgdG8gdGhlIHBhcmVudCBjbGFzcycgcXVlcnkgaGFuZGxlciBpZiBubyBwYWQgaXMgcHJvdmlkZWQKCjIwMTItMDgtMDIgMDE6NDg6MjkgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBhZGQgYSBiZXR0ZXIgZGV0ZWN0aW9uIGZvciB0aGUgbWFpbiBydW4gbG9vcAoKMjAxMi0wNy0yNyAxNjoxMzo0OSArMDIwMCAgWGF2aSBBcnRpZ2FzIDx4YXJ0aWdhc0BmbHVlbmRvLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiBEbyBub3Qgb3ZlcndyaXRlIHRoZSBEUyBidWZmZXIgd2hlbiB0ZXN0aW5nIGZvciBBQzMgc3VwcG9ydAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzA2CgkgIENvbmZsaWN0czoKCSAgc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jCgoyMDEyLTA4LTA1IDE2OjM5OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NGNjZjRjIHRvIDY2OGFjZWUKCjIwMTItMDgtMDMgMTY6MTM6NTIgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgcnRwc3NyY2RlbXV4OiBSZWxlYXNlIGxvY2sgYmVmb3JlIHNpZ25hbGxpbmcgbmV3IHBhZAoJICBUaGlzIHByZXZlbnRzIGEgZGVhZGxvY2sgd2hlcmUgc29tZXRoaW5nIHdvdWxkIHRyeSB0byBwdXNoIGFuIGV2ZW50CgkgIHRocm91Z2ggdGhlIFNTUkMgZGVtdXggZnJvbSB0aGUgY2FsbGJhY2ssIGNhdXNpbmcgdGhlIHBhZHMgdG8gYmUgaXRlcmF0ZWQKCSAgYW5kIHRoZSBsb2NrIHRha2VuLgoKMjAxMi0wOC0wNCAxNjoxMDoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY3RhZy5jOgoJKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0dGFnaW5qZWN0LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hcGV2Mm11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pY3lkZW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDNkZW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDN2Mm11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy90YWdzY2hlY2tpbmcuYzoKCSAgZ3N0X3RhZ19saXN0X2ZyZWUgLT4gZ3N0X3RhZ19saXN0X3VucmVmCgoyMDEyLTA4LTAzIDE0OjEwOjMyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogbWFuYWdlIHJhY2UgYmV0d2VlbiBjb25uZWN0aW9uIGNsb3NpbmcgYW5kIGZsdXNoaW5nCgkgIC4uLiB3aGVyZSB0aGUgZm9ybWVyIGNhbiBoYXBwZW4gaW4gdGFzayB0aHJlYWQgYW5kIHRoZSBsYXR0ZXIgaW4gbWFpbmxvb3AKCSAgdXBvbiBkb3dud2FyZCBzdGF0ZSBjaGFuZ2UuCgoyMDEyLTA4LTAzIDE0OjAyOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogaW1wcm92ZSBhbmQgcmVsYXggYXVkaW8gZnJhbWUgcGFyc2luZwoJICAuLi4gc28gYXMgdG8gcHJvcGVybHkgcmVjb2duaXplIGZpcnN0IGF1ZGlvIGZyYW1lLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMDc3CgkgIENvbmZsaWN0czoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jCgoyMDEyLTA4LTAxIDEyOjE2OjQxICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBkb3VibGUgdW5yZWYgb2YgcHJpdmF0ZSB0YWcgYnVmZmVyCgoyMDEyLTA3LTMwIDE3OjU0OjUxICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGNyZWF0ZSBUT0MgYXMgbmVlZGVkCgkgIEF2b2lkIGNyZWF0aW5nIHRoZSB0b2MgaWYgdGhlIHdhdiBoYXMgbm8gb3IgZW1wdHkgY3VlIGNodW5rLgoJICBBbHNvIGEgc21hbGwgY29kZSBjbGVhbnVwLgoKMjAxMi0wNy0yOCAxMToyNjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB3YXZwYXJzZTogdXBkYXRlIGZvciBUT0MgQVBJIGNoYW5nZXMKCjIwMTItMDctMjggMTE6MjI6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSAgbWF0cm9za2E6IHVwZGF0ZSBmb3IgVE9DIEFQSSBjaGFuZ2VzCgoyMDEyLTA3LTI4IDExOjIwOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiB1cGRhdGUgZm9yIFRPQyBBUEkgY2hhbmdlcwoKMjAxMi0wNy0yOCAwMDoxOTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0dGFnaW5qZWN0LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ3ZvbHVtZS5jOgoJICB0YWc6IFVwZGF0ZSBmb3IgdGFnbGlzdC90YWcgZXZlbnQgQVBJIGNoYW5nZXMKCjIwMTItMDctMjcgMTI6MDU6NDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L2lzb21wNC1wbHVnaW4uYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0KGRlKW11eDogcGFzcyBwcml2YXRlIGJsb2IgdGFncyBpbiBhIHNhbXBsZQoJICAuLi4gcmF0aGVyIHRoYW4gYSBidWZmZXIsIGFuZCB0aGUgZGV0YWlsZWQgaW5mbyBpbiB0aGUgc2FtcGxlIGluZm8KCSAgcmF0aGVyIHRoYW4gY2Fwcy4KCjIwMTItMDctMjcgMTE6MzE6MTMgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6CgkgIHZpZGVvY3JvcDogRG9uJ3QgcmV0dXJuIE5VTEwgZnJvbSBfdHJhbnNmb3JtX2NhcHMKCSAgSWYgX3RyYW5zZm9ybV9jYXBzICgpIHJldHVybnMgTlVMTCwgdGhlIGJhc2V0cmFuc2Zvcm0gX3RyYW5zZm9ybV9jYXBzCgkgIHRyaWVzIHRvIGNhbGwgZ3N0X2NhcHNfaXNfc3Vic2V0ICgpIHdpdGggYSBOVUxMIHN1YnNldCB3aGljaCBoaXRzIGFuCgkgIGFzc2VydGlvbi4KCjIwMTItMDctMjcgMTE6MjY6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBvYnRhaW4gaW1hZ2UgdHlwZSBmcm9tIHRoZSBzYW1wbGUgaW5mbwoKMjAxMi0wNy0yNyAxMToyNTo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWNlbmM6IHJlbW92ZSBleHRyYW5lb3VzIF91bnJlZgoJICAuLi4gc2luY2Ugd2UgZGlkIG5vdCBvYnRhaW4gYSBidWZmZXIgcmVmIGZyb20gdGhlIEdzdFNhbXBsZS4KCjIwMTItMDctMjcgMTA6MTQ6MjMgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogVXBkYXRlIHRvIHVzZSBHc3RTYW1wbGUgdGFnIHNldHRpbmcgQVBJCgoyMDEyLTA3LTI2IDE2OjM0OjIxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSAgcnRwbXBhcm9idXN0ZGVwYXk6IG1vZGlmeSBidWZmZXIgZGF0YSByYXRoZXIgdGhhbiBidWZmZXIgaXRzZWxmCgoyMDEyLTA3LTI2IDE2OjI4OjMzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSAgcnRwbXBhcm9idXN0ZGVwYXk6IGF2b2lkIGxlYWtpbmcgYnl0ZXdyaXRlciBpbnN0YW5jZQoKMjAxMi0wNy0yNiAxNjowNDoyMyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggdGltZXN0YW1wIGFkanVzdG1lbnQgYW5kIGNhcHMKCjIwMTItMDctMjYgMTY6MDM6NTcgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogRml4L3NpbXBsaWZ5IHRlbGVjaW5lIHN0YXRlIGNoZWNrcwoKMjAxMi0wNy0yNiAxMjowODo1OCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBJbXByb3ZlIGRlYnVnIG91dHB1dAoKMjAxMi0wNy0yNiAxMjowODozNiArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggbG93LWxhdGVuY3kgcGF0dGVybiBsb2NraW5nCgoyMDEyLTA3LTI0IDE2OjE5OjUzICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IFJGRiBzaG91bGQgYmUgaWdub3JlZCBpbiBkZWludGVybGFjZQoJICBSRkYgb25seSBvY2N1cnMgb24gcHJvZ3Jlc3NpdmUgZnJhbWVzIGluIHRlbGVjaW5lIHNlcXVlbmNlcy4gRm9yCgkgIGRlaW50ZXJsYWNlLCB3ZSBkb24ndCB3YW50IHRoZXNlIHJlcGVhdGVkIGZpZWxkcyBhcyB3ZSB3aWxsIHNpbXBseSBiZQoJICBwdXNoaW5nIHRoZSBwcm9ncmVzc2l2ZSBmcmFtZSBhbmQgdGhlbiBtb3Zpbmcgb24uCgkgIEhvd2V2ZXIsIHdlIG5lZWQgdG8gY29uc2lkZXIgUkZGIGluIG9yZGVyIHRvIGNvcnJlY3RseSBpZGVudGlmeSBwYXR0ZXJucwoJICBhbmQgYWRqdXN0IHRoZSB0aW1lc3RhbXBzLgoKMjAxMi0wNy0yNCAxNDo1OTo0NyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBJbXByb3ZlIHByb2Nlc3MgbG9naWMKCSAgVGhlIGxvZ2ljIG5vdyB3b3JrcyBiZXR0ZXIgaWYgd2UgZmlsdGVyIG9ycGhhbnMsIHRoZW4gcHJvZ3Jlc3NpdmUsIHRoZW4KCSAgdGVsZWNpbmUgaW50ZXJsYWNlZCBmaWVsZHMgd2hpY2ggbmVlZCB0byBiZSB3b3ZlbiBhbmQgZmFsbCB0aHJvdWdoIHRvCgkgIGludGVybGFjZS4gVGVsZWNpbmUgaW50ZXJsYWNlZCBmaWVsZHMgd2lsbCBiZSByZWd1bGFybHkgZGVpbnRlcmxhY2VkIGlmCgkgIHRoZXJlIGlzIG5vIHBhdHRlcm4gbG9jayBmb3IgdXMgdG8gYmUgc3VyZSB0aGF0IHdlIGhhdmUgYSB0ZWxlY2luZQoJICBwYXR0ZXJuLgoJICBUZWxlY2luZSBzZXF1ZW5jZXMgdGhhdCBhcmVuJ3QgMjRmcHMgcHJvZ3Jlc3NpdmUgd2l0aCBSRkYgZmxhZ3MgY2FuJ3QKCSAgcmVhbGx5IGJlIHRlc3RlZCB1bnRpbCBmaWVsZGFuYWx5c2lzIGlzIHBvcnRlZC4KCjIwMTItMDctMjUgMTY6MDI6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBvbmx5IHNldCBjb21wbGV0ZSBvdXRwdXQgY2FwcyBvbmNlCgkgIC4uLiBzbyBhcyB0byBhdm9pZCBkb3duc3RyZWFtIGNvbXBsYWludHMgYWJvdXQgbWlzc2luZyBzdHJlYW1oZWFkZXJzLgoKMjAxMi0wNy0yNSAxNToyOTowNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGFsc28gc3VwcG9ydCBTMjRfMzIgb3V0cHV0CgoyMDEyLTA3LTI1IDE1OjI4OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogcGFzcyBjb3JyZWN0IHBhcmFtZXRlcnMgdG8gZW5jb2RlciBsaWIKCjIwMTItMDctMjUgMTQ6NTc6MTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBhZGp1c3QgdG8gbW9kaWZpZWQgYXVkaW9lbmNvZGVyIGdldGNhcHMgaGVscGVyIEFQSQoKMjAxMi0wNy0yNSAxMjo1MDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcDogZ28gYW5kIHN0YXkgaW4gdGhlIGxvb3AgZnVuY3Rpb24gb24gUExBWQoJICBXaGVuIHdlIGhhdmUgYSBQTEFZIHJlcXVlc3QsIGdvIGludG8gdGhlIExPT1AgZnVuY3Rpb24gbmV4dC4gV2hlbiB3ZSBhcmUKCSAgbG9vcGluZywga2VlcCBvbiBsb29waW5nIHVudGlsIHdlIGFyZSB0b2xkIG90aGVyd2lzZS4KCSAgVGhpcyBmaXhlZCBydHNwIGFuZCBUQ1AgY29ubmVjdGlvbnMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODA1NTEKCjIwMTItMDctMjUgMTI6NDk6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3A6IHNldCBjYXBzIGFmdGVyIGFjdGl2YXRpbmcgdGhlIHBhZAoKMjAxMi0wNy0yNSAxMjo0OTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIGgyNjRkZXBheTogc21hbGwgY2xlYW51cHMKCjIwMTItMDctMjUgMTA6MDg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHJ0cHhxdGRlcGF5LmM6CgkgIHhxdGRlcGF5OiBmaXggYnVmZmVyIHJlZmNvdW50IGVycm9yCgkgIEFmdGVyIHB1c2hpbmcgdGhlIGJ1ZmZlciBpbnRvIHRoZSBhZGFwdGVyLCB3ZSBzaG91bGQgbm90IGxldCB0aGUgYmFzZWNsYXNzIHB1c2gKCSAgaXQgb3V0IGFueW1vcmUuIFRoaXMgZXJyb3Igd2FzIGludHJvZHVjZWQgd2hpbGUgcG9ydGluZyB0byAwLjExLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDU0MAoKMjAxMi0wNy0yNCAyMTo0MTo1MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBsZXZlbDogcmVtb3ZlIG9ic29sZXRlIGxpYm9pbCBjb21tZW50CgoyMDEyLTA3LTI0IDIxOjExOjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgbWF0cm9za2FkZW11eDogcHVzaCBtb2RlOiBpbmNyZWFzZSBzZWdtZW50IGFjY3VyYWN5IGZvbGxvd2luZyBzZWVrCgkgIENvbmZsaWN0czoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKCjIwMTItMDctMjQgMTY6NDE6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IHBlcmZvcm0gcHJvcGVyIEtFWV9VTklUIHNlZWsgYWxzbyBpbiBwdXNoIG1vZGUKCSAgQ29uZmxpY3RzOgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwoKMjAxMi0wNy0yNCAxOTowNDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1ZHBzcmM6IGRvbid0IGNyYXNoIGRlcmVmZXJlbmNpbmcgTlVMTCBlcnJvciB3aGVuIGxlYXZpbmcgbXVsdGljYXN0IGdyb3VwIG9uIHNodXRkb3duCgkgIFN0cmFuZ2VseSBlbm91Z2gsIGlmIHdlIGRvIHBhc3MgYW4gZXJyb3IgdmFyaWFibGUgdG8gYmUgZmlsbGVkLCB3ZQoJICBubyBsb25nZXIgZ2V0IGFuIGVycm9yIG9uIGxlYXZpbmcuCgoyMDEyLTA3LTI0IDE1OjU1OjEyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHJlYXJyYW5nZSBzb21lIGNoZWNrcyB0byBhdm9pZCBOVUxMIHVzZQoKMjAxMi0wNy0yNCAxNTozODoyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiB1c2Ugc2FtZSBmb3VyY2MgdG8gZGV0ZXJtaW5lIGNhcHMgaW4gZGV0ZXJtaW5pbmcgdW5jb21wcmVzc2VkLW5lc3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Mzg5OAoJICBDb25mbGljdHM6CgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYwoKMjAxMi0wNy0yNCAxNTozNjo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIFJldmVydCAiYXZpZGVtdXg6IERvbid0IGNvbnNpZGVyIDAgZmNjX2hhbmRsZXIgYXMgdW5jb21wcmVzc2VkLiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBjNmI5ZjViMjVhYjQzNTY2OTgxNmEwNzA0OWIwZTVhOGYwMWUwOWNhLgoJICBmb3VyY2MgR1NUX1JJRkZfcmdiID0gMCBzdGlsbCBsZWFkcyB0byByYXcgdW5jb21wcmVzc2VkIHJnYiBjYXBzLgoJICBTZWUgYWxzbyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczODk4CgoyMDEyLTA3LTI0IDEyOjEwOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogZml4IHVwIGV4YW1wbGUgcGlwZWxpbmUgc29tZSBtb3JlCgkgIE5vIG1vcmUgZmZtcGVnY29sb3JzcGFjZQoKMjAxMi0wNy0yMCAxNjozMDowMCArMDMwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBGaXggdGhlIGV4YW1wbGUgZ3N0LWxhdW5jaCBwaXBlbGluZS4KCjIwMTItMDctMjQgMTI6MzM6MzMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGF2b2lkIE5VTEwgYWNjZXNzIHdoZW4gY2hlY2tpbmcgc3VidGl0bGUKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDM4OAoKMjAxMi0wNy0yNCAxMjoyMjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBSZXNldCBwYXJzZXIgd2hlbiB3ZSBoYXZlIGNhcHMgd2l0aG91dCBjb2RlY19kYXRhCgkgIFRoaXMgZW5zdXJlcyB0aGUgZGV0ZWN0aW9uIChhbmQgcHJvcGVyIGRvd25zdHJlYW0gY2FwcyBzZXR0aW5ncykgd2lsbAoJICBhY3R1YWxseSBoYXBwZW4gd2hlbiB3ZSBoYXZlIG5ldyBpbmNvbWluZyBjYXBzIHdpdGhvdXQgY29kZWNfZGF0YS4KCSAgVGhpcyB3YXMgZWFzaWx5IHRyaWdnZXJlZCBieSBzdHJlYW1zIGZyb20gbWF0cm9za2FkZW11eCB3aGljaCBpbml0aWFsbHkKCSAgcHJvdmlkZWQgY2FwcyB3aXRoIGEgY29uc3RydWN0ZWQgY29kZWNfZGF0YSwgYnV0IHRoZW4gcHVzaGVkIG5ldyBjYXBzCgkgIHdpdGhvdXQgdGhlIGNvZGVjX2RhdGEgb25jZSBpdCBkZXRlY3RlZCB0aGUgc3RyZWFtIHdhcyBhZHRzLgoKMjAxMi0wNy0yNCAwOToxNzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5oOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy5vcmM6CgkgIHZpZGVvbWl4ZXI6IHByZWZpeCBvcmMgZnVuY3Rpb25zIHdpdGggdmlkZW9fbWl4ZXJfb3JjXwoKMjAxMi0wNy0yNCAwOToxMzo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5oOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMub3JjOgoJICB2aWRlb2JveDogcHJlZml4IG9yYyBmdW5jdGlvbnMgd2l0aCB2aWRlb19ib3hfb3JjXwoKMjAxMi0wNy0yMyAxODo1MTowMCArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBVcGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMKCjIwMTItMDctMjMgMTc6Mzc6NTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGdlbmVyYXRlIGNvcnJlY3Qgc2VnbWVudCBzdHJlYW0gdGltZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMjc1CgoyMDEyLTA3LTIzIDE2OjQyOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5Lmg6CgkgIHJ0cDogYWx3YXlzIHVzZSBidWZmZXIgbGlzdHMKCjIwMTItMDctMjMgMTU6MjQ6MTcgKzAyMDAgIFBhdHJpY2lhIE11c2NhbHUgPHBhdHJpY2lhQGF4aXMuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJICBydHBtcDR2cGF5OiBhbHdheXMgZW5hYmxlIGJ1ZmZlci1saXN0cwoKMjAxMi0wNy0yMyAxNToyMjoyNCArMDIwMCAgUGF0cmljaWEgTXVzY2FsdSA8cGF0cmljaWFAYXhpcy5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5Lmg6CgkgIHJ0cGpwZWdwYXk6IGFsd2F5cyBlbmFibGUgYnVmZmVyLWxpc3RzCgoyMDEyLTA3LTIzIDE1OjQ5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGdldCBmcmFtZSBmbGFncyBjb3JyZWN0bHkKCSAgQWxzbyBtb3ZlIHRoZSBkZWludGVybGFjZSBwbHVnaW4gdG8gcG9ydGVkIHN0YXR1cwoKMjAxMi0wNy0yMyAxNTozMzo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogcHJvcGVyIHBhcnNlIHJlY292ZXJ5IGFmdGVyIHNlZWsKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDQyNwoKMjAxMi0wNy0yMyAxMjozOTowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBjbGVhciBvbGQgc2VnbWVudCBldmVudCB3aGVuIHJlcXVlc3RpbmcgbmV3IG9uZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMjgzCgoyMDEyLTA3LTIzIDEwOjMyOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgZXh0OiBVcGRhdGUgZm9yIHZpZGVvIGJhc2UgY2xhc3NlcyBBUEkgY2hhbmdlcwoKMjAxMi0wNy0yMyAwODo0OTowNyArMDIwMCAgQWxiYW4gQnJvd2FleXMgPHByYWhhbEB5YWhvby5jb20+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGNvbnZlcnQgYWxsIG5vbiBHU1RfRk9STUFUX0JZVEVTIHRvIGZvcm1hdCBieXRlcy4KCSAgQ29udmVydCBhbGwgbm9uIEdTVF9GT1JNQVRfQllURVMgdG8gZm9ybWF0IGJ5dGVzOgoJICBmaXhlczoKCSAgR1N0cmVhbWVyLUNSSVRJQ0FMICoqOiBnc3RfcXVlcnlfc2V0X2R1cmF0aW9uOiBhc3NlcnRpb24gYGZvcm1hdCA9PQoJICBnX3ZhbHVlX2dldF9lbnVtIChnc3Rfc3RydWN0dXJlX2lkX2dldF92YWx1ZSAocywgR1NUX1FVQVJLIChGT1JNQVQpKSknCgkgIGZhaWxlZAoJICB3aGVuIHBsYXlpbmcgbW9yZSB0aGFuIG9uZSB3YXYgc3RyZWFtLgoJICBnc3QtcGx1Z2lucy1iYXNlL3Rlc3RzL2ljbGVzL3BsYXliYWNrL3Rlc3Q3IHVyaTEud2F2IHVyaTIud2F2CgoyMDEyLTA3LTIzIDA5OjI1OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB3YXZwYXJzZTogRG9uJ3QgZmFpbCBpZiBtb3JlIGRhdGEgdGhlbiBuZWVkZWQgaXMgYXZhaWxhYmxlIHdoZW4gcGFyc2luZyBjdWUgY2h1bmtzCgkgIEZpeGVzIGJ1ZyAjNjgwMzI4LgoKMjAxMi0wNy0yMyAwOToyMjoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IFNvbWUgbWlub3IgY2xlYW51cCB0byB0aGUgY3VlL2xhYmwgcGFyc2luZwoKMjAxMi0wNy0yMyAwODo0NToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk4ZTM4NmYgdG8gOTRjY2Y0YwoKMjAxMi0wNy0xOSAxNDo1NTo0NSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbC5pbmM6CgkgIGRlaW50ZXJsYWNlOiBQb3J0IHRvIDEuMAoJICBUaGlzIHJlcXVpcmVzIHRoZSBhZGRpdGlvbmFsIElOVEVSTEFDRUQgYnVmZmVyIGZsYWcgcmVjZW50bHkgYWRkZWQgdG8KCSAgLWJhc2UKCjIwMTItMDctMjAgMTU6MTg6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkgIGludGVybGVhdmU6IGNvbnZlcnQgdGhlIG91dHB1dCBzZWdtZW50IHRvIHRpbWUKCSAgQ29udmVydCB0aGUgc3RvcmVkIGlucHV0IHNlZ21lbnQgdG8gdGltZSBiZWZvcmUgcHVzaGluZyBpdCBvdXQuCgkgIENvbmZsaWN0czoKCSAgZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jCgoyMDEyLTA3LTIwIDEzOjEyOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmg6CgkgIGludGVybGVhdmU6IHRyeSB0byBmaXggc2VnbWVudCBoYW5kbGluZwoJICBDb25mbGljdHM6CgkgIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYwoKMjAxMi0wNy0yMCAxNToyODoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogTm9uLXVwZGF0ZSBzZWVrcyBzaG91bGQgc3RpbGwgbWFrZSBzdXJlIHRoYXQgcmV2ZXJzZSBwbGF5YmFjayBzdGF0dXMgaXMgcmVzZXQKCSAgQ29uZmxpY3RzOgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwoKMjAxMi0wNy0yMCAxNToxODoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogUHJvcGVybHkgaW5pdGlhbGl6ZSBmcm9tX29mZnNldCBhbmQgZnJvbV90aW1lCgoyMDEyLTA3LTIwIDE0OjI1OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBXZSBuZWVkIGFuIGluZGV4IGFuZCBpbmRleCBlbnRyeSBmb3IgcmV2ZXJzZSBwbGF5YmFjawoJICBSZXZlcnNlIHBsYXliYWNrIGRvZXMgbm90IHdvcmsgd2l0aCBpbmRleC1sZXNzIGZpbGVzIHlldC4KCjIwMTItMDctMjAgMTQ6MTA6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBjbGVhbiB1cCBwdXNoIG1vZGUgc2VnbWVudCBoYW5kbGluZwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMjc3CgoyMDEyLTA3LTIwIDEzOjM1OjI5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBwcm9wZXJseSB0cmFuc2Zvcm0gaW5jb21pbmcgc2VnbWVudCBldmVudAoJICAuLi4gd2hpY2ggaXMgcmVhbGx5IHVzZWZ1bCBmb3IgcHJvcGVyIHB1c2ggbW9kZSBzZWVraW5nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMjc4CgoyMDEyLTA3LTIwIDExOjA3OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgbWF0cm9za2FkZW11eDogRml4IHJldmVyc2UgcGxheWJhY2sgZm9yIHNlZWtzIHdpdGhvdXQgc3RvcCBwb3NpdGlvbgoJICBDb25mbGljdHM6CgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oCgoyMDEyLTA3LTIwIDEwOjQ4OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBPbmx5IHRha2UgdGhlIHN0cmVhbV9zdGFydF90aW1lIGludG8gYWNjb3VudCBmb3IgU0VUIHNlZWtzCgkgIEZvciBvdGhlciBzZWVrcyB0aGUgc3RyZWFtX3N0YXJ0X3RpbWUgaXMgYWxyZWFkeSBhZGRlZCB0byB0aGUKCSAgc2VnbWVudCB2YWx1ZXMuCgkgIENvbmZsaWN0czoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKCjIwMTItMDctMDggMjA6MzY6MjIgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuaDoKCSAgd2F2cGFyc2U6IEFkZCBUT0Mgc3VwcG9ydAoJICBBZGQgc3VwcG9ydCBmb3I6CgkgICogQ3VlIENodW5rCgkgICogQXNzb2NpYXRlZCBEYXRhIExpc3QgQ2h1bmsKCSAgKiBMYWJlbCBDaHVuawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MzA2CgoyMDEyLTA1LTA5IDE1OjU4OjE2ICswMjAwICBNYXJpYSBHaW92YW5uYSBDaGlvc3NhIDxtYXJpYWdpb3Zhbm5hLmNoaW9zc2EgYXQgc2VsZXhlbHNhZy5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGFsc28gc2V0IFVEUCBidWZmZXIgc2l6ZSBpbiBtdWx0aWNhc3QKCSAgQWxzbyBzZXQgdGhlIFVEUCBidWZmZXIgc2l6ZSBpbiBtdWx0aWNhc3QgbW9kZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTQ0OAoKMjAxMi0wNy0xOCAyMzo0Mzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCBoZWFkZXIgcGFyc2luZyBpbiBwdXNoIG1vZGUKCSAgRml4ICdicmVhaycgdGhhdCBnb3Qgd2FycGVkIHRvIHRoZSB3cm9uZyBwbGFjZSwKCSAgcHJvYmFibHkgYXMgcGFydCBvZiBhIG1lcmdlLiBGaXhlcyBHU1RfSVNfQlVGRkVSCgkgIGNyaXRpY2FscyBpbiBwYXJzZV9pZGl0KCkgd2hlbiBiZWluZyBhY2NpZGVudGFsbHkKCSAgcGFzc2VkIGEgTlVMTCBidWZmZXIgYmVjYXVzZSBvZiB0aGUgbWlzc2luZyBicmVhay4KCSAgZ3N0LWxhdW5jaC0xLjAgcGxheWJpbiB1cmk9aHR0cDovL2RvY3MuZ3N0cmVhbWVyLmNvbS9tZWRpYS9zaW50ZWxfdHJhaWxlci00ODBpLmF2aQoKMjAxMi0wNy0xOCAyMjo0NzoyMiArMDIwMCAgQWxiYW4gQnJvd2FleXMgPHByYWhhbEB5YWhvby5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXA6IGRlcHJlY2F0ZWQgc291cF9tZXNzYWdlX2hlYWRlcnMgX2dldCAtPiBfZ2V0X29uZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMjA2CgoyMDEyLTA3LTE4IDE4OjI3OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAganBlZy9wbmc6IENhbGwgdmlkZW9fZGVjb2Rlcl9uZWdvdGlhdGUoKQoKMjAxMi0wNy0xOCAxNzo1Nzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHB1c2hmaWxlc3JjLmM6CgkgIHVwZGF0ZSBmb3IgZ2hvc3RwYWQgY2hhbmdlcwoKMjAxMi0wNy0xOCAxMTozNjoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogUGFzcyBzZWVrIHJhdGUgdG8gdXBzdHJlYW0gc2VlayBldmVudHMgaW4gcHVzaCBtb2RlCgkgIEZpeGVzIGJ1ZyAjNjc5NDM1LgoJICBDb25mbGljdHM6CgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCgoyMDEyLTA3LTE3IDE2OjM4OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RydHB4cXRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRzcC9nc3RydHBkZWMuYzoKCSAgdXBkYXRlIGZvciBSVFAgYnVmZmVyIGFwaSBjaGFuZ2VzCgoyMDEyLTA3LTE2IDExOjA3OjQ0ICswMjAwICBQYXRyaWNpYSBNdXNjYWx1IDxwYXRyaWNpYUBheGlzLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiB1c2UgYnVmZmVyIGxpc3RzCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk5OTQKCjIwMTItMDctMTcgMTA6MDE6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBGaXggcGFyc2luZyBvZiBJU1JDIGZyb20gdGhlIGN1ZXNoZWV0cwoKMjAxMi0wNy0wNSAxNDoxNToyNSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuaDoKCSAgZmxhY3BhcnNlOiBhZGQgVE9DIHN1cHBvcnQKCSAgQWRkIHN1cHBvcnQgZW1iZWRkZWQgY3Vlc2hlZXRzIGluIGZsYWMgZmlsZXMuCgkgIFBhcnNpbmcgTUVUQURBVEFfQkxPQ0tfQ1VFU0hFRVQgYXMgVE9DLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQwODkxCgoyMDEyLTA3LTEzIDE0OjQzOjMxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogYXZvaWQgc29tZSBtb3JlIGZyYW1lIG1pc3BhcnNpbmcgYnkgYWRkaXRpb25hbCBoZWFkZXIgc2FuaXR5IGNoZWNrCgkgIC4uLiB1c2luZyBhIHJlcXVpcmVkIGNvbnN0YW50IGJsb2NraW5nX3N0cmF0ZWd5IGJpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTgwNwoKMjAxMi0wNy0xMyAxMzo1MTo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBkZW11eDogUHVzaCBTVFJFQU1fU1RBUlQgZXZlbnQgd2hlbiBuZWVkZWQKCjIwMTItMDctMTEgMTM6MTA6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBhdm9pZCB3YXJuaW5nIGlmIGJvdGggdHMgYXJlIGVxdWFsCgoyMDEyLTA3LTExIDEyOjI4OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIG11bHRpdWRwc2luazogY2hlY2sgdGhlIHJpZ2h0IHNpemUgd2hlbiB3YXJuaW5nIGFib3V0IHRvbyBsYXJnZSB1ZHAgcGFja2V0cwoJICBXaGF0IG1hdHRlcnMgaXMgdGhlIHRvdGFsIHNpemUsIG5vdCB0aGUgc2l6ZSBvZiBhbnkgb2YgdGhlCgkgIGluZGl2aWR1YWwgbWVtb3J5IGNodW5rcyB0aGF0IG1ha2UgdXAgdGhlIHBhY2tldC4KCjIwMTItMDctMTAgMTQ6Mzg6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuaDoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmg6CgkgIGF1dG9kZXRlY3Q6IHByb3h5IHRzLW9mZnNldCBwcm9wZXJ0aWVzCgkgIFByb3h5IHRoZSB0cy1vZmZzZXQgcHJvcGVydHkgaW4gdGhlIGF1ZGlvKnNpbmsgZWxlbWVudHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzNDMKCjIwMTItMDctMDkgMTY6Mjc6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgZml4IGZvciBhbGxvY2F0b3IgQVBJIGNoYW5nZXMKCjIwMTItMDctMDkgMTI6MjI6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB1cGRhdGUgZm9yIHJpZmYgZmllbGQgcmVuYW1lCgoyMDEyLTA1LTIxIDEzOjU0OjUxICswMjAwICBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXNAb3BlbmlzbXVzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZHJvcCByZWR1bmRhbnQgZWxlbWVudHNfbGV2ZWxfTERBREQgbGluZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzAyCgoyMDEyLTA3LTA4IDEzOjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvanBlZ2RlYy5jOgoJICB0ZXN0czogbWlub3IganBlZ2RlYyBjbGVhbi11cHMgYW5kIGZpeGVzCgkgIEZpeCByYWNlIGNvbmRpdGlvbiBpbiBlb3MgY2hlY2tpbmcgYW5kIGEgbGVhay4gQW5kCgkgIGJ1aWxkIHBpcGVsaW5lIHdpdGhvdXQgcGFyc2VfbGF1bmNoLgoKMjAxMi0wNS0yMSAxMzo1Mzo1NCArMDIwMCAgTWF0aGlhcyBIYXNzZWxtYW5uIDxtYXRoaWFzQG9wZW5pc211cy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvanBlZ2RlYy5jOgoJKiB0ZXN0cy9maWxlcy9pbWFnZS5qcGc6CgkgIHRlc3RzOiBBZGQgc29tZSBiYXNpYyB0ZXN0cyBmb3IganBlZ2RlYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzAyCgoyMDEyLTA3LTA2IDE5OjExOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBhdm9pZCBzb21lIHJlbG9jYXRpb25zCgoyMDEyLTA3LTA2IDE0OjQ5OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICBydHBtcDR2cGF5OiByZW1vdmUgZGVwcmVjYXRlZCBzZW5kLWNvbmZpZyBwcm9wZXJ0eQoJICBVc2UgY29uZmlnLWludGVydmFsIGluc3RlYWQuCgoyMDEyLTA3LTA2IDE0OjQyOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIHJ0cGgyNjRkZXBheTogcmVtb3ZlIGRlcHJlY2F0ZWQgImJ5dGUtc3RyZWFtIiBhbmQgImFjY2Vzcy11bml0IiBwcm9wZXJ0aWVzCgkgIFRoZXNlIHdpbGwgYmUgcGlja2VkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gZG93bnN0cmVhbSBjYXBzIG5vdywgc28KCSAgaWYgeW91IHdhbnQgdGhlIGRlcGF5bG9hZGVyIHRvIG91dHB1dCBhIHNwZWNpZmljIGZvcm1hdCwgbWFrZSBzdXJlCgkgIHRoZSBlbGVtZW50IGRvd25zdHJlYW0gYWR2ZXJ0aXNlcyB0aGF0IHByZWZlcmVuY2Ugb3IgdXNlIGEgY2Fwc2ZpbHRlcgoJICBhZnRlciB0aGUgZGVwYXlsb2FkZXIgdG8gZm9yY2UgaXQuCgoyMDEyLTA3LTA2IDE0OjEzOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiByZW1vdmUgZGVwcmVjYXRlZCBhbmQgbm9uLWZ1bmN0aW9uYWwgInByb2ZpbGUtbGV2ZWwtaWQiIHByb3BlcnR5CgkgIFRoaXMgaXMgbm93IG9wdGlvbmFsbHkgdGFrZW4gZnJvbSBkb3duc3RyZWFtIGNhcHMsIHNvIGNhbiBiZQoJICBzcGVjaWZpZWQgdmlhIGEgY2Fwc2ZpbHRlciBhZnRlciB0aGUgcGF5bG9hZGVyLgoKMjAxMi0wNy0wNiAxNTowNzo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBwZXJmb3JtIGFkZGl0aW9uYWwgc2FuaXR5IGNoZWNrIGJlZm9yZSBjb25maXJtaW5nIEFEVFMgZm9ybWF0CgkgIC4uLiBhbmQgdHdlYWsgY29uZnVzaW5nIGRlYnVnIG1lc3NhZ2UuCgoyMDEyLTA3LTA2IDE1OjI5OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IHJlbW92ZSB1bmhlbHBmdWwgc3RyYXkgZGVidWcgbWVzc2FnZQoKMjAxMi0wNy0wNiAxMzoxNjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IHJlbW92ZSBkZXByZWNhdGVkIGFuZCB1bnVzZWQgIm50cC1ucy1iYXNlIiBwcm9wZXJ0eQoKMjAxMi0wNy0wNiAxMjo1NzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LWRvYy5jOgoJICBkb2NzOiB1cGRhdGUgaXNvbXA0IGRvY3MgZm9yIGdwcG11eCAtPiAzZ3BwbXV4IGNoYW5nZSBhcyB3ZWxsCgoyMDEyLTA3LTA2IDEyOjU0OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eG1hcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvdGFnc2NoZWNraW5nLmM6CgkgIGlzb21wNDogcmVtb3ZlIGdwcG11eCwgd2hpY2ggd2FzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIDNncHBtdXgKCjIwMTItMDctMDYgMTI6NDk6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkgIHNtdHA6IHJlbW92ZSBkZXByZWNhdGVkICJmcHMiIHByb3BlcnR5CgoyMDEyLTA3LTA2IDEyOjQ2OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5oOgoJICBtdWx0aXBhcnRkZW11eDogcmVtb3ZlIGRlcHJlY2F0ZWQgYW5kIHVudXNlZCAiYXV0b3NjYW4iIHByb3BlcnR5CgkgIFJlcGxhY2VkIGJ5IGJvdW5kYXJ5PU5VTEwuCgoyMDEyLTA3LTA2IDA5OjA3OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJICBydHBoMjYzcHBheTogYWNjZXB0IGFueSBoMjYzIGlucHV0IHVubGVzcyBkb3duc3RyZWFtIGZvcmNlcyBzcGVjaWZpYyByZXF1aXJlbWVudHMKCSAgcnRwaDI2M3BwYXkgc2hvdWxkIGFjY2VwdCBhbnkgaW5wdXQgY29tcGF0aWJsZSB3aXRoIGl0cyBzaW5rIHRlbXBsYXRlCgkgIGNhcHMgaWYgaXQganVzdCBvdXRwdXRzIHRvIGUuZy4gdWRwc2luayBvciBmYWtlc2luay4KCSAgcnRwaDI2M3BwYXkgISBydHBoMjYzcGRlcGF5IHNob3VsZCBhbHNvIHdvcmsgd2l0aCBhbnkgY29tcGF0aWJsZSBpbnB1dC4KCSAgVGhpcyB3b3VsZCBmYWlsIGJlZm9yZSB3aXRoIG5vdC1uZWdvdGlhdGVkIGVycm9ycyBiZWNhdXNlIHRoZSBnZXRfY2FwcwoJICBmdW5jdGlvbiB3b3VsZCBzZWUgdGhlIGVuY29kaW5nLW5hbWUgaW4gdGhlIGRlcGF5bG9hZGVyJ3MgdGVtcGxhdGUgY2FwcwoJICBhbmQgZGVmYXVsdCB0byBiYXNlbGluZSBILjI2MyBiZWNhdXNlIHRoZXJlJ3Mgbm8gcHJvZmlsZS9sZXZlbCBpbmZvcm1hdGlvbgoJICBpbiB0aG9zZSBjYXBzLCB3aGljaCBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gaWYgZG93bnN0cmVhbSBoYXMgZmlsdGVyY2FwcwoJICBmcm9tIGFuIFNEUCwgYnV0IG5vdCBpZiB0aG9zZSBmaWVsZHMgYXJlIGFic2VudCBiZWNhdXNlIHRoZXkgY2FuIGJlCgkgIGFueXRoaW5nIGxpa2Ugd2l0aCB0aGUgZGVwYXlsb2FkZXIncyB0ZW1wbGF0ZSBjYXBzLiBNYWtlcwoJICB2aWRlb3Rlc3RzcmMgISBhdmVuY19oMjYzcCAhIHJ0cGgyNjNwcGF5ICEgcnRwaDI2M3BkZXBheSAhIGZha2VzaW5rCgkgIHdvcmsuCgoyMDEyLTA3LTA1IDIyOjU3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkgIHRlc3RzOiBmaXggaDI2M3AgcGF5bG9hZCAhIGRlcGF5bG9hZCB1bml0IHRlc3QKCSAgTmVlZCB0byBhZGQgaDI2M3ZlcnNpb24gZmllbGQgdG8gaW5wdXQgY2FwcyBzaW5jZSB0aGUKCSAgcGF5bG9hZGVyIHNpbmsgZ2V0X2NhcHMgZnVuY3Rpb24gd2lsbCBjb250YWluIGl0IGluIHRoZQoJICB0aGUgY2FwcywgYW5kIHRoZSBzdHJpY3RlciBjYXBzIHN1YnNldCBjaGVjayByZXF1aXJlcwoJICB0aGlzIHRvIGJlIHByZXNlbnQgaW4gdGhlIGlucHV0IGNhcHMgYXMgd2VsbCB0aGVuLgoKMjAxMi0wNy0wNiAxMTo1MDo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB1cGRhdGUgZm9yIHF1ZXJ5IGFwaSBjaGFuZ2VzCgoyMDEyLTA3LTA2IDExOjI2OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICB1cGRhdGUgZm9yIHF1ZXJ5IGFwaSBjaGFuZ2VzCgoyMDEyLTA3LTA2IDExOjAyOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkgIHVwZGF0ZSBmb3IgYWxsb2NhdGlvbiBxdWVyeSBjaGFuZ2VzCgoyMDEyLTA3LTA1IDE1OjE0OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmM6CgkgIHRlc3RzOiBmaXggcmd2b2x1bWUgdW5pdCB0ZXN0IGV2ZW50IGhhbmRsaW5nCgkgIE11c3QgZmx1c2ggYWZ0ZXIgRU9TIGJlZm9yZSBzZW5kaW5nIG1vcmUgYnVmZmVycyBvcgoJICBhbm90aGVyIEVPUyBldmVudCwgb3IgdGhlIGV2ZW50IG9yIGJ1ZmZlciB3aWxsIGJlCgkgIHJlamVjdGVkLiBBbHNvIHNlbmQgYSBTRUdNRU5UIGV2ZW50IGF0IHRoZSBzdGFydAoJICBvZiBlYWNoIHN0cmVhbSBmb3IgZ29vZCBtZWFzdXJlLgoKMjAxMi0wNy0wNSAxMzoxMzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIGdzdDogSW1wbGVtZW50IHNlZ21lbnQtZG9uZSBldmVudAoKMjAxMi0wNy0wNSAxMjozNTo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogUmVtb3ZlIHRoZSBUT0MgcXVlcnkgaGFuZGxpbmcKCjIwMTItMDctMDQgMTk6NTI6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkgIG1hdHJvc2thOiBVcGRhdGUgZm9yIG5ldyBHc3RUb2MgQVBJCgkgIFRPQyBzdXBwb3J0IGluIG1hdHJvc2thbXV4IGlzIGRpc2FibGVkIGZvciBub3cgYXMgaXQgd2FzIGJyb2tlbiBhbnl3YXkuCgoyMDEyLTA3LTA0IDIzOjU3OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJICB0ZXN0czogZml4IHJnYW5hbHlzaXMgdW5pdCB0ZXN0IGV2ZW50IGhhbmRsaW5nCgkgIE11c3QgZmx1c2ggYWZ0ZXIgRU9TIGJlZm9yZSBzZW5kaW5nIG1vcmUgYnVmZmVycyBvcgoJICBhbm90aGVyIEVPUyBldmVudCwgb3IgdGhlIGV2ZW50IG9yIGJ1ZmZlciB3aWxsIGJlCgkgIHJlamVjdGVkLiBBbHNvIHNlbmQgYSBTRUdNRU5UIGV2ZW50IGF0IHRoZSBzdGFydAoJICBvZiBlYWNoIHN0cmVhbSBmb3IgZ29vZCBtZWFzdXJlLgoKMjAxMi0wNy0wNCAxODo1ODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSAgaW1hZ2VmcmVlemU6IGNsZWFyIDAgRFRTIG9uIGJ1ZmZlcnMgb3V0cHV0LCBhcyBzaW5rcyB3aWxsIHByZWZlciBEVFMgb3ZlciBQVFMgZm9yIHN5bmNpbmcKCSAgU2luY2UgdGhlIGluaXRpYWwgZGVjb2RlZCBzdGlsbCBpbWFnZSBidWZmZXIgd2lsbCBoYXZlIGR0cz1wdHM9MCwgYW5kCgkgIHdlIG9ubHkgc2V0IFBUUyBvbiBidWZmZXJzIHdlIHB1c2ggb3V0LCBhbGwgYnVmZmVycyBwdXNoZWQgb3V0IHdvdWxkCgkgIGhhdmUgYSBEVFMgb2YgMC4gU2lua3MsIGhvd2V2ZXIsIHdpbGwgcHJlZmVyIERUUyBvdmVyIFBUUyBpZiBib3RoIGFyZQoJICBzZXQsIGFuZCB3aWxsIHRoZXJlZm9yZSBhbHdheXMgc2VlIGEgdGltZXN0YW1wIG9mIDAgbm8gbWF0dGVyIHdoYXQKCSAgdGhlIFBUUyBpcyBzZXQgdG8uCgkgIEZpeGVzIHVuaXQgdGVzdCB0b28uCgoyMDEyLTA3LTA0IDIwOjU5OjAzICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiBGaXggcXVlcnkgZnVuY3Rpb24gaW1wbGVtZW50YXRpb247IG1vcmUgZGVidWdnaW5nCgoyMDEyLTA3LTA0IDE5OjQxOjUyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiBGaXggc3BlYyBzdHVmZiBpbiBkaXJlY3Rzb3VuZHNpbmsKCjIwMTItMDUtMzEgMTk6MjI6NDcgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkgIGRpcmVjdHNvdW5kc2luazogZml4IGFjY2VzcyB0byBpbnZhbGlkIHBvaW50ZXIgaW4gc2V0X3ZvbHVtZQoKMjAxMi0wNi0xMyAxMjoxMjozOSArMDIwMCAgU2ViYXN0aWFuIERyPUMzPUI2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IEZpeCBjYXBzIGxlYWtzCgoyMDEyLTA1LTI5IDExOjM3OjU5ICswMDAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IGZpeCBhY2NlcHRjYXBzIGNoZWNrCgoyMDEyLTA1LTI1IDEwOjE0OjU3ICswMDAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IHVzZSBoZWxwZXIgZnVuY3Rpb24gdG8gY2hlY2sgZm9yIHNwZGlmIGZvcm1hdHMKCjIwMTItMDUtMjUgMTA6MTk6MDkgKzAwMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkgIGRpcmVjdHNvdW5kc2luazogYWRkIHN1cHBvcnQgZm9yIERUUwoKMjAxMi0wNS0wOCAxNjoyMzo0MiArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiBmb3JjZSA0ODAwMCBrSHogZm9yY2UgQUMtMyBvdmVyIHNwZGlmCgoyMDEyLTA3LTA0IDE3OjQyOjQ5ICswNDAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IGFkZCBzdXBwb3J0IGZvciBhYy0zIG92ZXIgc3BkaWYKCjIwMTItMDctMDQgMTI6Mzc6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxhY2UuYzoKCSAgdGVzdHM6IGRpc2FibGUgZGVpbnRlcmxhY2UgdGVzdCBmb3Igbm93LCBlbGVtZW50IHN0aWxsIG5lZWRzIHRvIGJlIHBvcnRlZAoJICBCdXQgbGVhdmUgaXQgYWN0aXZlIGFuZCBwcmludCBhIEZJWE1FLiBQb3J0aW5nIGlzIGluIHByb2dyZXNzLgoKMjAxMi0wNy0wMyAxOTozODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSAgZGVpbnRlcmxlYXZlOyBkb3duZ3JhZGUgY2FwcyBjaGFuZ2UgZmFpbHVyZSBkZWJ1ZyBtZXNzYWdlCgkgIEFkZCBzb21lIG1vcmUgaW5mbyBhbmQgZG93bmdyYWRlIHRvIHdhcm5pbmcsIHNvCgkgIGl0IGRvZXNuJ3QgbG9vayBsaWtlIHRoZSB1bml0IHRlc3QgZmFpbGVkLgoKMjAxMi0wNy0wMyAxNzo1MjoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6CgkgIGF1ZGlvcGFub3JhbWE6IGZpeCBuZWdvdGlhdGlvbiBhbmQgdW5pdCB0ZXN0CgkgIE11c3QgcmVtb3ZlIGEgcG9zc2libHktZml4ZWQgY2hhbm5lbC1tYXNrIGZpZWxkIGlmCgkgIHdlJ3JlIGdvaW5nIHRvIHNldCB1bmZpeGVkIGNoYW5uZWxzIG9uIHRoZSBzdHJ1Y3R1cmUsCgkgIG9yIGEgZGlmZmVyZW50IGNoYW5uZWwgY291bnQuCgoyMDEyLTA3LTAzIDE3OjI2OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBPbmx5IHB1c2ggdGhlIFRPQyBldmVudCwgdGhlIG1lc3NhZ2UgaXMgaGFuZGxlZCBieSB0aGUgc2lua3MKCjIwMTItMDctMDMgMTI6NDc6NTggKzA5MDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIHRlc3RzL2V4YW1wbGVzL2VxdWFsaXplci9kZW1vLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkqIHRlc3RzL2ljbGVzL2dka3BpeGJ1ZnNpbmstdGVzdC5jOgoJICB0ZXN0czogZG8gbm90IHVzZSBkZXByZWNhdGVkIGd0aysgc3ltYm9scwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MzAxCgoyMDEyLTA3LTAzIDA5OjI3OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlcXVpcmUgR3RrKyAzLjAgZm9yIHRlc3RzL2V4YW1wbGVzCgoyMDEyLTA3LTAzIDEyOjU3OjE4ICswOTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSAgcnRwOiByZW1vdmUgc29tZSBvdXRkYXRlZCBjb21tZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MzAxCgoyMDEyLTA2LTI5IDExOjUxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBkZWZhdWx0IHRvIGZvcmNlLWFzcGVjdC1yYXRpbz10cnVlCgoyMDEyLTA2LTI4IDIwOjAzOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJICBybmRidWZmZXJzaXplOiBhZGQgcHVzaCBtb2RlIHN1cHBvcnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjMxNwoKMjAxMi0wNi0yOCAxMToyOTo1NSArMDIwMCAgRGF2aWQgQ29ydm95c2llciA8ZGF2aWQuY29ydm95c2llckBvcmFuZ2UuY29tPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIGlzb21wNDogVHJ5IHRvIHNlZWsgdXBzdHJlYW0gYmVmb3JlIHByb2Nlc3Npbmcgc2VlayBwdXNoIGV2ZW50CgkgIFdoZW4gaXQgcmVjZWl2ZXMgYSBzZWVrIGluIHB1c2ggbW9kZSwgdGhlIHF0ZGVtdXggc2hvdWxkIGZpcnN0IHRyeSB0byBwdXNoIHRoZSBldmVudCB1cHN0cmVhbSwgYW5kIG9ubHkgaWYgdXBzdHJlYW0gZmFpbHMgZmFsbCBiYWNrIHRvCgkgIGl0cyBvd24gc2VlayBsb2dpYy4KCjIwMTItMDYtMjggMTE6NDc6MjAgKzAyMDAgIERhdmlkIENvcnZveXNpZXIgPGRhdmlkLmNvcnZveXNpZXJAb3JhbmdlLmNvbT4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBpc29tcDQ6IEFsbG93IGR1cmF0aW9uIHF1ZXJpZXMgdG8gYmUgZm9yd2FyZGVkIHVwc3RyZWFtCgkgIFdoZW4gcmVjZWl2aW5nIGEgZHVyYXRpb24gcXVlcnkgZm9yIFRJTUUgZm9ybWF0LCB0cnkgdG8gcXVlcnkgdXBzdHJlYW0sIGFuZCBvbmx5IGlmIHVwc3RyZWFtIGZhaWxzIGZhbGwgYmFjayB0byBxdGRlbXV4IGR1cmF0aW9uIGhhbmRsaW5nLgoKMjAxMi0wNi0yOCAxMTo1OToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgcnRwaDI2NHBheTogY2xlYW51cHMKCSAgVXNlIHRoZSBjYXBzIHByb3BlcnRpZXMgZm9yIGFsaWdubWVudCBhbmQgZm9ybWF0LgoJICBSZW1vdmUgc29tZSBvbGQgcHJvcGVydGllcywgd2UgYWx3YXlzIHdhbnQgdG8gdXNlIGJ1ZmZlcmxpc3RzIHdoZW4gd2UgY2FuIG5vdy4KCjIwMTItMDYtMjggMTE6MzI6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgaDI2NHBheTogcHJlZmVyIEFWQywgaXQncyBlYXNpZXIgdG8gcGFyc2UgZXRjCgoyMDEyLTA2LTI3IDA5OjA5OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBtYXJrIGFsbCBvdXRwdXQgZnJhbWVzIGFzIGtleWZyYW1lcwoKMjAxMi0wNi0yNiAxODo0ODoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSAgbWF0cm9za2E6IHVwZGF0ZSBmb3IgR3N0VG9jIEFQSSBhZGRpdGlvbnMKCjIwMTItMDYtMjYgMTc6MDQ6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2E6IHNldCBpbnRlcmxhY2UtbW9kZQoKMjAxMi0wNi0yNiAxMzoxOTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IGltcHJvdmUgZGVidWcKCjIwMTItMDYtMjYgMTM6MDI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICBSZXZlcnQgInY0bDI6IGZyZWUga2VybmVsIGJ1ZmZlcnMgYmVmb3JlIGFsbG9jYXRpbmcgbmV3IG9uZXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMWIwOWJjNjA5YTU3OGU3MzFmMGRiYzhmNmU2OThlMjVkOGY0YzVmOC4KCSAgU2VlbXMgdG8gbWFrZSBsaWJ2NGwyIGNvbXBsYWluLCBtYXliZSBiZWNhdXNlIHdlIGNhbGwgUkVRQlVGUyB3aXRoIDAgYnVmZmVycwoJICBiZWZvcmUgd2UgYWxsb2NhdGVkIGJ1ZmZlcnMuCgoyMDEyLTA2LTI2IDEyOjA3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgdjRsMjogZnJlZSBrZXJuZWwgYnVmZmVycyBiZWZvcmUgYWxsb2NhdGluZyBuZXcgb25lcwoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MDI1NwoKMjAxMi0wNi0yNiAxMjowNzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0wNi0yNiAxMToxNDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IHNldHVwIHN0cmlkZXMgYW5kIG9mZnNldHMgZm9yIGFsbCBwbGFuZXMKCjIwMTItMDYtMjUgMjA6MTE6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thLW11eDogdXBkYXRlIGZvciBHc3RUb2NTZXR0ZXIgY2hhbmdlcwoKMjAxMi0wNi0yNSAxMzozMToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogUmV0dXJuIEZBTFNFIGZyb20gcXVlcmllcyBpZiB3ZSBjYW4ndCBhbnN3ZXIgUE9TSVRJT04vRFVSQVRJT04gcXVlcmllcwoKMjAxMi0wNi0yMSAxNzoxNToxMSArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFJldHVybiBGQUxTRSBmcm9tIFRPQyBxdWVyeSBpZiBubyBUT0MgZXhpc3RzIGluc3RlYWQgb2YgYW4gZW1wdHkgVE9DCgoyMDEyLTA2LTI0IDIyOjUxOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkgIG1hdHJvc2thOiB1cGRhdGUgZm9yIEdzdFRvYyBBUEkgY2hhbmdlcwoKMjAxMi0wNi0yMyAxNDo1NzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogdXBkYXRlIGZvciBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkgY2hhbmdlcwoKMjAxMi0wNi0yMCAxMjozMTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZsdmRlbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zsdm11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDNkZW11eC5jOgoJICB1cGRhdGUgZm9yIGJ1cyBhcGkgY2hhbmdlcwoKMjAxMi0wNi0yMCAxMDozMzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgdXBkYXRlIGZvciB0YXNrIGFwaSBjaGFuZ2UKCjIwMTItMDYtMjAgMDk6NTk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1vc3NzcmMuYzoKCSAgdXBkYXRlIGZvciBjbG9jayBhcGkgY2hhbmdlcwoKMjAxMi0wNi0xOSAxMjoxNTozMyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogc3lzL29zeGF1ZGlvL01ha2VmaWxlLmFtOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuaDoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGNvcmVhdWRpby5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5oOgoJICBvc3hhdWRpb3Npbms6IHJlc3BlY3QgdGhlIHByZWZlcmVkIGNoYW5uZWwgbGF5b3V0CgkgIEluIE9TWCBpcyBhbGxvd2VkIHRvIGNvbmZpZ3VyZSB0aGUgZGVmYXVsdCBhdWRpbyBvdXRwdXQgZGV2aWNlLAoJICBwcmVmZXJlZCBjaGFubmVsIGxheW91dCBhbmQgc3BlYWtlciBwb3NpdGlvbnMgdGhyb3VnaCB0aGUgdG9vbAoJICAiQXVkaW8gTUlESSBTZXR1cCIuCgoyMDEyLTA0LTMwIDIyOjU5OjU4ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thLWRlbXV4OiBTZW5kIGdhcCBldmVudHMgZm9yIHN1YnRpdGxlIHN0cmVhbXMKCjIwMTItMDYtMTcgMDE6MDA6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RzcGxpdGZpbGVzcmMuYzoKCSAgc3BsaXRmaWxlc3JjOiBmaXggdXAgZG9jcyBmb3IgMC4xMQoKMjAxMi0wNi0xNiAyMzoyOTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJICBzcGxpdGZpbGVzcmM6IHNtYWxsIHVyaSBoYW5kbGVyIGZpeHVwIGFuZCBzb21lIG1vcmUgZG9jcwoJICBHZXQgVVJJIGxvY2F0aW9uIHVzaW5nIGdzdF91cmlfZ2V0X2xvY2F0aW9uKCksIHNvIGFueQoJICBlc2NhcGVkIGJpdHMgZ2V0IHVuZXNjYXBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTA0OQoKMjAxMi0wNi0xNyAwMDo1OToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJICBzcGxpdGZpbGVzcmM6IHJlLXBvcnQgdG8gMC4xMQoKMjAxMi0wNi0xNiAxOTowNjoyNSArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZ3N0L211bHRpZmlsZS9nc3RzcGxpdGZpbGVzcmMuYzoKCSAgc3BsaXRmaWxlc3JjOiBJbXBsZW1lbnQgc3BsaXRmaWxlOi8vIFVSSSBzY2hlbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTA0OQoJICBDb25mbGljdHM6CgkgIGdzdC9tdWx0aWZpbGUvZ3N0c3BsaXRmaWxlc3JjLmMKCjIwMTItMDYtMTQgMTA6NDM6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkgIHRoZW9yYWRlcGF5OiBmaXggYnVmZmVyIG1lbW9yeQoJICBUaGUgbWVtb3J5IHdhcyBhZGRlZCB0byB0aGUgaW5wdXQgYnVmZmVyIGluc3RlYWQgb2YgdGhlIG91dHB1dCBidWZmZXIuCgoyMDEyLTA2LTEzIDEzOjM2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBEb24ndCByZXNldCB0aW1lIGluIGZsdXNoLXN0b3AKCSAgRG9uJ3QgcmVzZXQgdGhlIHRpbWUgaW4gZmx1c2gtc3RvcC4gTGl2ZSBzb3VyY2VzIGNhbiBkbyB0aGlzIGZsdXNoIGluIHRoZQoJICBwbGF5aW5nIHN0YXRlIGFuZCBzbyB0aGUgcGlwZWxpbmUgd2lsbCBuZXZlciBoYXZlIGEgY2hhbmNlIHRvIHVwZGF0ZSB0aGUKCSAgYmFzZV90aW1lIG9mIHRoZSBlbGVtZW50cywgd2hpY2ggb25seSBoYXBwZW5zIHdoZW4gZ29pbmcgZnJvbSBwYXVzZWQgdG8KCSAgcGxheWluZy4KCjIwMTItMDYtMTIgMTI6NDI6MzEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmg6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hjb3JlYXVkaW8uaDoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuaDoKCSAgb3N4YXVkaW9zaW5rOiBBZGQgc3VwcG9ydCBmb3IgU1BESUYgb3V0cHV0CgkgIEEgYmlnIHJlZmFjdG9yaW5nIHRvIGFsbG93IHBhc3N0aHJvdWdoIEFDMy9EVFMgb3ZlciBTUERJRi4KCSAgU2V2ZXJhbCByYW5kb20gY2xlYW51cHMgYW5kIG1pbm9yIGZpeGVzLgoKMjAxMS0wOS0wMSAxNTo0MToyNiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkgIGRlaW50ZXJsYWNlOiBzZW5kIFFvUyBtZXNzYWdlcyB3aGVuIGRyb3BwaW5nIGEgZnJhbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1Nzk0MQoKMjAxMi0wNi0xMiAxNjowNTo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBSZXdvcmsgdGhlIGFzeW5jIHN0YXRlIGhhbmRsaW5nCgkgIEFsd2F5cyBzZW5kIHRoZSBmbHVzaGluZyBldmVudHMgdG8gdGhlIHVkcCBlbGVtZW50cyBub3cgdGhhdCBiYXNlc3JjIHN1cHBvcnRzCgkgIHRoaXMuIFRoaXMgbWFrZXMgc3VyZSBhIHNlZ21lbnQgZXZlbnQgaXMgc2VudCBjb3JyZWN0bHkgYWZ0ZXIgYSBmbHVzaC4KCSAgS2VlcCB0cmFjayBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb21tYW5kIGFuZCBtYWtlIGl0IHBvc3NpYmxlIHRvIHNwZWNpZnkKCSAgd2hhdCBjb21tYW5kIHlvdSB3YW50IHRvIGNhbmNlbCB3aGVuIHN0YXJ0aW5nIGEgbmV3IGFzeW5jIGNvbW1hbmQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3OTA1CgoyMDEyLTA2LTExIDE4OjI0OjIwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIGNoaWxkcHJveHk6IHVwZGF0ZSBhcGkgdXNlCgoyMDEyLTA2LTExIDEyOjU0OjI3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBhbHdheXMgcGVyZm9ybSBmdWxsIHNlZWsgaWYgc2VlayBpcyBmbHVzaGluZwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODM4CgoyMDEyLTA2LTExIDExOjIwOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL3JuZGJ1ZmZlcnNpemUuYzoKCSAgcm5kYnVmZmVyc2l6ZTogcHJpbnRmIGZvcm1hdCBmaXggZm9yIGxvbmcgLT4gaW50IGNoYW5nZQoKMjAxMi0wNi0wOCAyMDozODozNCArMDIwMCAgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMm9iamVjdDogRG9uJ3QgcHJvYmUgVVZDIGRldmljZXMgZm9yIGJlaW5nIGludGVybGFjZWQKCSAgVVZDIGRldmljZXMgYXJlIG5ldmVyIGludGVybGFjZWQsIGFuZCBkb2luZyBWSURJT0NfVFJZX0ZNVCBvbiB0aGVtCgkgIGNhdXNlcyBleHBlbnNpdmUgYW5kIHNsb3cgVVNCIElPLCBzbyBkb24ndCBwcm9iZSB0aGVtIGZvciBpbnRlcmxhY2VkLgoJICBUaGlzIHNoYXZlcyAyIHNlY29uZHMgb2YgdGhlIHN0YXJ0dXAgdGltZSBvZiBjaGVlc2Ugd2l0aCBhIExvZ2l0ZWNoCgkgIFdlYmNhbSBQcm8gOTAwMC4KCSAgU2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzcyMgoKMjAxMi0wNi0wOSAxNjo1Mzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkgIGRlYnVnOiBjaGFuZ2Ugcm5kYnVmZmVyc2l6ZSBwcm9wZXJ0aWVzIGZyb20gbG9uZyB0byBpbnQKCSAgVGhlc2Ugc2hvdWxkIGFsbCBiZSBpbnQgaW5zdGVhZCBvZiBsb25nLCB0byBhdm9pZCBidWdzCgkgIHdoZW4gcGFzc2luZyB0aGVzZSBhcyB2YXJhcmdzIHdpdGggZ19vYmplY3Rfc2V0KCksIGFuZAoJICB0aGVyZSB3YXMgbm8gcmVhc29uIHRvIHVzZSBsb25nIGluIHRoZSBmaXJzdCBwbGFjZSBoZXJlLgoJICBGaXhlcyBGSVhNRS4KCjIwMTItMDYtMDggMTU6NTQ6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkgIGVsZW1lbnRzOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsIGV2ZW50IGZpZGRsaW5nCgoyMDEyLTA2LTA4IDE1OjA0OjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDNhMGU1NyB0byA5OGUzODZmCgoyMDEyLTA2LTA4IDEwOjExOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmM6CgkqIHN5cy9vc3M0L29zczQtYXVkaW8uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJICB1cGRhdGUgZm9yIGF1ZGlvIGFwaSBjaGFuZ2UKCjIwMTItMDYtMDcgMTY6MTI6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkyID09PQoKMjAxMi0wNi0wNyAxNjoxMjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTIKCjIwMTItMDYtMDcgMTY6MTE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDYtMDcgMTU6MDM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IGltcHJvdmUgY2xvY2sgaGFuZGxpbmcKCSAgUG9zdCB0aGUgbm90aWZ5IG91dHNpZGUgb2YgdGhlIHBhX2xvY2sgdG8gYXZvaWQgYSBkZWFkbG9jayBjYXVzZWQgYnkgYmFzZXNyYwoJICBjYWxsaW5nIGdldF90aW1lIHdpdGggdGhlIG9iamVjdCBsb2NrLgoJICBSZXNldCB0aGUgY2xvY2sgb24gY29ubmVjdC4KCSAgUG9zdCBjbG9jay1sb3N0IGFuZCBjbG9jay1wcm92aWRlIG1lc3NhZ2VzLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczOTc3CgkgIENvbmZsaWN0czoKCSAgZXh0L3B1bHNlL3B1bHNlc3JjLmMKCjIwMTItMDQtMTIgMTM6MjE6MTcgKzAzMDAgIE1vaGFtbWVkIFNhbWVlciA8bXNhbWVlckBmb29sYWIub3JnPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIEJldHRlciBHc3RDbG9jayBmb3IgcHVsc2VzcmMKCSAgVGhpcyBjbG9jayB1c2VzIHRoZSBhY3R1YWwgc3RyZWFtIHRpbWUgKHBhX3N0cmVhbV9nZXRfdGltZSkgdG8gZ2V0IGEgbW9yZSBhY2N1cmF0ZSB0aW1lc3RhbXAuCgkgIENvbmZsaWN0czoKCSAgZXh0L3B1bHNlL3B1bHNlc3JjLmMKCjIwMTItMDYtMDcgMTE6MTY6NTAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzoKCSAgcG5nOiBmaXggdmlkZW8gc3RhdGUgbGVha3MKCjIwMTItMDYtMDcgMTE6MTY6MzcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBmaXggdmlkZW8gc3RhdGUgbGVhawoKMjAxMi0wNi0wNyAxMjoxMToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogb25seSByZXNldCB0aGUgbWFuYWdlciBvYmplY3Qgd2hlbiB3ZSBkaWQgYSBzZWVrCgkgIE9ubHkgcmVzZXQgdGhlIG1hbmFnZXIgb2JqZWN0IHdoZW4gd2UgdXNlZCBhIFJhbmdlIGhlYWRlciwgaWUuIHdoZW4gd2UgZGlkIGEKCSAgc2Vlay4gT3RoZXJ3aXNlIHdlIGp1c3QgcGF1c2VkIGFuZCB3ZSBjYW4gcmVzdW1lIGp1c3QgZmluZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzQ3NQoKMjAxMi0wNi0wNiAxNjoxMzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJICB0ZXN0czogYWRkIHRlc3QgZm9yIHJ0cHNlc3Npb24gY2xlYW51cAoKMjAxMi0wNi0wNiAxODoxODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFmYWIzNTkgdG8gMDNhMGU1NwoKMjAxMi0wNi0wNiAxNDoxNzowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogVXBkYXRlIGZvciBUT0MgZXZlbnQgQVBJIGNoYW5nZQoKMjAxMi0wNi0wNiAxMzowMjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0dGFnaW5qZWN0LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ3ZvbHVtZS5jOgoJICB1cGRhdGUgZm9yIHRhZyBldmVudCBjaGFuZ2UKCjIwMTItMDYtMDYgMTM6MDA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hc3BlY3RyYXRpb2Nyb3AuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6CgkgIGZpeCBZODAwIGZvcm1hdAoKMjAxMi0wNi0wMSAwMToxOTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cuaDoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlbzogc3RyYWlnaHRmb3J3YXJkIHBvcnQgdG8gMC4xMQoKMjAxMi0wNS0zMSAxODozOToyNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkgIFNvbWUgcHJpbnRmIHZhcmlhYmxlIGZvcm1hdCBmaXhlcwoJICBUaGUgb3N4IGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCB0aG9zZQoKMjAxMi0wNi0wNSAwOToxODoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBGaXggR3N0QmFzZVBhcnNlOjpnZXRfc2lua19jYXBzKCkgaW1wbGVtZW50YXRpb25zCgkgIFRoZXkgc2hvdWxkIHRha2UgdGhlIGZpbHRlciBjYXBzIGludG8gYWNjb3VudCBhbmQgYWx3YXlzIHJldHVybgoJICB0aGUgdGVtcGxhdGUgY2FwcyBhcHBlbmRlZCB0byB0aGUgYWN0dWFsIGNhcHMuIE90aGVyd2lzZSB0aGUKCSAgcGFyc2VycyBzdG9wIHRvIGFjY2VwdCB1bnBhcnNlZCBzdHJlYW1zIHdoZXJlIHVwc3RyZWFtIGRvZXMgbm90CgkgIGtub3cgYWJvdXQgY2hhbm5lbHMsIHJhdGUsIGV0Yy4KCSAgRml4ZXMgYnVnICM2Nzc0MDEuCgoyMDEyLTA2LTA0IDE2OjE3OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBzZXQgY29sb3JpbWV0cnkgb24gb3V0cHV0IGluZm8KCjIwMTItMDYtMDQgMDg6MTA6MTUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hyaW5nYnVmZmVyLmM6CgkgIG9zeGF1ZGlvc2luazogSGFuZGxlIGVuZGlhbm5lc3MgY29ycmVjdGx5CgoyMDEyLTA2LTAxIDE2OjM3OjAwICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hyaW5nYnVmZmVyLmM6CgkgIG9zeGF1ZGlvc2luazogQWRkIHN1cHBvcnQgZm9yIGludCBhdWRpbwoKMjAxMi0wNi0wMSAxMDoyODo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGYxYjVhOTYgdG8gMWZhYjM1OQoKMjAxMi0wNS0zMSAxMzozNjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBzZXQgdGhlIHBhbGV0dGUgc2l6ZSBjb3JyZWN0bHkKCjIwMTItMDUtMzEgMTA6MTU6NDMgKzAyMDAgIE1pY2hhZWwgSm9uZXMgPG1pY2hhZWwuam9uZXNAbWF0cml4LXZpc2lvbi5kZT4KCgkqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnZpZG9yaWVudC5oOgoJICB2NGwyOiBhZGQgbWlzc2luZyBHX0VORF9ERUNMUwoJICBHX0JFR0lOX0RFQ0xTIGRpZG4ndCBoYXZlIG1hdGNoaW5nIEdfRU5EX0RFQ0xTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzcxNjUKCjIwMTItMDUtMzEgMTM6MDg6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5MmI3MjY2IHRvIGYxYjVhOTYKCjIwMTItMDUtMzEgMTA6MjY6MjcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgb3N4dmlkZW9zaW5rOiBSZWFsbHkgZml4IHRoZSBidWlsZCBvbiAxMC41CgkgIFRoZSBBUEkgdGhhdCB3ZSB1c2UgdG8gcnVuIHRoZSBDb2NvYSBsb29wIGluIGFub3RoZXIKCSAgdGhyZWFkIGRvZXMgbm90IGV4aXN0IGluIDEwLjUgb3IgZWFybGllci4KCjIwMTItMDUtMjYgMTI6MjE6MTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBmaXggcmFjZSBpbiBzdGFydGluZyB0aGUgcnVubG9vcCB0aHJlYWQKCSAgQmxvY2sgZ3N0X29zeF92aWRlb19zaW5rX3J1bl9jb2NvYV9sb29wIHVudGlsIHRoZSBsb29wIHRocmVhZCBoYXMgc3RhcnRlZCBhbmQKCSAgZmluaXNoZWQgaW5pdGlhbGl6aW5nIE5TQXBwLiBGaXhlcyBvY2Nhc2lvbmFsIHdhcm5pbmdzL2NyYXNoZXMgZHVlIHRvIHR3bwoJICB0aHJlYWRzIGdvaW5nIGluc2lkZSBOU0FwcCBiZWZvcmUgZmluaXNoTGF1bmNoaW5nIGhhZCBjb21wbGV0ZWQuCgoyMDEyLTA1LTMwIDE2OjAzOjU1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkgIG9zeHZpZGVvc2luazogRml4IGxhc3QgY29tbWl0IHRvIGFjdHVhbGx5IHdvcmsKCSAgTUFDX09TX1hfVkVSU0lPTl8xMF82IGlzIG9idmlvdXNseSBub3QgZGVmaW5lZCBvbiAxMC41LgoKMjAxMi0wNS0zMCAxMzo1MTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3N4dmlkZW8vTWFrZWZpbGUuYW06CgkgIG9zeHZpZGVvc2luazogUHV0IHRoZSByaWdodCBmbGFncyBpbiB0aGUgcmlnaHQgdmFyaWFibGUKCjIwMTItMDUtMzAgMTM6MjQ6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEZpeCBHU1RfT0JKQ0ZMQUdTCgoyMDEyLTA1LTMwIDEyOjQ1OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZWMxYzRhOCB0byA5MmI3MjY2CgoyMDEyLTA1LTMwIDEyOjQzOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgb3N4dmlkZW9zaW5rOiBOU1dpbmRvd0RlbGVnYXRlIGlzIGF2YWlsYWJsZSBpbiBhbGwgT1NYIHZlcnNpb25zIG5ld2VyIHRoYW4gMTAuNgoKMjAxMi0wNS0zMCAxMjo0MDo1NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5oOgoJICBvc3h2aWRlb3Npbms6IEZpeCBidWlsZCB3aXRoIG9sZGVyIE9TWCB2ZXJzaW9ucwoKMjAxMi0wNS0zMCAxMTowOToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHN5cy9vc3h2aWRlby9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBBZGQgT0JKQyBzcGVjaWZpYyBjb21waWxlciBmbGFncwoJICBTZWUgYnVnICM2NDM5MzkuCgoyMDEyLTA1LTMwIDExOjIzOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzQyOWJhNiB0byBlYzFjNGE4CgoyMDEyLTA1LTI5IDE3OjUwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgdmlkZW86IHJlbW92ZSBkdXBsaWNhdGUgZm9ybWF0CgoyMDEyLTA1LTI5IDE2OjUyOjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IFBvc3QgZXJyb3IgbWVzc2FnZSBpZiBFT1MgYmVmb3JlIHBhZHMgd2VyZSBjcmVhdGVkCgkgIEhhcHBlbnMgd2l0aCBzb21lIGZpbGVzIHdpdGggb25seSBoZWFkZXJzCgoyMDEyLTA1LTI4IDE1OjIyOjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmg6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmg6CgkgIHBuZzogUG9ydCB0byAwLjExIGFnYWluCgoyMDEyLTA1LTE0IDEyOjQ2OjU3ICswMjAwICBKZW5zIEdlb3JnIDxtYWlsQGplbnNnZS5vcmc+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwOiBEcm9wIHRyYW5zZmVyTW9kZS5kbG5hLm9yZyBoZWFkZXIKCSAgTGVhdmUgaXQgdG8gdGhlIGFwcGxpY2F0aW9uIHRvIGRlY2lkZSBvbiB0aGUgaGVhZGVyLiBObyBoZWFkZXIgYXQgYWxsCgkgIGlzIGJldHRlciB0aGFuIGhhdmluZyB0aGUgd3JvbmcgaGVhZGVyIGFzIERMTkEgbWFuZGF0ZXMgdGhhdCBhIG1pc3NpbmcKCSAgaGVhZGVyIGhhcyB0byBiZSB0b2xlcmF0ZWQgd2hpbGUgYSB3cm9uZyBoZWFkZXIgaXMgYW4gZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYwMjAKCjIwMTItMDQtMDcgMDk6NTI6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuaDoKCSogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdlbmMuaDoKCSAgcG5nOiBQb3J0IHRvIGJhc2UgdmlkZW8gY2xhc3NlcwoJICBDb25mbGljdHM6CgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmMKCSAgZXh0L2xpYnBuZy9nc3RwbmdkZWMuaAoJICBleHQvbGlicG5nL2dzdHBuZ2VuYy5jCgkgIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmgKCSAgUmV2ZXJ0ZWQgdG8gMC4xMCwgbmVlZHMgdG8gYmUgcG9ydGVkIGFnYWluLgoKMjAxMi0wNS0yNyAwMDowMjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSAgZmx2LCBtYXRyb3NrYTogZG9uJ3QgdXNlIEdzdFN0cnVjdHVyZSBBUEkgb24gdGFnIGxpc3RzCgoyMDEyLTA1LTI2IDExOjU3OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6CgkgIHJ0cG1wMnRkZXBheTogT25seSBvdXRwdXQgaW50ZWdyYWwgbXBlZy10cyBwYWNrZXRzCgkgIEZyb20gUkZDIDIyNTAKCSAgMi4gRW5jYXBzdWxhdGlvbiBvZiBNUEVHIFN5c3RlbSBhbmQgVHJhbnNwb3J0IFN0cmVhbXMKCSAgLi4uCgkgIEZvciBNUEVHMiBUcmFuc3BvcnQgU3RyZWFtcyB0aGUgUlRQIHBheWxvYWQgd2lsbCBjb250YWluIGFuIGludGVncmFsCgkgIG51bWJlciBvZiBNUEVHIHRyYW5zcG9ydCBwYWNrZXRzLiAgVG8gYXZvaWQgZW5kIHN5c3RlbQoJICBpbmVmZmljaWVuY2llcywgZGF0YSBmcm9tIG11bHRpcGxlIHNtYWxsIE1UUyBwYWNrZXRzIChub3JtYWxseSBmaXhlZAoJICBpbiBzaXplIGF0IDE4OCBieXRlcykgYXJlIGFnZ3JlZ2F0ZWQgaW50byBhIHNpbmdsZSBSVFAgcGFja2V0LiAgVGhlCgkgIG51bWJlciBvZiB0cmFuc3BvcnQgcGFja2V0cyBjb250YWluZWQgaXMgY29tcHV0ZWQgYnkgZGl2aWRpbmcgUlRQCgkgIHBheWxvYWQgbGVuZ3RoIGJ5IHRoZSBsZW5ndGggb2YgYW4gTVRTIHBhY2tldCAoMTg4KS4KCSAgLi4uLgoJICBTaW5jZSBpdCBuZWVkcyB0byBjb250YWluICJhbiBpbnRlZ3JhbCBudW1iZXIgb2YgTVBFRyB0cmFuc3BvcnQgcGFja2V0cyIsIGEKCSAgc2ltcGxlIGZpeCBpcyB0byBjaGVjayB0aGF0J3MgdGhlIGNhc2UsIGFuZCBzdHJpcCBvZmYgYW55IGxlZnRvdmVyIGRhdGEuCgkgIEZpeGVzICM2NzY3OTkKCSAgQ29uZmxpY3RzOgoJICBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jCgoyMDEyLTA1LTI0IDIwOjQzOjE2ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lmg6CgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBtYWtlIHN1cmUgYWxsIHNlbGVjdG9ycyBhcmUgcGVyZm9ybWVkIG9uIHRoZSBzYW1lIHRocmVhZAoJICBXaGVuIHdlIGFyZSB1c2luZyBhIGRlZGljYXRlZCB0aHJlYWQgdG8gcnVuIHRoZSBtYWluIHJ1biBsb29wIHdlCgkgIG11c3QgbWFrZSBzdXJlIHRoYXQgYWxsIHNlbGVjdG9ycyBhcmUgcGVyZm9ybWVkIG9uIHRoaXMgc2FtZSB0aHJlYWQuCgkgIEZvciBpbnN0YW5jZSBpZiBwZXJmb3JtU2VsZWN0b3JPbk1haW5UaHJlYWQgaXMgY2FsbGVkIGZyb20gdGhlIHJlYWwKCSAgbWFpbiB0aHJlYWQsIGl0IHdpbGwgbm90IGdvIHRocm91Z2ggdGhlIG1lc3NhZ2UgcXVldWUgYW5kIHdpbGwgYmUKCSAgZXhlY3V0ZWQgZnJvbSB0aGUgcmVhbCBtYWluIHRocmVhZC4gQnkgZm9yY2luZyB0aGUgdGFyZ2V0IHRocmVhZCwKCSAgd2UgZW5zdXJlIHRoYXQgYWxsIGZ1bmN0aW9ucyB3aWxsIGJlIGNhbGxlZCBlaXRoZXIgZnJvbSB0aGUgcmVhbAoJICBtYWluIHRocmVhZCB3aGVuIHRoZSBtYWluIHJ1biBsb29wIGlzIHJ1bm5pbmcgb3IgZnJvbSBvdXIgdGhyZWFkCgkgIHNwaW5uaW5nIHRoZSBtYWluIGxvb3AuCgoyMDEyLTA1LTI0IDE2OjA5OjU0ICswMjAwICBNYXRoaWFzIEhhc3NlbG1hbm4gPG1hdGhpYXMuaGFzc2VsbWFubiBhdCBnbXguZGU+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IHJlbW92ZSBmcmFtZXJhdGUKCSAgVGhlIGpwZWcgZGVjb2RlciBkb2Vzbid0IG5lZWQvY2FyZSBhYm91dCB0aGUgZnJhbWVyYXRlIHRvIHNvIGl0IHNob3VsZAoJICBub3QgYmUgaW4gdGhlIGNhcHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzMDIKCjIwMTItMDUtMjQgMTM6MDg6MzUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogc3RhcnQgdGhlIGxvb3AgYmVmb3JlIGNhbGxpbmcgW2dzdHZpZXcgaGF2ZVN1cGVydmlld10KCSAgLi4uYXMgaGF2ZVN1cGVydmlldyByZXF1aXJlcyB0aGUgbWFpbmxvb3AgdG8gYmUgcnVubmluZwoKMjAxMi0wNS0yNCAxMzowODoxMyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBmaXggaW5kZW50YXRpb24KCjIwMTItMDUtMjIgMTY6NDc6MzYgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3N4dmlkZW8vTWFrZWZpbGUuYW06CgkgIG9zeHZpZGVvc2luazogZW5hYmxlIHJ1bm5pbmcgdGhlIGNvY29hIG1haW4gcnVubG9vcCBpbiBhIHRocmVhZAoKMjAxMi0wNS0yMiAxNjo0NToyOCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IGFkZCBjb2RlIHRvIG9wdGlvbmFsbHkgcnVuIHRoZSBjb2NvYSBtYWluIHJ1bmxvb3AgaW4gYSBzZXBhcmF0ZSB0aHJlYWQKCSAgQWRkIGEgbGl0dGxlIGhhY2sgdG8gcnVuIHRoZSBjb2NvYSBtYWluIHJ1bmxvb3AgZnJvbSBhIHNlcGFyYXRlIHRocmVhZCBfd2hlbl8KCSAgdGhlIG1haW4gcnVubG9vcCBpcyBub3QgYmVpbmcgcnVuICh3aGljaCBtZWFucyB0aGF0IHRoZSBhcHAgZG9lc24ndCB1c2UgY29jb2EpLgoJICBSdW5sb29wcyBhcmUgdGhyZWFkIHNwZWNpZmljLCBzbyB0aGUgaGFjayBib2lscyBkb3duIHRvIGdldHRpbmcgdGhlIHJ1bmxvb3AgZm9yCgkgIHRoZSBtYWluIHRocmVhZCBhbmQgc2V0dGluZyBpdCBhcyB0aGUgcnVubG9vcCBmb3Igb3VyIGRlZGljYXRlZCB0aHJlYWQuCgoyMDEyLTA1LTIyIDE2OjMyOjUzICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IHJlc2V0IGFwcF9zdGFydGVkIHRvIEZBTFNFIHdoZW4gc2h1dHRpbmcgZG93bgoKMjAxMi0wNS0yMiAxNDo0OToxNyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiByZW5hbWUgY29jb2EgcnVubG9vcCBoZWxwZXIgZnVuY3MKCjIwMTItMDUtMjIgMTQ6MjY6MTMgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogZG9uJ3QgY3JlYXRlIGFwcGxpY2F0aW9uIG1lbnVzCgoyMDEyLTA1LTE2IDIxOjUyOjQ1ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5oOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogcmVzZXQgdGhlIGVtYmVkIHByb3BlcnR5IGZvciBiYWNrd2FyZCBjb21wYXRpbGliaXR5CgoyMDEyLTA1LTE2IDIxOjEyOjIyICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lmg6CgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIG9zeHZpZGVvc2luazogZml4IG5hdmlnYXRpb24gd2hlbiBmb3JjZS1hc3BlY3QtcmF0aW8gaXMgYWN0aXZhdGVkCgoyMDEyLTA1LTE2IDE4OjUyOjQ1ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lmg6CgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBhZGQgZm9yY2UtYXNwZWN0LXJhdGlvIHByb3BlcnR5CgoyMDEyLTA1LTE0IDE4OjAxOjAyICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lmg6CgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBzdGFydCBpbnRlcm5hbCB3aW5kb3cgaWYgbm8gdmlldyBpcyBwcm92aWRlZAoKMjAxMi0wNS0xNCAxNDoyNzo1OCArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5oOgoJKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubToKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IGltcGxlbWVudCB0aGUgbmF2aWdhdGlvbiBpbnRlcmZhY2UKCjIwMTItMDUtMTEgMTg6MjQ6MDggKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N2aWRlb3Npbms6IGNyZWF0ZSwgZGVzdHJveSwgcmVzaXplIGFuZCBkcmF3IGZyb20gdGhlIG1haW4gdGhyZWFkCgoyMDEyLTA0LTE5IDA4OjM3OjI4ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBpbmNyZWFzZSBORVdTRUdNRU5UIGFjY3VyYWN5IGFmdGVyIHNlZWtpbmcKCSAgZGVtdXgtPmNvbW1vbi5zZWdtZW50IGlzIHBvcHVsYXRlZCBkdXJpbmcgc2VlayBoYW5kbGluZyB3aXRoIHRoZSB0YXJnZXQKCSAgc3RhcnQvc3RvcCBwb3NpdGlvbnMuIERvbid0IG92ZXJyaWRlIHRoZW0gd2hlbiBzZW5kaW5nIG91dCBhIE5FV1NFR01FTlQuCgkgIENvbmZsaWN0czoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKCjIwMTItMDQtMTkgMDg6MzE6MDAgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGRvbid0IGRpc2NhcmQgdGhlIGluY29taW5nIHNlZWsgc2VnbWVudCBvbiBwdXNoIGJhc2VkIHNlZWtpbmcKCSAgVGhlIGluY29taW5nIHNlZWsgc2VnbWVudCB3YXMgYmVpbmcgZGlzY2FyZGVkIGxlYWRpbmcgdG8gcHVzaCBiYXNlZCBzZWVraW5nCgkgIGJlaW5nIHBvdGVudGlhbGx5IGluYWNjdXJhdGUuCgoyMDEyLTA1LTIzIDE4OjEyOjI0ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiBVcGRhdGUgc28gdGhlIHBsdWdpbiBzY2FubmVyIGNoYW5nZXMgYXJlIGluY2x1ZGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY2NzQKCjIwMTItMDUtMjMgMTg6MDc6MzUgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHN1cHByZXNzIHNvbWUgd2FybmluZ3Mgd2hlbiBkZWJ1ZyBpcyBkaXNhYmxlZAoJICBXYXJuaW5ncyBhYm91dCB1bnVzZWQgdmFyaWFibGVzIHNob3VsZCBiZSBzdXBwcmVzc2VkIGlmIGNvcmUgaGFzIHRoZQoJICBkZWJ1ZyBzeXN0ZW0gZGlzYWJsZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY2NzEKCjIwMTItMDUtMjQgMDk6Mjk6MjUgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwOiBmaXggYnVpbGQgaXNzdWUgaW4gZ3N0cnRwaDI2NHBheS5jCgoyMDEyLTA1LTIxIDEyOjE3OjM1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBBZGQgdW5yZXN0cmljdGVkIGNhcHMKCSAgSWYgdGhlcmUgYXJlIG5vIHByb2ZpbGUgcmVzdHJpY3Rpb25zIGRvd25zdHJlYW0sIHJldHVybiBjYXBzIHdpdGgKCSAgcHJvZmlsZT1jb25zdHJhaW5lZC1iYXNlbGluZSBpbiB0aGUgZmlyc3Qgc3RydWN0dXJlIGFuZCBhcHBlbmQKCSAgdW5yZXN0cmljdGVkIGNhcHMgYXMgdGhlIGxhc3Qgc3RydWN0dXJlLgoJICBGaXhlcyBidWcgIzY3MjAxOQoKMjAxMi0wNS0yNCAwOTo1NzozMSArMDIwMCAgTWFyaWEgR2lvdmFubmEgQ2hpb3NzYSA8bWFyaWFnaW92YW5uYS5jaGlvc3NhIGF0IHNlbGV4ZWxzYWcuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwOiBhZGQgdGhlIFNjYWxlIGhlYWRlciB3aGVuIG5lZWRlZAoJICBTZXR0aW5nIEdTVF9TRUVLX0ZMQUdfU0tJUCB3aGVuIHNlbmRpbmcgYSBzZWVrIGV2ZW50IGluIHJ0c3BzcmMgc2hvdWxkCgkgIHNldCB0aGUgIlNjYWxlIiBmaWVsZCBpbiB0aGUgcnRzcCBQTEFZIGhlYWRlci4KCSAgQmVjYXVzZSB0aGUgYm9vbGVhbiAic3JjLT5za2lwIiBpcyBzZXQgYWZ0ZXIgdGhlIGNhbGwsICJTcGVlZCIgaW5zdGVhZAoJICBvZiAiU2NhbGUiIGlzIGFsd2F5cyBzZXQuIE1vdmUgdGhlIGFzc2lnbm1lbnQgYmVmb3JlIGlzc3VpbmcgdGhlIF9wbGF5CgkgIHJlcXVlc3QuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY2MTgKCjIwMTItMDUtMTcgMTY6MjM6NTkgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogRml4IHRoZSBzYW1wbGUgcGlwZWxpbmUuCgoyMDEyLTA1LTIyIDEyOjM1OjA0ICswNDAwICBBbnRvbiBOb3Zpa292IDxyYW5kb20ucGxhbnRAZ21haWwuY29tPgoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkgIGljeWRlbXV4OiB3YXJuaW5nIGlmIHNldHRpbmcgc3JjcGFkIGNhcHMgZmFpbHMKCjIwMTItMDUtMjIgMTI6MzU6MjkgKzA0MDAgIEFudG9uIE5vdmlrb3YgPHJhbmRvbS5wbGFudEBnbWFpbC5jb20+CgoJKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSAgaWN5ZGVtdXg6IGFjdGl2YXRlIHNyY3BhZCBiZWZvcmUgc2V0dGluZyBjYXBzCgkgIEJlZm9yZSBnc3RfcGFkX3NldF9hY3RpdmUoKSBpcyBjYWxsZWQsIHRoZSBwYWQgaGFzCgkgIEZMVVNISU5HIGZsYWcgc2V0LCBzbyBzZXR0aW5nIHRoZSBjYXBzIGZhaWxzCgoyMDEyLTA1LTIyIDEzOjQ2OjI3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogZXh0L01ha2VmaWxlLmFtOgoJKiBleHQvbGlibW5nL01ha2VmaWxlLmFtOgoJKiBleHQvbGlibW5nL2dzdG1uZy5jOgoJKiBleHQvbGlibW5nL2dzdG1uZy5oOgoJKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5jOgoJKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5oOgoJKiBleHQvbGlibW5nL2dzdG1uZ2VuYy5jOgoJKiBleHQvbGlibW5nL2dzdG1uZ2VuYy5oOgoJICBtbmc6IHJlbW92ZSBleHQvbGlibW5nCgkgIFBvcnQgdG8gMC4xMCB3YXMgbmV2ZXIgZmluaXNoZWQuCgkgIEludGVyZXN0IHdhcyBsb3N0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0MzY0CgoyMDEyLTA1LTE4IDE2OjM3OjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IGZpeCBhc3NlcnRpb24gd2hlbiBoYW5kbGluZyBhIGRhdGUgdGFnIGFzIGEgc3RyaW5nCgkgIERhdGUgdGFncyBhcmUgR0RhdGUsIG5vdCBzdHJpbmdzLiBBZGQgYSBzcGVjaWFsIGNhc2UgdG8gY29udmVydAoJICBpdCB0byB0aGUgZXhpZiBkYXRlIGZvcm1hdCByZXByZXNlbnRhdGlvbiBpbiBzdHJpbmcgdG8gYXZvaWQKCSAgdGhlIGFzc2VydGlvbgoKMjAxMi0wNS0yMSAxMTo0NzowNyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBMaXN0ZW4gdG8gc291cmNlIG91dHB1dCBldmVudHMsIG5vdCBzaW5rIGlucHV0CgoyMDEyLTA1LTE4IDEyOjUzOjQ0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJICBydHBtcDJ0cGF5OiByZXNwZWN0IG10dSBhbmQgcGFja2V0IGJvdW5kYXJpZXMKCSAgU2VlICM2NTk5MTUuCgoyMDEyLTA1LTE4IDExOjEwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZzogUmVtb3ZlIGRlYWQgY29kZQoJICBDb25mbGljdHM6CgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYwoKMjAxMi0wNS0xOCAxMTowNTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IEZpeCBjb21waWxhdGlvbgoKMjAxMi0wNS0xOCAxMTowMjo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IFdoZW4gZHJvcHBpbmcgZnJhbWVzIG9uIEVPUywgZmx1c2ggb3V0IGRhdGEKCSAgQ2xlYW5lciB3YXkgb2YgaGFuZGxpbmcgc3RyYXkgZGF0YQoKMjAxMi0wNS0xNyAwOTozNDowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJICBDb25mbGljdHM6CgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYwoKMjAxMi0wNS0xNyAwOTozMzoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IE9ubHkgcGFyc2UgZm9yIFNPSSB3aGVuIHdlIGRpZG4ndCBzZWUgaXQgYmVmb3JlCgoyMDEyLTA1LTE3IDA5OjMxOjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogUmVtZW1iZXIgaWYgd2Ugc2F3IFNPSSBhbmQgaGFuZGxlIHN0cmF5IGRhdGEgb24gRU9TCgoyMDEyLTA1LTE1IDIwOjU4OjI1ICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIHJ0cGpwZWdwYXk6IEFsbG93IFUgYW5kIFYgY29tcG9uZW50cyB0byB1c2UgZGlmZmVyZW50IHF1YW50IHRhYmxlcyBpZiB0aGV5IGNvbnRhaW4gdGhlIHNhbWUgZGF0YQoJICBUaGlzIGFsbG93cyBzb21lIGNhbWVyYXMgKExvZ2l0ZWNoIEM5MjApIHRoYXQgc3BlY2lmeSBkaWZmZXJlbnQgcXVhbnQKCSAgdGFibGVzIGJ1dCBib3RoIHdpdGggdGhlIHNhbWUgZGF0YSwgdG8gd29yay4KCSAgQnVnIHJlcG9ydGVkIGJ5IFJvYmVydCBLcmFrb3JhCgoyMDEyLTA1LTE0IDE1OjUxOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBmaXggcG9zc2libGUgZGF0YSBjb3JydXB0aW9uIGFmdGVyIHNlZWtpbmcKCSAgQ29uc2lkZXIgYSBkb3duc3RyZWFtIGVsZW1lbnQgdGhhdCBtYXkgaXNzdWUgc2Vla3MgaW4gdmVyeSBzaG9ydAoJICBzdWNjZXNzaW9uIChlLmcuIHF1ZXVlMiksIGRlcGVuZGluZyBvbiB0aGUgYWNjZXNzIHBhdHRlcm4gb2YKCSAgdGhlIGRvd25zdHJlYW0gZWxlbWVudCAoZS5nLiBxdGRlbXV4IHdpdGggYXVkaW8vdmlkZW8gY2h1bmtzCgkgIGludGVybGVhdmVkIHNvIHRoYXQgdGhlcmUncyBhbHdheXMgYSBzaXplYWJsZSBnYXAgYmV0d2VlbiB0aGUKCSAgY3VycmVudCBjaHVua3MgZm9yIGVhY2ggc3RyZWFtKS4gSW4gdGhpcyBjYXNlLCBxdWV1ZTIgd2lsbCBtYWludGFpbgoJICB0d28gcmFuZ2VzLCBhbmQgZXZlbiB3aGVuIGl0IHNlcnZlcyBhIGNodW5rIGZyb20gbWVtb3J5LCBpdCB3aWxsCgkgIHN3aXRjaCByYW5nZXMgYW5kIG1ha2Ugc291cGh0dHBzcmMgc2VlayB0byB0aGUgZW5kIG9mIHRoZSBhdmFpbGFibGUKCSAgZGF0YSBmb3IgdGhhdCByYW5nZSwgYXNzdW1pbmcgdGhhdCB0aGF0J3Mgd2hlcmUgd2UnbGwgd2FudCB0bwoJICBjb250aW51ZSByZWFkaW5nIGZyb20gbmV4dC4KCSAgVGhpcyBtYXkgbGVhZCB0byB0aGUgZm9sbG93aW5nIHNlZWsgcmVxdWVzdCBwYXR0ZXJuOgoJICAtIHNvdXJjZSByZWFkaW5nIHBvc2l0aW9uIEEKCSAgLSBzZWVrIHRvIEIKCSAgLSBub3cgcmVhZGluZyBwb3NpdGlvbiBzdGlsbCBBLCByZXF1ZXN0ZWRfcG9zdGlvbiBpcyBCCgkgIC0gc3RyZWFtaW5nIHRocmVhZCB0byBiZSByZXN0YXJ0ZWQgdG8gY29udGludWUgZnJvbSBCCgkgIC0gc2VlayB0byBBLCBiZWZvcmUgc3RyZWFtaW5nIHRocmVhZCBoYWQgdGltZSB0byBkbyB0aGUgc2VlawoJICAtIGRvX3NlZWsoKSBub3cgc2VlcyByZWFkaW5nIHBvc2l0aW9uID09IHNlZWsgcG9zaXRpb24gYW5kCgkgIHJldHVybnMgZWFybHkuCgkgIC0gaG93ZXZlciwgcmVxdWVzdGVkIHBvc2l0aW9uIGlzIHN0aWxsIEIgZnJvbSB0aGUgZWFybGllcgoJICBzZWVrIHJlcXVlc3QKCSAgLSBzdHJlYW1pbmcgdGhyZWFkIHN0YXJ0cyB1cCwgc2VlcyB0aGF0IGEgc2VlayB0byBCIGlzIHBlbmRpbmcKCSAgYW5kIHJlcXVlc3RzIGRhdGEgZnJvbSBCIGZyb20gdGhlIHNlcnZlciwgd2hpbGUgdGhlIEdzdEJhc2VTcmMKCSAgc2VnbWVudCBoYXMgb2YgY291cnNlIGJlZW4gdXBkYXRlZC9yZXNldCB0byBwb3NpdGlvbiBBLCB3aGljaAoJICB3YXMgdGhlIGxhc3Qgc2VlayByZXF1ZXN0LgoJICAtIHdlIHdpbGwgbm93IHNlbmQgZGF0YSBmb3IgcG9zaXRpb24gQiBhbmQgcHJldGVuZCB0aGF0J3MgdGhlCgkgIGRhdGEgZnJvbSBwb3NpdGlvbiBBICh2aWEgdGhlIG5ld3NlZ21lbnQgZXZlbnQsIGV0Yy4pCgkgIC0gdGhpcyBjYXVzZXMgZGF0YSBjb3JydXB0aW9uCgkgIFJlcHJvZHVjaWJsZSBkb2luZyBzZWVrLWVtdWxhdGVkIGZhc3QtZm9yd2FyZC9iYWNrd2FyZCBvbiAwMDY2NDguCgoyMDEyLTA1LTE2IDA5OjEyOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZXF1aXJlIGNvcmUvYmFzZSAwLjExLjkxCgoyMDEyLTAxLTEzIDE4OjA5OjUwIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogYWRkIHZpc3VhbCBzdHVkaW8gSURFIGZpbGVzIGFuZCBPUyBYIC5EU19TdG9yZSBmaWxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODk5CgoyMDEyLTA1LTAzIDA5OjMyOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAganBlZzogUG9ydCB0byAwLjExIGFnYWluCgoyMDEyLTA0LTA2IDEyOjEzOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAganBlZzogUG9ydCBqcGVnZGVjL2pwZWdlbmMgdG8gYmFzZSB2aWRlbyBjbGFzc2VzCgkgIENvbmZsaWN0czoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy5jCgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuaAoJICBleHQvanBlZy9nc3RqcGVnZW5jLmMKCSAgZXh0L2pwZWcvZ3N0anBlZ2VuYy5oCgkgIFJldmVydGVkIHRvIDAuMTAgdmVyc2lvbnMgZm9yIG5vdywgbmV4dCBwb3J0IGFnYWluLgoKMjAxMi0wNS0xMyAxOToyMToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGV4dC9NYWtlZmlsZS5hbToKCSogZXh0L2Fubm9kZXgvTWFrZWZpbGUuYW06CgkqIGV4dC9hbm5vZGV4L2dzdGFubm9kZXguYzoKCSogZXh0L2Fubm9kZXgvZ3N0YW5ub2RleC5oOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuaDoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmg6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxwYXJzZXIuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbHBhcnNlci5oOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sdGFnLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWx0YWcuaDoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbHV0aWxzLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWx1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6CgkgIGFubm9kZXg6IHJlbW92ZSBhbm5vZGV4IHBsdWdpbiBhbmQgQ01NTCBlbGVtZW50cwoJICBUaGlzIG5ldmVyIHJlYWxseSB0b29rIG9mZiBhbmQgaXMgbW9zdCBsaWtlbHkgY29tcGxldGVseQoJICB1bnVzZWQuIElmIHRoZXJlIGlzIHN0aWxsIGEgbmVlZCBmb3IgdGhpcywgaXQgc2hvdWxkCgkgIHByb2JhYmx5IGJlIGRvbmUgZGlmZmVyZW50bHksIHBlcmhhcHMgaW5zaWRlIG9nZ2RlbXV4L211eC4KCjIwMTItMDUtMTMgMTY6NTk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkxID09PQoKMjAxMi0wNS0xMyAxNjozMTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjkxCgoyMDEyLTA1LTEzIDE2OjMwOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA1LTEzIDE1OjU2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGM3MDIwMyB0byAzNDI5YmE2CgoyMDEyLTA1LTA5IDE1OjE0OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL3JuZGJ1ZmZlcnNpemUuYzoKCSAgcm5kYnVmZmVyc2l6ZTogb25seSBzZW5kIGZsdXNoLXN0b3AgaWYgaXQgd2FzIGEgZmx1c2hpbmcgc2VlawoKMjAxMi0wNS0wOSAxMjo1NDoxMSArMDIwMCAgUGV0ZXIgU2VpZGVyZXIgPHBzLnJlcG9ydEBnbXgubmV0PgoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICB2NGwyc3JjOiBmaXggdjRsMl9zdGRfaWQgbG9nZ2luZwoJICBpbnB1dC5zdGQgaXMgb2YgdHlwZSB2NGwyX3N0ZF9pZCB3aGljaCBpcyBkZWZpbmVkIGFzIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyLgoJICBDYXN0aW5nIHRvIHVpbnQgbWVhbnMgdGhlIGhpZ2hlciBiaXRzLCB3aWNoIGFyZSB1c2VkIGZvciB0aGUgcHJpdmF0ZSB2aWRlbwoJICBzdGFuZGFyZHMgb2YgdGhlIFRJIHZpZGVvIGNhcHR1cmUvZGlzcGxheSBkcml2ZXIgZm9yIGV4YW1wbGUsIGFyZSBsb3N0LgoKMjAxMi0wNS0wOSAxMjoyNDozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkgIHJuZGJ1ZmZlcnNpemU6IG11c3Qgc2VuZCBmbHVzaC1zdG9wIGFmdGVyIGFjcXVpcmluZyB0aGUgc3RyZWFtIGxvY2sKCSAgT3RoZXJ3aXNlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIG1pZ2h0IGp1c3Qga2VlcCBvbiBnb2luZyBhbmQgd2UKCSAgbWlnaHQgbmV2ZXIgZ2V0IHRoZSBzdHJlYW0gbG9jay4KCjIwMTItMDUtMDkgMTE6MTU6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJICBybmRidWZmZXJzaXplOiBwb3J0IHNlZWtpbmcgY29kZSB0byAwLjExCgoyMDEyLTA1LTA4IDE5OjA3OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL3JuZGJ1ZmZlcnNpemUuYzoKCSAgcm5kYnVmZmVyc2l6ZTogYWRkIHN1cHBvcnQgZm9yIHNlZWtzCgkgIFVzZWZ1bCBmb3IgZS5nLiBmaWxlc3JjICEgcm5kYnVmZmVyc2l6ZSAhIHF1ZXVlMiAhIC4uLgoKMjAxMi0wNS0wOCAxODo0NTozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkgIHJuZGJ1ZmZlcnNpemU6IHNlbmQgU0VHTUVOVCBldmVudCBiZWZvcmUgcHVzaGluZyBidWZmZXJzCgkgIENvbmZsaWN0czoKCSAgZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jCgoyMDEyLTA1LTA5IDExOjE1OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJICBpbnRlcmxlYXZlOiBmaXggY29tcGlsYXRpb24gYWdhaW4KCjIwMTItMDEtMTMgMTA6NDk6NDMgKzAxMDAgIFBhc2NhbCBCdWhsZXIgPHBhYnVobGVyQGNpc2NvLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogY3JlYXRpb24gc2hvdWxkIGJlIHNpZ25hbGVkIGJlZm9yZSB2YWxpZGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4NTAKCjIwMTItMDUtMDQgMTU6MjA6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogZG8gbm90IHByb3h5IG91ciBmaWx0ZXIgY2FwcyBkb3duc3RyZWFtIG9uIGNhcHMgcXVlcmllcwoJICBEb3duc3RyZWFtIGxpa2VseSB3b24ndCBhY2NlcHQgdmlkZW8veC1yYXcgYW5kIHRoZSBjYXBzIHF1ZXJ5CgkgIHdpbGwgcmV0dXJuIEVNUFRZIGNhcHMuIEluc3RlYWQsIGNyZWF0ZSBhIGNvcHkgb2YgdGhlIGNhcHMgdGhhdAoJICBoYXMgYWxsIHN0cnVjdHVyZSBuYW1lcyByZXBsYWNlZCBieSAnaW1hZ2UvanBlZycKCSAgU2ltcGxlIHBpcGVsaW5lIHRoYXQgc2hvd3MgdGhlIHByb2JsZW06CgkgIGdzdC1sYXVuY2gtMS4wIHZpZGVvdGVzdHNyYyBudW0tYnVmZmVycz0xICEgInZpZGVvL3gtcmF3LCBcCgkgIHdpZHRoPShpbnQpNjQwLCBoZWlnaHQ9KGludCk0ODAiICEgdmlkZW9zY2FsZSAhIGpwZWdlbmMgISBcCgkgICJpbWFnZS9qcGVnLCB3aWR0aD0oaW50KTgwMCwgaGVpZ2h0PShpbnQpNjAwIiAhIGZpbGVzaW5rIFwKCSAgbG9jYXRpb249L3RtcC9pbWFnZS5qcGcKCjIwMTItMDUtMDIgMjE6MTc6NDMgKzAyMDAgIEFsYmFuIEJyb3dhZXlzIDxwcmFoYWxAeWFob28uY29tPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIGlzb21wNDogc2V0IGxheW91dD1pbnRlcmxlYXZlZCBvbiByYXcgYXVkaW8gY2FwcwoJICBUaGlzIGZpeGVzIGEgbm90LW5lZ290aWF0ZWQgZXJyb3IgYXQgbGVhc3Qgb24gbW92IGZpbGVzIHdpdGgKCSAgdHdvcyBhdWRpbyB3aXRoIHR3byBjaGFubmVscyBhbmQgdmlkZW8gZHZjcC4gQXMgcGxheWJpbiBhbmQgZ3N0LWxhdW5jaAoJICBzYW1wbGUgY29taW5nIGZyb20gdGhlIHF0ZGVtdXguYyBmaWxlIHVzZXMgYXVkaW9jb252ZXJ0IGFuZCB0aGUgbGF0dGVyCgkgIHJlcXVpcmUgZm9ybWF0IGludGVybGVhdmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MzI2CgoyMDEyLTA1LTAyIDIxOjQ5OjU2ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHN5cy93YXZlZm9ybS9NYWtlZmlsZS5hbToKCSAgd2F2ZWZvcm06IE5vIG1vcmUgZ3N0aW50ZXJmYWNlcwoJICBGaXhlcyAjNjc1MzE5CgoyMDEyLTA1LTAyIDIwOjE0OjI0ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9NYWtlZmlsZS5hbToKCSAgZGlyZWN0c291bmQ6IE5vIG1vcmUgZ3N0aW50ZXJmYWNlcwoJICBGaXhlcyAjNjc1MzE5CgoyMDEyLTA1LTAxIDE4OjU4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmg6CgkgIHZpZGVvbWl4ZXI6IGNoYW5nZSBzaW5rIHBhZCB0ZW1wbGF0ZSBuYW1lIGZyb20gc2lua18lZCB0byBzaW5rXyV1CgoyMDEyLTA0LTMwIDExOjAwOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJICBpbnRlcmxlYXZlOiBoYW5kbGUgRU9TIG9uIGFsbCBwYWRzCgkgIFdoZW4gYWxsIHBhZHMgZ28gdG8gRU9TIGltbWVkaWF0ZWx5LCB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgYW5kIG91ciBjb2xsZWN0ZWQKCSAgZnVuY3Rpb24gaXMgY2FsbGVkICh3aXRob3V0IGFueSBhdmFpbGFibGUgZGF0YSkuIEhhbmRsZSB0aGlzIGNhc2UgZ3JhY2VmdWxseS4KCSAgQ29uZmxpY3RzOgoJICBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmMKCjIwMTItMDQtMzAgMTA6NTk6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkgIGludGVybGVhdmU6IGltcHJvdmUgZGVidWdnaW5nCgoyMDEyLTA1LTAxIDEzOjMxOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogVXBkYXRlIGZvciBiYXNlc3JjIEFQSSBjaGFuZ2VzCgoyMDEyLTA0LTMwIDIzOjU3OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogZG9uJ3Qgc2V0IHVwIHN0dWZmIGJlZm9yZSB0aGUgaW5wdXQgYW5kIG91dHB1dCBmb3JtYXRzIGFyZSBrbm93bgoJICBGaXhlcyBjcmFzaCBvbiBzdGFydHVwLgoKMjAxMi0wNC0zMCAxNDowOToyMyArMDIwMCAgUGV0ZXIgU2VpZGVyZXIgPHBzLnJlcG9ydEBnbXgubmV0PgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIG11bHRpZmlsZXNpbms6IGRvbid0IHdyaXRlIHN0cmVhbSBoZWFkZXIgdHdpY2UgZm9yIGZpcnN0IGZpbGUKCjIwMTItMDQtMzAgMTM6MzI6NDEgKzAyMDAgIFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICBtdWx0aWZpbGVzaW5rOiBmaXggYnVmZmVyIGxpc3Qgc2l6ZSBjYWxjdWxhdGlvbiBpbiByZW5kZXJfbGlzdAoJICBGaXggdW5pbml0aWFsaXplZCAnc2l6ZScgdmFyaWFibGUgaW4gY2FsbCB0byBnc3RfYnVmZmVyX2xpc3RfZm9yZWFjaCgpLgoKMjAxMi0wNC0zMCAyMTo1ODowMCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgIG11bHRpZmlsZTogdW5uZWNlc3Nhcnkgc2l6ZSBjaGVjawoKMjAxMi0wNC0zMCAyMTozMDo1NiArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpOiBmaXggYnVpbGQgZXJyb3JzCgkgIGZpeCByZWR1bmRhbnQgZGVjbGFyYXRpb25zCgkgIGFuZCBhbHNvIHN0eWxlL2luZGVudCBpc3N1ZXMKCjIwMTItMDQtMjYgMTI6NDc6MjcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiBpbXBsZW1lbnQgZm9yd2FyZCBzbmFwcGluZyBrZXlmcmFtZSBzZWVraW5nCgkgIFJlcXVpcmVzIGFuIGluZGV4LgoKMjAxMi0wNC0yNiAxMjo0NjoxMSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aTogaW1wbGVtZW50IGZvcndhcmQgc25hcHBpbmcga2V5ZnJhbWUgc2Vla2luZwoJICBJbiBwdWxsIG1vZGUgd2l0aCBhbiBpbmRleC4KCjIwMTItMDQtMjggMjM6MTQ6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbWF0cm9za2FtdXguYzoKCSAgdGVzdHM6IGZpeCBtYXRyb3NrYW11eCB1bml0IHRlc3QgYWZ0ZXIgbWVkaWEgdHlwZSBjaGFuZ2VzCgoyMDEyLTA0LTI4IDE5OjU3OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2Evd2VibS1tdXguYzoKCSAgbWF0cm9za2E6IHVwZGF0ZSBmb3IgbWVkaWEgdHlwZSBjaGFuZ2VzCgoyMDEyLTA0LTI0IDE2OjA4OjQ3ICswMjAwICBpZGMtZHJhZ29uIDxpZGMtZHJhZ29uIGF0IGdteC5kZT4KCgkqIGdzdC9ydHAvZ3N0cnRwY2VsdGRlcGF5LmM6CgkgIGNlbHRkZXBheTogY2FsY3VsYXRlIHNpemUgY29ycmVjdGx5CgkgIFRoZSBzdW1tYXRpb24gd2FzIGRvbmUgd3JvbmcsIGNhdXNpbmcgdGhlIGRlLXBheWxvYWRlciB0byBleGl0IGl0cyBsb29wIHRvbwoJICBlYXJseSwgYmVmb3JlIGFsbCBmcmFtZXMgYXJlIHByb2Nlc3NlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDQ3MgoKMjAxMi0wNC0yNCAxNTo1NzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBpbXByb3ZlIGRlYnVnCgoyMDEyLTA0LTI0IDE1OjM0OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHN0YXJ0IHVubXV0ZWQgd2hlbiByZXF1ZXN0ZWQKCSAgV2hlbiB3ZSBleHBsaWNpdGVseSBzZXQgdGhlIG11dGUgcHJvcGVydHkgdG8gRkFMU0UsIGNvbm5lY3QgdG8gcHVsc2VhdWRpbyB3aXRoCgkgIHRoZSBQQV9TVFJFQU1fU1RBUlRfVU5NVVRFRCBmbGFnIHNldCwgb3RoZXJ3aXNlIHB1bHNlYXVkaW8gd2lsbCB1c2UgaXRzCgkgIHByZXZpb3VzbHkgdXNlZCB2YWx1ZSAod2hpY2ggbWlnaHQgc3RhcnQgdGhlIHN0cmVhbSBtdXRlZCkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI0MDEKCjIwMTItMDQtMjUgMDk6NDE6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IGltcHJvdmUgdGltZXN0YW1wIGNvZGUKCSAgU2FtcGxlIHRoZSBwaXBlbGluZSBjbG9jayBhbmQgZGV2aWNlIGNsb2NrIGNsb3NlciB0byBlYWNob3RoZXIgdG8gcmVkdWNlIGppdHRlci4KCSAgRG9uJ3Qgc3VidHJhY3QgdGhlIGZyYW1lIGR1cmF0aW9uIGZyb20gdGhlIHRpbWVzdGFtcCB3aGVuIHdlIGNhbiB1c2UgdGhlIGRldmljZQoJICB0aW1lc3RhbXBzLgoJICBBc3N1bWUgYSBkZWxheSBvZiAxIGZyYW1lIGluIHJlYWQtd3JpdGUgbW9kZS4KCjIwMTItMDQtMjQgMTI6Mzc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IHVzZSBkcml2ZXIgdGltZXN0YW1wcwoJICBVc2UgdGhlIGRyaXZlIHRpbWVzdGFtcHMgZm9yIHRpbWVzdGFtcGluZyBvdXRnb2luZyBidWZmZXJzLgoKMjAxMi0wNC0yMyAxODowMTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMjogSW1wcm92ZSBidWZmZXIgbWFuYWdlbWVudAoJICBRdWVyeSB0aGUgYW1vdW50IG9mIGF2YWlsYWJsZSBidWZmZXJzIHdoZW4gZG9pbmcgc2V0X2NvbmZpZygpLiBUaGlzIGFsbG93cyB1cyB0bwoJICBjb25maWd1cmUgdGhlIHBhcmVudCBidWZmZXJwb29sIHdpdGggdGhlIG51bWJlciBvZiBidWZmZXJzIHRvIHByZWFsbG9jYXRlLgoJICBLZWVwIHRyYWNrIG9mIHRoZSBwcm92aWRlZCBhbGxvY2F0b3IgYW5kIHVzZSBpdCB3aGVuIHdlIG5lZWQgdG8gYWxsb2NhdGUgYQoJICBidWZmZXIgaW4gUlcgbW9kZS4KCSAgV2hlbiB3ZSBhcmUgY2FuIG5vdCBhbGxvY2F0ZSB0aGUgcmVxdWVzdGVkIG1heF9idWZmZXJzIGFtb3VudCBvZiBidWZmZXJzLCBtYWtlCgkgIHN1cmUgd2Uga2VlcCAyIGJ1ZmZlcnMgYXJvdW5kIGluIHRoZSBwb29sIGFuZCBjb3B5IHRoZW0gaW50byBhbiBvdXRwdXQgYnVmZmVyLgoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBhbHdheXMgaGF2ZSBhIGJ1ZmZlciB0byBjYXB0dXJlIGludG8uIFdlIGFsc28gbmVlZCB0bwoJICBkZXRlY3QgdGhvc2UgY29waWVkIGJ1ZmZlcnMgYW5kIHVucmVmIHRoZW0gd2hlbiB0aGV5IHJldHVybiB0byB0aGUgcG9vbC4KCjIwMTItMDQtMjMgMTY6NTE6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBmcmVlIHRoZSBxdWV1ZWQgYnVmZmVycwoJICBPbmx5IGZyZWUgdGhlIHF1ZXVlZCBidWZmZXJzIHRoYXQgd2Uga2VlcCB0cmFjayBvZiBpbiBvdXIgYnVmZmVyIGFycmF5LiBmb3IgcncKCSAgaW8tbW9kZSwgd2UgZG8gYWxsb2NhdGUgYnVmZmVycyBidXQgd2UgZG9uJ3Qga2VlcCB0cmFjayBvZiB0aGVtIGluIHRoZSBidWZmZXIKCSAgYXJyYXkuCgoyMDEyLTA0LTIzIDE2OjEwOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgdjRsMjogbWFyayBtZW1vcnkgYXMgbm8tc2hhcmUKCSAgV2UgZG9uJ3Qgc3VwcG9ydCBzaGFyaW5nIG91ciBtbWFwcGVkIG1lbW9yeSBzbyBtYXJrIGl0IGFzIE5PX1NIQVJFLgoKMjAxMi0wNC0yMyAxNjowOTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMjogcmVtb3ZlIG9sZCB1bnVzZWQgZmlsZQoKMjAxMi0wNC0yMyAxMzozMjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMjogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbgoKMjAxMi0wNC0xMSAxMjo0MjoxNyArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cDogSGFuZGxlIGljeSBhbmQgaWN5eCBVUkkgc2NoZW1lcwoJICBBcyBoYW5kbGVkIGJ5IFF1aWNrVGltZSAoZm9yIGljeSksIGFuZCBPcmJhbi9Db2RpbmcgVGVjaG5vbG9naWVzCgkgIEFBQy9hYWNQbHVzIFBsYXllciAoZm9yIGljeXgpLiBTZWUgYWxzbzoKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDIwNwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMjg1CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzM4OTkKCjIwMTItMDQtMjMgMTA6MDM6MTkgKzAzMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgZG9jczogQWRkIFNpbmNlIHRhZyBmb3IgbmV3IEdzdFY0bDJTcmM6OnByZXBhcmUtZm9ybWF0IHNpZ25hbAoKMjAxMi0wNC0yMyAxMDowNzoxMiArMDIwMCAgQ2hyaXMgUGFua293IDxrYWluMjM5NkBnbWFpbC5jb20+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJICBhdWRpb2Z4YmFzZWZpcmZpbHRlcjogRml4IHRpbWUtZG9tYWluIGNvbnZvbHV0aW9uIGZvciBtdWx0aWNoYW5uZWwgaW5wdXQKCSAgRml4ZXMgYnVnICM2NzQwMjUuCgoyMDEyLTA0LTIxIDExOjA4OjUxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogcmVtb3ZlIHNvbWUgbW9yZSBub24tZXhpc3RlbnQgZmlsZXMgZnJvbSB0aGUgbGlzdAoKMjAxMi0wNC0yMSAxMDowNTo0NSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IFJlbW92ZSBub24tZXhpc3RlbnQgcG90ZmlsZXMgZnJvbSB0aGUgbGlzdAoJICBGaXhlcyAjNjc0NTE4CgoyMDEyLTA0LTIwIDE4OjEzOjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzL3Rlc3Qtb3NzNC5jOgoJICB0ZXN0czogb3NzNDogbGltaXQgdGVzdCBzY29wZQoKMjAxMi0wNC0yMCAxODoxMzowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBzeXMvb3NzNC9NYWtlZmlsZS5hbToKCSogc3lzL29zczQvb3NzNC1hdWRpby5jOgoJKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmg6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXItZW51bS5jOgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLWVudW0uaDoKCSogc3lzL29zczQvb3NzNC1taXhlci1zbGlkZXIuYzoKCSogc3lzL29zczQvb3NzNC1taXhlci1zbGlkZXIuaDoKCSogc3lzL29zczQvb3NzNC1taXhlci1zd2l0Y2guYzoKCSogc3lzL29zczQvb3NzNC1taXhlci1zd2l0Y2guaDoKCSogc3lzL29zczQvb3NzNC1taXhlci5jOgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmg6CgkqIHN5cy9vc3M0L29zczQtcHJvcGVydHktcHJvYmUuYzoKCSogc3lzL29zczQvb3NzNC1wcm9wZXJ0eS1wcm9iZS5oOgoJKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSogc3lzL29zczQvb3NzNC1zaW5rLmg6CgkqIHN5cy9vc3M0L29zczQtc291cmNlLmM6CgkqIHN5cy9vc3M0L29zczQtc291cmNlLmg6CgkgIG9zczQ6IHBvcnQgdG8gMC4xMQoKMjAxMi0wNC0yMCAxODoxMjo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBzeXMvb3NzL01ha2VmaWxlLmFtOgoJKiBzeXMvb3NzL2dzdG9zc2F1ZGlvLmM6CgkqIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmM6CgkqIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmg6CgkqIHN5cy9vc3MvZ3N0b3NzbWl4ZXIuYzoKCSogc3lzL29zcy9nc3Rvc3NtaXhlci5oOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5oOgoJKiBzeXMvb3NzL2dzdG9zc21peGVydHJhY2suYzoKCSogc3lzL29zcy9nc3Rvc3NtaXhlcnRyYWNrLmg6CgkqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5oOgoJICBvc3M6IHBvcnQgdG8gMC4xMQoKMjAxMi0wNC0yMCAxNjo0OTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSAgbXVsdGlwYXJ0ZGVtdXg6IGZpcnN0IGFjdGl2YXRlIHBhZCB0aGVuIHNldCBjYXBzCgoyMDEyLTA0LTIwIDEzOjM1OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogc2V0IGNhcHMgb24gc3JjcGFkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQyMTkKCjIwMTItMDQtMTkgMTQ6MTY6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiB1cGRhdGUgZm9yIHZpZGVvIGFwaSBjaGFuZ2UKCjIwMTItMDQtMTkgMTI6Mzg6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IGZpeCBjb21waWxhdGlvbiBvbiBvbGRlciB2NGwyCgkgIEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHdoZXJlIHRoZSBIMjY0IGZvcm1hdCBpcyBub3QgZGVmaW5lZC4KCjIwMTItMDQtMTkgMTI6MjA6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9yYXcxMzk0L01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2aWRlbzogVXBkYXRlIGZvciBsaWJnc3R2aWRlbyBBUEkgY2hhbmdlcwoKMjAxMi0wNC0xOSAwODoyNzowMSArMDAwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc3JjOiBBbGxvdyBtcGVnLXRzIGNhbWVyYXMgdG8gbmVnb2NpYXRlIGZvcm1hdAoJICBUaGlzIHJlbW92ZXMgYW4gdWdseSBoYWNrIHVudGlsIHRoZSByZWFzb24gZm9yIHRoZSBoYWNrIGNhbiBiZSBkb2N1bWVudGVkCgoyMDEyLTA0LTE5IDA5OjUwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMnNyYzogRml4IG1lcmdlCgoyMDEyLTA0LTE5IDA5OjQwOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc3JjOiBSZW5hbWUgcHJlLXNldC1mb3JtYXQgc2lnbmFsIHRvIHByZXBhcmUtZm9ybWF0CgoyMDEyLTA0LTE2IDIyOjA4OjIxICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyc3JjOiBBZGQgSDI2NCBlbmNvZGVkIHN0cmVhbSBzdXBwb3J0IHRvIHRoZSBjYXBzCgkgIFRoaXMgaXMgbm90IGVub3VnaCB0byBwcm9wZXJseSBzdXBwb3J0IEgyNjQgY2FtZXJhcywgYnV0IGl0IHdpbGwKCSAgYWxsb3cgYW4gSDI2NCBzdHJlYW0gdG8gYmUgZ2VuZXJhdGVkIGJ5IHY0bDJzcmMgdXNpbmcgdGhlIGRlZmF1bHQKCSAgc2V0dGluZ3Mgb2YgdGhlIGNhbWVyYS4gSWYgdXNlZCB3aXRoIHRoZSBwcmUtc2V0LWZvcm1hdCBzaWduYWwsIHRoZQoJICBIMjY0IGVuY29kZXIgY2FuIGJlIGZ1bGx5IGNvbmZpZ3VyZWQuCgkgIENvbmZsaWN0czoKCSAgc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jCgoyMDEyLTA0LTE2IDIyOjA2OjIxICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvLmdpdGlnbm9yZToKCSogc3lzL3Y0bDIvZ3N0djRsMi1tYXJzaGFsLmxpc3Q6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc3JjOiBBZGRpbmcgYSBwcmUtc2V0LWZvcm1hdCBzaWduYWwKCSAgSW4gb3JkZXIgdG8gc3VwcG9ydCBVVkMgSDI2NCBlbmNvZGluZyBjYW1lcmFzLCBhbiBIMjY0IFByb2JlJkNvbW1pdAoJICBtdXN0IGhhcHBlbiBiZWZvcmUgdGhlIG5vcm1hbCB2NGwyIHNldC1mb3JtYXQuIFRoaXMgbmV3IHNpZ25hbCBpcwoJICBtZWFudCB0byBhbGxvdyBhbiBleHRlcm5hbCBhcHBsaWNhdGlvbiBvciBiaW4gdG8gZG8gaXQuCgkgIEl0IGFsc28gc2VydmVzIHRvIGV4cG9zZSB0aGUgZmlsZSBkZXNjcmlwdG9yIHVzZWQgYnkgdjRsMnNyYyBpbiBjYXNlCgkgIHNvbWUgY3VzdG9tIGlvY3RscyBuZWVkIHRvIGJlIGNhbGxlZC4KCSAgQ29uZmxpY3RzOgoJICBzeXMvdjRsMi9NYWtlZmlsZS5hbQoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmMKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jCgoyMDEyLTA0LTE4IDE3OjA5OjQ1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3JhdzEzOTQvZ3N0MTM5NHByb2JlLmM6CgkqIGV4dC9yYXcxMzk0L2dzdDEzOTRwcm9iZS5oOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3JhdzEzOTQvZ3N0aGR2MTM5NHNyYy5jOgoJICBkdjEzOTQ6IHBvcnQgdG8gMC4xMQoKMjAxMi0wNC0xNyAxNToxNDoyNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5Lmg6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4Lmg6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4Lmg6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5oOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4Lmg6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjJwYWQuaDoKCSAgY29sbGVjdHBhZHMyOiByZW5hbWUgdG8gY29sbGVjdHBhZHMKCjIwMTItMDQtMTYgMTY6Mzc6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIG1pc2M6IGNoYWluIHVwIHRvIGNvbGxlY3RwYWRzIGV2ZW50IGhhbmRsZXIKCjIwMTItMDQtMTYgMDk6MDk6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZGIyNWJlIHRvIGRjNzAyMDMKCjIwMTItMDQtMTUgMjI6NDk6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSAgc2hvdXQyOiB1cGRhdGUgZm9yIG9nZyBtZWRpYSB0eXBlIGNoYW5nZXMKCjIwMTItMDQtMTMgMTY6NTQ6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5oOgoJICBzbXB0ZTogdXNlIHNvbWUgbW9yZSBib2lsZXJwbGF0ZQoKMjAxMi0wNC0xMyAxNjo1NDo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJICBmbHhkZWM6IGltcHJvdmUgc2VnbWVudCBoYW5kbGluZwoJICAuLi4gdG8gc2VuZCBhIHByb3BlciBUSU1FIHNlZ21lbnQgZG93bnN0cmVhbS4KCjIwMTItMDQtMTMgMTY6NTQ6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5oOgoJICBmbHhkZWM6IHBvcnQgdG8gMC4xMQoKMjAxMi0wNC0xMyAxNjo1NDo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94Lmg6CgkgIHZpZGVvYm94OiBhZGp1c3QgdG8gZGVwcmVjYXRlZCBHTXV0ZXggc2V0dXAKCjIwMTItMDQtMTMgMTY6NTQ6MzggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94Lmg6CgkgIHZpZGVvYm94OiBwb3J0IHRvIDAuMTEKCjIwMTItMDQtMTMgMTY6NTQ6MzEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6CgkgIGFscGhhLCBzbXB0ZTogYWRqdXN0IHRvIHJlbW92ZWQgY29sb3ItbWF0cml4IGNhcHMgZmllbGQKCjIwMTItMDQtMTMgMTY6Mjc6MzQgKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogc3lzL3Y0bDIvTWFrZWZpbGUuYW06CgkgIHY0bDI6IGVuc3VyZSBhdXRvZ2VuZXJhdGVkIGZpbGVzIGFyZSBjcmVhdGVkCgkgIFRoZSB0dW5lciBtYXJzaGFsIGFuZCBlbnVtdHlwZXMgYXJlIGF1dG9nZW5lcmF0ZWQsIGFuZCB0aGV5IG5lZWQKCSAgdG8gYmUgY3JlYXRlZCBiZWZvcmUgdGhlIGNvbXBpbGF0aW9uIG9mIGdzdHY0bDJ0dW5lci5jCgkgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgYXV0b21ha2UgaW5zdHJ1Y3Rpb24gZm9yIGVuc3VyaW5nIHRoZQoJICBhdXRvZ2VuZXJhdGlvbiBvZiB0aG9zZSBmaWxlcyBwcmV2aW91cyB0aGUgY29tcGlsYXRpb24uCgoyMDEyLTA0LTEzIDEzOjQxOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBNb2Rlcm5pemUgYXV0b3Rvb2xzIHNldHVwIGEgYml0CgkgIEFsc28gd2Ugbm93IG9ubHkgY3JlYXRlIHRhci5iejIgYW5kIHRhci54eiB0YXJiYWxscy4KCjIwMTItMDQtMTMgMTM6Mzc6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjRmZTE1IHRvIDZkYjI1YmUKCjIwMTItMDQtMTMgMTM6MDQ6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBleHQvcHVsc2UvTWFrZWZpbGUuYW06CgkqIGV4dC9wdWxzZS9wbHVnaW4uYzoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuaDoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5oOgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlcnRyYWNrLmM6CgkqIGV4dC9wdWxzZS9wdWxzZW1peGVydHJhY2suaDoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmg6CgkqIGdzdC9ydHNwL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRlb292ZXJsYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnZpZGVvb3ZlcmxheS5oOgoJKiBzeXMvdjRsMi90dW5lci1tYXJzaGFsLmxpc3Q6CgkqIHN5cy92NGwyL3R1bmVyLmM6CgkqIHN5cy92NGwyL3R1bmVyLmg6CgkqIHN5cy92NGwyL3R1bmVyY2hhbm5lbC5jOgoJKiBzeXMvdjRsMi90dW5lcmNoYW5uZWwuaDoKCSogc3lzL3Y0bDIvdHVuZXJub3JtLmM6CgkqIHN5cy92NGwyL3R1bmVybm9ybS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcHVsc2UvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9pY2xlcy92NGwyc3JjLXRlc3QuYzoKCSAgVXBkYXRlIGV2ZXJ5dGhpbmcgZm9yIHRoZSByZW1vdmFsIG9mIHRoZSBpbnRlcmZhY2UgbGlicmFyeSBhbmQgbWl4ZXIvdHVuZXIgaW50ZXJmYWNlcwoKMjAxMi0wNC0xMiAxNTo1MDoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5LmM6CgkgIHJ0cDogVXNlIHVuY2hlY2tlZCB2YXJpYW50IG9mIEdzdEJ5dGVXcml0ZXIgd2hlcmUgYXBwbGljYWJsZQoJICBUaGUgc2l6ZSB3YXMgY2hlY2tlZCBiZWZvcmUKCjIwMTItMDQtMTIgMTU6NDk6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2E6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBHc3RCeXRlUmVhZGVyL1dyaXRlcgoKMjAxMi0wNC0xMiAxNTo0ODo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2F0b21zLmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXhfZHVtcC5jOgoJICBpc29tcDQ6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBHc3RCeXRlV3JpdGVyCgkgIEFuZCB1c2UgdW5jaGVja2VkIHZhcmlhbnQgb2YgR3N0Qnl0ZVJlYWRlciB3aGVyZSBhcHBsaWNhYmxlCgoyMDEyLTA0LTEyIDE1OjQ4OjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IFVzZSB1bmNoZWNrZWQgdmFyaWFudCBvZiBHc3RCeXRlUmVhZGVyCgkgIFdlIGtub3cgdGhlcmUncyBhdCBsZWFzdCA3IGJ5dGVzIChjaGVja2VkIGFib3ZlKQoKMjAxMi0wNC0xMiAxNTo0Nzo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmk6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBHc3RCeXRlV3JpdGVyCgoyMDEyLTA0LTEyIDE1OjQ3OjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgR3N0Qml0UmVhZGVyL0dzdEJ5dGVSZWFkZXIKCjIwMTItMDQtMTIgMTE6NTc6NTkgKzAxMDAgIHVyYWV1cyA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgQWRkIGludGVybGVhdmUgcGx1Z2luIHRvIHNwZWMgZmlsZQoKMjAxMi0wNC0xMiAxMToxOTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTAgPT09CgoyMDEyLTA0LTEyIDEwOjI3OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLWRpc3QuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45MAoKMjAxMi0wNC0xMiAxMDoyNjo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNC0xMSAwMDoxOTozMCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkgIEZpeCBmb3JtYXQgc3RyaW5nCgkgIEZpeGVzICM2NzM4NTkKCjIwMTItMDQtMTEgMDA6MTk6MTYgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3Jtc2luay5jOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgkgIEZpeGVzICM2NzM4NTkKCjIwMTItMDQtMTAgMTE6NTc6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2Zsdi9nc3RmbHZkZW11eC5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCgoyMDEyLTA0LTEwIDExOjM3OjQ4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBzb21lIG1vcmUgc2VnbWVudCBoYW5kbGluZyB0d2Vha2luZwoKMjAxMi0wNC0xMCAwMDo1MTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYWFsaWIvZ3N0YWFzaW5rLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9vdmVybGF5LmM6CgkqIGV4dC9jYWlyby9nc3RjYWlyb3JlbmRlci5jOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSogZXh0L2NhaXJvL2dzdHRpbWVvdmVybGF5LmM6CgkqIGV4dC9kdi9nc3RkdmRlYy5jOgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY3RhZy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmb3ZlcmxheS5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZzaW5rLmM6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvanBlZy9nc3RzbW9rZWRlYy5jOgoJKiBleHQvanBlZy9nc3RzbW9rZWVuYy5jOgoJKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOgoJKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5jOgoJKiBleHQvbGlibW5nL2dzdG1uZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBleHQvbWlrbW9kL2dzdG1pa21vZC5jOgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlci5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3JhdzEzOTQvZ3N0aGR2MTM5NHNyYy5jOgoJKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJKiBleHQvdGFnbGliL2dzdGFwZXYybXV4LmNjOgoJKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmJhbmQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGVibGltaXQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2thcmFva2UuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zcmMuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmM6CgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2JyZWFrbXlkYXRhLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2NwdXJlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RjYXBzZGVidWcuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZzZWVrLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHB1c2hmaWxlc3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RwbHVnaW4uYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5jOgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzdHJlYWsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcm5iYW5kcy5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5jOgoJKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6CgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2Evd2VibS1tdXguYzoKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzoKCSogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0c3BsaXRmaWxlc3JjLmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2xpbWl0ZXIuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmd2b2x1bWUuYzoKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6CgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb3RlbXBsYXRlLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkqIHN5cy9vc3M0L29zczQtc2luay5jOgoJKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5jOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJyYWRpby5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSAgVXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCjIwMTItMDQtMDkgMTI6NTU6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGRpc2FibGUgc2ltcGxlIHNtb2tlZW5jL2RlYyBsYXVuY2ggbGluZXMgdGVzdAoJICBEaXNhYmxlIHRlc3QgZm9yIHNtb2tlIGVsZW1lbnRzLCB3aGljaCBhcmVuJ3QgcG9ydGVkIHlldAoJICAoYW5kIG1heWJlIHNob3VsZG4ndCBiZSBwb3J0ZWQpLgoKMjAxMi0wNC0wOSAwMDoxNDo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJICBpbnRlcmxlYXZlOiBtYWtlIGNoYW5uZWwtcG9pc2l0aW9ucyBwcm9wZXJ0eSBhIEdWYWx1ZUFycmF5IGFnYWluCgkgIE9yIHBlcmhhcHMgaXQgc2hvdWxkIGp1c3QgYmUgYSBndWludDY0IGNoYW5uZWwgbWFzaywgd2hpY2ggd291bGQKCSAgYmUgbmljZXIgaW4gQywgYnV0IG1vcmUgYXdrd2FyZCBmb3IgYmluZGluZ3MgKGV2ZW4gbW9yZSBzbyBzaW5jZQoJICB3ZSBjYW4ndCBhZGQgYSBmbGFncyB0eXBlIGZvciBpdCwgc2luY2UgdGhhdCBvbmx5IHN1cHBvcnRzIGd1aW50CgkgIHNpemUgZmxhZ3MpLiBGaXhlcyB3YXZlbmMgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5NjQzCgoyMDEyLTA0LTA2IDE2OjAzOjQ3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBjbGVhbmx5IGluaXRpYWxpemUgYW5kIHNldCBuZWVkZWQgc2VnbWVudAoJICBGaXhlcyAjNjczMTY1LgoKMjAxMi0wNC0wNSAxNzoxNzoyMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogRml4IHRocmVhZGluZyBpc3N1ZSBpbiBpbmRleCBoYW5kbGluZwoKMjAxMi0wNC0wNiAwOToxMzozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBEb24ndCB1c2Ugc3RhdGljIHZhcmlhYmxlcyB0byBob2xkIGluZGV4IGFzc29jaWF0aW9ucwoJICBUaGlzIG5vdCByZWFsbHkgdGhyZWFkc2FmZSBpbiBhbnkgd2F5LgoKMjAxMi0wNC0wNSAxOToxNzo0OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mbHZtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJICB0ZXN0czogbWFrZSBmZXcgdGVzdHMgbW9yZSB2YWxncmluZC1mcmllbmRseQoKMjAxMi0wNC0wNSAxOToxNzo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOgoJICAoZGUpaW50ZXJsZWF2ZTogZml4IHBvcnRlZCB1bml0IHRlc3QgYW5kIGVuYWJsZSBhcyBwb3J0ZWQKCjIwMTItMDQtMDUgMTk6MTc6MzggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOgoJICB0ZXN0czogY21tbGRlYzogYWRqdXN0IHRvIHRhZyBldmVudHMgbm8gbG9uZ2VyIHBvc3RlZCBvbiBidXMgYnkgZWxlbWVudAoKMjAxMi0wNC0wNSAxOToxNzoyOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1cGRzcmM6IGNsZWFyIGVycm9yCgoyMDEyLTA0LTA1IDE4OjQyOjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2ZkYTUyNCB0byA0NjRmZTE1CgoyMDEyLTA0LTA1IDE3OjM2OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2Fubm9kZXgvZ3N0YW5ub2RleC5jOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm8uYzoKCSogZXh0L2R2L2dzdGR2LmM6CgkqIGV4dC9mbGFjL2dzdGZsYWMuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2pwZWcvZ3N0anBlZy5jOgoJKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOgoJKiBleHQvbGlibW5nL2dzdG1uZy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZy5jOgoJKiBleHQvbWlrbW9kL2dzdG1pa21vZC5jOgoJKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkqIGV4dC9yYXcxMzk0L2dzdDEzOTQuYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSogZXh0L3NvdXAvZ3N0c291cC5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXguYzoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJwbHVnaW4uYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFjay5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2RldGVjdC5jOgoJKiBnc3QvYXZpL2dzdGF2aS5jOgoJKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RkZWJ1Zy5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWZmZWN0di5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5jOgoJKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6CgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9wbHVnaW4uYzoKCSogZ3N0L2lzb21wNC9pc29tcDQtcGx1Z2luLmM6CgkqIGdzdC9sYXcvYWxhdy5jOgoJKiBnc3QvbGF3L211bGF3LmM6CgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EuYzoKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzoKCSogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGUuYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnQuYzoKCSogZ3N0L3JlcGxheWdhaW4vcmVwbGF5Z2Fpbi5jOgoJKiBnc3QvcnRwL2dzdHJ0cC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBtYW5hZ2VyLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3AuYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3NtcHRlL3BsdWdpbi5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogZ3N0L3VkcC9nc3R1ZHAuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb3RlbXBsYXRlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9wbHVnaW4uYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHBsdWdpbi5jOgoJKiBzeXMvb3NzL2dzdG9zc2F1ZGlvLmM6CgkqIHN5cy9vc3M0L29zczQtYXVkaW8uYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvLmM6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvLmM6CgkqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3JtcGx1Z2luLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIGdzdDogVXBkYXRlIGZvciBHU1RfUExVR0lOX0RFRklORSgpIEFQSSBjaGFuZ2VzCgoyMDEyLTA0LTA1IDEzOjI2OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBVcGRhdGUgdmVyc2lvbiB0byAwLjExLjg5LjEKCjIwMTItMDQtMDQgMjA6MDY6NTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgdGVzdHM6IHF0bXV4OiBlbnN1cmUgaW5pdGlhbGl6ZWQgdGVzdCBidWZmZXIgbWVtb3J5CgoyMDEyLTA0LTA0IDE0OjMzOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy92ZXJzaW9uLmVudGl0aWVzLmluOgoJKiBleHQvYWFsaWIvTWFrZWZpbGUuYW06CgkqIGV4dC9jYWlyby9NYWtlZmlsZS5hbToKCSogZXh0L2R2L01ha2VmaWxlLmFtOgoJKiBleHQvZmxhYy9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvTWFrZWZpbGUuYW06CgkqIGV4dC9qYWNrL01ha2VmaWxlLmFtOgoJKiBleHQvanBlZy9NYWtlZmlsZS5hbToKCSogZXh0L2xpYmNhY2EvTWFrZWZpbGUuYW06CgkqIGV4dC9saWJwbmcvTWFrZWZpbGUuYW06CgkqIGV4dC9wdWxzZS9NYWtlZmlsZS5hbToKCSogZXh0L3JhdzEzOTQvTWFrZWZpbGUuYW06CgkqIGV4dC9zb3VwL01ha2VmaWxlLmFtOgoJKiBleHQvc3BlZXgvTWFrZWZpbGUuYW06CgkqIGV4dC90YWdsaWIvTWFrZWZpbGUuYW06CgkqIGV4dC93YXZwYWNrL01ha2VmaWxlLmFtOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkqIGdzdC9hbHBoYS9NYWtlZmlsZS5hbToKCSogZ3N0L2FwZXRhZy9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdXBhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYXZpL01ha2VmaWxlLmFtOgoJKiBnc3QvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVidWd1dGlscy9NYWtlZmlsZS5hbToKCSogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSogZ3N0L2VxdWFsaXplci9NYWtlZmlsZS5hbToKCSogZ3N0L2Zsdi9NYWtlZmlsZS5hbToKCSogZ3N0L2ljeWRlbXV4L01ha2VmaWxlLmFtOgoJKiBnc3QvaWQzZGVtdXgvTWFrZWZpbGUuYW06CgkqIGdzdC9pbnRlcmxlYXZlL01ha2VmaWxlLmFtOgoJKiBnc3QvaXNvbXA0L01ha2VmaWxlLmFtOgoJKiBnc3QvbGF3L01ha2VmaWxlLmFtOgoJKiBnc3QvbGV2ZWwvTWFrZWZpbGUuYW06CgkqIGdzdC9tYXRyb3NrYS9NYWtlZmlsZS5hbToKCSogZ3N0L211bHRpZmlsZS9NYWtlZmlsZS5hbToKCSogZ3N0L3JlcGxheWdhaW4vTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSogZ3N0L3NoYXBld2lwZS9NYWtlZmlsZS5hbToKCSogZ3N0L3NtcHRlL01ha2VmaWxlLmFtOgoJKiBnc3Qvc3BlY3RydW0vTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2JveC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvY3JvcC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3dhdmVuYy9NYWtlZmlsZS5hbToKCSogZ3N0L3dhdnBhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QveTRtL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItcGx1Z2lucy1nb29kLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBzeXMvZGlyZWN0c291bmQvTWFrZWZpbGUuYW06CgkqIHN5cy9vc3MvTWFrZWZpbGUuYW06CgkqIHN5cy9vc3M0L01ha2VmaWxlLmFtOgoJKiBzeXMvb3N4YXVkaW8vTWFrZWZpbGUuYW06CgkqIHN5cy9vc3h2aWRlby9NYWtlZmlsZS5hbToKCSogc3lzL3N1bmF1ZGlvL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3dhdmVmb3JtL01ha2VmaWxlLmFtOgoJKiBzeXMveGltYWdlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvYXVkaW9meC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3B1bHNlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgIGdzdDogVXBkYXRlIHZlcnNpb25pbmcKCjIwMTItMDQtMDQgMTI6MTA6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oCgoyMDEyLTA0LTAzIDE4OjM2OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogcGx1ZyB0ZW1wbGF0ZSBjYXBzIGxlYWsKCjIwMTItMDQtMDMgMTE6NTA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBhdmkgb25seSBrbm93cyBhYm91dCBEVFMKCSAgT25seSBzZXQgRFRTIG9uIG91dGdvaW5nIGJ1ZmZlcnMgdW5sZXNzIHdlIGhhdmUgYSBrZXlmcmFtZSBhbmQgdGhlbiB3ZSBjYW4gc2V0CgkgIHRoZSBQVFMgdG8gRFRTIGFzIHdlbGwuCgoyMDEyLTA0LTAyIDIzOjM1OjQzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkgIG1rdjogcG9ydCB0b2MgY2hhbmdlcyB0byAwLjExCgoyMDEyLTA0LTAyIDIzOjE4OjAwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYwoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYwoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaAoKMjAxMi0wMy0yOSAyMzoyMjoyOCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYTogYWRkIEdzdFRvYyBzdXBwb3J0IGZvciBtdXhlcgoKMjAxMi0wMy0yOSAyMzoxMjoxMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYTogYWRkIHN1cHBvcnQgZm9yIEdzdFRvYyBpbiBkZW11eGVyCgoyMDEyLTAzLTI5IDIzOjA1OjE0ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogYWRkIGNoYXB0ZXIgc3VwcG9ydCBpbiBHc3RNYXRyb3NrYVJlYWRDb21tb24KCjIwMTItMDQtMDIgMTM6MDA6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20yazEvbGluZXMuYzoKCSAgZ29vbTJrMTogRml4ICdtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24nIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDQtMDIgMTE6MTM6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlaWlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlva2FyYW9rZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICB1c2UgdHJhbnNmb3JtX2lwX29uX3Bhc3N0aHJvdWdoCgoyMDEyLTAzLTMxIDE1OjQzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2VxdWFsaXplci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9lcXVhbGl6ZXIvZGVtby5jOgoJKiB0ZXN0cy9pY2xlcy9lcXVhbGl6ZXItdGVzdC5jOgoJICB1cGRhdGUgZm9yIGNoaWxkIHByb3h5IGFwaSBjaGFuZ2UKCjIwMTItMDMtMzAgMTg6MTM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2lzb21wNC9hdG9tcy5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxlYXZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ludGVybGVhdmUuYzoKCSAgdXBkYXRlIGZvciBidWZmZXIgYXBpIGNoYW5nZQoKMjAxMi0wMy0zMCAxMjo1Mzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkgIHNwZWV4ZW5jOiBVc2UgbmV3IGdzdF9hdWRpb19lbmNvZGVyX3NldF9oZWFkZXJzKCkgQVBJCgoyMDEyLTAzLTMwIDEyOjE4OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSAgZXh0OiBVcGRhdGUgZm9yIEdzdEF1ZGlvRW5jb2RlciBBUEkgY2hhbmdlcwoKMjAxMi0wMy0yOSAyMzoyMjoyOCArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYTogYWRkIEdzdFRvYyBzdXBwb3J0IGZvciBtdXhlcgoKMjAxMi0wMy0yOSAyMzoxMjoxMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYTogYWRkIHN1cHBvcnQgZm9yIEdzdFRvYyBpbiBkZW11eGVyCgoyMDEyLTAzLTI5IDIzOjA1OjE0ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogYWRkIGNoYXB0ZXIgc3VwcG9ydCBpbiBHc3RNYXRyb3NrYVJlYWRDb21tb24KCjIwMTItMDMtMjkgMTc6MjI6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdnBhY2suYzoKCSAgdGVzdHM6IHdhdnBhY2s6IGZld2VyIGJ1ZmZlcnMgYXJlIGFsc28gYWRlcXVhdGUgYW5kIG1vcmUgY29udmVuaWVudAoKMjAxMi0wMy0yOSAxNzoyMjoxOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2Nyb3AuYzoKCSAgdGVzdHM6IHZpZGVvY3JvcDogdW5tYXAgdmlkZW8gZnJhbWUgYW5kIHVucmVmIGNhcHMKCjIwMTItMDMtMjkgMTc6MjI6MDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW93c2luY2JhbmQuYzoKCSAgdGVzdHM6IGF1ZGlvd3NpbmNiYW5kOiB1bm1hcCBleGFtaW5lZCBvdXRwdXQgYnVmZmVycwoKMjAxMi0wMy0yOSAxNzoyMTo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWNlbmM6IHBsdWcgcmVmIGxlYWsKCjIwMTItMDMtMjkgMTc6MjE6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJICBhdWRpb3Bhbm9yYW1hOiBmaXggc3VwcG9ydGVkIHRlbXBsYXRlIGNhcHMgYW5kIHNhbXBsZSBwcm9jZXNzaW5nCgoyMDEyLTAzLTI5IDE3OjIxOjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkgIGFscGhhY29sb3I6IHBsdWcgc3RydWN0dXJlIGxlYWsKCjIwMTItMDMtMjkgMTY6MDQ6MjYgKzAxMDAgIHVyYWV1cyA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZSB3aXRoIGxhdGVzdCBwb3J0ZWQgcGx1Z2lucwoKMjAxMi0wMy0yOSAxNTowMzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTItMDMtMjggMTY6MjY6NTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3RhZ3NjaGVja2luZy5jOgoJICB0ZXN0czogdGFnc2NoZWNraW5nOiBtdXhlcnMgbmVlZCBUSU1FIGZvcm1hdAoKMjAxMi0wMy0yOCAxNjoyNjoxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvZmxhY2RlYy5jOgoJICB0ZXN0czogZmxhY2RlYzogbmVlZHMgZmxhY3BhcnNlIG5vd2FkYXlzCgoyMDEyLTAzLTI4IDE0OjQ5OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSAgd2F2cGFja2VuYzogcXVlcnkgZG93bnN0cmVhbSBmb3IgQllURSBzZWVraW5nIHN1cHBvcnQKCjIwMTItMDMtMjggMTQ6NDg6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBxdWVyeSBkb3duc3RyZWFtIGZvciBCWVRFIHNlZWtpbmcgc3VwcG9ydAoKMjAxMi0wMy0yOCAxNDo0NjowMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGNsZWFuIHVwIG9ic29sZXRlIGxvZyBzdGF0ZW1lbnQKCjIwMTItMDMtMjggMTI6NDk6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvbWlrbW9kL2dzdG1pa21vZC5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuYzoKCSAgdXBkYXRlIGZvciBidWZmZXIgY2hhbmdlcwoKMjAxMi0wMy0yOCAxMjoxNjo0NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2R5bmFtaWMuYzoKCSAgdGVzdHM6IGF1ZGlvZHluYW1pYzogY29ycmVjdGx5IHBvcnQgb3JpZ2luYWwgdGVzdCB0byBtaW5kIGluIHBsYWNlIHRyYW5zZm9ybQoKMjAxMi0wMy0yOCAxMTowNTo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkgIGF1ZGlvZng6IG1vcmUgYWRqdXN0bWVudCB0byBjaGFuZ2VkIHNlbWFudGljcyBvZiBhdWRpb2ZpbHRlciBfc2V0dXAgbWV0aG9kCgoyMDEyLTAzLTI4IDExOjEwOjI0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZmlyZmlsdGVyLmM6CgkgIHRlc3RzOiBhdWRpb2ZpcmZpbHRlcjogbmVnb3RpYXRlIHRoZSBpbnRlbmRlZCByYXcgYXVkaW8gZm9ybWF0CgoyMDEyLTAzLTI3IDE4OjQxOjQ1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgd2F2cGFja3BhcnNlOiBpbml0IGRhdGFzdHJ1Y3R1cmUKCjIwMTItMDMtMjcgMTc6MTg6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgIGVmZmVjdHY6IGZpeCBzdHJpZGVzCgoyMDEyLTAzLTI3IDE2OjQxOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jOgoJICBjYXBzOiBpbXByb3ZlIGNhcHMgaGFuZGxpbmcKCSAgQXZvaWQgY2FwcyBjb3B5IGFuZCBsZWFrcwoKMjAxMi0wMy0yNyAxNDowNDo0OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pY3lkZW11eC5jOgoJICB0ZXN0czogaWN5ZGVtdXg6IGFjdGl2YXRlIGludGVybmFsIHRlc3QgaGVscGVyIHNyYyBwYWQKCjIwMTItMDMtMjcgMTI6NDQ6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IHVwZGF0ZSBmb3IgZ2V0X3BhcmFtCgkgIFJlbW92ZSBjb25zdCBmcm9tIHRoZSBHc3RDYXBzLgoJICBQbHVnIHNvbWUgR3N0U3RydWN0dXJlIGxlYWtzCgoyMDEyLTAzLTI3IDAwOjAyOjA4ICswMzAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwOiBGaXggY29tcGlsaW5nIHdpdGggbWluZ3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzI4ODAKCjIwMTItMDMtMjYgMTg6MzE6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ3ZvbHVtZS5jOgoJICB0ZXN0czogcmVwbGF5Z2FpbjogbWlzYyBjb21wYXRpYmlsaXR5IGZpeGVzCgkgIERpc2NhcmQgY2FwcyBldmVudCB3aGVuIGNoZWNraW5nIGZvciBhbmQgY291bnRpbmcgdmFyaW91cyB0YWcgZXZlbnRzLAoJICBhbmQgcmVtb3ZlIGFsbCB0ZXN0aW5nIG9mIDggYml0cyBkZXB0aCBpbiAxNiBiaXRzIHdpZHRoIGZvcm1hdCBzaW5jZQoJICBpdCBubyBsb25nZXIgZXhpc3RzLgoKMjAxMi0wMy0yNiAxODoyODoyNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBiaW4uYzoKCSAgdGVzdHM6IHJ0cDogbWlzYyBjb21wYXRpYmlsaXkgZml4ZXMKCSAgLi4uIHN1Y2ggYXMgYWx3YXlzIHNldHRpbmcgcGFkIGNhcHMgYW5kIHByb3ZpZGluZyBuZWVkZWQgY2FwcyBmaWVsZHMuCgoyMDEyLTAzLTI2IDE4OjI2OjQwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgIHRlc3RzOiB2aWRlb2ZpbHRlcjogZW5zdXJlIGluaXRpYWwgc2VnbWVudCBldmVudAoKMjAxMi0wMy0yNiAxODoyNToyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5oOgoJICBzaGFwZXdpcGU6IHByb3BlciB2aWRlbyBpbmZvIGFuZCBmcmFtZSBtYW5hZ2VtZW50CgkgIC4uLiBwYXJ0aWN1bGFybHkgc2luY2UgZWFjaCBpbmNvbWluZyBwYWQgaGFzIGEgZGlzdGluY3QgZm9ybWF0LgoKMjAxMi0wMy0yNiAxODoyNDowOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogZW5zdXJlIG91dHB1dCBjYXBzIGFyZSBzZXQgd2hlbiBwdXNoaW5nIG91dHB1dCBkYXRhCgkgIC4uLiBldmVuIGlmIHNvbWUgU1BTL1BQUyBoYXMgbm90IHBhc3NlZCBieSB5ZXQuCgoyMDEyLTAzLTI2IDE4OjIyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHZpZGVvZmlsdGVyOiBhdm9pZCBob2xkaW5nIG9iamVjdCBsb2NrIHdoZW4gY2FsbGluZyBiYXNldHJhbnNmb3JtIGZ1bmN0aW9uCgoyMDEyLTAzLTI2IDE4OjIyOjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGZpeCBzb21lIGxvY2sgbWFuYWdlbWVudAoJICAuLi4gdG8gYXZvaWQgdHJ5aW5nIHRvIHRha2UgYSBub24tcmVjdXJzaXZlIGxvY2sgdHdpY2UuCgoyMDEyLTAzLTI2IDE4OjIxOjExICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzoKCSAgcnRwTDE2KGRlKXBheTogZml4IHJhdyBhdWRpbyBmb3JtYXQgaW4gdGVtcGxhdGUgY2FwcwoKMjAxMi0wMy0yNiAxODoyMDo0MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkgIHJlcGxheWdhaW46IGFsc28gc3RpbGwgcG9zdCB0aGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMKCjIwMTItMDMtMjYgMTU6NTk6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IGRvbid0IGVycm9yIGluIHNodXRkb3duCgkgIERvbid0IGxvZyB3aXRoIHRoZSBFUlJPUiBjYXRlZ29yeSB3aGVuIHdlIGFyZSBzdG9wcGluZyBiZWNhdXNlIHdlIGFyZSBzaHV0dGluZwoJICBkb3duLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjgyNAoKMjAxMi0wMy0yNiAxNTo1MToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMjogZml4IGxhdGVuY3kKCjIwMTItMDMtMjYgMTU6MzA6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJICB2NGwyOiBjYWxsZWQgYmFzZSBjbGFzcyBzdGFydAoJICBDaGFpbiB1cCB0byB0aGUgYmFzZSBjbGFzcyBzdGFydCBtZXRob2Qgc28gdGhhdCBtZXRhZGF0YSBpcyBwcm9wZXJseSB0YWdnZWQuCgkgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgkgIGZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyODEzCgoyMDEyLTAzLTI2IDEyOjEyOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgUmVwbGFjZSBtYXN0ZXIgd2l0aCAwLjExCgoyMDEyLTAzLTI1IDAwOjAwOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmb3ZlcmxheS5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZvdmVybGF5Lmg6CgkgIGdka3BpeGJ1Zm92ZXJsYXk6IGFkZCAiYWxwaGEiIHByb3BlcnR5IHRvIHNldCBhbHBoYSBvZiBvdmVybGF5IGltYWdlCgkgIC4uIG9yIHR1cm4gdGhlIG92ZXJsYXkgb2ZmIGJ5IHNldHRpbmcgYWxwaGEgdG8gMC4wCgoyMDEyLTAzLTI0IDA5OjUxOjA2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogcGx1ZyBjYXBzIGxlYWsKCjIwMTItMDMtMjMgMTg6NDc6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW1hZ2VmcmVlemUuYzoKCSAgdGVzdHM6IGltYWdlZnJlZXplOiByZW1vdmUgZXh0cmFuZW91cyBfdW5yZWYKCjIwMTItMDMtMjMgMTg6NDc6MDMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpbXV4LmM6CgkgIHRlc3RzOiBhdmltdXg6IGFkanVzdCB0byBtb2RpZmllZCBzaW5rIHBhZCB0ZW1wbGF0ZSBuYW1lCgoyMDEyLTAzLTIzIDE4OjQ2OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkgIHRlc3RzOiBxdG11eDogY2xlYW51cCBlbGVtZW50IHNvb25lcgoJICAuLi4gdG8gYXZvaWQgc3RyYXkgcmVmcyBpbiBzdGlja3kgY2FwcyBldmVudHMuCgoyMDEyLTAzLTIzIDE4OjQ1OjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNiYW5kLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNsaW1pdC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgdGVzdHM6IGFycmFuZ2UgZm9yIHNlbmRpbmcgYW4gaW5pdGlhbCBzZWdtZW50IGV2ZW50CgkgIC4uLiB3aGljaCBpcyBuZWVkZWQgbm93YWRheXMgc2luY2UgdmFyaW91cyBnc3Rfc2VnbWVudF90b18uLi4KCSAgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgc2V0IHRoZSBmb3JtYXQgdG8gdGhlIHNwZWNpZmllZCBvbmUKCSAgKGZyb20gX1VOREVGSU5FRCkuCgoyMDEyLTAzLTIzIDE4OjQ0OjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogaW1tZWRpYXRlbHkgcmV0dXJuIEdTVF9GTE9XX0VPUwoJICAuLi4gcmF0aGVyIHRoYW4gX09LIHNpbmNlIHdlIHdpbGwgbm90IGJlIGNhcmluZyBhYm91dCBzdWJzZXF1ZW50IGJ1ZmZlcgoJICBhbnl3YXkuCgoyMDEyLTAzLTIzIDE4OjQzOjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogZml4IHF1ZXJ5IGFuZCBfZ2V0Y2FwcyBoYW5kbGluZwoKMjAxMi0wMy0yMyAxODo0Mjo0OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlva2FyYW9rZS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSAgYXVkaW9meDogYWRqdXN0IHRvIGNoYW5nZWQgc2VtYW50aWNzIG9mIGF1ZGlvZmlsdGVyIF9zZXR1cCBtZXRob2QKCSAgLi4uIGluIHRoYXQgaXQgd2lsbCBub3cgY2FsbCBzdWJjbGFzcyB3aXRoIGluZm8gb24gcHJvcG9zZWQgYXVkaW8gZm9ybWF0CgkgIHdpdGhvdXQgaGF2aW5nIHNldCB0aGF0IGluZm8gYWxyZWFkeSBpbiBiYXNlIGNsYXNzLiAgQXMgc3VjaCwKCSAgc3ViY2xhc3MgY2FuIG5vdCByZWx5IG9uIGF1ZGlvIGZvcm1hdCBpbmZvIGJlaW5nIGF2YWlsYWJsZSB0aGVyZS4KCjIwMTEtMDctMTQgMTY6MjM6NDkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5oOgoJICBydHBoMjY0ZGVwYXk6IE1ha2Ugb3V0cHV0IGluIEFWQyBzdHJlYW0gZm9ybWF0IHdvcmsgZXZlbiB3aXRob3V0IGNvbXBsZXRlIHNwcm9wLXBhcmFtZXRlci1zZXQKCSAgVGhpcyBhbGxvd3Mgb3V0cHV0dGluZyBzdHJlYW1zIGluIEFWQyBmb3JtYXQgZXZlbiBpZiB0aGUgU1BTL1BQUyBhcmUgc2VudCBpbnNpZGUKCSAgdGhlIFJUUCBzdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ4NTAKCSAgUG9ydGVkIGZyb20gbWFzdGVyCgoyMDEyLTAxLTI5IDE4OjM5OjU0ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgdWRwc2luazogVW5sb2NrIG9uIGVycm9yCgoyMDEyLTAzLTIyIDE4OjI3OjMwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdHdhdnBhY2twYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHVzZSBzaW5rIHBhZCB0ZW1wbGF0ZSBjYXBzIHJhdGhlciB0aGFuIHNyYwoKMjAxMi0wMy0yMiAxODoyMzoyMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAzLTIyIDE4OjIxOjUyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5oOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5oOgoJICBzbXB0ZTogcG9ydCB0byAwLjExCgoyMDEyLTAzLTIyIDE2OjEwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdHdhdnBhY2twYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGludGVyc2VjdCBkb3duc3RyZWFtIGFsbG93ZWQgcGVlciBjYXBzIHdpdGggc2luayBwYWQgdGVtcGxhdGUKCjIwMTItMDMtMjIgMTU6NTU6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMiA9PT0KCjIwMTItMDMtMjIgMTU6NTE6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dWRwLW1hcnNoYWwuYzoKCSAgUmVsZWFzZSAwLjExLjIKCjIwMTItMDMtMjIgMTE6NTU6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAzLTIyIDExOjUzOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICB1bnBvcnQgZ2RrcGl4YnVmCgkgIG5vdCBtZXJnZWQ6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ4NTAKCSAgQ29uZmxpY3RzOgoJICBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW0KCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWwKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHkKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWwKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuaAoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jCgkgIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmMKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmMKCSAgZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYwoJICBnc3QvZmx2L2dzdGZsdm11eC5jCgkgIGdzdC9ydHAvZ3N0cnRwZHZkZXBheS5jCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmMKCjIwMTItMDMtMjIgMTE6NDU6MTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkgIHNtcHRlOiBvbmx5IHN0YXJ0IGNvbGxlY3RwYWRzMiBhdCBzdGF0ZSBjaGFuZ2UgcmF0aGVyIHRoYW4gaW5pdAoKMjAxMi0wMy0yMSAxMzoyMjo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvYW1wbGlmeS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2R5bmFtaWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9lY2hvLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvcGFub3JhbWEuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzoKCSAgdGVzdHM6IHVwZGF0ZSBmb3IgbWVtb3J5IGFwaSBjaGFuZ2VzCgoyMDEyLTAzLTIwIDEwOjI0OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIHVwZGF0ZSBmb3IgbWVtb3J5IGFwaSBjaGFuZ2VzCgoyMDEyLTAzLTE5IDEyOjAxOjQwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogcGVyZm9ybSBhZGRpdGlvbmFsIGZyYW1lIGNyYyBjaGVjayBpZiBhcHBsaWNhYmxlCgkgIC4uLiBzdWNoIGFzIGEgZnJhbWUgaGVhZGVyIHBhcnNpbmcgdGhyb3dpbmcgc29tZSBzdXNwaWNpb3VzIHdhcm5pbmdzLgoJICBTbyB3ZSBjYW4gYmUgYSBiaXQgbW9yZSBjb252aW5jZWQgd2UgZGV0ZXJtaW5lIHRoZSByaWdodCBmcmFtZSBlbmQuCgoyMDEyLTAzLTE5IDExOjU4OjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogYXZvaWQgaW5kZWZpbml0ZSBleHRlbmRlZCBzZWFyY2ggZm9yIGZyYW1lIGVuZCBpZiBwb3NzaWJsZQoJICAuLi4gd2hpY2ggaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBpZiBsb2NrZWQgb24gdG8gdGhlIHdyb25nIGZyYW1lIHN0YXJ0CgkgIGFuZC9vciBjb3JydXB0IGZyYW1lIGJlaW5nIGNyYyBjaGVja2VkLgoKMjAxMi0wMy0xNiAxODoyMzoyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSAgZmxhY2RlYzogaW1wcm92ZSBlcnJvciBoYW5kbGluZyBhbmQgcmVzaWxpZW5jZQoJICAuLi4gYnkgbm90aW5nIHRoYXQgb25lIG9jY3VycmVkIGluIHRoZSBmaXJzdCBwbGFjZSwgYW5kIHRoZW4gYXBwcm9wcmlhdGVseQoJICBpZ25vcmluZyBzb21lIHRyYW5zaWVudCBvbmVzLgoKMjAxMi0wMy0xOSAxMDozMzo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBuZWdvdGlhdGUgYW4gYWxsb2NhdG9yIG9uIHRoZSBzcmNwYWRzCgkgIFdlIGRvIGFuIEFMTE9DQVRJT04gcXVlcnkgdG8gZmluZCBvdXQgYW4gYWxsb2NhdG9yIGFuZCBwYXJhbWV0ZXJzIG9uIHRoZQoJICBzcmNwYWRzLiBUaGlzIHdheSBkZWNvZGVycyAoYW5kIHNpbmtzKSBjYW4gc3BlY2lmeSB0aGUgbWVtb3J5IGFuZCBwYXJhbWV0ZXJzCgkgIHRoZXkgd2FudCB1cyB0byB3cml0ZSBpbnRvLgoKMjAxMi0wMy0xNyAyMDo1MzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmb3ZlcmxheS5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZvdmVybGF5Lmg6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIGZvciBuZXcgcHJvcGVydGllcyBhbmQgYWRkIGdka3BpeGJ1Zm92ZXJsYXkgZWxlbWVudAoJICBTb21ld2hhdCBhdCBsZWFzdC4gTm8gaWRlYSB3aHkgaXQgZG9lc24ndCBwaWNrIHVwIHRoZSBkZXNjcmlwdGlvbgoJICBvciBleGFtcGxlIHBpcGVsaW5lLgoKMjAxMi0wMy0xOCAwMDoxMToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zm92ZXJsYXkuYzoKCSAgZ2RrcGl4YnVmb3ZlcmxheTogbWFrZSBtb3N0IHByb3BlcnRpZXMgY29udHJvbGxhYmxlIGFuZCBmbGFnIHRoZW0gYXMgbXV0YWJsZS1wbGF5aW5nCgoyMDEyLTAzLTE3IDIzOjQxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zm92ZXJsYXkuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmb3ZlcmxheS5oOgoJICBnZGtwaXhidWZvdmVybGF5OiBhZGQgcHJvcGVydGllcyBmb3IgcG9zaXRpb25pbmcgYW5kIHNpemluZwoKMjAxMi0wMy0xNyAyMDoxODoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zm92ZXJsYXkuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmb3ZlcmxheS5oOgoJICBnZGtwaXhidWY6IGFkZCBnZGtwaXhidWZvdmVybGF5IGVsZW1lbnQKCSAgU3RpbGwgbGFja3MgZmVhdHVyZXMgc3VjaCBhcyBwb3NpdGlvbmluZyBvciByZXNpemluZywgb3IKCSAgYW5pbWF0aW9ucywgYnV0IGl0J3MgdXNhYmxlIGFscmVhZHksIGFuZCBzdXBwb3J0cyBsb3RzIG9mCgkgIGZvcm1hdHMuCgoyMDEyLTAzLTE2IDIyOjUyOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgZG9uJ3QgcG9rZSBpbnRvIGJhc2V0cmFuc2Zvcm0gaW50ZXJuYWxzCgkgIEJ1dCB1c2UgdGhlIG1ldGhvZHMKCjIwMTItMDMtMTYgMjE6NDc6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgZG9uJ3QgcGFzcyByYW5kb20gcG9pbnRlcnMgdG8gcHVsbF9yYW5nZQoKMjAxMi0wMy0xNSAyMjoxNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6CgkgIHVwZGFydGUgZm9yIGJ1ZmZlcnBvb2wgY2hhbmdlcwoKMjAxMi0wMy0xNSAyMjoxMToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9nc3RkdmRlYy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICB1cGRhdGUgZm9yIGJ1ZmZlcnBvb2wgY2hhbmdlcwoKMjAxMi0wMy0xNSAyMDozNzo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5jOgoJKiBnc3QvbW9ub3Njb3BlL2dzdG1vbm9zY29wZS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHVwZGF0ZSBmb3IgYWxsb2NhdGlvbiBxdWVyeSBjaGFuZ2VzCgoyMDExLTA3LTE0IDE2OjIzOjQ5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuaDoKCSAgcnRwaDI2NGRlcGF5OiBNYWtlIG91dHB1dCBpbiBBVkMgc3RyZWFtIGZvcm1hdCB3b3JrIGV2ZW4gd2l0aG91dCBjb21wbGV0ZSBzcHJvcC1wYXJhbWV0ZXItc2V0CgkgIFRoaXMgYWxsb3dzIG91dHB1dHRpbmcgc3RyZWFtcyBpbiBBVkMgZm9ybWF0IGV2ZW4gaWYgdGhlIFNQUy9QUFMgYXJlIHNlbnQgaW5zaWRlCgkgIHRoZSBSVFAgc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0ODUwCgoyMDEyLTAzLTE1IDE0OjA2OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgdXBkYXRlIGZvciBidWZmZXJwb29sIGFwaSBjaGFuZ2UKCjIwMTItMDMtMTUgMTM6MzY6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L211bHRpZmlsZS9nc3RzcGxpdGZpbGVzcmMuYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGViYmFuZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJsaW1pdC5jOgoJICB1cGRhdGUgZm9yIG1lbW9yeSBhcGkgY2hhbmdlcwoKMjAxMi0wMy0xNCAyMTozNjowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAgdXBkYXRlIGZvciBtZW1vcnkgYXBpIGNoYW5nZXMKCjIwMTItMDMtMTQgMTk6NTU6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYWFsaWIvZ3N0YWFzaW5rLmM6CgkqIGV4dC9kdi9nc3RkdmRlYy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICB0YWtlIHBhZGRpbmcgaW50byBhY2NvdW50CgoyMDEyLTAzLTE0IDE3OjA3OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5oOgoJICBpbWFnZWZyZWV6ZTogcG9ydCB0byAwLjExCgoyMDEyLTAzLTE0IDE1OjQ1OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogcmVwbHkgRkFMU2Ugb24gc2VyaWFsaXplZCBxdWVyaWVzCgoyMDEyLTAzLTEzIDIzOjA4OjM4ICswMTAwICBBbmRyZWogR2VsZW5iZXJnIDxhbmRyZWouZ2VsZW5iZXJnQHVkby5lZHU+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5oOgoJICBwbmdlbmM6IGFkZCBzdXBwb3J0IGZvciA4LSBhbmQgMTYtYml0IGdyYXkgaW1hZ2VzCgkgIEFkZCBzdXBwb3J0IGZvciBkaXJlY3QgZW5jb2Rpbmcgb2YgOC0gYW5kIDE2LWJpdCBiaWcgZW5kaWFuIGdyYXkgaW1hZ2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcyMDI1CgoyMDEyLTAzLTE0IDExOjIxOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkgIG1wNHZwYXk6IHdlIGNhbiBhbHNvIGhhbmRsZSB4LWRpdngKCjIwMTItMDMtMTQgMTA6Mzk6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJICB3YXZwYWNrZW5jOiBkbyBub3Qgc2V0IG91dHB1dCBjYXBzIGRpcmVjdGx5CgkgIC4uLiBidXQgdXNlIGJhc2UgY2xhc3MgZnVuY3Rpb24gaW5zdGVhZC4KCjIwMTItMDMtMTMgMjE6MzE6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJICBtcDR2ZGVwYXk6IGZpeCBidWZmZXIgaGFuZGxpbmcKCSAgRG9uJ3QgYWx3YXlzIG91dHB1dCB0aGUgcGF5bG9hZCBzdWJidWZmZXIsIHVzZSBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvCgkgIG1ha2UgdGhpbmdzIGNsZWFyZXIgYW5kIHdpdGhvdXQgdGhlIGVycm9yLgoKMjAxMi0wMy0xMyAyMDo0OTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIHVkcHNpbms6IG1ha2UgYnVmZmVyLXNpemUgd29yayBhZ2FpbgoKMjAxMi0wMy0xMyAyMDozNjo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogZml4IFNPX1JDVkJVRiBoYW5kbGluZwoKMjAxMi0wMy0xMyAxOToyNjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogZG9uJ3QgbGVhayB0aGUgYWRkcmVzcwoKMjAxMi0wMy0xMyAxOToyNjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIGgyNjRkZXBheTogdW5tYXAgb24gZW1wdHkgcGFja2V0CgoyMDEyLTAzLTEzIDE4OjA3OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIHJ0cGgyNjRwYXk6IGRvIERUUyBhbmQgUFRTIGNvcnJlY3RseQoKMjAxMi0wMy0xMyAxNzo1NDo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBzZXQgRFRTIGFuZCBQVFMgb24gb3V0cHV0IGJ1ZmZlcnMKCSAgU2V0IFBUUyBhbmQgRFRTIG9uIG91dHB1dCBidWZmZXJzIGluc3RlYWQgb2YganVzdCB0aGUgUFRTLiBJbiBzdHJlYW1pbmcgY2FzZXMKCSAgeW91IHdhbnQgdG8gc3luY2hyb25pemVkIGVuY29kZWQgZGF0YSBiYXNlZCBvbiB0aGUgRFRTIGJlY2F1c2UgdGhhdCBpcwoJICBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcuCgoyMDEyLTAzLTEzIDE3OjU0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X2R1bXAuYzoKCSAgcXRkZW11eDogZGVidWcgYWRkaXRpb25hbCBzZHRwIGZsYWcKCjIwMTItMDMtMTMgMTc6Mjc6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJICBydHA6IGZpeCB1bm1hcCBjYWxscwoKMjAxMi0wMy0xMyAxMzoyNTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgcHVsc2U6IGZpeCBmb3JtYXRzLCB3ZSBjYW4gbm90IGhhbmRsZSBTOCBidXQgb25seSBVOAoKMjAxMi0wMy0xMyAxMjo0MDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogZml4IHN0cmVhbWhlYWRlcnMKCSAgRml4IHRoZSBjYXBzIG9mIGZsYWNlbmMsIHRoZSByZWZlcmVuY2UgZW5jb2RlciBvbmx5IHN1cHBvcnQgMjQgYml0cyBpbgoJICAzMiBiaXRzLgoJICBTZXQgc3RyZWFtaGVhZGVyIG9uIG91dHB1dCBjYXBzLgoKMjAxMi0wMy0xMiAxNzoxNzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6CgkgIHVwZGF0ZSBmb3IgY2FwcyBhcGkgY2hhbmdlcwoKMjAxMi0wMy0xMiAxNjo0MzoyNyArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWMgOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gMi4zMS4xNAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcxOTExCgoyMDEyLTAzLTEyIDE1OjI3OjI3ICswMTAwICBSb3NzIEJ1cnRvbiA8cm9zcyBhdCBidXJ0b25pbmkuY29tPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBnZW5lcmF0ZSBzZWVrdGFibGVzIGV2ZXJ5IDEwIHNlYyBieSBkZWZhdWx0CgkgIFNpbmNlIHRoaXMgaXMgd2hhdCB0aGUgY29tbWFuZCBsaW5lIHRvb2wgZG9lcyBhcyB3ZWxsLCBpdCBzZWVtcyBsaWtlCgkgIGEgYmV0dGVyIGRlZmF1bHQuCgoyMDEyLTAzLTEwIDEzOjQ0OjA4ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBvbmx5IHVubG9jayBwYWQgd2hlbiBpdCB3YXMgbG9ja2VkCgkgIFRoaXMgZml4ZXMgdGhlIG11dGV4IGJlaW5nIHVubG9ja2VkIHRvbyBtdWNoIGFuZCBlbmRpbmcgdXAgYWxsb3dpbmcKCSAgb3RoZXIgdGhyZWFkcyB3aGVuIHRoZXkgc2hvdWxkIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTc3NgoKMjAxMi0wMy0wNyAxMzozOTo1MCArMDEwMCAgQW5kcmVqIEdlbGVuYmVyZyA8YW5kcmVqLmdlbGVuYmVyZ0B1ZG8uZWR1PgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgcG5nZGVjOiBhZGQgc3VwcG9ydCBmb3IgdmlkZW8veC1yYXctZ3JheSBmb3JtYXRzCgkgIHBuZ2RlYyBjYW4gbm93IGRlY29kZSBncmF5IDgtIGFuZCAxNi1iaXQgaW1hZ2VzIHdpdGhvdXQgYWxwaGEgY2hhbm5lbAoJICBkaXJlY3QgdG8gdmlkZW8veC1yYXctZ3JheSBmb3JtYXQuIDE2LWJpdCBncmF5IGltYWdlcyBoYXZlIGJpZy1lbmRpYW4KCSAgZm9ybWF0LCBiZWNhdXNlIGl0J3MgbmF0aXZlIFBORyBlbmRpYW5uZXNzLiBHcmF5IGltYWdlcyB3aXRoIGFscGhhCgkgIGNoYW5uZWwgc3RpbGwgY29udmVydGVkIHRvIFJHQkEuCgkgIFNpZ25lZC1vZmYtYnk6IEFuZHJlaiBHZWxlbmJlcmcgPGFuZHJlai5nZWxlbmJlcmdAdWRvLmVkdT4KCjIwMTItMDMtMDggMTc6MDc6NTEgKzAxMDAgIE1hcmMgTGVlbWFuIDxtYXJjLmxlZW1hbkBnbWFpbC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgZ3N0cnRzcHNyYzogZGlzYWJsZSBSVFNQIGtlZXAtYWxpdmUgb24gcmVxdWVzdAoKMjAxMi0wMy0xMiAxNDo0ODo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJICBzbXB0ZTogZml4IHN0cmlkZSBoYW5kbGluZwoKMjAxMi0wMy0xMiAxMjoyMzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgIGZpeCBmb3IgY2FwcyBfbm9ybWFsaXplIGNoYW5nZXMKCjIwMTItMDMtMTIgMTE6NDc6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgZml4IGZvciBjYXBzIGFwaSBjaGFuZ2UKCjIwMTItMDMtMTIgMTA6NDM6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogc3lzL29zczQvb3NzNC1hdWRpby5jOgoJICBmaXggZm9yIF9kb19zaW1wbGlmeSBjaGFuZ2VzCgoyMDEyLTAzLTEyIDA4OjQ4OjMyICswMTAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBnc3Q6IEZpeCBzb21lIHF1ZXJ5IGxlYWtzCgoyMDEyLTAzLTExIDE5OjA2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIGZpeCBmb3IgY2FwcyBhcGkgY2hhbmdlcwoKMjAxMi0wMy0xMCAxMDo1MTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5jOgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzoKCSAgZml4IHRlbXBsYXRlIGNhcHMgcmVmY291bnQKCjIwMTItMDMtMDkgMTU6NTM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCB1c2Ugb2YgQUNfTEFOR19QUk9HUkFNCgkgIE5vIG5lZWQgdG8gaW5jbHVkZSB0aGUgaW50IG1haW4gKCkgeyB9IGJpdHMsIHRoZSBib2R5IGlzIGVub3VnaC4KCjIwMTItMDMtMDkgMTU6MjU6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCBhdXRvZ2VuLnNoIHdhcm5pbmdzCgkgIGNvbmZpZ3VyZS5hYzo0MTA6IHdhcm5pbmc6IEFDX0xBTkdfQ09ORlRFU1Q6IG5vIEFDX0xBTkdfU09VUkNFIGNhbGwgZGV0ZWN0ZWQgaW4gYm9keQoKMjAxMi0wMy0wOCAxMzowNjoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2FhbGliL2dzdGFhc2luay5oOgoJICBhYXNpbms6IHByb3Bvc2UgdmlkZW9tZXRhIHVwdHJlYW0KCSAgc3ViY2xhc3MgZnJvbSB2aWRlb3NpbmsuCgkgIFByb3Bvc2UgdmlkZW9tZXRhIHVwc3RyZWFtIGJlY2F1c2Ugd2UgY2FuIGhhbmRsZSBpdCB3aXRoIHRoZSB2aWRlbyBhcGkuCgoyMDEyLTAzLTA4IDAxOjUzOjUwIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogZG8gbm90IHVucmVmIHNhbXBsZSBjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE1MzQKCjIwMTItMDMtMDggMTE6MzY6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdXRvZGV0ZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOgoJICB0ZXN0czogaW1wcm92ZSBtb3JlIHRlc3RzCgoyMDEyLTAzLTA4IDExOjIwOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nZGtwaXhidWZzaW5rLmM6CgkgIHRlc3RzOiBmaXggc29tZSBtb3JlIHRlc3RzCgoyMDEyLTAzLTA3IDE1OjIyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogaW1wcm92ZSBjbGVhbnVwCgkgIFJldXNlIGNsZWFudXAgbWV0aG9kcyB0byBtYWtlIHN1cmUgd2UgcmVtb3ZlIGFsbCBwYWRzIGNvcnJlY3RseQoKMjAxMi0wMy0wNyAxNTowMDoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogc2V0IGNhcHMgd2l0aG91dCB0aGUgbG9jawoJICBSZWxlYXNlIHRoZSBsb2NrIGJlZm9yZSBzZXR0aW5nIHRoZSBjYXBzIG9uIHRoZSBzcmNwYWQsIHdoaWNoIHRyaWdnZXJzIGFuIGV2ZW50LAoJICB3aGljaCBjb3VsZCBldmVudHVhbGx5IGNhbGwgYmFjayBpbnRvIHVzIGFuZCBjYXVzZSBhIGRlYWRsb2NrLgoKMjAxMi0wMy0wNyAxNDo1NTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgcHRkZW11eDogc2V0IGNhcHMgYWZ0ZXIgYWN0aXZhdGluZyB0aGUgcGFkCgkgIFNldCB0aGUgY2FwcyBhZnRlciB3ZSBhY3RpdmF0ZWQgdGhlIHBhZCBvciBlbHNlIGl0IHdpbGwganVzdCBmYWlsLgoKMjAxMi0wMy0wNyAxNDo1NDoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9sYXcvYWxhdy5jOgoJKiBnc3QvbGF3L211bGF3LmM6CgkgIGxhdzogYWRkIGxheW91dCB0byBhdWRpbyBjYXBzCgoyMDEyLTAzLTA3IDE0OjUxOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmg6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmg6CgkgIGxhdzogdXNlIEdzdEF1ZGlvSW5mbwoJICBVc2UgR3N0QXVkaW9JbmZvIHRvIGdlbmVyYXRlIG91dHB1dCBjYXBzLgoKMjAxMi0wMy0wNyAwNDoyMDowMCAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRkZW11eDogY292ZXJ0IGFydCB0YWcgdHlwZSBpcyBHc3RTYW1wbGUgbm90IEdzdEJ1ZmZlciBub3cKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTUzNAoKMjAxMi0wMy0wNyAxMDoyODo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IGZpeCBQT1RGSUxFUy5pbiBmb3IgbmV3IHdhdnBhY2twYXJzZSBsb2NhdGlvbiBpbiBzb3VyY2UgdHJlZQoKMjAxMi0wMy0wNiAyMTo0NDozNiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwOiBDaGFuZ2UgdGhlIGRlZmF1bHQgcG9ydCB0byA1MDA0CgkgIHVkcHNyYy91ZHBzaW5rIGFyZSBhbG1vc3QgYWx3YXlzIHVzZWQgd2l0aCBSVFAsIHNvIGxldCdzIHVzZSBhbgoJICBSVFAgcG9ydCBhcyB0aGUgZGVmYXVsdCBwb3J0LiAgSXQncyB1bmNsZWFyIHdoeSA0OTUxIHdhcyB1c2VkLCBpdAoJICBnb2VzIGJhY2sgdG8gZWFybHkgY29tbWl0cyBpbiBDVlMuCgoyMDEyLTAzLTA2IDIxOjM2OjAyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMScgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWdvb2QgaW50byAwLjExCgoyMDEyLTAzLTA2IDE1OjU4OjIwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJICBzcGVleGRlYzogdXNlIGJhc2UgY2xhc3MgdGFnIGhhbmRsaW5nIGhlbHBlcgoJICAuLi4gc28gYXMgdG8gZW5zdXJlIHRoZXNlIHRvIGJlIGhhbmRsZWQgYW5kIHNlbnQgYXQgcHJvcGVyIHRpbWUuCgoyMDEyLTAzLTA2IDE0OjI1OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tzdHJlYW1yZWFkZXIuYzoKCSAgd2F2cGFjazogRml4IHBvc3NpYmxlIHVuZGVyZmxvdyBvZiB1bnNpZ25lZCBpbnRlZ2VyIHZhcmlhYmxlCgoyMDEyLTAzLTA2IDE0OjIyOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHhpbWFnZXNyYzogRml4ICdjb21wYXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24gPj0gMCBpcyBhbHdheXMgdHJ1ZScKCSAgVGhpcyB2YXJpYWJsZSBjYW4gbmV2ZXIgYmUgYmVsb3cgemVybyBhbnl3YXkuCgoyMDEyLTAzLTA2IDE0OjE4OjMzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogVXNlIGNvcnJlY3QgZW51bSBmb3IgcmV0dXJuIHZhbHVlcwoKMjAxMi0wMy0wNiAxNDoxNjoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSAgZHZkZXBheTogRml4ICdjb21wYXJpc29uIG9mIHVuc2lnbmVkIGV4cHJlc3Npb24gPj0gMCBpcyBhbHdheXMgdHJ1ZScgY29tcGlsZXIgd2FybmluZwoJICBUaGlzIHdhcyBhbiBhY3R1YWwgYnVnIGFzIGl0IGNvdWxkJ3ZlIGNhdXNlZCByZWFkaW5nIGZyb20KCSAgaW52YWxpZCBtZW1vcnkgYXJlYXMgd2hlbiB0aGUgaW5wdXQgaXMgYnJva2VuLgoKMjAxMi0wMy0wNiAxMzoyMToxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYXNtOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcFRvcC5pbmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggJ3ZhcmlhYmxlICdvbGRieCcgaXMgdW5pbml0aWFsaXplZCB3aGVuIHVzZWQgaGVyZScgY29tcGlsZXIgd2FybmluZ3MKCjIwMTItMDMtMDYgMTM6MTk6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggJ2ltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3REZWludGVybGFjZUZpZWxkcycgdG8gZGlmZmVyZW50IGVudW1lcmF0aW9uIHR5cGUgJ0dzdERlaW50ZXJsYWNlTW9kZScnIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDMtMDUgMTU6Mjk6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmg6CgkgIGdkazogY2xlYW51cHMgYW5kIGZpeCByb3dzdHJpZGUKCSAgRml4IHRoZSBvdXRwdXQgcm93c3RyaWRlLCB3ZSBuZWVkIHRvIHRha2UgdGhlIHN0cmlkZSBvZiB0aGUgb3V0cHV0IHZpZGVvIGZyYW1lLgoJICBTaW5jZSB3ZSBhcmUgYWxzbyBkZWFsaW5nIHdpdGggcGxhbmVzLCB0YWtlIHRoZSBwbGFuZSBkYXRhIGFuZCBzdHJpZGUuCgkgIERvbid0IHN0b3JlIHRoZSBzYW1lIGluZm8gdHdpY2UgaW4gZGlmZmVyZW50IHZhcmlhYmxlcy4KCjIwMTItMDMtMDUgMTM6MzE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSAgZ2RrcGl4YnVmOiBmaXggZXZlbnQgaGFuZGxpbmcKCjIwMTItMDMtMDUgMTI6MjA6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja2VuYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdnBhY2suYzoKCSAgdGVzdHM6IHBvcnQgd2F2cGFjayB0ZXN0cyB0byAwLjExCgoyMDEyLTAzLTA1IDEzOjM2OjM5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmg6CgkgIHdhdnBhY2tkZWM6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMy0wNSAxMjoxNzozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrY29tbW9uLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tjb21tb24uaDoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJICB3YXZwYWNrZW5jOiBwb3J0IHRvIDAuMTEKCjIwMTItMDMtMDUgMTM6MzQ6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBleHQvd2F2cGFjay9NYWtlZmlsZS5hbToKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFjay5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIHdhdnBhY2s6IHJlbW92ZSBsZWdhY3kgd2F2cGFja3BhcnNlCgoyMDEyLTAzLTA1IDEyOjE1OjQ0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkgIGF1ZGlvcGFyc2VyczogcG9ydCB3YXZwYWNrcGFyc2UgdG8gMC4xMQoKMjAxMi0wMy0wNSAxMzoyOTo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmMKCSAgc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYwoJICBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oCgkgIHN5cy92NGwyL2dzdHY0bDJ2aWRlb292ZXJsYXkuYwoKMjAxMi0wMy0wNSAxMjo0MzoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgeC1yYXctYmF5ZXIgLT4geC1iYXllcgoKMjAxMi0wMy0wNSAxMToxNzozMCArMDEwMCAgT2xla3NpaiBSZW1wZWwgKEFsZXhleSBGaXNoZXIpIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuYzoKCSAgdjRsMnNpbms6IGRvbid0IHVzZSBkZXByZWNhdGVkIFhLZXljb2RlVG9LZXlzeW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTI5OQoJICBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCAoQWxleGV5IEZpc2hlcikgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTItMDMtMDUgMTI6MDM6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMveGltYWdlL01ha2VmaWxlLmFtOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICB4aW1hZ2U6IHVzZSBuZXcgc3R5bGUgY2FwcwoKMjAxMi0wMy0wNSAxMDo0OTozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkgIHdhdnBhY2tkZWM6IGFsbG93IHNvbWUgdGltZXN0YW1wIHRvbGVyYW5jZSB0byBhcnJhbmdlIGZvciBwZXJmZWN0IHRpbWVzdGFtcGluZwoJICAuLi4gd2hpY2ggYWxzbyBoYXBwZW5zIHRvIG1ha2Ugc29tZSBtb3JlIHVuaXQgdGVzdHMgcGFzcy4KCjIwMTItMDMtMDUgMTA6NDc6NDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJICB3YXZwYWNrZGVjOiBmaXggY29weWluZyBvdXRwdXQgZGF0YQoKMjAxMi0wMy0wNSAxMDo0Njo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkgIHdhdnBhY2tlbmM6IHJlc3RvcmUgbGVnYWN5IGJ1ZmZlciBvZmZzZXQgZGVjb3JhdGluZyBzb21ld2hhdAoJICAuLi4gYXQgbGVhc3Qgc3VmZmljaWVudGx5IHRvIGFpZCBpbiByZWNvZ25pemluZyByZXdyaXR0ZW4gaGVhZGVyIGJ1ZmZlcgoJICBtYWtpbmcgdW5pdCB0ZXN0IHBhc3MuCgoyMDEyLTAzLTA1IDEwOjUxOjMzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgd2F2cGFja3BhcnNlOiBpbml0aWFsaXplIGhlYWRlciB0byBzaWxlbmNlIG9sZGVyIGdjYyB2ZXJzaW9ucwoKMjAxMi0wMy0wNSAxMDo0NTo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICB3YXZwYWNrcGFyc2U6IHJlbW92ZSBlbXB0eSBsaW5lcyBpbiB2YXJhYmxlIGRlY2xhcmF0aW9ucyBjYXVzZWQgYnkgb2xkIGluZGVudAoKMjAxMi0wMy0wNSAxMDo0NDo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSAgamFjazogZml4IG9idmlvdXMgd3JvbmcgZGVmaW5pdGlvbiBmb3IgdGhlIG1hc3RlciBmbGFnCgoyMDEyLTAzLTA0IDE5OjU1OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb2NsaWVudC5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5oOgoJICBqYWNrOiBjaGFuZ2UgdGhlIHRyYW5zcG9ydC1tb2RlIGVudW0gaW50byBmbGFncwoJICBPbmUgY2FuIHVzZSAob3Igbm90IHVzZSkgbWFzdGVyIGFuZCBzbGF2ZSBtb2RlIGluZGVwZW5kZW50bHkuCgoyMDEyLTAzLTAyIDExOjQ5OjAyIC0wNTAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgYXZpbXV4OiBzdXBwb3J0IHVwIHRvIDYgY2hhbm5lbHMgb2YgQUMtMwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcxMjIwCgoyMDEyLTAzLTAzIDEzOjA0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IGNsZWFyIERJU0NPTlQgZmxhZyB3aGVuIHJlY3ljbGluZyBidWZmZXJzIGludG8gdGhlIGJ1ZmZlciBwb29sCgkgIFRoZSBiYXNlIGNsYXNzIG1heSBoYXZlIHNldCB0aGUgRElTQ09OVCBmbGFnIG9uIHRoZSBmaXJzdCBidWZmZXIgcHVzaGVkCgkgIG91dC4gV2UgbmVlZCB0byBjbGVhciB0aGF0IHdoZW4gcmVjeWNsaW5nIGJ1ZmZlcnMgYmFjayBpbnRvIHRoZSBidWZmZXIKCSAgcG9vbCwgb3RoZXJ3aXNlIHdlIGNvbnN0YW50bHkgcHVzaCBvdXQgYnVmZmVycyB3aXRoIHRoZSBkaXNjb250IGZsYWcKCSAgc2V0LCB3aGljaCBtaWdodCB1cHNldCBkb3duc3RyZWFtIGVsZW1lbnRzLCBlc3AuIGZvciBjb21wcmVzc2VkCgkgIGZvcm1hdHMgbGlrZSBtcGVnLXRzLgoKMjAxMi0wMy0wMSAxNDoxNToyOSArMDEwMCAgT2xla3NpaiBSZW1wZWwgKEFsZXhleSBGaXNoZXIpIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJICB2NGwyc3JjOiBmaXggdjRsMl9tdW5tYXAoKSBmb3IgY29tcHJlc3NlZCBmb3JtYXRzCgkgIE1ha2Ugc3VyZSB3ZSBhbHdheXMgY2FsbCBtdW5tYXAoKSB3aXRoIHRoZSBzYW1lIHNpemUgd2UgY2FsbGVkIG1tYXAoKQoJICB3aXRoIGJlZm9yZS4KCSAgQ3VycmVudCB2NGwyc3JjIHVzZXMgdGhlIHNhbWUgc3RydWN0dXJlIGZvciBWSURJT0NfUVVFUllCVUYsIFZJRElPQ19RQlVGCgkgIGFuZCB2NGwyX211bm1hcCBjYWxscy4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgdmlkZW8gYnVmZmVyIHNpemUgKGxlbmd0aCkKCSAgbWF5IHZhcnkgZm9yIGNvbXByZXNzZWQgb3IgZW11bGF0ZWQgYnVmcy4gVklESU9DX1FCVUYgd2lsbCBjaGFuZ2UgaXQgaWYKCSAgd2UgcGFzcyB0aGUgcG9pbnRlciBvZiBhIHY0bDJfYnVmZmVyLiBUaGlzIGlzIHdoeSB3ZSBzaG91bGQgYXZvaWQgdXNpbmcKCSAgc2FtZSB2YXJpYWJsZSBmb3IgbW1hcCBhbmQgdmlkZW8gYnVmZmVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTEyNgoKMjAxMi0wMy0wMiAxMToxNzozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2ZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5jOgoJKiBnc3QvZmx2L2dzdGluZGV4LmM6CgkgIGdzdDogVXBkYXRlIGZvciB0aGUgZ3N0bWFyc2hhbC5bY2hdIHJlbW92YWwKCjIwMTItMDMtMDIgMTA6MTM6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmg6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5oOgoJICBtaXhlci9jb2xvcmJhbGFuY2U6IFVwZGF0ZSBmb3IgQVBJIGNoYW5nZXMKCjIwMTItMDMtMDEgMTc6MTU6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYWFsaWIvZ3N0YWFzaW5rLmM6CgkgIGFhc2luazogZml4IHN0cmlkZQoKMjAxMi0wMy0wMSAxMTozNjozNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBhdWRpb3BhcnNlcnM6IGRpc2FibGUgbm9uLXBvcnRlZCB3YXZwYWNrcGFyc2UKCjIwMTItMDMtMDEgMTE6Mjk6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYwoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2lpcmZpbHRlci5jCgkgIHRlc3RzL2V4YW1wbGVzL3Y0bDIvcHJvYmUuYwoKMjAxMi0wMi0yOSAyMjozMToyMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZzaW5rLmM6CgkgIGdka3BpeGJ1ZnNpbms6IHJlbW92ZSBkZXByZWNhdGVkIHByb3BlcnR5CgoyMDEyLTAyLTI5IDIyOjMwOjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJICBnZGtwaXhidWZzY2FsZTogcmVtb3ZlIGRlcHJlY2F0ZWQgcHJvcGVydHkKCjIwMTItMDItMjkgMjI6Mjg6MDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZzaW5rLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuaDoKCSAgZ2RrcGl4YnVmc2luazogcG9ydCB0byAwLjExCgoyMDEyLTAyLTI5IDIyOjI1OjIzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmg6CgkgIGdka3BpeGJ1ZnNjYWxlOiBwb3J0IHRvIDAuMTEKCjIwMTItMDItMjkgMjI6MjQ6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5oOgoJICBnZGtwaXhidWZkZWM6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMi0yOSAxNzoyNjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6CgkqIHN5cy94aW1hZ2UveGltYWdldXRpbC5oOgoJICB1cGRhdGUgZm9yIG1ldGFkYXRhIEFQSSBjaGFuZ2VzCgoyMDEyLTAyLTI4IDEzOjUxOjEwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0d2F2cGFja3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkgIGF1ZGlvcGFyc2VyczogYWRkIGJhc2VwYXJzZSBiYXNlZCB3YXZwYWNrcGFyc2UKCjIwMTItMDItMjggMTE6Mzg6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSAgdXBkYXRlIGZvciBtZXRhZGF0YSB0YWdzCgoyMDEyLTAyLTI3IDIzOjQ2OjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZGVjLmM6CgkgIHdhdnBhY2tkZWM6IGFkanVzdCB0byBhdWRpbyBmb3JtYXQgbGltaXRhdGlvbnMKCSAgLi4uIHdoaWNoIGRvZXMgbm90IGFsbG93IGV4cHJlc3NpbmcgYXJiaXRyYXJ5IGRlcHRoIGluIGEgR3N0QXVkaW9Gb3JtYXQuCgkgIEFsc28gYWRqdXN0IHVuaXQgdGVzdCB0byBtb2RpZmllZCBiZWhhdmlvdXIuCgoyMDEyLTAyLTI3IDIzOjQ2OjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJICB3YXZwYWNrZGVjOiBkZXRlcm1pbmUgZGVwdGggZnJvbSBieXRlcyBwZXIgc2FtcGxlCgkgIC4uLiByYXRoZXIgdGhhbiBmcm9tIGJpdHMgcGVyIHNhbXBsZSwgc2luY2Ugc3BlYyBzdGF0ZXMgdmFsdWVzIGFyZSBhbHJlYWR5CgkgIGxlZnQganVzdGlmaWVkIHcuci50LiBiaXRzIHBlciBzYW1wbGUgYnV0IG5vdCB3LnIudC4gYnl0ZXMgcGVyIHNhbXBsZQoJICAoYW5kIHNvIHRoZSBsYXR0ZXIgZGV0ZXJtaW5lcyB0aGUgbm9ybWFsaXphdGlvbiwgb3IgaW5kaWNhdGVkIGRlcHRoKS4KCjIwMTItMDItMjcgMjM6NDY6MDMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmg6CgkgIHdhdnBhY2tkZWM6IHBvcnQgdG8gYXVkaW9kZWNvZGVyCgoyMDEyLTAyLTI3IDIzOjQ1OjU0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZW5jLmM6CgkgIHdhdnBhY2tlbmM6IHBvcnQgdG8gYXVkaW9lbmNvZGVyCgkgIEFsc28gYWRqdXN0IHVuaXQgdGVzdCB0byBzbGlnaHRseSBtb2RpZmllZCBiZWhhdmlvdXIuCgoyMDEyLTAyLTI3IDE0OjQ3OjI1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGFubm9kZXguYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbHBhcnNlci5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sdGFnLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXByb2JlLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaWlyZmlsdGVyLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogc3lzL29zczQvb3NzNC1hdWRpby5jOgoJKiBzeXMvb3NzNC9vc3M0LXByb3BlcnR5LXByb2JlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9maXJmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9paXJmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy93YXZlbmMuYzoKCSogdGVzdHMvZXhhbXBsZXMvYXVkaW9meC9maXJmaWx0ZXItZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9hdWRpb2Z4L2lpcmZpbHRlci1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3B1bHNlL3B1bHNlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItYWxzYXNyYy1QQ01BLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvcHJvYmUuYzoKCSogdGVzdHMvaWNsZXMvdGVzdC1vc3M0LmM6CgkgIFN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGluIHNlbGVjdGVkIGZpbGVzLCBmb3IgZ192YWx1ZV9hcnJheV8qIG1vc3RseQoKMjAxMi0wMi0yNyAxMzowOTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBzcGVleGVuYzogY2hhaW4gdXAgdG8gcGFyZW50IGV2ZW50IGhhbmRsZXIKCjIwMTItMDItMjcgMTM6MDU6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWNlbmM6IGZpeCBldmVudCBoYW5kbGluZwoJICBGaXggZG9kZ3kgc2VnbWVudCBldmVudCBoYW5kbGluZwoJICBDaGFpbiB1cCB0byBwYXJlbnQgZXZlbnQgaGFuZGxlcgoKMjAxMi0wMi0yNyAwOToxNDowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IHVzZSBwdWJsaWMgYXBpCgkgIGluc3RlYWQgb2YgcG9raW5nIGludG8gdGhlIHByaXZhdGUgc3RydWN0dXJlcyBvZiB0aGUgYmFzZSBjbGFzcwoKMjAxMi0wMi0yNyAwMTowOToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgZmx2bXV4LCBtYXRyb3NrYW11eCwgcXRtdXg6IGlmIGluIGRvdWJ0IGFib3V0IGRvd25zdHJlYW0gc2Vla2FiaWxpdHkgZGVmYXVsdCB0byBzdHJlYW1pbmc9dHJ1ZQoJICBJZiBkb3duc3RyZWFtIGRpZG4ndCBhbnN3ZXIgb3VyIFNFRUtJTkcgcXVlcnkgYW5kIHRvbGQgdXMKCSAgaXQncyBzZWVrYWJsZSwgZGVmYXVsdCB0byBzdHJlYW1pbmc9dHJ1ZS4gV2UgY291bGRuJ3QgZG8KCSAgdGhpcyBpbiAwLjEwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLCBidXQgd2UKCSAgY2FuIGluIDAuMTEuIFBsYXkgaXQgc2FmZS4KCjIwMTItMDItMjcgMDE6MDA6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jCgoyMDEyLTAyLTI3IDAwOjU2OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGNvbW1pdCAnZjkyMDc3MjJjYThmZDhkY2MxZTcyMTVkOGFmODVlZmU0ZGViZmRmNCcgaW50byAwLjExCgoyMDEyLTAyLTI3IDAwOjU1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgbXBlZ2F1ZGlvcGFyc2U6IGZpeCB1cCBhZnRlciBtZXJnZQoKMjAxMi0wMi0yNyAwMDo0ODo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBjb21taXQgJzM4NTE2YWQzNjcxMjhkODNmOWUxNTY1MjkwMThhZGI0NDMzY2QzMjgnIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jCgkgIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYwoKMjAxMi0wMi0yNiAyMDozOTo1MiArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ29vbTJrMS9nc3Rnb29tLmM6CgkgIGdvb20yazE6IGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAyLTI2IDIwOjMwOjI0ICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgbXBlZ2F1ZGlvcGFyc2U6IGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAyLTI1IDE1OjU1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGNyZWF0ZSBzdHJlYW1hYmxlIG91dHB1dCBpZiBkb3duc3RyZWFtIGlzIG5vdCBzZWVrYWJsZQoJICBJZ25vcmUgdGhlICJzdHJlYW1hYmxlIiBwcm9wZXJ0eSBzZXR0aW5nIGFuZCBjcmVhdGUgc3RyZWFtYWJsZQoJICBvdXRwdXQgaWYgZG93bnN0cmVhbSBpcyBrbm93biBub3QgdG8gYmUgc2Vla2FibGUgKGFzIHF1ZXJpZWQKCSAgdmlhIGEgU0VFS0FCTEUgcXVlcnkpLgoJICBGaXhlcyBwaXBlbGluZXMgbGlrZSBxdG11eCAhIGFwcHNpbmsgcG9zc2libHkgY3JlYXRpbmcgc2VlbWluZ2x5CgkgIGNvcnJ1cHRlZCBvdXRwdXQgaWYgc3RyZWFtYWJsZSBoYXMgbm90IGJlZW4gc2V0IHRvIHRydWUuCgoyMDEyLTAyLTI1IDE1OjQ4OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogY3JlYXRlIHN0cmVhbWFibGUgb3V0cHV0IGlmIGRvd25zdHJlYW0gaXMgbm90IHNlZWthYmxlCgkgIElnbm9yZSB0aGUgInN0cmVhbWFibGUiIHByb3BlcnR5IHNldHRpbmcgYW5kIGNyZWF0ZSBzdHJlYW1hYmxlCgkgIG91dHB1dCBpZiBkb3duc3RyZWFtIGlzIGtub3duIG5vdCB0byBiZSBzZWVrYWJsZSAoYXMgcXVlcmllZAoJICB2aWEgYSBTRUVLQUJMRSBxdWVyeSkuCgkgIEZpeGVzIHBpcGVsaW5lcyBsaWtlIGZsdm11eCAhIGFwcHNpbmsgcG9zc2libHkgY3JlYXRpbmcgc2VlbWluZ2x5CgkgIGNvcnJ1cHRlZCBvdXRwdXQgaWYgc3RyZWFtYWJsZSBoYXMgbm90IGJlZW4gc2V0IHRvIHRydWUuCgoyMDEyLTAyLTI1IDE1OjQwOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IGNyZWF0ZSBzdHJlYW1hYmxlIG91dHB1dCBpZiBkb3duc3RyZWFtIGlzIG5vdCBzZWVrYWJsZQoJICBJZ25vcmUgdGhlICJzdHJlYW1hYmxlIiBwcm9wZXJ0eSBzZXR0aW5nIGFuZCBjcmVhdGUgc3RyZWFtYWJsZQoJICBvdXRwdXQgaWYgZG93bnN0cmVhbSBpcyBrbm93biBub3QgdG8gYmUgc2Vla2FibGUgKGFzIHF1ZXJpZWQKCSAgdmlhIGEgU0VFS0FCTEUgcXVlcnkpLgoJICBGaXhlcyBwaXBlbGluZXMgbGlrZSB3ZWJtbXV4ICEgYXBwc2luayBjcmVhdGluZyBzZWVtaW5nbHkKCSAgY29ycnVwdGVkIG91dHB1dCBpZiBzdHJlYW1hYmxlIGhhcyBub3QgYmVlbiBzZXQgdG8gdHJ1ZS4KCjIwMTItMDItMjQgMTE6MDM6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkgIHVwZGF0ZSBmb3IgYmFzZXRyYW5zZm9ybSBjaGFuZ2UKCjIwMTItMDItMjQgMTA6MjY6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSAgdXBkYXRlIGZvciBtZXRhZGF0YSBjaGFuZ2UKCjIwMTItMDItMjMgMDg6NDI6MjUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBnc3QvZGVidWd1dGlscy9NYWtlZmlsZS5hbToKCSogZ3N0L2RlYnVndXRpbHMvZWZlbmNlLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2VmZW5jZS5oOgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UudmNwcm9qOgoJICBlZmVuY2U6IHJlbW92ZSBwbHVnaW4KCSAgVmFsZ3JpbmQgaXMgbXVjaCBtb3JlIHVzZWZ1bCB0aGVzZSBkYXlzLgoKMjAxMi0wMi0yMyAxMjowNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJICBVcGRhdGUgTkVXUyBhbmQgUkVMRUFTRSBhcyB3ZWxsCgoyMDEyLTAyLTIzIDExOjA3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCdW1wIHZlcnNpb24gYWZ0ZXIgcmVsZWFzZQoKMjAxMi0wMi0yMyAxMjowMzoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uaDoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuaDoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuaDoKCSAgYXVkaW9meDogcmVtb3ZlIHRyYW5zZm9ybSBsb2NrIHVzYWdlCgoyMDEyLTAyLTIzIDExOjE2OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5oOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5oOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHVwZGF0ZSBmb3IgYmFzZXRyYW5zZm9ybSBsb2NrIHJlbW92YWwKCjIwMTItMDItMjIgMjM6MzY6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvTWFrZWZpbGUuYW06CgkgIGRlYnVndXRpbHM6IGRpc2FibGUgZWZlbmNlIHBsdWdpbiBwcm9wZXJseQoJICBXZSBkb24ndCB3YW50IGl0IGJ1aWx0IGlmIG1tYXAgaXNuJ3QgYXZhaWxhYmxlIGVpdGhlci4uCgoyMDEyLTAyLTIyIDE3OjM5OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogZml4IGdldF9jYXBzIGZ1bmN0aW9uIHNvbWUgbW9yZSBzbyB0aGF0IGFsbCBzdHJ1Y3R1cmVzIGhhdmUgY2hhbm5lbCBpbmZvCgkgIFNldCBjaGFubmVscyBhbmQgY2hhbm5lbC1sYXlvdXQgb24gdGhlIHJpZ2h0IHN0cnVjdHVyZTsgdGhhdCBpcywgdGhlCgkgIHN0cnVjdHVyZSB3ZSBhcmUgZ29pbmcgdG8gYXBwZW5kIHRvIHRoZSBjYXBzIHdlIGFyZSBidWlsZGluZywgYW5kIG5vdAoJICB0aGUgc3RydWN0dXJlIHdlIGFyZSB1c2luZyBhcyBhIHRlbXBsYXRlIGZvciBhbGwgdGhlIHN0cnVjdHVyZXMuIEZpeGVzCgkgIGZpcnN0IHN0cnVjdHVyZSBvZiB0aGUgcmV0dXJuZWQgY2FwcyBub3QgaGF2aW5nIGFueSBjaGFubmVsIGluZm8gc2V0CgkgIG9uIGl0LgoKMjAxMi0wMi0yMiAxNzowOToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWNlbmM6IG1pY3Jvb3B0aW1pc2F0aW9uOiBhdm9pZCB1bm5lY2Vzc2FyeSBsaXN0IGFuZCBzdHJpbmcgY29waWVzCgoyMDEyLTAyLTIyIDE3OjAzOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogYXVkaW8gY2FwcyBoYXZlIGEgKmxpc3QqIG9mIGZvcm1hdHMsIG5vdCBhbiBhcnJheSBvZiBmb3JtYXRzCgkgIEEgbGlzdCBvZiB0aGluZ3MgaW4gY2FwcyBpcyBzb21ldGhpbmcgd2hlcmUgb25lIGlzIHBpY2tlZCBpbiB0aGUKCSAgY291cnNlIG9mIG5lZ290aWF0aW9uLiBBbiBhcnJheSBpcyBhbHdheXMgc29tZXRoaW5nIHRoYXQgb25seSBtYWtlcwoJICBzZW5zZSBhcyBhIHdob2xlIGluIHRoYXQgb3JkZXIuCgoyMDEyLTAyLTIyIDE4OjAyOjI3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogcmVtb3ZlIHBvc3QtcG9ydCBib2d1cyBfdW5yZWYKCjIwMTItMDItMjIgMTc6MDA6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiByZW1vdmUgYm9ndXMgcGFkIGxvY2tpbmcgdGhhdCBjYXVzZXMgZGVhZGxvY2tzCgkgIEl0J3Mgbm90IGNsZWFyIHdoeSB0aGUgcGFkIG9iamVjdCBsb2NrIGlzIHRha2VuIGhlcmUuIEJ1dAoJICBnc3RfcGFkX3toYXMsZ2V0fV9jdXJyZW50X2NhcHMoKSB3aWxsIHRyeSB0byB0YWtlIHRoZSBsb2NrCgkgIGFzIHdlbGwgYW5kIGRlYWRsb2NrLCBzaW5jZSBpdCdzIG5vdCByZWN1cnNpdmUuCgoyMDEyLTAyLTIyIDE2OjU5OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogc2V0IHJpZ2h0IG51bWJlciBvZiBjaGFubmVscyBvbiBjYXBzIGluIGdldF9jYXBzIGZ1bmN0aW9uCgoyMDEyLTAyLTIxIDE3OjE2OjMyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW46IGF2b2lkIHRvdWNoaW5nIC5wbyBmaWxlcyBkdXJpbmcgJ21ha2UnCgkgIEEgc2ltcGxlIHdvcmthcm91bmQgdG8gZGVhbCB3aXRoIEdOVSBnZXR0ZXh0IGF1dG9tYWtlIGludGVncmF0aW9uCgkgIGZhaWxpbmcgdG8gZGVhbCB3aXRoIGdpdC4gIEZpeGVzOiAjNjY5MjA3CgoyMDEyLTAyLTIyIDAyOjA2OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvaXNvbXA0L2F0b21zLmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5LmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6CgkgIHVwZGF0ZSBmb3IgbmV3IG1lbW9yeSBhcGkKCjIwMTItMDItMjEgMTc6NTc6NDQgKzAxMDAgIFZpbmNlbnQgVW50eiA8dnVudHpAZ25vbWUub3JnPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlOiBGaXggYSBidWlsZCB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIHdpdGggYXNzZXJ0cyBkaXNhYmxlZAoJICBSZXR1cm4gYSB2YWx1ZSBldmVuIGlmIHRoZSBjb2RlIHdpbGwgbmV2ZXIgYmUgcmVhY2hlZCwgdG8gbWFrZSBjb21waWxlcnMKCSAgaGFwcHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA1NjEKCjIwMTItMDItMjEgMTg6NDI6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmg6CgkgIG1wZWdhdWRpb3BhcnNlOiBzdXBwb3J0IHBhcnNpbmcgZnJlZWZvcm0gYml0cmF0ZSBzdHJlYW0KCjIwMTItMDItMjEgMTg6Mzk6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvbW9ub3Njb3BlL2dzdG1vbm9zY29wZS5jOgoJKiBnc3QvbW9ub3Njb3BlL2dzdG1vbm9zY29wZS5oOgoJICBtb25vc2NvcGU6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMi0yMSAxMDo1Mzo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMjAgMTI6MjI6MTIgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogRm9yY2UgYmFzZWxpbmUgaXMgcHJvZmlsZS1sZXZlbC1pZCBpcyB1bnNwZWNpZmllZAoKMjAxMi0wMi0yMSAxMDo0MDowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICBpZDN2Mm11eDogRml4IG1lcmdlIGVycm9yCgoyMDEyLTAyLTIwIDEyOjIyOjEyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIHJ0cGgyNjRwYXk6IEZvcmNlIGJhc2VsaW5lIGlzIHByb2ZpbGUtbGV2ZWwtaWQgaXMgdW5zcGVjaWZpZWQKCjIwMTItMDItMjAgMTY6MzU6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTItMDEtMjYgMDM6Mjk6MjggLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTItMDItMTggMTE6Mzg6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSAgdGVzdHM6IGZpeCB1cCBsZXZlbCB0ZXN0IGZvciBHc3RWYWx1ZUxpc3QgLT4gR1ZhbHVlQXJyYXkgY2hhbmdlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzAzMDMKCjIwMTItMDItMTYgMTg6MDE6MjkgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkgIGxldmVsOiB1c2UgR1ZhbHVlQXJyYXkgaW5zdGVhZCBvZiBHc3RWYWx1ZUxpc3QgaW4gbWVzc2FnZXMKCSAgVXBkYXRlZCBHc3RMZXZlbCBlbGVtZW50IHRvIHVzZSBHVmFsdWVBcnJheSBpbnN0ZWFkIG9mCgkgIEdzdFZhbHVlTGlzdCBmb3Igcm1zL3BlYWsvZGVjYXkga2V5cyBhdHRhY2hlZCB0byBlbGVtZW50CgkgIG1lc3NhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzAzMDMKCjIwMTItMDItMTggMDA6MDA6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHdpbjMyOiBiYWNrIHRvIGRldmVsb3BtZW50CgoyMDEyLTAyLTE3IDIzOjU0OjI5ICswMTAwICBEb21pbmlxdWUgTGV1ZW5iZXJnZXIgPGRvbWluaXF1ZS1nbm9tZXppbGxhIGF0IGxldWVuYmVyZ2VyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgTm8gbG9uZ2VyIHJlZmVyZW5jZSBkZXByZWNhdGVkIGhlYWRlciBmaWxlcyB3aGlsZSBidWlsZGluZyBkb2NzLgoKMjAxMi0wMi0xNyAyMzo0OToyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jCgoyMDEyLTAyLTE3IDE3OjIxOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogZml4IHN3aXRjaGluZyBmcm9tIHBhc3N0aHJvdWdoIHRvIG5vbi1wYXNzdGhyb3VnaCB3aGVuIHBhcmFtZXRlcnMgY2hhbmdlCgkgIGNvbW1pdCBiNWJmMDI5NCBtb3ZlZCB0aGUgaWYobmVlZF9uZXdfY29lZmZpY2llbnRzKSBzZXRfcGFzc3Rocm91Z2goZXF1KQoJICBhZnRlciB0aGUgaWYoaXNfcGFzc3Rocm91Z2gpIHJldHVybiBGTE9XX09LIHNob3J0Y3V0LCBzbyB0aGUgcGFzc3Rocm91Z2gKCSAgbW9kZSB3b3VsZCBuZXZlciBnZXQgdXBkYXRlZCBldmVuIGlmIHRoZSBjb2VmZmljaWVudHMgY2hhbmdlLgoJICBGaXhlcyBlcXVhbGl6ZXItdGVzdCBkb2luZyAuLiBub3RoaW5nLgoKMjAxMi0wMi0xNyAxNzo1NzowMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSAgZ29vbSo6IGZpeCBsZWFrZWQgY2FwcyBldmVudAoKMjAxMi0wMi0xNyAxMzoyNjo1MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgIG1wZWdhdWRpb3BhcnNlOiBwYXJzZSBlaXRoZXIgWGluZyBvciBWQlJJIGRhdGEKCSAgLi4uIGFuZCBhdm9pZCBjb25mdXNpbmcgZGVidWcgbWVzc2FnZSBjbGFpbWluZyBuZWl0aGVyIHByZXNlbnQuCgoyMDEyLTAyLTE3IDE0OjM4OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2s6IGZpeCBzZWdtZW50IHVwZGF0ZQoKMjAxMi0wMi0xNyAxMTowNToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4xID09PQoKMjAxMi0wMi0xNyAxMTowNDo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0cnRwYmluLW1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdHJ0cGJpbi1tYXJzaGFsLmg6CgkgIFJFTEVBU0UgMC4xMS4xCgoyMDEyLTAyLTE2IDIzOjMzOjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgZ29vbTogZml4IGJ1ZmZlciBsZWFrCgoyMDEyLTAyLTE2IDIzOjQwOjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSAgZ29vbTJrMTogdXNlIHNvbWUgbW9yZSBib2lsZXJwbGF0ZQoKMjAxMi0wMi0xNiAyMzozMzowMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5oOgoJICBnb29tMmsxOiBwb3J0IHRvIDAuMTEKCjIwMTItMDItMTYgMTU6MzE6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSAgc2hvdXQyOiB1c2Ugc29tZSBtb3JlIGJvaWxlcnBsYXRlCgoyMDEyLTAyLTE2IDE1OjI5OjM0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSAgc2hvdXQyOiBwb3J0IHRvIDAuMTEKCjIwMTItMDItMTQgMTE6NTY6MDAgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmg6CgkqIGdzdC9pbnRlcmxlYXZlL3BsdWdpbi5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9wbHVnaW4uaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJICBpbnRlcmxlYXZlOiBwb3J0IHRvIDAuMTEKCSAgUG9ydCBvZiB0aGUgaW50ZXJsZWF2ZSBlbGVtZW50IGFuZCBpdHMgdW5pdHRlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5NjQzCgoyMDEyLTAyLTE2IDE0OjIzOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0xNiAxNzoxNDoyMCArMDgwMCAgR2FyeSBDaGluZy1QYW5nIExpbiA8Y2hpbmdwYW5nQGdtYWlsLmNvbT4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMnNyYzogZmFpbHVyZSB0byBxdWVyeSBzb21lIG9wdGlvbmFsIGNvbnRyb2xzIGlzIG5vdCBhIGZhdGFsIGVycm9yCgkgIERvbid0IHBvc3QgYSAoZmF0YWwpIGVycm9yIG1lc3NhZ2Ugb24gdGhlIGJ1cyBqdXN0IGJlY2F1c2Ugd2UKCSAgZmFpbGVkIHRvIHF1ZXJ5IHNvbWUgY29udHJvbC4gRml4ZXMgaXNzdWUgd2l0aCBidWlsdC1pbgoJICBTdXlpbiBDb3JwIHdlYmNhbSBmb3IgSFAgbm90ZWJvb2sgKHVzYmlkIDA2NGU6ZTI4YSkgb24KCSAgT3BlblN1c2UgMTIuMSwgd2hlcmUgcXVlcnlpbmcgcmVkL2JsdWUgYmFsYW5jZSBmYWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MDE5NwoKMjAxMi0wMi0xNiAxMjo1OToxMCArMDAwMCAgVHV1a2thIFBhc2FuZW4gPHR1dWtrYS5wYXNhbmVuQGlsbWkuZmk+CgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkgIHY0bDJzcmM6IGZpeCBmb3Igd2ViY2Ftc3R1ZGlvIHZsb29wYmFjawoJICBCZWNhdXNlIHZsb29iYWNrIGVtaXRzIDI1IC0gRU5PVFRZIGFuZCBubyBFSU5WQUwgdjRsMnNyYyB0aG91Z2h0IGl0CgkgIGNhbid0IGhhbmRsZSB0aGlzIGFuZCBkb2VzIG5vdCB3b3JrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5NDU1CgoyMDEyLTAyLTE2IDExOjIxOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBydHBqaXR0ZXJidWZmZXI6IGRlY2xhcmUgdmFyaWFibGVzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrCgkgIEl0J3MgaG93IHdlIHJvbGwuIEZpeGVzICdJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlJwoJICBjb21waWxlciB3YXJuaW5nLgoKMjAxMi0wMi0xNSAyMzo1NTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IGZpeCBzcGVjdHJ1bSBleGFtcGxlIGJ1aWxkIGlzc3VlcwoJICBGaW5kIGZmdCBoZWFkZXJzIGluIHVuaW5zdGFsbGVkIHNldHVwLCBmaXggTElCUyBvcmRlci4KCjIwMTItMDItMTUgMTI6NDE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiByZW1vdmUgc29tZSB1bnVzZWQgZGVjbGFyYXRpb25zCgoyMDEyLTAyLTE1IDExOjI1OjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkgIHNwZWN0cnVtLWRlbW86IHNob3cgdGhlIGVmZmVjdCBvZiBmYXN0LW1vZGUKCjIwMTItMDItMTQgMTI6MjY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJICBhc3BlY3RyYXRpb2Nyb3A6IGZpeCBjYXBzIHJlZmNvdW50CgoyMDEyLTAyLTE0IDExOjIyOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2VmZmVjdHYuYzoKCSAgdGVzdHM6IGZpeCB0ZXN0LCB1c2UgdmlkZW9jb252ZXJ0CgoyMDEyLTAyLTE0IDEwOjUxOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZsYWNwYXJzZS5jCgoyMDEyLTAyLTA5IDEzOjQxOjUzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGFkanVzdCB0byBtb2RpZmllZCBiYXNlcGFyc2UgQVBJCgoyMDEyLTAyLTEzIDE3OjEzOjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIHVwZGF0ZSBmb3IgbWVtb3J5IGFwaSBjaGFuZ2UKCjIwMTItMDItMTMgMTI6MDY6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmxhY3BhcnNlLmM6CgkgIHRlc3RzOiBmbGFjcGFyc2U6IGNoZWNrIGFuZCBjb21wYXJlIGludGVuZGVkIGRhdGEKCjIwMTItMDItMTIgMTc6MDM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L3RhZ2xpYi9nc3RhcGV2Mm11eC5jYwoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjCgkgIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4LmMKCSAgZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguaAoKMjAxMi0wMi0xMiAxNjoyMjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdGFnbGliL01ha2VmaWxlLmFtOgoJKiBleHQvdGFnbGliL2dzdGFwZXYybXV4LmNjOgoJKiBleHQvdGFnbGliL2dzdGFwZXYybXV4Lmg6CgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguaDoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguaDoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJwbHVnaW4uYzoKCSAgdGFnbGliOiBwb3J0IHRvIEdzdFRhZ011eCBiYXNlIGNsYXNzCgoyMDEyLTAyLTEyIDEyOjI0OjUwICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4LmM6CgkgIHRhZ2xpYjogZmluaXNoIG9mZiBhIGZldyBtaXNzZWQgdmFyaWFibGUgY2hhbmdlcwoJICBMb2NhbCB2YXJpYWJsZXMgYXJlIG5vdyB1bnVzZWQsIGFuZCB0aGUgdmFsdWVzIGZyb20gdGhlIHNlZ21lbnQgY29weQoJICBhcmUgdXNlZCBpbnN0ZWFkLCBzbyByZW1vdmUgdGhlIG5vdyB1c2VsZXNzIGxvY2FsIHZhcmlhYmxlcyBhbmQgd3JpdGUKCSAgdG8gdGhlIHNlZ21lbnQgd2hlcmUgYXBwcm9wcmlhdGUuCgoyMDEyLTAyLTEwIDE2OjIzOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGV4dC9mbGFjL2dzdGZsYWNlbmMuYwoJICBleHQvamFjay9nc3RqYWNrYXVkaW9jbGllbnQuYwoJICBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmMKCSAgZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmMKCSAgZXh0L3B1bHNlL3BsdWdpbi5jCgkgIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmMKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jCgoyMDEyLTAyLTA4IDIzOjAzOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBhZGQgc3RyZWFtLWZvcm1hdCBhbmQgYWxpZ25tZW50IHRvIGgyNjQgc2luayBjYXBzCgkgIFdlJ3JlIGhhcHB5IHRvIGFjY2VwdCBib3RoIGJ5dGUtc3RyZWFtIGFuZCBhdmMsIGFkdmVydGlzZQoJICB0aGF0IG9uIHRoZSBzaW5rIGNhcHMgYW5kIGZpeCB1cCBfZ2V0X2NhcHMoKSBmdW5jdGlvbiB0bwoJICBub3QganVzdCByZXR1cm4gInZpZGVvL3gtaDI2NCIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY2NjIKCjIwMTItMDItMDggMjA6NTg6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSAgcnRwaDI2NGRlcGF5OiBhZGQgc3RyZWFtLWZvcm1hdCBhbmQgYWxpZ25tZW50IGZpZWxkcyB0byBzcmMgdGVtcGxhdGUgY2FwcwoJICBCZWNhdXNlIHdlIGNhbi4gQW5kIHNvIHdlIGdldCBhIHdhcm5pbmcgaWYgd2UgdHJ5IHRvIG91dHB1dCBhdmMgd2l0aAoJICBuYWwgYWxpZ25tZW50IG9yIHNvbWVzdWNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2NjYyCgoyMDEyLTAyLTEwIDEzOjQ0OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkgIHRlc3RzOiBjbGVhbiB1cCBydHAtcGF5bG9hZGluZyB0ZXN0IGEgbGl0dGxlCgkgIEZlZWQgZGF0YSBpbnRvIHRoZSBwaXBlbGluZSB1c2luZyBhcHBzcmMgaW5zdGVhZCBvZiBmZHNyYyBhbmQKCSAgYSBwaXBlLiBTdG9yZSB1bnNpZ25lZCBieXRlIHZhbHVlcyBpbiBndWludDggaW5zdGVhZCBvZiBjaGFyLgoJICBHZXR0aW5nIHJpZCBvZiB0aGUgY2Fwc2ZpbHRlciBhbHNvIGhlbHBzIHRvIGF2b2lkICdmb3JtYXQgaXMKCSAgbm90IGZ1bGx5IHNwZWNpZmllZCcgd2FybmluZ3Mgd2hlbiBwdXNoaW5nICJ2aWRlby94LWgyNjQiIGRhdGEKCSAgaW50byBydHBoMjY0cGF5IHdpdGggZnVsbHkgc3BlY2lmaWVkIGgyNjQgY2FwcyBpbiB0aGUgc2luayB0ZW1wbGF0ZS4KCjIwMTItMDItMTAgMTA6MDc6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdjogdXNlIGRlZmF1bHQgcGFkIHF1ZXJ5CgkgIFdlIG5lZWQgdG8gY2hhaW4gdXAgdW5rbm93biBxdWVyaWVzIHRvIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgaW5zdGVhZCBvZgoJICBibGluZGx5IGZvcndhcmRpbmcgdGhlbS4gSW4gdGhpcyBjYXNlIGl0IGNhdXNlZCB0aGUgY2FwcyBxdWVyeSB0byBiZSBmb3J3YXJkZWQKCSAgdG8gdGhlIHVwc3RyZWFtIHR5cGVmaW5kIGFuZCByZXR1cm4gdGhlIHdyb25nIHR5cGUgZm9yIHRoZSBhdWRpby92aWRlbyBwYWQuCgoyMDEyLTAyLTA5IDIyOjEyOjE0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21wZWdhdWRpb3BhcnNlLmM6CgkgIHRlc3RzOiBtcGVnYXVkaW9wYXJzZTogcmVtb3ZlIHN0cmF5IGRlY2xhcmF0aW9uCgoyMDEyLTAyLTA5IDIyOjA3OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IGNvcnJlY3RseSBzZXQgQURJRiBzcmMgY2FwcwoKMjAxMi0wMi0wOSAyMjoxMDowNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkgIGFjM3BhcnNlOiBwcmV2ZW50IGEgZmV3IGRpcmVjdCBleGl0cyB3aXRob3V0IGNsZWFudXAKCjIwMTItMDItMDkgMjI6MDc6MTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBzaGlmdCBpbiBwcm9wZXIgZGlyZWN0aW9uIGZvciBhdWRpbyBzYW1wbGUgY29udmVyc2lvbgoKMjAxMi0wMi0wOSAxODowOTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOgoJICB0ZXN0czogZml4IGNvbXBpbGF0aW9uCgoyMDEyLTAyLTA5IDEwOjExOjQ4ICswMTAwICBNYXJjIExlZW1hbiA8bWFyYy5sZWVtYW5AZ21haWwuY29tPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgbXVsdGl1ZHBzaW5rOiB0eXBvIGZpeCAoYnl0ZXMgc2VuZCAtPiBieXRlcyBzZW50KQoKMjAxMi0wMi0wOCAxNjozNDowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0c3BsaXRmaWxlc3JjLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICBHU1RfRkxPV19XUk9OR19TVEFURSAtPiBHU1RfRkxPV19GTFVTSElORwoKMjAxMi0wMi0wNyAxNDoxMDo0NCAtMDgwMCAgUmFscGggR2lsZXMgPGdpbGVzQG1vemlsbGEuY29tPgoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSAgc2hvdXQyc2VuZDogc2VuZCB2aWRlby93ZWJtIHRocm91Z2ggbGlic2hvdXQuCgkgIFRoaXMgcmVxdWlyZXMgU0hPVVRfRk9STUFUX1dFQk0sIGFkZGVkIGluIGxpYnNob3V0IDIuMy4wLAoJICBzbyB2aWRlby93ZWJtIHN1cHBvcnQgaXMgY29udGluZ2VudCBvbiB0aGF0IHN5bWJvbCBiZWluZwoJICBkZWZpbmVkLgoJICBBbHNvIGFuIGluZGVudGF0aW9uIGNoYW5nZSByZXF1aXJlZCBieSB0aGUgcHJlLWNvbW1pdCBob29rLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5NTkwCgoyMDEyLTAxLTMwIDE2OjQwOjE5ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5oOgoJKiBnc3QvaW50ZXJsZWF2ZS9wbHVnaW4uYzoKCSogZ3N0L2ludGVybGVhdmUvcGx1Z2luLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOgoJICBkZWludGVybGVhdmU6IHBvcnQgdG8gMC4xMQoJICBQb3J0IG9mIHRoZSBkZWludGVybGVhdmUgZWxlbWVudCBhbmQgaXRzIHVuaXR0ZXN0cy4gVGhlIGludGVybGVhdmUKCSAgZWxlbWVudCB3aWxsIGJlIHBvcnRlZCBhcyBwYXJ0IG9mIGFub3RoZXIgcGF0Y2gsIGhlbmNlIGRpc2FibGluZyBpdAoJICBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4ODQ3CgoyMDEyLTAyLTA3IDIzOjQxOjEzICswMjAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuaDoKCSAgZGlyZWN0c291bmRzaW5rOiBGaXggY29tcGlsaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njk2MDcKCjIwMTItMDItMDggMDA6MDg6NDkgKzAyMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3Jtc2luay5jOgoJICB3YXZlZm9ybXNpbms6IFBvcnQgdG8gMC4xMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5NjEyCgoyMDEyLTAyLTA3IDIxOjU3OjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvY2xpZW50LmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IHJld29yayB0cmFuc3BvcnQgc3VwcG9ydAoJICBNb3ZlIGNvbW1vbiBjb2RlIHRvIGphY2tjbGllbnQuIFRoZXJlIHdlIGNhbiBhbHNvIGhhbmRsZSB0aGUgcmVxdWVzdCBzdGF0ZQoJICBtZXNzYWdlIGluIGEgYmV0dGVyIHdheSwgYXMgdGhlIGVsZW1lbnQgY2FsbGJhY2tzIGFyZSBvbmx5IHJ1biBpZiB0aGUgZWxlbWVudCBpcwoJICBhY3RpdmUuCgoyMDEyLTAyLTA3IDEwOjQ3OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXBldjJtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzoKCSAgdGVzdHM6IGltcHJvdmUgdGFnbXV4IHRlc3RzCgoyMDEyLTAyLTA3IDEwOjI5OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSAgdGFnbGliOiBmaXggb2JqZWN0IHJlZ2lzdHJhdGlvbgoJICBXZSBjYW4ndCB1c2UgR19ERUZJTkVfVFlQRSBiZWNhdXNlIHRoZSBjbGFzcyBpcyBub3Qgc2V0IGluIHRoZSBjbGFzc19pbml0IGFuZCB3ZQoJICBuZWVkIGl0IHRvIGdldCB0aGUgc3JjcGFkIHRlbXBsYXRlLgoJICBGaXggYSBjYXBzIGxlYWsKCjIwMTItMDItMDcgMTA6MTY6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9qcGVnZW5jLmM6CgkgIHRlc3RzOiBmaXgganBlZyB0ZXN0CgoyMDEyLTAyLTA3IDEwOjE1OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cDogZml4IGNhcHMKCjIwMTItMDItMDcgMDk6NTQ6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHNoYWdhZGVsaWMuYzoKCSAgZWZmZWN0dHY6IGZpeCBpbml0aWFsaXNhdGlvbgoKMjAxMi0wMi0wNyAwOTo0MjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIHk0bTogZml4IG5lZ290aWF0aW9uCgoyMDEyLTAyLTA3IDA5OjQxOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9maWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMveTRtZW5jLmM6CgkgIHRlc3RzOiBmaXggbW9yZSB0ZXN0cwoKMjAxMi0wMi0wNiAyMjoxMzo1MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9kdi9NYWtlZmlsZS5hbToKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9kdi9nc3RkdmRlYy5oOgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5oOgoJICBkdjogcG9ydCB0byAwLjExCgoyMDEyLTAyLTA2IDE4OjM1OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdsaW1pdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOgoJICB0ZXN0OiBmaXggbW9yZSB0ZXN0cwoKMjAxMi0wMi0wNiAxNTo1Mjo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM2RlbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpZmlsZS5jOgoJICB0ZXN0czogZml4IG1vcmUgdGVzdHMKCjIwMTItMDItMDYgMTU6NTI6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L01ha2VmaWxlLmFtOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdjogZml4IGNhcHMKCjIwMTItMDItMDYgMTU6MjA6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9lcXVhbGl6ZXIuYzoKCSAgaWlyZXF1YWxpemVyOiBmaXggZXF1YWxpemVyIGFuZCB1bml0IHRlc3QKCjIwMTItMDItMDYgMTM6NDQ6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNiYW5kLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNsaW1pdC5jOgoJICB0ZXN0czogZml4IHNvbWUgbW9yZSB0ZXN0cwoKMjAxMi0wMi0wNiAxMzo0Mzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogdGFrZSB0aGUgcGFkIGZyb20gY29sbGVjdHBhZHMyIGNvcnJlY3RseQoKMjAxMi0wMi0wNiAxMzoyOToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaWlyZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaW52ZXJ0LmM6CgkgIHRlc3RzOiBmaXggbW9yZSB1bml0IHRlc3RzCgoyMDEyLTAyLTA2IDEzOjI4OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkgIGF1ZGlvZHluYW1pYzogZml4IG5lZ290aWF0aW9uCgoyMDEyLTAxLTI4IDExOjEzOjE2ICswMTAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBhdm9pZCBwb3N0aW5nIGludmFsaWQgZHVyYXRpb24gZm9yIGVhY2ggZnJhbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjU4MwoKMjAxMi0wMi0wNiAxMDowNzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvYW1wbGlmeS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJiYW5kLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvY2hlYmxpbWl0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZHluYW1pYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2VjaG8uYzoKCSAgdGVzdHM6IGZpeCBtb3JlIHRlc3RzCgoyMDEyLTAyLTA2IDA5OjQ5OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXNwZWN0cmF0aW9jcm9wLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzoKCSAgdGVzdHM6IGltcHJvdmUgc29tZSB0ZXN0cwoKMjAxMi0wMi0wNiAwOToyMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGppdHRlcmJ1ZmZlci5jOgoJICB0ZXN0czogZml4IGppdHRlcmJ1ZmZlciB0ZXN0CgoyMDEyLTAyLTA2IDA5OjIzOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogZml4IGNhcHMgYWZ0ZXIgcHQgY2hhbmdlCgoyMDEyLTAyLTA2IDA5OjE4OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogZml4IGNhcHMgbGVhawoKMjAxMi0wMi0wMyAyMjowNTo1OSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBMb3dlciByYW5rIHRvIHByZXZlbnQgYXV0b3BsdWdnaW5nCgkgIHB1bHNlYXVkaW9zaW5rIGJyZWFrcyB2aXN1YWxpc2F0aW9ucyBpbiBpdHMgY3VycmVudCBmb3JtLCBzbyBsZXQncwoJICBwcmV2ZW50IGl0IGZyb20gYmVpbmcgYXV0b3BsdWdnZWQgZm9yIHRoZSB0aW1lIGJlaW5nLgoJICBUaGUgYmVzdCB3ZSBjYW4gaG9wZSB0byBkbyBpbiB0aGUgMC4xMCBzZXJpZXMgaXMgcXVlcnkgdGhlIGxpc3Qgb2YKCSAgYXZhaWxhYmxlIHNpbmtzIGFuZCB0aGVpciBmb3JtYXRzLCBhbmQgZXhwb3NlIHRoZXNlIGFzIHRoZSBiaW4ncyBzaW5rcGFkCgkgIGNhcHMuIFdoaWxlIHRoaXMgaXMgbm90IGEgY29tcHJlaGVuc2l2ZSBzb2x1dGlvbiwgaXQgd2lsbCBtYWtlIHN1cmUgdGhhdAoJICB3ZSdyZSBvbmx5IHRyeWluZyB0byBzdXBwb3J0IGNvbXByZXNzZWQgZm9ybWF0cyBpZiB3ZSdyZSBjZXJ0YWluIHRoYXQKCSAgb25lIGV4aXN0cy4KCSAgVGhlIGxvbmctdGVybSBmaXggZm9yIHRoaXMgd2lsbCBiZSBpbiB0aGUgZm9ybSBvZiBwcm9wZXIgdXBzdHJlYW0KCSAgcmVuZWdvdGlhdGlvbiBzdXBwb3J0IGluIHRoZSAwLjExLzEuMCBzZXJpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYzNjEKCjIwMTItMDItMDMgMTc6MjM6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZGVjLmM6CgkgIHRlc3RzOiBmaXggbW9yZSB0ZXN0cwoKMjAxMi0wMi0wMyAxNjoxMzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FwZXYybXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZmlyZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaWlyZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdmVuYy5jOgoJICB0ZXN0czogZml4IHNvbWUgbW9yZSB0ZXN0cwoKMjAxMi0wMi0wMyAxNjoxMjo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IGZpeCBzcmNwYWQgY2FwcyBoYW5kbGluZwoKMjAxMi0wMi0wMyAxNjoxMjoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSAgY21tbGVuYzogZml4IGNhcHMgaGFuZGxpbmcKCjIwMTItMDItMDMgMTQ6NTM6MzEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBmaXggZXZlbnQgbGVhayB3aGVuIHRoZXJlIGlzIG5vIHBlZXIgb24gdGhlIHNyYyBwYWQKCjIwMTItMDItMDIgMTY6MjE6MjkgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUKCjIwMTItMDItMDIgMTI6Mjc6MDkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBzcGVjaWZ5IHdlIG9ubHkgYWNjZXB0IHJhdyBBQUMgaW4gdGVtcGxhdGUgY2FwcwoJICBObyBoZWFkZXIgc2VlbXMgdG8gYmUgYWRkZWQsIGFuZCB0aGUgY29kZWMgSUQgaXMgdGhlIHNhbWUgYXMgdXNlZAoJICBmb3IgcmF3IGJ5IGZsdmRlbXV4LCBzbyByYXcgc2VlbXMgdGhlIG9ubHkgc3VwcG9ydGVkIGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzOTQKCjIwMTItMDItMDIgMTI6MjU6MjEgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogc3BlY2lmeSB3ZSBvbmx5IG91dHB1dCByYXcgQUFDIGluIHRlbXBsYXRlIGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTM5NAoKMjAxMi0wMi0wMSAxODowMToyNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC90YWdsaWIvZ3N0YXBldjJtdXguY2M6CgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkqIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4LmM6CgkqIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4Lmg6CgkgIHRhZ2xpYjogcG9ydCB0byAwLjExCgoyMDEyLTAyLTAxIDE2OjQwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L01ha2VmaWxlLmFtOgoJKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2F1ZGlvZngvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGlnbm9yZSBHVmFsdWVBcnJheSBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgdGhlIHRpbWUgYmVpbmcKCSAgdW50aWwgdGhpcyBnZXRzIHNvcnRlZCBvdXQgd2l0aCB0aGUgR0xpYiBmb2xrcyBhbmQgd2UgaGF2ZSBhCgkgIHZpYWJsZSBhbHRlcm5hdGl2ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzIyOAoKMjAxMi0wMi0wMSAxNjozNjo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2Vwcm9iZS5jOgoJKiBleHQvcHVsc2UvcHVsc2Vwcm9iZS5oOgoJICBwdWxzZTogZGlzYWJsZSBzb21lIHVudXNlZCBwcm9wZXJ0eSBwcm9iZSBjb2RlCgkgIHdoaWNoIHdhcyB1c2luZyBHVmFsdWVBcnJheQoKMjAxMi0wMi0wMSAxNjoxMToxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4OiBVc2UgbmV3IGF1ZGlvIGVuY29kZXIvZGVjb2RlciBiYXNlIGNsYXNzIEFQSSBmb3Igc3JjcGFkIGNhcHMKCjIwMTItMDItMDEgMTY6MDU6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWM6IFVzZSBuZXcgYXVkaW8gZW5jb2Rlci9kZWNvZGVyIGJhc2UgY2xhc3MgQVBJIGZvciBzcmNwYWQgY2FwcwoKMjAxMi0wMS0zMSAxNTozOTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2VxdWFsaXplci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDNkZW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdsaW1pdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBqaXR0ZXJidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2hhcGV3aXBlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3VkcHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy95NG1lbmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdmVuYy5jOgoJICB0ZXN0czogZml4IG1vcmUgdGVzdHMKCjIwMTItMDEtMzAgMTQ6NTI6MzcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkgIHJ0cG1wMnRwYXk6IGRvIG5vdCB0cnkgdG8gZmx1c2ggYSBwYWNrZXQgd2hlbiBubyBkYXRhIGlzIGF2YWlsYWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4ODc0CgoyMDEyLTAxLTMxIDEzOjQxOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYWxwaGFjb2xvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJiYW5kLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvY2hlYmxpbWl0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZmlyZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaWlyZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaW52ZXJ0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNiYW5kLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNsaW1pdC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxhY2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxlYXZlLmM6CgkgIHRlc3RzOiB1cGRhdGUgc29tZSB0ZXN0cyBmb3IgbmV3IG1lbW9yeSBhcGkKCjIwMTItMDEtMzEgMTI6MjI6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvc2hhcGV3aXBlLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9jYW1jdHJsLmM6CgkgIGNvbnRyb2xsZXI6IGFkYXB0IHRvIGNvbnRyb2wtc291cmNlIHR5cGUgY2hhbmdlcwoKMjAxMi0wMS0zMCAyMTozOTozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9zaGFwZXdpcGUtZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy92NGwyL2NhbWN0cmwuYzoKCSAgY29udHJvbGxlcjogcmVuYW1lIGNvbnRyb2wtYmluZGluZ3MKCSAgZ3N0X2NvbnRyb2xfYmluZGluZ194eHggLT4gZ3N0X3h4eF9jb250cm9sX2JpbmRpbmcgZm9yIGNvbnNpc3RlbmN5LgoKMjAxMi0wMS0zMCAxNzoxNjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6CgkgIHVwZGF0ZSBmb3IgSEVBREVSIGZsYWcKCjIwMTAtMDYtMTEgMDg6MzY6MzMgKzAyMDAgIFBhc2NhbCBCdWhsZXIgPHBhc2NhbC5idWhsZXJAdGFuZGJlcmcuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSAgcnRwaDI2NGRlcGF5OiBFeGNsdWRlIE5BTHUgc2l6ZSBmcm9tIHBheWxvYWQgbGVuZ3RoIG9uIHRydW5jYXRlZCBwYWNrZXRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODQ2CgoyMDEyLTAxLTI4IDIzOjM1OjUwICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IHJlbW92ZSBvYnNvbGV0ZSB2YXJpYWJsZSwgc2V0IGJ1dCBub3QgdXNlZAoJICBSZXBvcnRlZCBieSBhbmRyZWRpZWIgb24gI2dzdHJlYW1lci4KCjIwMTItMDEtMjggMTM6MDU6MDkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBhdm9pZCB3cmFwcGluZyBvcGFxdWUgdG8gdHJhbnNwYXJlbnQKCjIwMTItMDEtMjggMTI6MzU6MTMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZG8gbm90IGZyZWUgbWVtb3J5IHR3aWNlCgkgIEEgcmVjZW50IGNoYW5nZSB0byBmaXggbGVha2luZyBjb2RlYyBJRCBzdHJpbmcgYWNjaWRlbnRhbGx5IGNhdXNlZAoJICBvbmUgb2YgdGhlIHZlcnkgZmV3IHBsYWNlcyB0aGF0IHdlcmVuJ3QgbGVha2luZyB0byBub3cgZnJlZSB0d2ljZS4KCjIwMTItMDEtMjcgMTY6Mjc6NDkgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkgIGFsYXdkZWM6IEVhY2ggb3V0cHV0IHNhbXBsZSBpcyAyIGJ5dGVzCgoyMDEyLTAxLTI3IDEyOjE0OjQ5ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogRG9uJ3QgbGVhayBjYXBzIGV2ZW50IHdoZW4gbm90IHB1c2hpbmcKCjIwMTItMDEtMjcgMTI6MDQ6NTMgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgIHJ0cHB0ZGVtdXg6IEZvcndhcmQgc3RpY2t5IGV2ZW50cwoKMjAxMi0wMS0yNyAxMjowNDowNSArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgcnRwcHRkZW11eDogUHJvdGVjdCBhbGwgdXNlcyBwYWQgbGlzdCB3aXRoIE9CSkVDVCBMT0NLCgkgIEFjdHVhbGx5IHByb3RlY3QgdGhlIGVudGlyZSBwYWQgbGlzdCBhbmQgdXNlIGl0IGluIGEgdGhyZWFkIHNhZmUKCSAgd2F5LgoKMjAxMi0wMS0yNyAxMjowMjoyNSArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHBzc3JjZGVtdXg6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBuZXcgcGFkcwoKMjAxMi0wMS0yNyAxMjowMTo0MCArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHBzc3JjZGVtdXg6IEFkZCBzc3JjIHRvIGZvcndhcmRlZCBDQVBTIGV2ZW50cwoJICBBbHNvIGl0ZXJhdGUgdGhlIGxpc3Qgb2YgR3N0UnRwU3NyY0RlbXV4UGFkIHNhZmVseQoKMjAxMi0wMS0yNyAxMTo1OTowOCArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHBzc3JjY2RlbXV4OiBGYWN0b3Igb3V0IGdldHRpbmcgZHBhZCBieSBwYWQKCjIwMTItMDEtMjYgMTg6MzU6NDggKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IEtlZXAgdGhlIGJ1ZmZlciBtYXBwZWQgd2hpbGUgaXQgaXMgYmVpbmcgbW9kaWZpZWQKCjIwMTItMDEtMjYgMTg6MzU6MjcgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmg6CgkgIHJ0cHNlc3Npb246IEluaXRpYWxpc2UgdGhlIGFkZHJlc3MgcG9pbnRlciB0byBOVUxMCgoyMDEyLTAxLTI3IDE2OjM3OjE5ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuaDoKCSAgZGlyZWNzb3VuZHNpbms6IFBvcnQgZWxlbWVudCB0byAwLjExCgoyMDEyLTAxLTI2IDE5OjQ4OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjI6IHJlbW92ZSBwYWQgZXZlbnQgZnVuY3Rpb24KCSAgV2UgdXNlIHRoZSBvbmUgZnJvbSBjb2xsZWN0cGFkcwoKMjAxMi0wMS0yNiAxODoyNjowMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgUmV2ZXJ0ICJxdGRlbXV4OiBmaXggR3N0RGF0ZVRpbWUvR0RhdGVUaW1lIG1peHVwIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDUzMjYxMjYxMTIwYjRjMDA4ZGU2MTY5MWM3MGU5NDM1NGIyODAwNGEuCgkgIFRoZSBHc3REYXRlVGltZS0+R0RhdGVUaW1lIGNoYW5nZSBpbiBjb3JlIHdhcyBhcHBhcmVudGx5IGFjY2lkZW50YWwsCgkgIGFuZCBpcyBub3cgcmV2ZXJ0ZWQuCgoyMDEyLTAxLTI2IDE4OjI1OjIxICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgUmV2ZXJ0ICJhdmlkZW11eDogZml4IEdzdERhdGVUaW1lL0dEYXRlVGltZSBtaXh1cCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhY2M5ZjE1MDk2OGIyNWM1YWU1YTY5NDBiMzRhZDJkNTFiMTc0ZmQyLgoJICBUaGUgR3N0RGF0ZVRpbWUtPkdEYXRlVGltZSBjaGFuZ2UgaW4gY29yZSB3YXMgYXBwYXJlbnRseSBhY2NpZGVudGFsLAoJICBhbmQgaXMgbm93IHJldmVydGVkLgoKMjAxMi0wMS0yNiAxNzo1MDozMCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBmaXggR3N0RGF0ZVRpbWUvR0RhdGVUaW1lIG1peHVwCgkgIFRoaXMgaXMgYSBibGluZCBmaXggdG8gbWF0Y2ggdGhlIG9uZSBJIGp1c3QgbWFkZSB0byBxdGRlbXV4LAoJICBhcyBJIGRvIG5vdCBoYXZlIGFuIEFWSSBmaWxlIHdoZXJlIHRoZSBjb2RlIGdldHMgZXhlY3V0ZWQuCgoyMDEyLTAxLTI2IDE3OjQ3OjI5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggR3N0RGF0ZVRpbWUvR0RhdGVUaW1lIG1peHVwCgoyMDEyLTAxLTI2IDE4OjUxOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjogbW9yZSBmaXhlcwoKMjAxMi0wMS0yNiAxODo0MzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXI6IG1ha2UgdmlkZW9taXhlciB3b3JrIHNvbWV3aGF0CgoyMDEyLTAxLTI2IDE4OjE1OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5oOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5oOgoJICB2aWRlb21peGVyOiBwb3J0IHRvIDAuMTEKCSAgSXQgYnVpbGRzIGFuZCBnc3QtaW5zcGVjdC0wLjExIHdvcmtzLi4gb3RoZXJ3aXNlIHVudGVzdGVkCgoyMDEyLTAxLTI2IDE1OjQ4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJICBkeW51ZHBzaW5rOiBmaXggZ2V0LXN0YXRzIHNpZ25hbCByZWdpc3RyYXRpb24gc29tZSBtb3JlCgoyMDEyLTAxLTI2IDE1OjQ2OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIFJldmVydCAidWRwOiBtYXJrIGFjdGlvbiBzaWduYWxzIGFzIFJVTl9GSVJTVCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1YzgzMDg1OTkxMjlkOWUxNjA2ZWVkYjJkMzU0MzYxNzY1OGRjMzA2LgoKMjAxMi0wMS0yNiAxNTozOTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICB1ZHA6IG1hcmsgYWN0aW9uIHNpZ25hbHMgYXMgUlVOX0ZJUlNUCgoyMDEyLTAxLTI2IDE1OjM3OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJICB1ZHA6IG1hcmsgImdldC1zdGF0cyIgYXMgYWN0aW9uIHNpZ25hbAoKMjAxMi0wMS0yNiAxNTozMDo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmg6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIHVkcDogZml4IGdldC1zdGF0cyBhY3Rpb24gc2lnbmFsIHJlZ2lzdHJhdGlvbgoJICBJdCByZXR1cm5zIGEgR3N0U3RydWN0dXJlIG5vdywgbm90IGEgR1ZhbHVlQXJyYXkKCjIwMTItMDEtMjYgMTY6MDU6MzQgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogZml4IHByaW50IGZvcm1hdAoKMjAxMi0wMS0yNiAxMTo1MDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJICBtYXRyb3NrYW11eDogRml4IHNpemUgb2Ygb3V0cHV0IGJ1ZmZlcnMKCjIwMTItMDEtMjYgMTE6MzM6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBpbmNsdWRlIHJpZ2h0IGNvbGxlY3RwYWRzIHZlcnNpb24KCjIwMTItMDEtMjYgMTE6Mjk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFByb3Blcmx5IHVzZSB0aGUgYWxpZ25tZW50IHBhcmFtZXRlciBvZiBnc3RfYnVmZmVyX25ld19hbGxvY2F0ZSgpCgkgIEl0J3MgYSBiaXRtYXNrIGZvciB0aGUgYWxpZ25tZW50LCBub3QgdGhlIGFsaWdubWVudCBpdHNlbGYuCgoyMDEyLTAxLTI2IDExOjE4OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkgIG1hdHJvc2thbXV4OiBQcm9wZXJseSB1bm1hcCBXUklURSBtYXBzIG9mIHRoZSBvdXRwdXQgYnVmZmVycwoKMjAxMi0wMS0yNiAxMDo0NDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJICB2aWRlb21peGVyMjogVXBkYXRlIGZvciB0aGUgbmV3IGNvbGxlY3RwYWRzMiBldmVudCBoYW5kbGluZyBBUEkKCjIwMTItMDEtMjYgMTA6NDA6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogVXBkYXRlIGZvciB0aGUgbmV3IGNvbGxlY3RwYWRzMiBldmVudCBoYW5kbGluZyBBUEkKCjIwMTItMDEtMjYgMTA6Mzc6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogVXBkYXRlIGZvciB0aGUgbmV3IGNvbGxlY3RwYWRzMiBldmVudCBoYW5kbGluZyBBUEkKCjIwMTItMDEtMjYgMTA6Mjg6NTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBVcGRhdGUgZm9yIG5ldyBjb2xsZWN0cGFkczIgZXZlbnQgaGFuZGxpbmcgQVBJCgoyMDEyLTAxLTI2IDEwOjI3OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogVXBkYXRlIGZvciBuZXcgY29sbGVjdHBhZHMyIGV2ZW50IGhhbmRsaW5nIEFQSQoKMjAxMi0wMS0yNSAxODo0MTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBPbmx5IGZvcndhcmQgdGhlIGV2ZW50IHdoZW4gd2UgZGlkbid0IGhhbmRsZSBpdCBvdXJzZWx2ZXMKCjIwMTItMDEtMjUgMTg6NDA6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5oOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMnBhZC5oOgoJICB2aWRlb21peGVyOiBzb21lIG1vcmUgcG9ydGluZwoKMjAxMi0wMS0yNSAxODowMDo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmg6CgkgIHZpZGVvbWl4ZXI6IHBvcnQgYmxlbmQgZnVuY3Rpb24KCjIwMTItMDEtMjUgMTY6NTg6MTIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHY6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZXMKCSAgKG9yIHJhdGhlciBjaXJjdW12ZW50IGlzc3VlcyB3aXRoIG5haXZlIGNvbXBpbGVycyAuLi4pCgoyMDEyLTAxLTI1IDE1OjIxOjQ0ICswMDAwICBKYXlha3Jpc2huYW4gTSA8amF5LmtyaXNobmFubUBnbWFpbC5jb20+CgoJKiBleHQvY2Fpcm8vTWFrZWZpbGUuYW06CgkgIGNhaXJvOiBmaXggYnVpbGQsIG1ha2Ugc3VyZSBsaWJnc3R2aWRlbyBjYW4gYmUgZm91bmQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODY0OAoKMjAxMi0wMS0yNSAxMzoxOToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBtYW5hZ2VyOiBkb24ndCBwcmV0ZW5kIG91ciByYW5kb20gaG9zdG5hbWVzIGFyZSBmdWxseS1xdWFsaWZpZWQgZG9tYWluIG5hbWVzCgoyMDEyLTAxLTI1IDEzOjQ3OjMwICswMTAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNDYzYmMwIHRvIDdmZGE1MjQKCjIwMTItMDEtMjUgMTI6NDk6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjExJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtZ29vZCBpbnRvIDAuMTEKCjIwMTItMDEtMjUgMTI6NDk6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuYwoJICBleHQvanBlZy9nc3RqcGVnZW5jLmMKCSAgZXh0L3B1bHNlL3B1bHNlc2luay5jCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYwoKMjAxMi0wMS0yNSAxMjo0MTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZzogcG9ydCB0byBuZXcgbWVtb3J5IEFQSQoKMjAxMi0wMS0yNSAxMjo0MTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYTogcG9ydCB0byBuZXcgbWVtb3J5IEFQSQoKMjAxMi0wMS0yNCAxNDozODo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY3RhZy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6CgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3BhcnNlci5jOgoJICBtb3JlIG1lbW9yeSBBUEkgcG9ydGluZwoKMjAxMi0wMS0yMyAxNzoyNTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9pbnZlcnQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOgoJKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9icmVha215ZGF0YS5jOgoJKiBnc3QvZGVidWd1dGlscy90ZXN0cy5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOgoJKiBnc3QvaXNvbXA0L2F0b21zcmVjb3ZlcnkuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4bWFwLmM6CgkqIGdzdC9pc29tcDQvZ3N0cnRweHF0ZGVwYXkuYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOgoJKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmg6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnbGltaXRlci5jOgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFjZWxwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgIHVwZGF0ZSBmb3IgbmV3IG1lbW9yeSBBUEkKCjIwMTItMDEtMjUgMTE6Mzg6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyYTU5MDE2IHRvIGM0NjNiYzAKCjIwMTItMDEtMjQgMTg6MjQ6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzoKCSAgcG5nZW5jOiBkaXNhYmx5IHNuYXBzaG90IGJlaGF2aW91ciBieSBkZWZhdWx0CgkgIC4uLiBzaW5jZSBzdWNoIGJlaGF2aW91ciBpcyBub3QgY29uc2lzdGVudCwgaWYgYWxsb3dhYmxlIGF0IGFsbC4KCjIwMTItMDEtMjQgMTg6MjM6MjIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5oOgoJICBwbmdkZWM6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMS0yNCAxODoyMTowOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5oOgoJICBwbmdlbmM6IHBvcnQgdG8gMC4xMQoKMjAxMi0wMS0yNCAxNDo1MzozOCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1ZHBzcmM6IGZpeCBzdHJpbmcgbGVhawoKMjAxMi0wMS0yNCAxNDo1MjowOSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1ZHBzcmM6IGZpeCB1c2Ugb2YgZnJlZWQgbWVtb3J5CgoyMDExLTEyLTAxIDE1OjQ5OjQwICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIERvbid0IGNyYXNoIG9uIGVtcHR5IGxhY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUyMjQKCjIwMTItMDEtMjMgMTM6MTU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwbWFuYWdlcjogZG9uJ3QgcmV2ZWFsIHRoZSB1c2VyJ3MgdXNlcm5hbWUsIGhvc3RuYW1lIG9yIHJlYWwgbmFtZSBieSBkZWZhdWx0CgkgIFNlbmQgYSByYW5kb21seSBtYWRlLXVwIHVzZXJAaG9zdG5hbWUgYXMgQ05BTUUgYW5kIGRvbid0CgkgIHNlbmQgYSBOQU1FIGF0IGFsbCBieSBkZWZhdWx0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzIwCgoyMDEyLTAxLTIxIDIwOjA3OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc2hhcGV3aXBlL3NoYXBld2lwZS1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvY2FtY3RybC5jOgoJICBjb250cm9sbGVyOiBtb3ZlIGZyb20gY29udHJvbC1iaW5kaW5nIHRvIGNvbnRyb2wtYmluZGluZy1kaXJlY3QKCjIwMTItMDEtMjIgMjM6MzE6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LWxpYnMvZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0Lmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaWlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaWlyZmlsdGVyLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuaDoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuaDoKCSAgRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgR0xpYiBBUEkKCjIwMTItMDEtMjIgMjM6MTU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBjbGllbnRzaW5rLmM6CgkqIGdzdC1saWJzL2dzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuaDoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlmaWxlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6CgkqIHRlc3RzL2ljbGVzL2VxdWFsaXplci10ZXN0LmM6CgkqIHRlc3RzL2ljbGVzL2dka3BpeGJ1ZnNpbmstdGVzdC5jOgoJKiB0ZXN0cy9pY2xlcy90ZXN0LW9zczQuYzoKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkqIHRlc3RzL2ljbGVzL3ZpZGVvY3JvcC10ZXN0LmM6CgkgIFVzZSBuZXcgR0xpYiBBUEkgdW5jb25kaXRpb25hbGx5CgoyMDEyLTAxLTIwIDE3OjA2OjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogc2ltcGxpZnkgaW50ZXJuYWwgc3JjIGV2ZW50IGRlYnVnIGxvZ2dpbmcKCSAgLi4uIHdoaWNoIGF2b2lkcyBhbG1vc3Qgc3VwZXJmbHVvdXMgb2J0YWluaW5nIG9mIHJ0c3AgZWxlbWVudC4KCjIwMTItMDEtMjAgMTc6MDM6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhdm9pZCBOVUxMIHN0cmluZyBjb21wYXJpc29uCgoyMDEyLTAxLTIwIDE3OjAzOjIxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGFycmFuZ2UgZm9yIGluaXRpYWxpemVkIHZhcmlhYmxlcwoKMjAxMi0wMS0yMCAxNzowMjoxNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJICBydHBtcDRhZGVwYXk6IHByZXZlbnQgb3V0LW9mLWJvdW5kIGFycmF5IGFjY2VzcwoKMjAxMi0wMS0yMCAxNzowMTozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2F0b21zcmVjb3ZlcnkuYzoKCSAgaXNvbXA0OiByZWNvdmVyeTogYWRkIHNhbml0eSBjaGVjawoJICAuLi4gb24gcG9zc2libHkgYm9ndXMvY29ycnVwdCBpbnB1dCBkYXRhLgoKMjAxMi0wMS0yMCAxNzowMDo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkgIHJ0cHRoZW9yYWRlcGF5OiByZW1vdmUgZGVhZCBjb2RlCgoyMDEyLTAxLTIwIDE2OjU4OjI4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYS1kZW11eDogcmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZQoKMjAxMi0wMS0yMCAxNjo1Nzo1MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGZpeCBhcml0aG1ldGljIGZvciB1bnNpZ25lZCBjb21wYXJpc29uCgoyMDEyLTAxLTIwIDE2OjU1OjA2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogYWRkIHZhcmlvdXMgbWlzc2luZyBicmVhawoKMjAxMi0wMS0yMCAxNjo1NDowNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiB0d2VhayBERUZBVUxUIGZvcm1hdCBkdXJhdGlvbiBxdWVyeSByZXNwb25zZQoKMjAxMi0wMS0yMCAxNjo0OToxNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJICBhbHBoYWNvbG9yOiByZW1vdmUgcmVkdW5kYW50IHN0YXRlbWVudAoKMjAxMi0wMS0yMCAxNjo0ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGltcHJvdmUgdXBzdHJlYW0gcGVlciBkdXJhdGlvbiBxdWVyeWluZwoJICAuLi4gdG8gYXZvaWQgYWNjZXB0aW5nIHVuaGFuZGxlZCBkdXJhdGlvbiBxdWVyeSByZXN1bHQuCgoyMDEyLTAxLTIwIDE2OjQ3OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogYWRkaXRpb25hbCBlcnJvciBjb25kaXRpb24gY2hlY2tpbmcKCjIwMTItMDEtMjAgMTY6NDY6MjEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGFkZGl0aW9uYWwgZXJyb3IgY29uZGl0aW9uIGNoZWNraW5nCgoyMDEyLTAxLTIwIDE2OjQ0OjIxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogY2hlY2sgX2FsbG9jX2J1ZmZlciByZXN1bHQgYW5kIHBlcmZvcm0gZmFsbGJhY2sgYWxsb2MgaWYgbmVlZGVkCgkgIC4uLiByYXRoZXIgdGhhbiBjYXJyeWluZyBvbiB3aXRoIE5VTEwgYnVmZmVyLgoKMjAxMi0wMS0yMCAxNDo0NTowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9zaGFwZXdpcGUtZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy92NGwyL2NhbWN0cmwuYzoKCSAgY29udHJvbGxlcjogYWRhcHQgdG8gY29udHJvbCBiaW5kaW5nIGNoYW5nZXMKCjIwMTItMDEtMjAgMTE6Mzc6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvc2hhcGV3aXBlLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9jYW1jdHJsLmM6CgkgIGNvbnRyb2xsZXI6IGFkYXB0IHRvIGNvbnRyb2xsZXIgYXBpIGNoYW5nZXMKCSAgRG9uJ3QgdXNlIHRoZSBjb252ZW5pZW5jZSBhcGkgZm9yIGNvbnRyb2wgc291cmNlcy4KCjIwMTItMDEtMTkgMTQ6MjQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIEFkZCAtLWRpc2FibGUtZmF0YWwtd2FybmluZ3MgY29uZmlndXJlIG9wdGlvbgoKMjAxMi0wMS0xOSAxMjo0NDozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgdXBkYXRlIGZvciBtZW1vcnkgQVBJCgoyMDEyLTAxLTE5IDExOjMzOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9jbGllbnQuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwY2xpZW50c2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuaDoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuaDoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG1vb3ZyZWNvdmVyLmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtb292cmVjb3Zlci5oOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4Lmg6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuaDoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRlb292ZXJsYXkuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxlYXZlLmM6CgkgIHBvcnQgdG8gbmV3IGd0aHJlYWQgQVBJCgoyMDEyLTAxLTE4IDE2OjU4OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgR0lPIGNoZWNrLCB0aGlzIGlzIGluIGdzdC1nbGliMi5tNCBub3cKCjIwMTItMDEtMTggMTY6NDY6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwODA3MTg3IHRvIDJhNTkwMTYKCjIwMTItMDEtMTggMTY6MTU6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYiAyLjMxLjEwIGFuZCBpbXByb3ZlIEdJTyBjaGVjawoKMjAxMi0wMS0xNyAxNjo1ODowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1ZHBzcmM6IFJlbW92ZSB1bm5lZWRlZCBzb2NrZXQuaCBpbmNsdWRlCgoyMDEyLTAxLTE3IDE2OjUzOjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSAgY29uZmlndXJlOiBSZW1vdmUgc29ja2V0L3dpbnNvY2sgc3BlY2lmaWMgY2hlY2tzCgkgIE5vdCBuZWNlc3NhcnkgYW55bW9yZS4KCjIwMTItMDEtMTcgMTY6NDk6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogVXBkYXRlIGZvciB0aGUgbmV3IEdJTyB2ZXJzaW9ucyBvZiB0aGUgdWRwIGVsZW1lbnRzCgoyMDEyLTAxLTE3IDEzOjA4OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBydHBtYW5hZ2VyOiBQb3J0IHRvIEdJTwoKMjAxMi0wMS0xNyAxMToxOTozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC91ZHAvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogUmVxdWlyZSBHSU8gMi4zMS4xMAoKMjAxMi0wMS0xNyAxMToxODozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcC5jOgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuaDoKCSAgdWRwOiBSZW1vdmUgbm93IHVuZWNlc3NhcnkgY29kZQoKMjAxMi0wMS0xNyAxMToxODoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5oOgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmg6CgkgIHVkcHNpbmsvbXVsdGl1ZHBzaW5rOiBQb3J0IHRvIEdJTwoKMjAxMi0wMS0xNyAwOTozODozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmg6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIGR5bnVkcHNpbms6IFBvcnQgdG8gR0lPCgoyMDEyLTAxLTE3IDA5OjMyOjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuaDoKCSAgZHludWRwc2luazogUG9ydCB0byBHSU8KCjIwMTItMDEtMTcgMDk6MDM6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9NYWtlZmlsZS5hbToKCSogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgdWRwc3JjOiBQb3J0IHRvIEdJTwoKMjAxMi0wMS0xNiAxNzo1MToxOCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJICBjdXR0ZXI6IGZpeCBsZWFrIG9mIHVudXNlZCBHVmFsdWUKCjIwMTItMDEtMTYgMTY6MTA6MDggKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXV0b2RldGVjdC5jOgoJICB0ZXN0czogZml4IGF1dG9kZXRlY3QgdGVzdCBub3QgdGVzdGluZyBjb3JyZWN0bHkgZm9yIHN0YXRlIGNoYW5nZSBzdWNjZXNzCgkgIFN0YXRlIGNoYW5nZSB0byBQQVVTRUQgY2FuIGJlIGRvbmUgYXN5bmMsIHNvIGlmIHRoaXMgaGFwcGVucywgd2UgbmVlZAoJICB0byB3YWl0IGZvciB0aGUgY2hhbmdlIHRvIGJlIGRvbmUgKG9yIGZhaWxlZCkuCgoyMDEyLTAxLTE2IDE1OjQyOjQ2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSAgcnRwaDI2M3BwYXk6IGZpeCBjYXBzIGxlYWsKCjIwMTItMDEtMTYgMTI6MTM6NTAgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBtYWtlIGludGVybGFjZWRuZXNzIHRlc3QgZGV0ZXJtaW5pc3RpYwoJICBJZiB0aGUgaW50ZXJsYWNlZCBmbGFnIGlzIG5vdCBwcmVzZW50IGluIHRoZSBjYXBzLCB3ZSBhc3N1bWUgdGhlCgkgIGRhdGEgaXMgbm90IGludGVybGFjZWQsIGluc3RlYWQgb2YgbGVhdmluZyB0aGUgYm9vbGVhbiB1bmluaXRpYWxpemVkLgoKMjAxMi0wMS0xMyAxODoxMjowNSAtMDUwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIG1hdHJvc2thOiBmaXggcHJpbnRmIGZvcm1hdCBjb21waWxlciB3YXJuaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjE1CgoyMDEyLTAxLTEzIDE4OjExOjM2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogZml4IHdyb25nIGVycm9yIGNoZWNrCgkgIHBhX3N0cmVhbV8qIGZ1bmN0aW9ucyByZXR1cm4gbmVnYXRpdmUgb24gZXJyb3IsIGRlc3BpdGUgdGhlIGRlZmluZXMKCSAgZm9yIGVycm9yIGNvZGVzIGJlaW5nIHBvc2l0aXZlLgoJICBJIG9ubHkgZ290IHRvIHJlcHJvIHRoZSBlcnJvciB0d2ljZSwgc28gSSdtIG5vdCBzdXJlIDEwMCUgc3VyZSB0aGlzCgkgIGZpeGVzIHRoZSBpc3N1ZSAodGhlIG5lZ2F0aXZlIHZhciBiZWluZyB1bmluaXRpYWxpemVkIGFmdGVyIHJldHVybmluZwoJICBmcm9tIHBhX3N0cmVhbV9nZXRfbGF0ZW5jeSkuCgoyMDEyLTAxLTEzIDE3OjQzOjQ5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3M0L29zczQtc2luay5jOgoJKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICBvc3M0OiBmaXggY2FwcyBsZWFrcwoKMjAxMi0wMS0xMyAxNzoyNTo1OSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IGZpeCBjYXBzIGxlYWsKCjIwMTItMDEtMTMgMTU6NTc6MjAgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6CgkgIHRlc3RzOiBmaXggY2FwcyBsZWFrIGluIHZpZGVvdGVzdHNyYyB0ZXN0CgoyMDEyLTAxLTEzIDEyOjUwOjA2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgbWF0cm9za2FkZW11eDogY2xlYW4gdXAgb2Jzb2xldGUgY2xvc2luZyBzZWdtZW50IGhhbmRsaW5nCgoyMDEyLTAxLTEzIDEwOjMyOjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgcnRwcHRkZW11eDogcGx1ZyBwYWQgbGVhayBpbiBlcnJvciBjb2RlIHBhdGgKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFN0aWcgU2FuZG5lcyA8c3RpZy5zYW5kbmVzQGNpc2NvLmNvbT4KCSAgRG9uJ3QgbGVhayBzcmNwYWQgaWYgdGhlcmUgYXJlIG5vIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4MjAKCjIwMTEtMTAtMDQgMTA6MDA6MDIgKzAyMDAgIFN0aWcgU2FuZG5lcyA8c3RpZ3NhbmRAY2lzY28uY29tPgoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lm06CgkgIG9zeHZpZGVvOiBGaXggbGVhayBvZiBOU09wZW5HTFBpeGVsRm9ybWF0IG9iamVjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODE4CgoyMDExLTA5LTA1IDEwOjQzOjE5ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IERvbid0IGFzc2VydCB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgbm90IGltcGxlbWVudGVkLgoJICBTaW1wbHkgcmV0dXJuIEZBTFNFIGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4MTcKCjIwMTItMDEtMTIgMDA6MTg6MzkgKzAyMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3Jtc2luay5jOgoJKiBzeXMvd2F2ZWZvcm0vZ3N0d2F2ZWZvcm1zaW5rLmg6CgkgIHdhdmVmb3Jtc2luazogRml4IG1pbmd3IHdhcm5pbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc3MTkKCjIwMTItMDEtMTIgMjM6NTU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJICBHU1RfVFlQRV9EQVRFIC0+IEdfVFlQRV9EQVRFCgoyMDEyLTAxLTEyIDIzOjQ4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIGVxTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jCgkgIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYwoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYwoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYwoKMjAxMi0wMS0xMiAxODoyMzo0MiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgZ3N0cnRwc3NyY2RlbXV4OiBmaXggZWxlbWVudCBsZWFrCgoyMDEyLTAxLTEyIDE0OjE5OjIyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJICBtYXRyb3NrYTogZG8gbm90IGxlYWsgYXR0YWNobWVudCBidWZmZXJzCgoyMDEyLTAxLTEyIDEzOjE3OjU1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IHJlbW92ZSBvYnNvbGV0ZSBGSVhNRSBjb21tZW50cwoKMjAxMi0wMS0xMiAxMDozMDoxMSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWNlbmM6IGRvIG5vdCBkcm9wIHRoZSBmaXJzdCBkYXRhIGJ1ZmZlciBvbiB0aGUgZmxvb3IgKGFuZCBsZWFrIGl0IGVpdGhlcikKCjIwMTItMDEtMTIgMTE6MDg6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RpbmRleC5jOgoJKiBnc3QvZmx2L2dzdG1lbWluZGV4LmM6CgkgIGZsdmRlbXV4OiBhZGQgcHJlZml4IHRvIGxvY2FsIEdzdEluZGV4IHJlbGF0ZWQgY29waWVzCgkgIC4uLiB0byBhdm9pZCBkdXBsaWNhdGUgdHlwZSBuYW1lcyB3aXRoIG90aGVyIHN1Y2ggbG9jYWwgY29waWVzIGluIHRoZSB3aWxkLgoKMjAxMi0wMS0xMiAxMTowNzozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBhY3RpdmF0ZSBwYWQgYmVmb3JlIHNldHRpbmcgY2FwcwoJICAuLi4gcmF0aGVyIHRoYW4gdGhlIHVzdWFsIDAuMTAgb3RoZXIgd2F5IGFyb3VuZC4KCSAgRml4ZXMgIzY2NzU1OC4KCjIwMTItMDEtMTEgMTg6NDU6MzMgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoJKiBBbmRyb2lkLm1rOgoJICBUZW1wb3JhcmlseSBkaXNhYmxpbmcgbXVsdGlmaWxlIGZvciB0aGUgQW5kcm9pZCBidWlsZAoJICBUaGVyZSBpcyBhIGhhcmQgZGVwZW5kZW5jeSBvbiBpbm90aWZ5IGNvbW1pbmcgZnJvbSBnaW8uIFdlCgkgIGFyZSBub3QgY3VycmVudGx5IGJ1bmRsaW5nIGlub3RpZnkgd2l0aCB0aGUgQW5kcm9pZCBkaXN0IHNvCgkgIEknbSBkaXNhYmxpbmcgbXVsdGlmaWxlIGZvciBub3cgdW50aWwgc29tZW9uZSBnZXRzIGFyb3VuZAoJICB0byBzb3J0IHRoaXMgb3V0LgoJICBUaGlzIGNoYW5nZSBmaXhlcyBidWlsZGluZyBvbiBBbmRyb2lkCgoyMDEwLTEwLTIwIDAyOjE3OjQzIC0wNzAwICBMZW8gU2luZ2VyIDxsZW8uc2luZ2VyQGxpZ28ub3JnPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWlpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2lpcmZpbHRlci5jOgoJICBhdWRpb2Z4OiBVc2UgbW9zdCBjb21tb24gY29udmVudGlvbiBmb3IgZGVmaW5pdGlvbnMgb2YgSUlSIGZpbHRlciBjb2VmZmljaWVudHMuCgkgIE1vc3Qgc2lnbmFsIHByb2Nlc3NpbmcgdGV4dHMsIGluY2x1ZGluZyBNQVRMQUIsIHVzZSB0aGUgZm9sbG93aW5nIGNvbnZlbnRpb24gZm9yIElJUiBmaWx0ZXIgY29lZmZpY2llbnRzOgoJICBhXzAgeVtuXSArIGFfMSB5W24tMV0gKyAuLi4gKyBhX00geVtuLU1dID0gYl8wIHhbbl0gKyBiXzEgeFtuLTFdICsgLi4uICsgYltOXSB4W24tTl0KCSAgVXN1YWxseSwgYV8wIGlzIHNldCB0byAxIGJlY2F1c2UgdGhlIGNvZWZmaWNpZW50cyBjYW4gYWx3YXlzIGJlIHJlc2NhbGVkLCBnaXZpbmcKCSAgeVtuXSA9IGJfMCB4W25dICsgYl8xIHhbbi0xXSArIC4uLiArIGJbTl0geFtuLU5dIC0gYV8xIHlbbi0xXSAtIC4uLiAtIGFfTSB5W24tTV0KCSAgVGhlIGNvbnZlbnRpb24gdGhhdCB3YXMgcHJldmlvdXNseSB1c2VkIGJ5IGF1ZGlvZnhiYXNlaWlyZmlsdGVyIGFuZCBkZXJpdmVkIGNsYXNzIGhhZCB0aGUgYSBhbmQgYiBjb2VmZmljaWVudHMgc3dhcHBlZCwgYW5kIGRpZCBub3QgaGF2ZSB0aGUgbWludXMgc2lnbnMuCgkgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBhdWRpb2Z4IHBsdWdpbiB1c2UgdGhlIG1vcmUgY29tbW9uIGNvbnZlbnRpb24gZGVzY3JpYmVkIGFib3ZlLgoKMjAxMi0wMS0xMSAxNDo0NzozNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFjay5oOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5oOgoJICBqYWNrOiBhZGQgYSB0cmFuc3BvcnQgbW9kZSBlbnVtCgkgIENsaWVudHMgY2FuIGNvbmZpZ3VyZSB0aGUgZGVzaXJlZCBiZWhhdmlvdXIgdmlhICJ0cmFuc3BvcnQiIHByb3BlcnR5LiBUaGUKCSAgZGVmYXVsdCBiZWhhdmlvdXIgaXMgaWdub3JpbmcgdGhlIHRyYW5zcG9ydCBzdGF0ZS4gT3RoZXIgbW9kZXMgYXJlIG1hc3RlciBhbmQKCSAgc2xhdmUuCgoyMDEyLTAxLTExIDE0OjEwOjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBGaXggYnVmZmVyIGhhbmRsaW5nCgkgIHNvdXBodHRwc3JjIGlzIG5vdyB1c2FibGUgYWdhaW4gYW5kIGRvZXNuJ3QgY3Jhc2ggYW55bW9yZQoJICB3aGVuZXZlciBzb21ldGhpbmcgaXMgcmVhZCBmcm9tIGEgSFRUUCBjb25uZWN0aW9uLgoKMjAxMi0wMS0xMSAwMTo0NTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvd2F2ZW5jLmM6CgkgIHRlc3RzOiBmaXggd2F2ZW5jIHRlc3Qgb24gYmlnIGVuZGlhbgoJICB3YXZlbmMgb25seSBhY2NlcHRzIGxpdHRsZS1lbmRpYW4gUENNLCBidXQgbW9zdCBvZiBvdXIKCSAgZWxlbWVudHMgc3VjaCBhcyBhdWRpb3Rlc3RzcmMgb25seSBwcm9kdWNlIG9yIHByb2Nlc3MKCSAgYXVkaW8gaW4gbmF0aXZlIGVuZGlhbm5lc3MsIHNvIHdlIG5lZWQgdG8gcGx1ZyBhCgkgIGNvbnZlcnRlciBiZWZvcmUgd2F2ZW5jIG9uIGJpZyBlbmRpYW4gc3lzdGVtcy4KCjIwMTItMDEtMTAgMjM6MDI6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICBqYWNrOiBkZWFjdGl2YXRlIHRoZSByZXF1ZXN0X3N0YXRlIGNvZGUKCSAgV2hlbiBxamFja2N0bCBpcyBzdGFydGVkLCB0cmFuc3BvcnQgaXMgc3RvcHBlZCBieSBkZWZhdWx0LiBUaGlzIHdvdWxkIGJlIGEKCSAgcmVncmVzc2lvbiBmb3IgZ3N0cmVhbWVyIGFwcHMgdGhhdCBiZWZvcmUganVzdCBzdGFydGVkIHRvIHBsYXkgcmlnaHQgYXdheS4KCjIwMTItMDEtMTAgMjI6Mjc6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9jbGllbnQuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvY2xpZW50Lmg6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IGFkZCB0cmFuc3BvcnQgY29udHJvbCBoYW5kbGluZwoJICBUaGlzIGZlYXR1cmUgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHBsYXliYWNrIGZyb20gb3RoZXIgamFjayBhcHBsaWNhdGlvbnMgKGUuZy4gcWphY2tjdGwpLgoKMjAxMi0wMS0xMCAxODo1MDoyNyArMDEwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBmaXggY29kZWNfcHJpdiBsZWFrcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3NDE5CgoyMDEyLTAxLTEwIDE1OjA2OjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvY2xpZW50LmM6CgkgIGphY2s6IHVzZSBqYWNrIHR5cGUgZm9yIHRoZSBjYWxsYmFjawoJICBKYWNrIGhlYWRlcnMgaGF2ZSBhIHR5cGVkZWYgZm9yIHRoZSBzaHV0ZG93biBjYWxsYmFjayBhcyB3ZWxsLgoKMjAxMi0wMS0xMCAxNDozMjozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmMKCSAgZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmMKCSAgZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmMKCSAgZ3N0L2Zsdi9nc3RmbHZtdXguYwoJICBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmMKCSAgZ3N0L2lzb21wNC9nc3RxdG11eC5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYwoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmgKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmMKCSAgZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYwoJICBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jCgkgIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmMKCSAgZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmMKCSAgZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYwoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmMKCSAgZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYwoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYwoJICBwby9qYS5wbwoJICBwby9sdi5wbwoJICBwby9zci5wbwoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbQoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmMKCjIwMTItMDEtMDkgMjI6NTg6MzIgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBSZW1vdmUgb2xkIHZpZGVvbWl4ZXIgaGVhZGVycwoJICBUaGVzZSBnb3QgcmVtb3ZlZCBpbiB0aGUgdHJhbnNpdGlvbiB0byB2aWRlb21peGVyMi4KCjIwMTItMDEtMDkgMTc6Mjg6MTcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZml4IGNvZGVjIHN0cmluZyBsZWFrcwoKMjAxMi0wMS0wOSAxNDo1MTo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmg6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXJwYWQuaDoKCSAgdmlkZW9taXhlcjogUmVtb3ZlIHZpZGVvbWl4ZXIgYW5kIHJlZ2lzdGVyIHZpZGVvbWl4ZXIyIGFzIHZpZGVvbWl4ZXIKCjIwMTItMDEtMDkgMTE6MzY6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGluaXRpYWxpemUgdmFyaWFibGUgdG8gYXZvaWQgdW5kZWZpbmVkIHVzZQoKMjAxMi0wMS0wNiAwOTo0MDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgZmxhYzogUG9ydCB0byB0aGUgbmV3IHJhdyBhdWRpbyBjYXBzCgoyMDEyLTAxLTA1IDE5OjI1OjMzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgaXNvbXA0OiBmaXggY2FwcyBsZWFrCgoyMDEyLTAxLTA1IDE5OjA4OjAzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgaXNvbXA0OiByZW1vdmUgZGVhZCBhc3NpZ25tZW50CgoyMDEyLTAxLTA1IDE0OjE4OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOgoJICBmaXggcGFkIHRlbXBsYXRlcwoKMjAxMi0wMS0wNCAxNTowNTo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4OiBVcGRhdGUgZm9yIHRoZSBuZXcgcmF3IGF1ZGlvIGNhcHMKCjIwMTItMDEtMDQgMTQ6NTQ6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogQWRkIHRoZSBuZXcgbGF5b3V0IGZpZWxkIHRvIHRoZSByYXcgYXVkaW8gY2FwcwoKMjAxMi0wMS0wNCAxNDo1Mjo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSogZXh0L2phY2svZ3N0amFja3V0aWwuYzoKCSogZXh0L2phY2svZ3N0amFja3V0aWwuaDoKCSAgamFja2F1ZGlvc3JjOiBQb3J0IHRvIHRoZSBuZXcgbXVsdGljaGFubmVsIGF1ZGlvIGNhcHMKCjIwMTItMDEtMDQgMTQ6MTM6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFkZCBGTEFDIGFuZCBpbnRlcmxlYXZlIHRvIHRoZSBub24tcG9ydGVkIHBsdWdpbnMgbGlzdAoJICBCb3RoIG5lZWQgdG8gYmUgdXBkYXRlZCB0byB0aGUgYXVkaW8veC1yYXcgY2FwcyBhbmQgd2VyZSBvbmx5CgkgIGhhbGYtcG9ydGVkIGJlZm9yZS4KCjIwMTItMDEtMDQgMTM6NDg6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwY2hhbm5lbHMuYzoKCSogZ3N0L3J0cC9nc3RydHBjaGFubmVscy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHJ0cDogVXBkYXRlIGZvciB0aGUgbmV3IGF1ZGlvIGNhcHMKCjIwMTItMDEtMDQgMTI6MDY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBVcGRhdGUgZm9yIGxpYmdzdHJpZmYgQVBJIGNoYW5nZXMKCSAgU3RpbGwgbmVlZHMgdG8gaGFuZGxlIHJhdyBhdWRpbyBjaGFubmVsIHJlb3JkZXJpbmcKCjIwMTItMDEtMDQgMTI6MDU6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSAgd2F2ZW5jOiBVcGRhdGUgZm9yIHRoZSBuZXcgcmF3IGF1ZGlvIGNhcHMKCjIwMTItMDEtMDQgMTI6MDM6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiBVcGRhdGUgZm9yIHRoZSBuZXcgcmF3IGF1ZGlvIGNhcHMgbGF5b3V0IGZpZWxkCgoyMDEyLTAxLTA0IDExOjU3OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmM6CgkgIHJlcGxheWdhaW46IFVwZGF0ZSBmb3IgdGhlIG5ldyBhdWRpbyBjYXBzCgoyMDEyLTAxLTA0IDExOjUyOjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thOiBVcGRhdGUgZm9yIHRoZSBuZXcgcmF3IGF1ZGlvIGludGVybGVhdmVkIGNhcHMgZmllbGQKCSAgU3RpbGwgbmVlZHMgdG8gYmUgZml4ZWQgdG8gaGFuZGxlIHRoZSBtdWx0aWNoYW5uZWwgY2hhbm5lbC1tYXNrCgkgIGFuZCByZW9yZGVyaW5nLgoKMjAxMi0wMS0wNCAxMTozMTowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgbGV2ZWw6IFVwZGF0ZSBmb3IgdGhlIG5ldyByYXcgYXVkaW8gbGF5b3V0IGZpZWxkCgoyMDEyLTAxLTA0IDExOjI5OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eG1hcC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgaXNvbXA0OiBQb3J0IHRvIHRoZSBuZXcgYXVkaW8gY2FwcwoJICBTdGlsbCBuZWVkcyB0byBoYW5kbGUgdGhlIGNoYW5uZWwgcG9zaXRpb25zL21hc2tzIGFuZAoJICBjaGFubmVsIHJlb3JkZXJpbmcuCgoyMDEyLTAxLTA0IDExOjExOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6CgkgIGN1dHRlcjogVXBkYXRlIGZvciB0aGUgbmV3IHJhdyBhdWRpbyBsYXlvdXQgZmllbGQKCjIwMTItMDEtMDQgMTE6MDk6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiBQb3J0IHRvIHRoZSBuZXcgbXVsdGljaGFubmVsIGNhcHMgYW5kIHVwZGF0ZSBmb3IgdGhlIG5ldyByYXcgYXVkaW8gbGF5b3V0IGZpZWxkCgoyMDEyLTAxLTA0IDExOjA4OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogVXBkYXRlIGZvciB0aGUgbmV3IHJhdyBhdWRpbyBsYXlvdXQgZmllbGQKCjIwMTItMDEtMDQgMTE6MDc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogVXBkYXRlIGZvciB0aGUgbGliZ3N0cmlmZiBBUEkgY2hhbmdlcwoJICBTdGlsbCBuZWVkcyB0byBkbyByZW9yZGVyaW5nIG9mIGNoYW5uZWxzIGZvciByYXcgYXVkaW8uCgoyMDEyLTAxLTA0IDExOjA2OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSAgYXVwYXJzZTogUG9ydCB0byB0aGUgbmV3IG11bHRpY2hhbm5lbCBjYXBzIGFuZCB0aGUgbmV3IHJhdyBhdWRpbyBsYXlvdXQgZmllbGQKCjIwMTItMDEtMDQgMTE6MDI6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9pbnZlcnQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSAgYXVkaW9meDogUG9ydCB0byB0aGUgbmV3IG11bHRpY2hhbm5lbCBjYXBzIGFuZCB0aGUgbmV3IHJhdyBhdWRpbyBsYXlvdXQgZmllbGQKCjIwMTItMDEtMDQgMTA6NTQ6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zcy9nc3Rvc3NzaW5rLmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6CgkgIG9zczogUG9ydCB0byB0aGUgbmV3IG11bHRpY2hhbm5lbCBjYXBzIGFuZCB0aGUgcmF3IGF1ZGlvIGNhcHMgaW50ZXJsZWF2ZWQgZmllbGQKCjIwMTItMDEtMDQgMTA6Mjc6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJICBwdWxzZTogUG9ydCB0byB0aGUgbmV3IG11bHRpY2hhbm5lbCBjYXBzCgoyMDEyLTAxLTA0IDE5OjUxOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzYyYjY5MiB0byAwODA3MTg3CgoyMDEyLTAxLTA0IDE3OjU5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkgIHRlc3RzOiBmaXggc29tZSBsZWFrcyBhbmQgcmVtb3ZlIGZpbGVzIHdoZW4gZG9uZSBpbiBxdG11eCB0ZXN0CgoyMDExLTEyLTE0IDEwOjE0OjIwICswMTAwICBQZXRlciBTZWlkZXJlciA8cHMucmVwb3J0QGdteC5uZXQ+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgbXVsdGlmaWxlc2luazogcG9zdCBiZXR0ZXIgZXJyb3IgbWVzc2FnZSB3aGVuIHdlIHJ1biBvdXQgb2YgZGlzayBzcGFjZQoJICBNYXAgd3JpdGUgZXJybm8gRU5PU1BDIHRvIEdTVF9SRVNPVVJDRV9FUlJPUl9OT19TUEFDRV9MRUZULgoKMjAxMi0wMS0wNCAxMzoyNjo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hbHBoYWNvbG9yLmM6CgkgIGFscGhhY29sb3I6IE1vcmUgZml4ZXMvY2xlYW51cAoKMjAxMi0wMS0wNCAxMzoyNTo0MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IFJlZmFjdG9yIHBhcmFtL3Byb2Nlc3MgZnVuY3Rpb25zCgkgIFdoZW4gOjpzZXRfaW5mbygpIGlzIGNhbGxlZCwgdGhlIGlucHV0L291dHB1dCBWaWRlb0luZm8gYXJlbid0IHNldAoJICB5ZXQgb24gdGhlIHZpZGVvZmlsdGVyLgoKMjAxMi0wMS0wNCAxMDowMTo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3JhdzEzOTQvZ3N0aGR2MTM5NHNyYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTEtMTItMzEgMjM6MzM6MzMgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkgIGRjYXBhcnNlOiB1c2UgcmlnaHQgdmFyaWFibGUKCSAgRml4ZXMgdXNlIG9mIHVuaXRpYWxpemVkIHZhcmlhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MDg1CgoyMDEyLTAxLTAzIDE1OjI2OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBHU1RfRkxPV19VTkVYUEVDVEVEIC0+IEdTVF9GTE9XX0VPUwoKMjAxMi0wMS0wMyAxNDo0MjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy90YWdzY2hlY2tpbmcuYzoKCSAgdGVzdHM6IHJld3JpdGUgdGVzdCBhIGxpdHRsZQoJICBSZXdyaXRlIHRoZSB0YWcgY2hlY2sgc28gdGhhdCB3ZSBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCB0YWcgbGlzdHMuCgoyMDEyLTAxLTAzIDE0OjE2OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2pwZWdlbmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlmaWxlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBiaW5fYnVmZmVyX2xpc3QuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwaml0dGVyYnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NoYXBld2lwZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy91ZHBzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy95NG1lbmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3RhZ3NjaGVja2luZy5jOgoJICB0ZXN0czogbWFrZSBtb3JlIHRlc3RzIGNvbXBpbGUKCjIwMTItMDEtMDMgMTE6NTY6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZXF1YWxpemVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZsYWNwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mbHZkZW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mbHZtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWN5ZGVtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW1hZ2VmcmVlemUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2xpbWl0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmd2b2x1bWUuYzoKCSAgdGVzdDogbWFrZSBtb3JlIHVuaXQgdGVzdHMgY29tcGlsZQoKMjAxMi0wMS0wMyAxMDoyNjo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2ZpcmZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2lpcmZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2ludmVydC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3dzaW5jYmFuZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3dzaW5jbGltaXQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXV0b2RldGVjdC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpc3VidGl0bGUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGFjZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9pbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICB0ZXN0czogZml4IHNvbWUgdW5pdCB0ZXN0cwoJICBSZW1vdmUgdW5pdCB0ZXN0IGZvciBHc3RJbmRleC4KCSAgTWFrZSBzb21lIG90aGVyIHVuaXQgdGVzdHMgY29tcGlsZQoKMjAxMi0wMS0wMiAxNDozMjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwZXh0LmM6CgkgIGF1dG9kZXRlY3QsIHJ0c3A6IGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCgpIC0+IGdzdF9yZWdpc3RyeV9nZXQoKQoKMjAxMS0xMi0zMSAxMDowMDo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvY2FtY3RybC5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRvIEFQSSBjaGFuZ2VzCgoyMDExLTEyLTMwIDE3OjQxOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogdXBkYXRlIGZvciBHc3RJbmRleCByZW1vdmFsCgoyMDExLTEyLTMwIDE3OjIzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogdXBkYXRlIGZvciBHc3RJbmRleCByZW1vdmFsCgoyMDExLTEyLTMwIDE3OjIwOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5oOgoJKiBnc3QvZmx2L2dzdGluZGV4LmM6CgkqIGdzdC9mbHYvZ3N0aW5kZXguaDoKCSogZ3N0L2Zsdi9nc3RtZW1pbmRleC5jOgoJICBmbHZkZW11eDogdXBkYXRlIGZvciBHc3RJbmRleCByZW1vdmFsCgkgIEFkZCBwcml2YXRlIEdzdE1lbUluZGV4IGZvciBub3cuCgoyMDExLTEyLTMwIDE3OjEyOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogdXBkYXRlIGZvciBHc3RJbmRleCByZW1vdmFsCgoyMDExLTEyLTI3IDIyOjU5OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuYzoKCSAgd2F2ZWZvcm1zaW5rOiBmaXggY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBNaW5nVwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2NDg1CgoyMDExLTEyLTI3IDEyOjA2OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIHRlc3RzOiBtYWtlIGdpdCBpZ25vcmUgbmV3IHVuaXQgdGVzdCBiaW5hcnkKCjIwMTEtMTItMjcgMTE6NTA6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwc3JjOiBmaXggdmFsZ3JpbmQgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2NjQ0CgoyMDExLTEyLTI3IDExOjQ5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy91ZHBzcmMuYzoKCSAgdWRwc3JjOiBhZGQgdW5pdCB0ZXN0IHRoYXQgc2VuZHMgMC1zaXplIHBhY2tldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2NjQ0CgoyMDExLTEyLTIxIDEzOjIyOjAzICswMTAwICBKb2huIE9nbmVzcyA8am9obi5vZ25lc3NAbGludXRyb25peC5kZT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogZHJvcCBkYXRhbGVzcyBVRFAgcGFja2V0cwoJICBJdCBpcyBhbGxvd2VkIHRvIHNlbmQvcmVjZWl2ZSBVRFAgcGFja2V0cyB3aXRoIG5vIGRhdGEuIFdoZW4gc3VjaAoJICBhIHBhY2tldCBpcyBhdmFpbGFibGUsIHNlbGVjdCgpIHdpbGwgcmV0dXJuIHdpdGggc3VjY2VzcyBidXQKCSAgaW9jdGwoRklPTlJFQUQpIHdpbGwgcmV0dXJuIDAuIEJ1dCBhIHJlYWQoKSBtdXN0IHN0aWxsIG9jY3VyIGluCgkgIG9yZGVyIHRvIGNsZWFyIG9mZiB0aGUgVURQIHBhY2tldCBmcm9tIHRoZSBxdWV1ZS4KCSAgVGhpcyBwYXRjaCB3aWxsIHJlYWQgdGhlIGRhdGFsZXNzIHBhY2tldCBmcm9tIHRoZSBzb2NrZXQuIElmCgkgIHNlbGVjdCgpIHdhcyB3b2tlbiBmb3Igb3RoZXIgcmVhc29ucyAoYW5kIEZJT05SRUFEIHJldHVybnMgMCksCgkgIHRoaXMgbWF5IHJlc3VsdCBpbiBhIFVEUCBwYWNrZXQgZ2V0dGluZyBhY2NpZGVudGFsbHkgZHJvcHBlZC4KCSAgQnV0IHNpbmNlIFVEUCBpcyBub3QgcmVsaWFibGUsIHRoaXMgaXMgYWNjZXB0YWJsZS4KCSAgTk9URTogVGhpcyBwYXRjaCBmaXhlcyBhIG5hc3R5IGJ1ZyB3aGVyZSBzZW5kaW5nIGEgZGF0YWxlc3MKCSAgVURQIHBhY2tldCB0byBhIHVkcHNyYyBpbnN0YW5jZSB3aWxsIGNhdXNlIGFuIGluZmluaXRlCgkgIGxvb3AuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY2NDQKCSAgU2lnbmVkLW9mZi1ieTogSm9obiBPZ25lc3MgPGpvaG4ub2duZXNzQGxpbnV0cm9uaXguZGU+CgoyMDExLTEyLTI2IDIyOjIyOjU5ICswMDAwICBZYWFrb3YgU2Vsa293aXR6IDx5c2Vsa293aXR6QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogc3lzL01ha2VmaWxlLmFtOgoJKiBzeXMvd2F2ZWZvcm0vTWFrZWZpbGUuYW06CgkgIHdhdmVmb3JtOiBhZGQgYXV0b3Rvb2xzIGJpdHMgZm9yIHdhdmVmb3JtIHBsdWdpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY2NDg1CgoyMDExLTEyLTIxIDIwOjUwOjIxICswMTAwICBOaWNvbGEgTXVyaW5vIDxuaWNvbGEubXVyaW5vQGdtYWlsLmNvbT4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogZml4IHBlZXJfY2FwcyBsZWFrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY2ODgKCjIwMTEtMTItMjUgMjM6NTI6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlbW92ZSB1bm5lY2Vzc2FyeSBjaGVjayBmb3IgZ2RwIGxpYnJhcnkKCjIwMTEtMTItMjUgMjI6MTc6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBleHQvcHVsc2UvTWFrZWZpbGUuYW06CgkqIGV4dC9wdWxzZS9wbHVnaW4uYzoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJICBwdWxzZTogcmVtb3ZlIHB1bHNlYXVkaW9zaW5rIGhlbHBlciBiaW4KCSAgVGhpcyBpcyBjYXVzaW5nIHVzIGxvdHMgb2YgaGVhZGFjaGVzIGluIDAuMTAgYW5kIG5lZWRzIHRvIGJlIGRvbmUKCSAgZGlmZmVyZW50bHkgYW5kIHByb3Blcmx5IGluIDAuMTEuIHBsYXliaW4gb3IgZGVjb2RlYmluIHNob3VsZAoJICByZWNvbmZpZ3VyZSB0aGVtc2VsdmVzIGJhc2VkIG9uIHJlY29uZmlndXJlIGV2ZW50cywgZm9yIGV4YW1wbGUuCgoyMDExLTEyLTI1IDIxOjQ1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJICBwdWxzZTogdXBkYXRlIGZvciByaW5nIGJ1ZmZlciBhdWRpbyBmb3JtYXQgdHlwZSBlbnVtIHJlbmFtZQoKMjAxMS0xMi0yNSAyMDozNDo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvY2FtY3RybC5jOgoJICBjb250cm9sbGVyOiBwb3J0IHRvIG5ldyBjb250cm9sIHNvdXJjZSBhcGkKCjIwMTEtMTItMjUgMTQ6MjM6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBkb24ndCB0cnkgdG8gcHVzaCBhbHJlYWR5LWZyZWVkIGJ1ZmZlcnMKCSAgRml4ZXMgdW5pdCB0ZXN0LgoKMjAxMS0xMi0yNCAxMDo1Nzo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IFVzZSBzY2FsZV9jZWlsKCkgZnVuY3Rpb25zIGZyb20gY29yZSBpbnN0ZWFkIG9mIGN1c3RvbSBvbmVzCgoyMDExLTEyLTIxIDIzOjUxOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5oOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5oOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5oOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5oOgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmg6CgkqIGdzdC9lZmZlY3R2L2dzdG9wLmM6CgkqIGdzdC9lZmZlY3R2L2dzdG9wLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmFkaW9hYy5oOgoJKiBnc3QvZWZmZWN0di9nc3RyZXYuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2Lmg6CgkqIGdzdC9lZmZlY3R2L2dzdHJpcHBsZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHN0cmVhay5jOgoJKiBnc3QvZWZmZWN0di9nc3RzdHJlYWsuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJKiBnc3QvZWZmZWN0di9nc3R2ZXJ0aWdvLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5oOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmg6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5oOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuaDoKCSAgdXBkYXRlIGZvciB2aWRlb2ZpbHRlciBjaGFuZ2VzLgoKMjAxMS0xMi0yMSAxNzo0MzoxMCArMDEwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rb0BheGlzLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgbWF0cm9za2FkZW11eDogZG8gbm90IGNvbnNpZGVyIGR1cmF0aW9uIG9mIG5vbi1maW5hbGl6ZWQgZmlsZQoJICAuLi4gdG8gYXZvaWQgaXQgY2xhbXBpbmcgcmVxdWVzdGVkIHNlZWsgcG9zaXRpb24uCgkgIE5vbi1maW5hbGl6ZWQgZmlsZSBjYXNlLCBkZXRlcm1pbmVkIGJ5IHdoZXRoZXIKCSAgX3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2sgZXZlciB1cGRhdGVzIHRoZSBzZWdtZW50IGR1cmF0aW9uLgoJICBGaXhlcyAjNjUyMTk1LgoKMjAxMS0xMi0yMSAxNTowNjo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogaW1wcm92ZSBkZWNpc2lvbiB0byBmYWxsIGJhY2sgdG8gc2Nhbm5pbmcgd2hlbiBzZWVraW5nCgkgIC4uLiB3aGljaCBpcyBiYXNpY2FsbHkgaWZmIG5vdCBzdHJlYW1pbmcgYW5kIG5vIGVudHJ5IGZvdW5kIGluIGluZGV4CgoyMDExLTEyLTIxIDA5OjA5OjI3ICswMTAwICBPbGVrc2lqIFJlbXBlbCAoQWxleGV5IEZpc2hlcikgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSAgYWMzcGFyc2U6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCSAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSB0byBmaXggY29tcGlsZSBlcnJvcjoKCSAgbWFrZSAtQyBhdWRpb3BhcnNlcnMKCSAgbWFrZVszXTogQmV0cmV0ZSBWZXJ6ZWljaG5pcyAnL2hvbWUvbGV4L3RtcC9nc3QtcGx1Z2lucy1nb29kL2dzdC9hdWRpb3BhcnNlcnMnCgkgIENDICAgICBsaWJnc3RhdWRpb3BhcnNlcnNfbGEtZ3N0YWFjcGFyc2UubG8KCSAgZ3N0YWFjcGFyc2UuYzogSW4gZnVuY3Rpb24gJ2dzdF9hYWNfcGFyc2VfcmVhZF9sb2FzX2F1ZGlvX3NwZWNpZmljX2NvbmZpZyc6CgkgIGdzdGFhY3BhcnNlLmM6NDQ2OjEyOiBlcnJvcjogdmFyaWFibGUgJ3Nicicgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KCSAgY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCSAgU2lnbmVkLW9mZi1ieTogT2xla3NpaiBSZW1wZWwgKEFsZXhleSBGaXNoZXIpIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoyMDExLTEyLTIxIDExOjU5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzoKCSogZXh0L3B1bHNlL3B1bHNlcHJvYmUuaDoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJyYWRpby5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3B1bHNlL3B1bHNlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvcHJvYmUuYzoKCSAgdXBkYXRlIGZvciByZW1vdmVkIHByb3BlcnR5IHByb2JlCgoyMDExLTA5LTA5IDExOjQyOjA5ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGxldCBic2lkIDkgYW5kIDEwIHRocm91Z2gKCSAgRmlsZXMgd2l0aCA5IGFuZCAxMCBoYXBwZW4sIGFuZCBzZWVtIHRvIGNvbXBseSB3aXRoIHRoZSA8PSA4CgkgIGZvcm1hdCwgc28gbGV0IHRoZW0gdGhyb3VnaC4KCSAgVGhlIHNwZWMgc2F5cyBub3RoaW5nIGFib3V0IDkgYW5kIDEwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NTQ2CgoyMDExLTEyLTE5IDIzOjUwOjE5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9jYW1jdHJsLmM6CgkgIGNvbnRyb2xsZXI6IHBvcnQgdG8gbmV3IGludGVycG9sYXRpb24tbW9kZSBhcGkKCjIwMTEtMTItMTkgMjI6NTM6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy92NGwyL2NhbWN0cmwuYzoKCSAgY29udHJvbGxlcjogcG9ydCB0byBuZXcgY29udHJvbGxlciBhcGkKCjIwMTEtMTItMTkgMTk6MDM6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IHVwZGF0ZSBmb3IgbmV3IGludGVybGFjZWQgY2FwcwoKMjAxMS0xMi0xNiAxOToxNTozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IHByb3Blcmx5IGRldGVybWluZSBmaW5hbCBkdXJhdGlvbgoJICAuLi4gd2hpY2ggY2FuIGJlIGF1dGhvcmF0aXZlbHkgb2J0YWluZWQgZnJvbSBvdXIgb3duIHdyaXR0ZW4gdGltZXN0YW1wcy4KCjIwMTEtMTItMTkgMTM6NTY6MzAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBvbmx5IHdyaXRlIGZ1bGwgbWV0YWRhdGEgYXQgc3RhcnQKCSAgLi4uIHJhdGhlciB0aGFuIGhhdmluZyAocG90ZW50aWFsbHkpIHVubmVjZXNzYXJ5IGR1cGxpY2F0ZXMgd3JpdHRlbiBhbGwgb3ZlciwKCSAgb3IgZXZlbiBjb250cmFkaWN0b3J5IHZhcnlpbmcgZmlsZXNpemUgaW5mbywgb3IgZHVyYXRpb24gaW5mbyB0aGF0IHdpbGwgbm90CgkgIGJlIHJld3JpdHRlbiB1cG9uIGhlYWRlciByZXdyaXRlLgoKMjAxMS0xMi0xNiAxOToxNTowMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IHVzZSBHc3RDb2xsZWN0UGFkczIgYnVmZmVyIGNhbGxiYWNrIGFuZCBydW5uaW5nIHRpbWUgY2xpcHBlcgoJICAuLi4gc2luY2UgdGhlIGRlZmF1bHQgY29sbGVjdGlvbiBoZXVyaXN0aWNzIHN1ZmZpY2UuCgoyMDExLTEyLTE2IDE4OjAzOjAxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHVzZSBHc3RDb2xsZWN0UGFkczIgYnVmZmVyIGNhbGxiYWNrIGFuZCBydW5uaW5nIHRpbWUgY2xpcHBlcgoJICAuLi4gc2luY2UgZGVmYXVsdCBjb2xsZWN0aW9uIGhldXJpc3RpY3Mgc3VmZmljZS4KCjIwMTEtMTItMTYgMTc6MjA6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogYnJpbmcgYSBmZXcgZGVidWcgc3RhdGVtZW50cyB1cCB0byBzcGVjcwoJICAuLi4gYW5kIG1pbm9yIHNwZWxsaW5nIGZpeC4KCjIwMTEtMTItMTYgMTY6NTY6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogYWRkaXRpb25hbCBzdWJ0aXRsZSBzdXBwb3J0CgoyMDExLTEyLTE1IDIxOjUwOjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYW11eDogYWRkaXRpb25hbCBidWZmZXIgaGFuZGxpbmcgY2xlYW51cAoKMjAxMS0xMi0xNSAyMTo0NToxNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiB1c2UgR3N0Q29sbGVjdFBhZHMyIGJ1ZmZlciBjYWxsYmFjayBhbmQgcnVubmluZyB0aW1lIGNsaXBwZXIKCjIwMTEtMTItMDcgMTM6MjQ6NTUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmg6CgkgIGFhY3BhcnNlOiBwYXJzZSBMT0FTIHZhcmlhbnQKCSAgVGhlIExPQVMgdmFyaWFudCBzZWVtcyB0byBoYXZlIHRocmVlIGRpZmZlcmVudCBzdWJ2YXJpYW50cyBpdHNlbGYsCgkgIG9ubHkgb25lIG9mIHRoZW0gaXMgaW1wbGVtZW50ZWQgYXMgbXkgdHdvIHNhbXBsZXMgaGFwcGVuIHRvIGJlCgkgIHVzaW5nIHRoYXQgb25lLgoJICBUaGUgc2FtcGxlIHJhdGUgaXMgbm90IGFsd2F5cyByZXBvcnRlZCBjb3JyZWN0bHksIGFzIHRoZSAibWFpbiIKCSAgc2FtcGxlIHJhdGUgaXMgYXBwYXJlbnRseSBzb21ldGltZXMgaGFsZiB3aGF0IGl0IHNob3VsZCBiZSAoYm90aAoJICBvZiBteSBzYW1wbGVzIHJlcG9ydCAyNDAwMCBIeiB0aGVyZSksIGFuZCB0aGVyZSBhcmUgdHdvIG90aGVyCgkgIHBhcnRzIG9mIHRoZSBzdWJ2YXJpYW50IHdpdGggZGlmZmVyZW50IHNhbXBsaW5nIHJhdGVzLiBPbmUgb2YgdGhlbQoJICBpcyBwYXJzZWQsIGJ1dCBub3QgdGhlIG90aGVyLCBhcyBpdCdzIGxvY2F0ZWQgYWZ0ZXIgc29tZSBvdGhlcgoJICBsYXJnZSBhbW91bnQgb2YgdmFyaWFibGUgZGF0YSB0aGF0IG5lZWRzIHBhcnNpbmcgZmlyc3QsIGFuZCB0aGVyZQoJICBzZWVtcyB0byBiZSBhIExPVCBvZiBpdCwgd2hpY2ggaXMgdXNlbGVzcyBmb3Igb3VyIG5lZWRzIGhlcmUuCgkgIFRoaXMgZW5kcyB1cCBiZWluZyByYXRoZXIgaW5jb25zZXF1ZW50aWFsLCBhcyBmZmRlY19hYWNfbGF0bSwKCSAgd2hpY2ggaXMgdGhlIG9ubHkgZGVjb2RlciB0aGF0IGNhbiBkZWNvZGUgc3VjaCBzdHJlYW1zLCBkb2VzIG5vdAoJICBuZWVkIHRoZSBzYW1wbGUgcmF0ZSBvbiB0aGUgY2FwcyBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzOTQKCjIwMTEtMTItMTkgMTA6NDg6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGRvbid0IHJlbW92ZSBzcmNwYWQKCSAgRG9uJ3QgcmVtb3ZlIHRoZSBhbHdheXMgc3JjcGFkIGluIHJlYWR5IGFuZCBtYWtlIHRoZSBlbGVtZW50IHJldXNhYmxlLgoKMjAxMS0xMi0xNSAxNjo0MDoyMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5oOgoJICBmbHZtdXg6IHVzZSBHc3RDb2xsZWN0UGFkczIgZXZlbnQgY2FsbGJhY2sKCSAgLi4uIGluIHN0ZWFkIG9mIGxvY2FsIEhBQ0suCgoyMDExLTEyLTE1IDE2OjMwOjE3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYW11eDogdXNlIEdzdENvbGxlY3RQYWRzMiBldmVudCBjYWxsYmFjawoJICAuLi4gaW4gc3RlYWQgb2YgbG9jYWwgSEFDSy4KCjIwMTEtMTItMTUgMTY6MTY6NTIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguaDoKCSAgYXZpbXV4OiB1c2UgR3N0Q29sbGVjdFBhZHMyIGV2ZW50IGNhbGxiYWNrCgkgIC4uLiBpbiBzdGVhZCBvZiBsb2NhbCBIQUNLLgoKMjAxMS0xMi0xNSAxNjoxNToyMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguaDoKCSAgcXRtdXg6IHVzZSBHc3RDb2xsZWN0UGFkczIgZXZlbnQgY2FsbGJhY2sKCSAgLi4uIGluIHN0ZWFkIG9mIGxvY2FsIEhBQ0suCgoyMDExLTEyLTE0IDE5OjEzOjIxICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuaDoKCSAgc21wdGU6IHBvcnQgdG8gR3N0Q29sbGVjdFBhZHMyCgoyMDExLTEyLTE0IDE5OjEwOjUzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4Lmg6CgkgIG11bHRpcGFydG11eDogcG9ydCB0byBHc3RDb2xsZWN0UGFkczIKCjIwMTEtMTItMTQgMTk6MDc6MjMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIG1hdHJvc2thbXV4OiBwb3J0IHRvIEdzdENvbGxlY3RQYWRzMgoKMjAxMS0xMi0xNCAxOTowMjoyMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguaDoKCSAgcXRtdXg6IHBvcnQgdG8gR3N0Q29sbGVjdFBhZHMyCgoyMDExLTEyLTE0IDE4OjU1OjM2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5oOgoJICBpbnRlcmxlYXZlOiBwb3J0IHRvIEdzdENvbGxlY3RQYWRzMgoKMjAxMS0xMi0xNCAxODo1MjozNyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5oOgoJICBmbHhtdXg6IHBvcnQgdG8gR3N0Q29sbGVjdFBhZHMyCgoyMDExLTEyLTE0IDE4OjM4OjA5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4Lmg6CgkgIGF2aW11eDogcG9ydCB0byBHc3RDb2xsZWN0UGFkczIKCjIwMTEtMTItMTQgMTg6MzQ6MjUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6CgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5oOgoJICBjYWlyb3RleHRvdmVybGF5OiBwb3J0IHRvIEdzdENvbGxlY3RQYWRzMgoKMjAxMS0xMi0xMyAxODoxODo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSAgbWF0cm9za2FkZW11eDogZmlsdGVyIGJvZ3VzIGluZGV4IGVudHJpZXMgd2l0aCBtaXNzaW5nIGJsb2NrIG51bWJlcgoJICAuLi4gdG8gYXZvaWQgY29udHJhZGljdG9yeSBpbmZvcm1hdGlvbiByZXN1bHRpbmcgaW4gc2Vla3Mgc2VuZGluZyBtb3JlCgkgIGRvd25zdHJlYW0gdGhhbiBuZWVkZWQgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHNlZ21lbnQuCgoyMDExLTEyLTEzIDE4OjE1OjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBjYXRlciBmb3Igc2FmZXIgYXJpdGhtZXRpYyB3aXRoIGdsb2JhbCBzdGFydCB0aW1lCgoyMDExLTEyLTEzIDE3OjAyOjAxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiB0d2VhayBmaW5hbCBjbG9zaW5nIHNlZ21lbnQgc2VuZGluZwoJICAuLi4gdG8gYXZvaWQgaXQgaW50ZXJmZXJpbmcgd2l0aCAoc3BhcnNlKSBzdHJlYW0gc3luY2luZy4KCjIwMTEtMTItMTIgMTE6NTE6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IG1ha2UgZGVidWcgbWVzc2FnZSBtb3JlIHVzZWZ1bAoJICBBZGQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhZ2xpc3QgYW5kIHdoaWNoIHBhZCByZWNlaXZlZCB0aGUKCSAgdGFnIGV2ZW50IG9uIHRoZSBkZWJ1ZyBsb2dnaW5nLgoKMjAxMS0xMi0xMyAxMTo0Njo0MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGF2b2lkIHVzaW5nIGZsb2F0aW5nIHBvaW50IHVubmVjZXNzYXJpbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTkxMQoKMjAxMS0xMi0xMyAxMTo0Mjo0MCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGZpeCBmb3JtYXQgc3BlY2lmaWVyIHNpZ25lZG5lc3MKCSAgVXNlIHVuc2lnbmVkIHNwZWNpZmllcnMgZm9yIGFsbCB1bnNpZ25lZCB2YWx1ZXMuCgkgIEEgbG90IG9mIHRoZSB2YWx1ZXMgdXNlZCBoZXJlIGFyZSB1bnNpZ25lZCwgYW5kIHNvbWUgY2FuIHRha2UKCSAgaGlnaCBlbm91Z2ggdmFsdWVzIHRoYXQgdGhlaXIgc2lnbmVkIGNvdW50ZXJwYXJ0IHdpbGwgYmUgbmVnYXRpdmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU5MTEKCjIwMTEtMTItMTIgMTY6NDk6MTkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICB3YXZwYXJzZTogYWRkIGEgaWdub3JlLWxlbmd0aCBwcm9wZXJ0eQoJICBUaGlzIGFsbG93cyBwbGF5aW5nIGJyb2tlbiBzdHJlYW1zIHdoaWNoIHdyaXRlIGFuIGluY29ycmVjdAoJICBsZW5ndGggaW4gdGhlaXIgZGF0YSBjaHVua3MgKHN1Y2ggYXMsIGF0IGxlYXN0LCBvbmUgc3RyZWFtaW5nCgkgIGNhbWVyYSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU5MTEKCjIwMTEtMTItMTIgMTE6NTQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LWxpYnMvZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgZ2xpYi1jb21wYXQ6IEFkZCBsaWNlbnNlIGJvaWxlcnBsYXRlIGZvciBMR1BMCgoyMDExLTEyLTEyIDE1OjE1OjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBtaW5kICh1bilzaWduZWQgaW4gc29tZSB0aW1lc3RhbXAgYXJpdGhtZXRpYwoJICAuLi4gdG8gYXZvaWQgZW5kaW5nIHVwIHdpdGggaW52YWxpZCAobmVnYXRpdmUpIGR1cmF0aW9uLgoKMjAxMS0wMi0wOSAxNTozMToyMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogaW5jcmVhc2UgcGFyc2UgdG9sZXJhbmNlIGZvciBmdXp6eSBmaWxlIGNhc2VzCgoyMDExLTEyLTEyIDEwOjM4OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBidWlsZDogZGlzdCBnbGliLWNvbXBhdC1wcml2YXRlLmggcHJvcGVybHkKCSAgQWRkIG1pc3Npbmcgc2xhc2guCgoyMDExLTEyLTEyIDEwOjE4OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6CgkgIHRlc3RzOiB1c2UgYXRleGl0LCBnX2F0ZXhpdCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGdsaWIgbWFzdGVyCgoyMDExLTEyLTEyIDAyOjUyOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG1vb3ZyZWNvdmVyLmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIFN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGluIHNlbGVjdGVkIGZpbGVzLCBmb3IgZ19zdGF0aWNfcmVjX211dGV4XyogbW9zdGx5CgkgIEdTdGF0aWNSZWNNdXRleCBpcyBwYXJ0IG9mIG91ciBBUEkvQUJJLCBub3QgbXVjaCB3ZSBjYW4gZG8gaGVyZQoJICBpbiAwLjEwIGZvciBtb3N0IG9mIHRoZXNlLgoKMjAxMS0xMi0xMiAwMjo0MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJKiB0ZXN0cy9pY2xlcy9lcXVhbGl6ZXItdGVzdC5jOgoJKiB0ZXN0cy9pY2xlcy9nZGtwaXhidWZzaW5rLXRlc3QuYzoKCSogdGVzdHMvaWNsZXMvdGVzdC1vc3M0LmM6CgkqIHRlc3RzL2ljbGVzL3ZpZGVvY3JvcC10ZXN0LmM6CgkgIHRlc3RzOiBnX3RocmVhZF9pbml0KCkgaXMgZGVwcmVjYXRlZCBpbiBnbGliIG1hc3RlcgoJICBJdCdzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTEtMTItMTIgMDI6Mzg6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBjbGllbnRzaW5rLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogc3lzL29zczQvb3NzNC1taXhlci5jOgoJKiB0ZXN0cy9pY2xlcy92NGwyc3JjLXRlc3QuYzoKCSAgVXNlIGdfdGhyZWFkX3RyeV9uZXcoKSBpbnN0ZWFkIG9mIGdfdGhyZWFkX2NyYXRlKCkgd2l0aCBuZXdlciBnbGliIHZlcnNpb25zCgoyMDExLTEyLTEyIDAyOjMxOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuaDoKCSAgYWxwaGE6IHVzZSBuZXcgZ2xpYiBBUEkgZm9yIHN0YXRpYyBtdXRleCBpZiBhdmFpbGFibGUKCjIwMTEtMTItMTIgMDI6MzA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb2NsaWVudC5jOgoJKiBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYzoKCSogZ3N0LWxpYnMvZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIFdvcmsgYXJvdW5kIGRlcHJlY2F0ZWQgdGhyZWFkIEFQSSBpbiBnbGliIG1hc3RlcgoJICBBZGQgcHJpdmF0ZSByZXBsYWNlbWVudHMgZm9yIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19tdXRleF9uZXcoKSwgZ19tdXRleF9mcmVlKCksIGdfY29uZF9uZXcoKSBldGMuLCBtb3N0bHkKCSAgdG8gYXZvaWQgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBXZSdsbCBjaGFuZ2UgdGhlc2UKCSAgb3ZlciB0byB0aGUgbmV3IEFQSSBvbmNlIHdlIGRlcGVuZCBvbiBnbGliID49IDIuMzIuCgoyMDExLTEyLTEyIDEwOjI0OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBSZXF1aXJlIEdMaWIgPj0gMi4yNAoJICBBbGwgb3RoZXIgbW9kdWxlcyByZXF1aXJlIHRoaXMgYWxyZWFkeSBhbmQgbm9ib2R5IGlzIHRlc3Rpbmcgd2l0aAoJICBvbGRlciB2ZXJzaW9ucyBhbnl3YXkuCgoyMDExLTEyLTExIDE4OjQwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSAgZ2RrcGl4YnVmc2luazogZml4IGludmVydGVkIHBpeGVsLWFzcGVjdC1yYXRpbwoJICBTcG90dGVkIGJ5IE1pa2UgTW9ycmlzb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4ODIKCjIwMTEtMTItMTEgMTc6NTU6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBkb24ndCBsZWFrIHBhZCB0ZW1wbGF0ZQoKMjAxMS0xMi0xMCAxNDo0ODo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYzoKCSAgc291cDogZml4IHN0YXJ0L3N0b3AgcmFjZSBpbiBzb3VwaHR0cGNsaWVudHNpbmsKCSAgRml4IGNyYXNoIG9yIGhhbmcgaW4gZ2VuZXJpYy9zdGF0ZXMgdW5pdCB0ZXN0IHdoZW4gZG9pbmcgc3RvcCgpCgkgIHJpZ2h0IGFmdGVyIHN0YXJ0KCkuIENyZWF0ZSBtYWluIGxvb3AgaW4gdGhlIHN0YXJ0IGZ1bmN0aW9uIGFscmVhZHkKCSAgYW5kIG5vdCBqdXN0IGluIHRoZSB0aHJlYWQgZnVuY3Rpb24sIHNvIHRoYXQgc3RvcCgpIGFsd2F5cyBoYXMgYQoJICB2YWxpZCBtYWluIGxvb3AgdG8gcXVpdCBvbi4gQWxzbywgY2FsbGluZyBnX21haW5fbG9vcF9xdWl0KCkgYmVmb3JlCgkgIGdfbWFpbl9sb29wX3J1bigpIHdvbid0IHdvcmsgYW5kIHJlc3VsdCBpbiB0aGUgc3RvcCBmdW5jdGlvbiB3YWl0aW5nCgkgIGZvciB0aGUgdGhyZWFkIHRvIGpvaW4gZm9yZXZlci4gVGhlcmVmb3JlLCB3YWl0IGZvciB0aGUgdGhyZWFkIHRvCgkgIGJlIHJlYWR5IGFuZCBnZXQgdGhlIG1haW4gbG9vcCBydW5uaW5nIGluIHRoZSBzdGFydCgpIGZ1bmN0aW9uLCB0bwoJICBiZSBzdXJlIHN0b3AoKSBhbHdheXMgd29ya3MuCgoyMDExLTEyLTEwIDEzOjM1OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ZpbGVzL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZGlzdCB0ZXN0IGZpbGUgdXNlZCBpbiBtYXRyb3NrYXBhcnNlIHVuaXQgdGVzdAoKMjAxMS0xMi0xMCAxMjozMjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ3ZvbHVtZS5jOgoJICB0ZXN0czogZml4IHVwIHJndm9sdW1lIHRlc3QgZm9yIGJhc2V0cmFuc2Zvcm0gZXZlbnQgY2FjaGluZwoJICBTb21lIHRlc3RzIGFzc3VtZWQgdGhhdCB0YWcgZXZlbnRzIHdvdWxkIGFsd2F5cyBwdXNoZWQgdGhyb3VnaAoJICBpbW1lZGlhdGVseSwgd2hpY2ggaXNuJ3QgdGhlIGNhc2UgYW55IGxvbmdlciwgc28gcHVzaCBhIG5ld3NlZ21lbnQKCSAgZXZlbnQgYW5kIGFuIGVtcHR5IGJ1ZmZlciBmaXJzdC4KCjIwMTEtMTItMTAgMTE6MTI6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgc3NyY2RlbXV4OiBmaXggaXRlcmF0b3IgYW5kIGNhcHMKCjIwMTEtMTItMTAgMTE6MTE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IGZvcndhcmQgdGhlIGNhcHMgZXZlbnQKCjIwMTEtMTItMTAgMTE6MDk6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBzaW1wbHkgZm9yd2FyZCB0aGUgY2FwcyBldmVudAoJICBmb3J3YXJkIHRoZSBjYXBzIGV2ZW50IHdlIGdldCBhcyBpbnB1dCBpbnN0ZWFkIG9mIG1ha2luZyBhIG5ldyBldmVudCBldGMuLgoKMjAxMS0xMi0wOSAyMDoxMDoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogZm9yd2FyZCBjYXBzCgoyMDExLTEyLTA5IDE5OjQ2OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHA6IHBhc3MgcGFyZW50IHRvIHNldGNhcHMgbWV0aG9kcwoKMjAxMS0xMi0xMCAwMjoyMTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lby5wbzoKCSogcG8vamEucG86CgkqIHBvL2x2LnBvOgoJKiBwby9zci5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMTItMDkgMTY6MDQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2U6IHJlbmFtZSAiY2xpZW50IiBwcm9wZXJ0aWVzIHRvICJjbGllbnQtbmFtZSIKCSAgQmV0dGVyIG5hbWUsIGJ1dCBhbHNvIG1hdGNoZXMgdGhlIHByb3BlcnR5IG9uIHRoZSBqYWNrCgkgIGVsZW1lbnRzICh3aGVyZSAiY2xpZW50IiBpcyB1c2VkIGZvciBzb21ldGhpbmcgZWxzZSkuCgoyMDExLTEyLTA5IDE1OjUwOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IGRvbid0IGxlYWsgY2xpZW50IG5hbWUgd2hlbiBmcmVlaW5nIHRoZSBlbGVtZW50CgkgIEFuZCBhZGQgZ3RrLWRvYyBjaHVua3MgZm9yIHRoZSBuZXcgcHJvcGVydHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4NzIKCjIwMTEtMTItMDkgMTU6NDU6MDMgKzAwMDAgIE5pY29sYXMgQmFyb24gPGhvZ2dpbnNAcmFkaW9tLmZyPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmg6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuaDoKCSAgamFjazogYWRkICJjbGllbnQtbmFtZSIgcHJvcGVydHkgdG8gamFja2F1ZGlvc2luayBhbmQgamFja2F1ZGlvc3JjCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4NzIKCjIwMTEtMTItMDkgMTI6MTk6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2xhdy9NYWtlZmlsZS5hbToKCSAgbGF3OiBmaXggQ0ZMQUdTIGFuZCBMSUJTIG9yZGVyIGluIE1ha2VmaWxlLmFtCgoyMDExLTEyLTA5IDEyOjE1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0wOSAxMDo1MToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmxpc3Q6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwOiBmaXggbWFyc2hhbGxlcnMKCSAgUmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVycyBmb3IgbWlub2JqZWN0LgoJICBJbml0IFJUQ1AgYnVmZmVyIGNvcnJlY3RseS4KCSAgSGFuZGxlIHJlc3VsdHMgZnJvbSBzZXRjYXBzCgkgIFJlbW92ZSBhc3NlcnRzLgoKMjAxMS0xMi0wOSAxMDo1MDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9sYXcvTWFrZWZpbGUuYW06CgkqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOgoJKiBnc3QvbGF3L2FsYXcuYzoKCSogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzoKCSAgbGF3OiBmaXggbmVnb3RpYXRpb24KCjIwMTEtMTItMDggMTE6MDA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogc3RyZWFtLWZvcm1hdD1yYXcgZ29lcyB3aXRoIGFhYyBjYXBzLCBub3QgbXAzIGNhcHMKCjIwMTEtMTItMDggMDE6Mjg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jCgoyMDExLTEyLTAyIDEyOjA3OjI0ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMnNyYzogZG8gbm90IGlnbm9yZSB0aGUgaGlnaGVzdCBmcmFtZSBpbnRlcnZhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mzg3CgoyMDExLTEyLTAyIDExOjU5OjAzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMnNyYzogZG8gbm90IGlnbm9yZSB0aGUgbGFyZ2VzdCByZXNvbHV0aW9uCgkgIFRoZSAnbWF4JyB2YWx1ZSBpc24ndCBhbiBTVEwgc3R5bGUgIm9uZSBhZnRlciB0aGUgZW5kIiBib3VuZCwKCSAgYnV0IHRoZSBsYXJnZXN0IGFsbG93ZWQgdmFsdWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzODcKCjIwMTEtMTItMDYgMTY6NDc6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuaDoKCSAgZG9jczogYWRkIGFkZCB0aGUgdHdvIGVudW0gdmFsdWVzIHRoYXQgd2VyZSBqdXN0IGFkZGVkIHRvbwoKMjAxMS0xMi0wNiAxNjoxNDo1NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuaDoKCSAgbXVsdGlmaWxlc2luazogZXhwb3NlIHRoZSBlbnVtIHByb3BlcnR5IGRvY3MgZm9yIHNwbGl0dGluZyBtb2RlLgoJICBGaXhlcyAjNjY1NjY2LgoKMjAxMS0xMi0wNiAxNDoyMzozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJICBoMjYzcGF5OiBmaXggaW52YWxpZCByZXR1cm4gdmFsdWUKCjIwMTEtMTItMDYgMTM6NTk6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHJlbW92ZSB1bnVzZWQgZmx1c2ggcGFyYW0KCjIwMTEtMTItMDUgMTg6NDA6MjYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2lzb21wNC9nc3RydHB4cXRkZXBheS5jOgoJICBydHB4cXRkZXBheTogSW5pdGlhbGl6ZSBHc3RSVFBCdWZmZXIgYmVmb3JlIHVzYWdlCgoyMDExLTEyLTA1IDE4OjQwOjEyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBydHBtYW5hZ2VyOiBJbml0aWFsaXplIEdzdFJUUEJ1ZmZlciBiZWZvcmUgdXNhZ2UKCjIwMTEtMTItMDUgMTg6Mzk6NTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWNlbHBkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHJ0cDogSW5pdGlhbGl6ZSBHc3RSVFBCdWZmZXIgYmVmb3JlIHVzYWdlCgoyMDExLTEyLTA1IDEyOjE1OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogcmVwbGFjZSBkZXByZWNhdGVkIEdTVF9DTEFTU19MT0NLCgoyMDExLTExLTI0IDEzOjU4OjAxICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJICBydHBqcGVncGF5OiBDZWlsIGpwZWcgZGltZW5zaW9ucywgaW5zdGVhZCBvZiBmbG9vcgoJICBBIEpQRUcgaW1hZ2UgaW5zaWRlIGFuIFJUUCBzdHJlYW0gaGFzIGEgcHJlY2VlZGluZyBSRkMyNDM1IGhlYWRlciB0aGF0CgkgIGNvbnZleXMgd2lkdGgvaGVpZ2h0LiBUaGUgZGltZW5zaW9ucyBpbiB0aGlzIGhlYWRlciBhcmUgbGltaXRlZCB0byBiZQoJICBtdWx0aXBsZXMgb2YgOC4gU2luY2UgSlBFRyB1c2VzIGFuIE1DVSBvZiA4eDggcGl4ZWxzIGFueSBpbWFnZSBtdXN0CgkgIGFscmVhZHkgaW5kaXJlY3RseSBoYXZlIGltYWdlIGRhdGEgZGltZW5zaW9ucyB0aGF0IGFyZSByb3VuZGVkIHVwIGluCgkgIG9yZGVyIHRvIGNvbnRhaW4gZW5vdWdoIGRhdGEgdG8gcmVuZGVyIHRoZSBpbWFnZS4gVGhlcmVmb3JlIHRoaXMgZml4CgkgIHNhZmVseSByb3VuZHMgdGhlIGltYWdlIGRpbWVuc2lvbnMgaW4gdGhlIFJGQzI0MzUgaGVhZGVyIHVwIHRvIHRoZQoJICBjbG9zZXN0IG11bHRpcGxlIG9mIDguCgoyMDExLTEyLTA0IDEyOjUwOjU3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmg6CgkgIGZsYWNwYXJzZTogZW5zdXJlIHdlIG9ubHkgY2hlY2sgZm9yIHNhbXBsZS9ibG9jayBtaXh1cCBhdCBzdGFydAoJICBPdGhlcndpc2Ugd2UgbWlnaHQgdHJpZ2dlciBhdCBzb21lIHBvaW50IHdpdGhpbiB0aGUgZmlsZSwgYnV0IHRoZQoJICBjaGVjayBpcyBvbmx5IG1ha2luZyBzZW5zZSBmb3IgdGhlIHNlY29uZCBibG9jay4KCjIwMTEtMTItMDMgMTg6MTQ6NTkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkgIG1hdHJvc2thcGFyc2U6IHdhcm4gaWYgYWNjdW11bGF0aW5nIGhlYWRlcnMgYWZ0ZXIgdGhleSB3ZXJlIHB1c2hlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1NDEyCgoyMDExLTEwLTI1IDEyOjU0OjQzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJICBtYXRyb3NrYXBhcnNlOiBmaXggcGFyc2luZwoJICBNYXJrIG1vcmUgcGFydHMgYXMgYmVsb25naW5nIHRvIHN0cmVhbWhlYWRlcnMuCgoyMDExLTEyLTAzIDE3OjMwOjEwICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IGZpeCBkaXNjb250aW51aXR5IHRocmVzaG9sZCBjaGVjayB3aGVuIHRpbWVzdGFtcHMgZ28gYmFja3dhcmRzCgkgIFNpbmNlIHVuc2lnbmVkIHR5cGVzIGFyZSB1c2VkLCBhIG5lZ2F0aXZlIHZhbHVlIHdvdWxkIHNob3cgYXMgdmVyeSwgdmVyeQoJICBwb3NpdGl2ZS4KCSAgRml4ZXMgQS9WIHN5bmMgb24gc29tZS4uLiBsZXNzIHRoYW4gd2VsbCBtYWRlIGZpbGVzIHdoZXJlIHRpbWVzdGFtcHMgZ28KCSAgYmFja3dhcmRzLgoKMjAxMS0xMi0wMiAyMjoyNToxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwY2xpZW50c2luay5jOgoJKiBnc3QvZGVidWd1dGlscy90ZXN0cGx1Z2luLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICB1cGRhdGUgZm9yIGJhc2VzaW5rIGV2ZW50IGhhbmRsZXIgY2hhbmdlcwoKMjAxMS0xMi0wMiAxMjowMToyMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDJzcmM6IGFkZCBhIGNvbW1lbnQgYWJvdXQgYSAiaGlkZGVuIiBhc3N1bXB0aW9uIG9uIHJhbmsgdmFsdWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzODcKCjIwMTEtMTItMDIgMDE6NTg6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbAoJICBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYwoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmMKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmMKCjIwMTEtMTItMDEgMTg6NTU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM2RlbXV4LmM6CgkgIHVwZGF0ZSBmb3IgdGFnIEFQSSBjaGFuZ2VzCgoyMDExLTEyLTAxIDE1OjI5OjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBwbGFjYXRlIGdjYyBzaW5jZSAtV2Vycm9yIGlzIHVzZWQKCSAgSW5pdGlhbGl6ZSB2YWx1ZXMgdGhhdCBHQ0MgY2Fubm90IHByb3ZlIGFyZSBub3QgdXNlZCB3aXRob3V0CgkgIGJlaW5nIGluaXRpYWxpemVkLCBhbmQgYXNzZXJ0IHRoYXQgSSBkaWQgbm90IG1lc3MgdXAgbXkgcHJvb2YuCgoyMDExLTEyLTAxIDE0OjEzOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZml4IHVwIExJQlMgb3JkZXIgc29tIG1vcmVgCgoyMDExLTEyLTAxIDEzOjIyOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2EtbXV4OiBmaXggbmFtZSBvZiBuZXcgcHJvcGVydHkgYW5kIHRoZSB1bml0IHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDM3OQoKMjAxMS0wOS0yNSAxNDo1Nzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgbXVsdGlmaWxlc2luazogYWRkIGJhc2ljIGJ1ZmZlciBsaXN0IGhhbmRsaW5nCgkgIFdlIGFzc3VtZSBmb3Igbm93IHRoYXQgYWxsIGJ1ZmZlcnMgaW4gYSBidWZmZXIgbGlzdAoJICBzaG91bGQgZW5kIHVwIGluIHRoZSBzYW1lIGZpbGUgKHNvIHdlIGNhbiBncm91cCBHT1BzCgkgIGluIGJ1ZmZlciBsaXN0cywgZm9yIGV4YW1wbGUpLiBDb3VsZCBvcHRpbWlzZSB0aGlzCgkgIGEgYml0IHRvIGF2b2lkIHRoZSBtZW1jcHkuCgoyMDExLTA5LTIzIDE4OjQzOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICBtdWx0aWZpbGVzaW5rOiB3cml0ZSBzdHJlYW0taGVhZGVycyB3aGVuIHN3aXRjaGluZyB0byB0aGUgbmV4dCBmaWxlIGluIG1heC1zaXplIG1vZGUKCjIwMTEtMDktMjMgMTg6MzE6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5oOgoJICBtdWx0aWZpbGVzaW5rOiBhZGQgbmV3ICdtYXgtc2l6ZScgbW9kZSBmb3Igc3dpdGNoaW5nIHRvIHRoZSBuZXh0IGZpbGUKCjIwMTEtMDktMjMgMTc6NDk6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5oOgoJICBtdWx0aWZpbGVzaW5rOiBhZGQgIm1heC1maWxlLXNpemUiIHByb3BlcnR5IGZvciBuZXcgbmV4dC1maWxlIG1vZGUKCjIwMTEtMTItMDEgMTM6Mzg6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IERvbid0IGZvcmdldCBTU0Egc3VidGl0bGVzIGluIGxhc3QgY29tbWl0CgoyMDExLTEyLTAxIDEzOjM0OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgIG1hdHJvc2thZGVtdXg6IE9ubHkgY2hlY2sgZm9yIG1hcmt1cCBhbmQgZXNjYXBlIGlmIG5lY2Vzc2FyeSBmb3IgcGxhaW50ZXh0IHN1YnRpdGxlcwoJICBPdGhlcndpc2Ugd2UgYnJlYWsgVVNGIGFuZCBBU1MvU1NBIHN1YnRpdGxlcy4KCjIwMTEtMTItMDEgMTM6MjM6MzMgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L211bHRpZmlsZS9NYWtlZmlsZS5hbToKCSAgbXVsdGlmaWxlOiBmaXggYnVpbGQgaW4gdW5pbnN0YWxsZWQgc2V0dXAKCSAgQWRkIC1iYXNlIGxpYnMgaW5jbHVkZXMgdG8gQ0ZMQUdTLCBmaXggb3JkZXIgb2YgTElCUyA8Y2l0Pi4KCjIwMTEtMTItMDEgMTM6MDg6MDEgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlmaWxlLmM6CgkgIHRlc3RzOiBmaXggZ19ta2R0ZW1wIHByZXNlbmNlIGNoZWNrIGluIG11bHRpZmlsZSB0ZXN0cwoJICBnX21rZHRlbXAgd2FzIGFkZGVkIGluIGdsaWIgMi4zMCBldmVuIHRob3VnaCB0aGUgZG9jIGNsYWltcyBpdCB3YXMgYWRkZWQgaW4KCSAgMi4yNi4KCjIwMTEtMDctMTcgMjM6NTY6MDQgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L211bHRpZmlsZS9NYWtlZmlsZS5hbToKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlmaWxlLmM6CgkgIG11bHRpZmlsZXNpbms6IGFkZCBmbGFnIHRvIGN1dCBhZnRlciBhIGZvcmNlIGtleSB1bml0IGV2ZW50CgoyMDExLTEyLTAxIDEyOjQ3OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBDb3B5IGFsbCBidWZmZXIgZmxhZ3Mgd2hlbiBjcmVhdGluZyBhIHN1YnRpdGxlIGJ1ZmZlciBjb3B5IGFmdGVyIHBvc3Rwcm9jZXNzaW5nCgkgIFRoaXMgYWxzbyBjb3BpZXMgdGhlIGNhcHMuIE90aGVyd2lzZSB3ZSBjb3VsZCBlbmQgdXAgcHVzaW5nCgkgIHRoZSBmaXJzdCBidWZmZXIgd2l0aG91dCBhbnkgY2Fwcywgd2hpY2ggY2F1c2VzIGRvd25zdHJlYW0KCSAgdG8gbm90IGdldCBub3RpZmllZCBhYm91dCB0aGUgY2Fwcy4KCSAgRml4ZXMgYnVnICM2NjQ4OTIuCgoyMDExLTEwLTExIDAyOjA3OjEzICswMjAwICBBbGV4ZXkgRmlzaGVyIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBtYWtlIGRlZmF1bHQgZnJhbWVyYXRlIG9wdGlvbmFsIHBlciBzdHJlYW0KCSAgdGhlcmUgaXMgYXQgbGVhc3QgdHdvIHVzZSBjYXNlcyB3aGVyZSBkZWZhdWx0IGZyYW1lIHJhdGUKCSAgc2hvdWxkIG9yIG1heSBiZSBkaXNhYmxlZDoKCSAgLSB2cDggc3RyZWFtIHdpdGggYWx0cmVmIGZyYW1lIGVuYWJsZWQuIElmIGRlZmF1bHQgZnJhbWUgcmF0ZQoJICBpcyBlbmFibGVkLCBzb21lIHBsYXllcnMgd2lsbCBtaXNzaW50ZXJwcmV0ZSBpdCAoY3JpdGljYWwhKQoJICAtIGZvciB3ZWJtIGNvbnRhaW5lciwgdG8gcmVkdWNlIG1pY3JvIG92ZXJoZWFkCgkgIC0gZm9yIHN0cmVhbSB3aXRoIHZhcmlhYmxlIGZyYW1lIHJhdGUuCgkgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTEtMTEtMzAgMjI6MTM6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuYzoKCSAgcmlwcGxldHY6IGZpeCBDTEFNUCBlbmQtdmFsdWVzCgoyMDExLTExLTMwIDE5OjI1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pc29tcDQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMS0xMS0zMCAxOTowMDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlmaWxlL01ha2VmaWxlLmFtOgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlmaWxlL3BhdHRlcm5zcGVjLmM6CgkqIGdzdC9tdWx0aWZpbGUvcGF0dGVybnNwZWMuaDoKCSAgc3BsaXRmaWxlc3JjOiBzcGVjaWZ5IGZpbGVuYW1lcyB2aWEgbm9ybWFsIHdpbGRjYXJkcyBpbnN0ZWFkIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMKCSAgTGVzcyBjcmFja3Rhc3RpYyBpbiB0aGUgZW5kLgoKMjAxMS0xMC0xMCAxODoyODoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdHNwbGl0ZmlsZXNyYy5jOgoJICBzcGxpdGZpbGVzcmM6IGNoZWNrIGJ5dGVzIGFjdHVhbGx5IHJlYWQsIGp1c3QgaW4gY2FzZQoJICBIYW5kbGUgY29ybmVyIGNhc2Ugd2hlcmUgd2UgdHJ5IHRvIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlCgkgIGxhc3QgZmlsZSBwYXJ0LCBpbiB3aGljaCBjYXNlIHdlIHdhbnQgdG8gcmV0dXJuIGEgc2hvcnQgcmVhZC4KCSAgSWYgd2UgZ2V0IGZld2VyIGJ5dGVzIHRoYW4gZXhwZWN0ZWQgZm9yIGFueSBvdGhlciBmaWxlIHBhcnQsCgkgIHdlIHNob3VsZCBqdXN0IGVycm9yIG91dCwgc2luY2Ugc29tZXRoaW5nIGZpc2h5J3MgZ29pbmcgb24KCSAgdGhlbi4KCjIwMTEtMTAtMDYgMDg6MzM6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RzcGxpdGZpbGVzcmMuYzoKCSAgc3BsaXRmaWxlc3JjOiBzZXQgb2Zmc2V0cyBvbiBidWZmZXJzCgkgIExvb2tzIGxpa2Ugc29tZSBwYXJzZXJzIChpbiBzb21lIHZlcnNpb25zIGF0IGxlYXN0KSBleHBlY3QgdGhlCgkgIG9mZnNldHMgdG8gYmUgc2V0LCBhbmQgYmVoYXZlIHdlaXJkIGlmIHRoYXQncyBub3QgdGhlIGNhc2UKCSAgKGUuZy4gb2ZmLWJ5LW9uZSBpbiBoMjY0cGFyc2UpLgoKMjAxMS0wNy0yOCAyMDoxOTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9tdWx0aWZpbGUvTWFrZWZpbGUuYW06CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0c3BsaXRmaWxlc3JjLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0c3BsaXRmaWxlc3JjLmg6CgkgIG11bHRpZmlsZTogYWRkIHNwbGl0ZmlsZXNyYyBlbGVtZW50CgkgIEFkZCBuZXcgc3BsaXRmaWxlc3JjIGVsZW1lbnQgdGhhdCBwcmVzZW50cyBtdWx0aXBsZSBmaWxlcwoJICAoc2VsZWN0YWJsZSB2aWEgYSBsb2NhdGlvbiByZWdleCkgYXMgb25lIHNpbmdsZSBjb250aWd1b3VzCgkgIGZpbGUuCgoyMDExLTExLTMwIDA3OjU3OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmg6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHVwZGF0ZSBmb3IgbW92ZWQgYXVkaW8gaW50ZXJmYWNlcwoKMjAxMS0xMS0yOSAxNzozNDoxMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIFJldmVydCAicHVsc2VhdWRpb3Npbms6IGZpeCBjYXBzIGxlYWsiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDZhOWRlOWUyYWVkYzhiNjZhYjMyMTk5MDJiNWEzN2U4ZDY1YWRhMi4KCSAgc2V0Y2FwcyBmdW5jdGlvbnMgYXJlbid0IHN1cHBvc2VkIHRvIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBjYXBzIHBhc3NlZAoKMjAxMS0xMS0yOSAxOToxMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRlb292ZXJsYXkuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnZpZG9yaWVudC5oOgoJKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkgIGZpeCBmb3IgbW92ZWQgaW50ZXJmYWNlcwoKMjAxMS0xMS0yOCAyMToyNzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMjE6Mjc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgY29tbWl0ICdhMjMzN2I4YWY0NWNiNWU4YzA5MWZmMGUxYzNlZjRiNmNjN2IyMGEzJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMTg6MjU6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSAgVXBkYXRlIGZvciBpbmRleGFibGUgY2hhbmdlCgoyMDExLTExLTI4IDE3OjUyOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJICB1cGRhdGUgZm9yIGNsb2NrIHByb3ZpZGVyIEFQSSBjaGFuZ2UKCjIwMTEtMTEtMjggMTY6NTc6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIGZpeCBmb3IgZWxlbWVudCBmbGFnIHVwZGF0ZXMKCjIwMTEtMTEtMjggMTI6NTg6NDQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvb3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6CgkqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJKiBleHQvZHYvZ3N0ZHZkZWMuYzoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2VzZC9lc2Rtb24uYzoKCSogZXh0L2VzZC9lc2RzaW5rLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6CgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzcmMuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSogZXh0L2hhbC9nc3RoYWxhdWRpb3NpbmsuYzoKCSogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZXh0L2pwZWcvZ3N0c21va2VkZWMuYzoKCSogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzoKCSogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuYzoKCSogZXh0L2xpYm1uZy9nc3RtbmdkZWMuYzoKCSogZXh0L2xpYm1uZy9nc3RtbmdlbmMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzoKCSogZXh0L21pa21vZC9nc3RtaWttb2QuYzoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwY2xpZW50c2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGV4dC90YWdsaWIvZ3N0YXBldjJtdXguY2M6CgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkqIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4LmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzoKCSogZ3N0L2RlYnVndXRpbHMvYnJlYWtteWRhdGEuYzoKCSogZ3N0L2RlYnVndXRpbHMvY3B1cmVwb3J0LmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2VmZW5jZS5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RjYXBzZGVidWcuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZzZWVrLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHB1c2hmaWxlc3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RwbHVnaW4uYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5jOgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzdHJlYWsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2ZseC9nc3RmbHhkZWMuYzoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJKiBnc3QvZ29vbTJrMS9nc3Rnb29tLmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9nc3RydHB4cXRkZXBheS5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL3dlYm0tbXV4LmM6CgkqIGdzdC9tZWRpYW4vZ3N0bWVkaWFuLmM6CgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmM6CgkqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgdmFyaW91czogZml4IHBhZCB0ZW1wbGF0ZSBsZWFrcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjY0CgoyMDExLTExLTI4IDExOjQ3OjExICswMTAwICBDaGFkIDxjaGFubmFAY2FsdGVjaC5lZHU+CgoJKiBnc3QvZGVidWd1dGlscy9nc3R0YWdpbmplY3QuYzoKCSAgdGFnaW5qZWN0OiBzZXQgZ2FwLWF3YXJlCgkgIFRoZSBlbGVtZW50IGRvZXMgbm90IG1vZGlmeSB0aGUgZGF0YSBhbnl3YXkuCgoyMDExLTExLTI3IDIzOjMyOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgcG8gZmlsZXMKCjIwMTEtMTEtMjcgMjM6MzE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYwoKMjAxMS0xMS0yNiAyMTozOTozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogYWxzbyBzeW5jIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZmlsdGVyIGJhbmRzCgoyMDExLTExLTI2IDE2OjA2OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYzoKCSAgbWF0cm9za2FkZW11eDogaW5pdGlhbGlzZSBzZWVuX21hcmt1cF90YWcgZmllbGQgb24gc3VidGl0bGUgc3RyZWFtIGNvbnRleHQKCjIwMTEtMTEtMjYgMTA6MDE6MDcgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkqIGdzdC9tYXRyb3NrYS93ZWJtLW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOgoJICBtYXRyb3NrYTogcG9ydCB0byAwLjExCgkgIFN1cHBvcnQgZm9yIFRBR19JTUFHRSBhbmQgVEFHX0FUVEFDSE1FTlQgaXMgY29tbWVudGVkIG91dDsgdGhpcyByZXF1aXJlcyBjYXBzCgkgIG9uIGJ1ZmZlcnMgd2hpY2ggaXMgZ29uZSBmcm9tIDAuMTEuCgkgIFNlZ21lbnQgaGFuZGxpbmcgaW4gdGhlIGRlbXV4ZXIgaXMgYSBiaXQgY29tcGxleDsgSSBhZGRlZCBzb21lIEZJWE1FIGNvbW1lbnRzCgkgIGluIHBsYWNlcyB3aGVyZSBJJ20gbm90IHlldCBzdXJlIGlmIEkgcG9ydGVkIGNvcnJlY3RseS4KCjIwMTEtMTEtMjYgMTM6NTQ6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5oOgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuaDoKCSAgcHVsc2VhdWRpbzogcmVxdWlyZSBwdWxzZWF1ZGlvID49IDEuMAoKMjAxMS0xMS0yNiAxMzozNDoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYwoJICBleHQvcHVsc2UvcHVsc2VzcmMuYwoJICBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmMKCSAgZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jCgkgIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYwoJICBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jCgkgIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYwoJICBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmgKCSAgZ3N0L2VmZmVjdHYvZ3N0cmlwcGxlLmMKCSAgU29tZSBwb3NzaWJsZSBGSVhNRXMgcmVtYWluaW5nIGluIHRoZSBhdWRpbyBwYXJzZXIgZ2V0Y2FwcyBmdW5jdGlvbnMuCgoyMDExLTExLTI1IDE5OjI4OjU1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4bWFwLmM6CgkgIGlzbWxtdXg6IFVzZSBpc28tZnJhZ21lbnRlZCBhcyB2YXJpYW50IHR5cGUKCSAgVXNpbmcgJ2lzbycgY29uZmxpY3RzIHdpdGggbXA0bXV4IHZhcmlhbnQgdHlwZSwgaXNtbG11eCBub3cKCSAgdXNlcyBpc28tZnJhZ21lbnRlZAoJICBGaXhlcyAjNjU2ODIzCgoyMDExLTExLTI0IDEyOjA1OjMzICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuaDoKCSAgcHVsc2VzcmM6IEltcGxlbWVudCBHc3RTdHJlYW1Wb2x1bWUgaW50ZXJmYWNlCgkgIFB1bHNlQXVkaW8gMS4wIHN1cHBvcnRzIHBlci1zb3VyY2Utb3V0cHV0IHZvbHVtZXMsIGFuZCB0aGlzIGV4cG9zZXMgdGhlCgkgIGZ1bmN0aW9uYWxpdHkgdmlhIHRoZSBHc3RTdHJlYW1Wb2x1bWUgaW50ZXJmYWNlLgoJICBXaGVuIGNvbXBpbGVkIGFnYWluc3QgcHJlLTEuMCBQdWxzZUF1ZGlvLCB0aGUgaW50ZXJmYWNlIGlzIG5vdAoJICBpbXBsZW1lbnRlZCwgYW5kIHRoZSAidm9sdW1lIiBvciAibXV0ZSIgcHJvcGVydGllcyBhcmUgbm90IGF2YWlsYWJsZS4KCSAgVGhpcyBiaXQgb2YgdWdsaW5lc3Mgd2lsbCBnbyBhd2F5IHdoZW4gd2UgY2FuIGRlcGVuZCBvbiBQdWxzZUF1ZGlvIDEuMAoJICBvciBncmVhdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk1MDU1CgoyMDExLTA5LTEwIDIxOjIxOjM4IC0wNzAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogVHJpdmlhbCBjb21tZW50IGNvcHktcGFzdGUtbyBmaXgKCjIwMTEtMTEtMTQgMTI6NDM6MjcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBSZW1vdmUgcmVkdW5kYW50IGNvZGUKCjIwMTEtMTEtMTQgMTI6NDE6NDEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBDbGVhbiB1cCByZWZjb3VudGluZyBpbiBldmVudCBwcm9iZQoJICBNYWtlcyBzdXJlIHdlIGRvbid0IGxlYWsgYSByZWZjb3VudCBpZiB0aGUgb2JqZWN0IGlzIGRpc3Bvc2VkIGJlZm9yZSBhCgkgIE5FV1NFR01FTlQgdHVybnMgdXAuCgoyMDExLTExLTI0IDE2OjMxOjM4ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IGZpeCBzZWVraW5nCgkgIFdoaWNoIEkgYWNjaWRlbnRhbGx5IGJyb2tlIHdoZW4gZml4aW5nIGZsdiB2aWRlb3MgYnJlYWtpbmcgb24KCSAgc3B1cmlvdXMgdGltZXN0YW1wIGRpc2NvbnRpbnVpdGllcyBpbiBicm9rZW4gZmlsZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzE0MzAKCjIwMTEtMTEtMjUgMTM6MTM6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuaDoKCSAgZWZmZWN0djogcmVwYWlyIGNvbG9yIG1vZGVzIGluIHJhZGlvYWN0diBieSB0YWtpbmcgcmdiLGJnciBpbnRvIGFjY291bnQKCjIwMTEtMTEtMjUgMTE6NDQ6NDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkgIHJhZGlvYWN0djogYWRkIG9uZSBtb3JlIHNldCBvZiBjYXBzCgkgIEl0IGFsc28gd29yayBpbiB0aGlzIGZvcm1hdC4gQXZvaWRzIHRoZSBuZWVkIGZvciBjb252ZXJzaW9uLgoKMjAxMS0xMS0yNSAxMTo0NDoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJICBlZmZlY3R0djogZml4IHJldmVyc2UgbmVnb3RpYXRpb24KCSAgVGhlIHBsdWdpbnMgd2VyZSB1c2luZyBfZml4ZWRfY2Fwc18gYW5kIHRodXMgbm90IGFkanVzdGluZyB0byBuZXcgdXBzdHJlYW0KCSAgc2l6ZXMuIFNwb3R0ZWQgYnkgVGltIE3DvGxsZXIuCgoyMDExLTExLTI1IDExOjQzOjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5jOgoJICB3YXJwdHY6IHJlbW92ZSBub3QgbmVlZGVkIGlmZGVmCgoyMDExLTExLTI1IDEwOjE1OjM1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2VmZmVjdHYvZ3N0cmlwcGxlLmM6CgkgIHJpcHBsZXR2OiBjbGVhbiB1cCB0aGUgcmVuZGVyaW5nIGNvZGUgYSBiaXQKCSAgVGhpcyBpcyBjb3JycnVwdHMgdGhlIG1lbW95IHdoZW4gcmVzaXppbmcuIEFkZCBhIEZJWE1FIHRvIG1ha2UgaXQgcmVzaXplYWJsZQoJICBvbmNlIHRoYXQgaXMgc29sdmVkLgoKMjAxMS0xMS0yNCAyMTo0MTowMyArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FscGhhY29sb3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9hbXBsaWZ5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvY2hlYmJhbmQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGVibGltaXQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9keW5hbWljLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZWNoby5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2ludmVydC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNiYW5kLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNsaW1pdC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpc3VidGl0bGUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZGVjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxlbmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZXF1YWxpemVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ljeWRlbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2pwZWdlbmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcGFyc2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdsaW1pdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zcGVjdHJ1bS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy95NG1lbmMuYzoKCSAgdGVzdHM6IHVwZGF0ZSBmb3IgZ3N0Y2hlY2sgQVBJIGNoYW5nZQoKMjAxMS0xMS0yNCAyMDo0Mjo0OSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHN0cmVhay5jOgoJKiBnc3QvZWZmZWN0di9nc3R2ZXJ0aWdvLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSAgZWZmZWN0dHY6IGZpeCByZXZlcnNlIG5lZ290aWF0aW9uCgkgIFRoZSBwbHVnaW5zIHdlcmUgdXNpbmcgX2ZpeGVkX2NhcHNfIGFuZCB0aHVzIG5vdCBhZGp1c3RpbmcgdG8gbmV3IHVwc3RyZWFtCgkgIHNpemVzLiBTcG90dGVkIGJ5IFRpbSBNw7xsbGVyLgoKMjAxMS0xMS0yNCAxNDoxNDo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIG11bHRpZmlsZXNpbms6IEZpeCBsZWFrIG9mIGZpbGVuYW1lIHN0cmluZ3MKCSAgRG8gbm90IGZvcmdldCB0byBmcmVlIHRoZSBmaWxlbmFtZSBzdHJpbmdzIHdoZW4gZGVsZXRpbmcKCSAgdGhlIGxpc3Qgb2YgZmlsZXMuCgoyMDExLTExLTI0IDE0OjExOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzoKCSAgbXVsdGlmaWxlOiBmaXggYnVpbGQgb2YgdGVzdHMKCSAgVGVzdHMgZmFpbCB0byBidWlsZCBiZWNhdXNlIGdfbWtkdGVtcCBpcyBhdmFpbGFibGUgZnJvbSBnbGliIHNpbmNlCgkgIDIuMjYuCgkgIFRoaXMgcGF0Y2ggYWRkcyBhIGNvbmRpdGlvbiBhcm91bmQgdGhlIHJlZGVmaW5pdGlvbiBvZgoJICBnX21rZHRlbXAgb24gdGhlIHRlc3RzIHRvIG9ubHkgYnVpbGQgaXQgaWYgZ2xpYiBpcyBvbGRlciB0aGFuCgkgIDIuMjYuCgoyMDExLTA5LTI3IDE2OjQ5OjQ1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB3YXZwYXJzZTogc2tpcCBpZDMyIHRhZ3MKCSAgVGhpcyBhbGxvd3MgZGVjb2RpbmcgYXQgbGVhc3Qgb25lIHNhbXBsZSB3aGVyZSBzb21ldGhpbmcgaGFzCgkgIHN0dWZmZWQgc29tZSBJRDMgdGFnIGJlZm9yZSB0aGUgKHN1cHBvc2VkbHkgaW5pdGlhbCkgRk1UXCAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAyNDkKCjIwMTEtMTAtMzEgMTc6MDY6MTggKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJICBlZGdldHY6IHRyaXZpYWwgY29tbWVudCBmaXggZm9yIGNsYXJpdHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MTg0MQoKMjAxMS0xMC0zMSAxNzowNDoyMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkgIGVkZ2V0djogZG9uJ3QgbGVhdmUgYml0cyBvZiB0aGUgb3V0cHV0IGJ1ZmZlciB1bmluaXRpYWxpemVkCgkgIExldCdzIGluaXRpYWxpemUgdGhlbSB0byB6ZXJvLiBJdCBsb29rcyBhbHJpZ2h0LCBidXQgdGhlbiBpdAoJICBhbHNvIGxvb2tzIGFscmlnaHQgd2l0aCB2Mywgb3Igd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwaXhlbHMKCSAgZnJvbSB0aGUgc291cmNlLiBJIGRvbid0IGtub3cgd2hhdCB0aGUgb3JpZ2luYWwgaW50ZW50IHdvdWxkCgkgIGJlLCBhbmQgdGhlIG9yaWdpbmFsIGVmZmVjdHYgc291cmNlIGFsc28gaGFzIHRoaXMgYnVnL2ZlYXR1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjE4NDEKCjIwMTEtMTEtMjQgMTA6MjU6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgIGF1ZGlvcGFyc2U6IFVzZSB0aGUgc2lua3BhZCB0ZW1wbGF0ZSBjYXBzIGFzIGZhbGxiYWNrLCBub3QgdGhlIHNyY3BhZCBvbmVzCgoyMDExLTExLTI0IDA5OjU5OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgbXBlZ2F1ZGlvcGFyc2U6IEltcGxlbWVudCA6OmdldF9zaW5rX2NhcHMgdmZ1bmMgdG8gcHJvcGFnYXRlIGRvd25zdHJlYW0gY2FwcyBjb25zdHJhaW50cyB1cHN0cmVhbQoKMjAxMS0xMS0yNCAwOTo1Nzo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IEltcGxlbWVudCA6OmdldF9zaW5rX2NhcHMgdmZ1bmMgdG8gcHJvcGFnYXRlIGRvd25zdHJlYW0gY2FwcyBjb25zdHJhaW50cyB1cHN0cmVhbQoKMjAxMS0xMS0yNCAwOTo1NTo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkgIGRjYXBhcnNlOiBJbXBsZW1lbnQgOjpnZXRfc2lua19jYXBzIHZmdW5jIHRvIHByb3BhZ2F0ZSBkb3duc3RyZWFtIGNhcHMgY29uc3RyYWludHMgdXBzdHJlYW0KCjIwMTEtMTEtMjQgMDk6NTM6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJICBhbXJwYXJzZTogSW1wbGVtZW50IDo6Z2V0X3NpbmtfY2FwcyB2ZnVuYyB0byBwcm9wYWdhdGUgZG93bnN0cmVhbSBjYXBzIGNvbnN0cmFpbnRzIHVwc3RyZWFtCgoyMDExLTExLTI0IDA5OjQ5OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSAgYW1ycGFyc2U6IE1hcmsgc29tZSBtb3JlIGZ1bmN0aW9ucyBhcyBzdGF0aWMKCjIwMTEtMTEtMjQgMDk6NDg6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJICBhYzNwYXJzZTogSW1wbGVtZW50IDo6Z2V0X3NpbmtfY2FwcyB2ZnVuYyB0byBwcm9wYWdhdGUgZG93bnN0cmVhbSBjYXBzIGNvbnN0cmFpbnRzIHVwc3RyZWFtCgoyMDExLTExLTI0IDA5OjQ0OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IE1hcmsgc29tZSBmdW5jdGlvbnMgYXMgc3RhdGljIGFuZCByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwoKMjAxMS0xMS0yNCAwOTo0MzoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBJbXBsZW1lbnQgOjpnZXRfc2lua19jYXBzIHZmdW5jIHRvIHByb3BhZ2F0ZSBkb3duc3RyZWFtIGNhcHMgY29uc3RyYWludHMgdXBzdHJlYW0KCjIwMTEtMTEtMjQgMDE6NDg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc291cGh0dHBzcmMuYzoKCSAgdGVzdHM6IHVwZGF0ZSBzb3VwIHRlc3QgZm9yIHJlbW92ZWQgaXJhZGlvLW1vZGUgcHJvcGVydHkKCjIwMTEtMTEtMjQgMDE6NDU6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaDoKCSAgc291cGh0dHBzcmM6IGdldCByaWQgb2YgaXJhZGlvLSogcHJvcGVydGllcywgcG9zdCB0YWdzIGluc3RlYWQKCjIwMTEtMTEtMjQgMDE6NDA6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaDoKCSAgc291cGh0dHBzcmM6IGFsd2F5cyBzZW5kIGljZWNhc3QgcmVxdWVzdCBoZWFkZXIsIGRyb3AgaXJhZGlvLW1vZGUgcHJvcGVydHkKCSAgU2VydmVyIHNob3VsZCBpZ25vcmUgdW5rbm93bi91bmhhbmRsZWQgaGVhZGVycy4uCgoyMDExLTExLTI0IDAxOjE5OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBtYWtlIGNvbm5lY3Rpb24tc3BlZWQgcHJvcGVydHkgYSBndWludDY0CgoyMDExLTExLTI0IDAwOjUyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwbWFuYWdlci54bWw6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBtYW5hZ2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuYzoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1QQ01BLnB5OgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWFsc2FzcmMtUENNQS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWFsc2FzcmMtUENNQS5weToKCSAgcnRwbWFuYWdlcjogcmVuYW1lIGdzdHJ0cCogLT4gcnRwKgoJICBUaGlzIHdhcyBkb25lIGluIDAuMTAgdG8gYXZvaWQgY29uZmxpY3Qgd2l0aCB0aGUgcnRwIGVsZW1lbnRzIGluCgkgIGZhcnNpZ2h0LCBidXQgdGhlIGdzdC1wcmVmaXhpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpbiAwLjExCgoyMDExLTExLTIzIDEwOjIzOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yMyAwOToyNjoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJICBwdWxzZWF1ZGlvc2luazogYXZvaWQgZW5kbGVzcyBjYXBzIGxvb3AKCSAgQ2hlY2sgaWYgdGhlIGNhcHMgYXJlIHRoZSBzYW1lIGJlZm9yZSBhZGRpbmcgYSBuZXcgcHJvYmUuIEJlY2F1c2Ugb2YgcmVjb25maWd1cmUKCSAgZXZlbnRzLCB1cHN0cmVhbXMgc2VuZHMgbXVsdGlwbGUgY2FwcyBldmVudHMuCgoyMDExLTExLTIzIDAwOjU3OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYXBhcnNlLmM6CgkqIHRlc3RzL2ZpbGVzL3Bpbmtub2lzZS12b3JiaXMubWt2OgoJICB0ZXN0czogYWRkIGJhc2ljIHVuaXQgdGVzdCBmb3IgbWF0cm9za2FwYXJzZQoKMjAxMS0xMS0yMyAwMDo1NjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSAgbWF0cm9za2FwYXJzZTogZG9uJ3QgbGVhayBzdHJlYW0gaGVhZGVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NTQ4CgoyMDExLTExLTIyIDAxOjQwOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIE1vcmUgcHJpbnRmIGZvcm1hdCB3YXJuaW5nIGZpeGVzCgoyMDExLTExLTIxIDIwOjMxOjMxICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOgoJKiBnc3QvZGVidWd1dGlscy9icmVha215ZGF0YS5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAxc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICBGaXggcHJpbnRmIGZvcm1hdCBjb21waWxlciB3YXJuaW5ncyBvbiBPUyBYIC8gNjRiaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MjYxNQoKMjAxMS0xMS0yMSAxMzozNzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHVwZGF0ZSBmb3IgYWN0aXZhdGlvbiBjaGFuZ2VzCgoyMDExLTExLTE4IDE3OjU5OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RwdXNoZmlsZXNyYy5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB1cGRhdGUgZm9yIG5ldyBzY2hlZHVsaW5nIHF1ZXJ5CgoyMDExLTExLTE4IDEzOjU3OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIGFkZCBwYXJlbnQgdG8gYWN0aXZhdGUgZnVuY3Rpb25zCgoyMDExLTExLTE3IDE3OjM2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGFjdGl2YXRlIHBhZCBiZWZvcmUgc2V0dGluZyBjYXBzCgkgIFNldGluZyBjYXBzIG9uIGFuIGluYWN0aXZlIGZsdXNoaW5nIHBhZCBkb2VzIG5vdGhpbmcuCgoyMDExLTExLTE3IDE3OjE3OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jCgkgIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYwoKMjAxMS0xMS0xNyAxNTowMjo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJKiBnc3QvcnRzcC9nc3RydHBkZWMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgYWRkIHBhcmVudCB0byBwYWQgZnVuY3Rpb25zCgoyMDExLTExLTE3IDA4OjI0OjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIGNvbGxlY3RwYWRzOiBwb3J0IEFQSSBjaGFuZ2VzCgoyMDExLTExLTE2IDE5OjA4OjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBzcGVleGVuYzogZW5zdXJlIHRvIGZyZWUgYWxsb2NhdGVkIHBhZGRlZCBkYXRhCgoyMDExLTExLTE2IDE4OjU3OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBzcGVleGVuYzogcmVzZXQgdGFnIHNldHRlciBpbnRlcmZhY2Ugd2hlbiBhcHByb3ByaWF0ZQoKMjAxMS0xMS0xNiAxODo1NzoyMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWNlbmM6IHJlc2V0IHRhZyBzZXR0ZXIgaW50ZXJmYWNlIHdoZW4gYXBwcm9wcmlhdGUKCjIwMTEtMTEtMTYgMTc6NTQ6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgYWRkIHBhcmVudCB0byBpbnRlcm5hbCBsaW5rcwoKMjAxMS0xMS0xNiAxNzoyNzoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0cHVzaGZpbGVzcmMuYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC92aWRlb2Nyb3AvZ3N0YXNwZWN0cmF0aW9jcm9wLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBhZGQgcGFyZW50IHRvIHF1ZXJ5IGZ1bmN0aW9uCgoyMDExLTExLTE2IDEyOjQwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiB1cGRhdGUgZm9yIHJlbmFtZWQgZmxhZ3MKCSAgVXNlIHRoZSBfY2hlY2tfcmVjb25maWd1cmUgbWV0aG9kIGluc3RlYWQgb2YgY2hlY2tpbmcgZmxhZ3MuCgkgIERvbid0IG5lZWQgdG8gcmVmIHRoZSBwYXJlbnQgYW55bW9yZSwgY29yZSBkb2VzIHRoYXQuCgoyMDExLTExLTE1IDE4OjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgX3F1ZXJ5X3BlZXJfKigpIC0+IF9wZWVyX3F1ZXJ5XyooKQoKMjAxMS0xMS0xNSAxNzo0NTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJICBfYWNjZXB0X2NhcHMoKSAtPiBfcXVlcnlfYWNjZXB0X2NhcHMoKQoKMjAxMS0xMS0xNSAxNzoyOTo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzoKCSogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgX3BlZXJfZ2V0X2NhcHMoKSAtPiBfcGVlcl9xdWVyeV9jYXBzKCkKCjIwMTEtMTEtMTUgMTY6NTU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHRlc3RzL2ljbGVzL2dka3BpeGJ1ZnNpbmstdGVzdC5jOgoJICB1cGRhdGUgZm9yIF9nZXRfY2FwcygpIC0+IF9xdWVyeV9jYXBzKCkKCjIwMTEtMTEtMTUgMTY6MzE6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC92aWRlb2Nyb3AvZ3N0YXNwZWN0cmF0aW9jcm9wLmM6CgkgIGNoYW5nZSBnZXRjYXBzIHRvIHF1ZXJ5CgkgIENoYWluIHVwIGV2ZW50IGZ1bmN0aW9uIGluIHBheWxvYWRlcnMuCgoyMDExLTExLTE1IDEzOjIzOjU2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogZml4IHNwdXJpb3VzIHRpbWVzdGFtcCBkaXNjb250aW51aXR5CgkgIFdlIG5lZWQgdG8gdGVsbCB0aGUgYmFzZSBjbGFzcyB0aGF0IHdlJ3JlIGRyb3BwaW5nIGJ1ZmZlcnMsCgkgIHNvIGl0IGRyb3BzIHRoZSBpbnB1dCB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UuCgkgIE90aGVyd2lzZSwgdGhlIGZpcnN0IGFjdHVhbCBhdWRpbyBidWZmZXJzIHdlIG91dHB1dCB3aWxsIGJlCgkgIHN0YW1wZWQgd2l0aCB0aG9zZSAtIEdTVF9DTE9DS19USU1FU1RBTVBfTk9ORS4gVGhhdCBtaXNtYXRjaAoJICBiZXR3ZWVuIGlucHV0IGJ1ZmZlciBjb3VudCBhbmQgb3V0cHV0IGJ1ZmZlciBjb3VudCB3aWxsIHN0YXkKCSAgd2hpbGUgcGxheWluZy4gV2l0aCBlbm91Z2ggaGVhZGVycyBhbmQgbG9uZyBlbm91Z2ggYnVmZmVyCgkgIGR1cmF0aW9ucywgdGhlIHNpbmsgd2lsbCBoYXZlIHBsYXllZCBlbm91Z2ggYmVmb3JlIHJlY2VpdmluZwoJICB0aGUgZmlyc3QgdmFsaWQgdGltZXN0YW1wICh1c3VhbGx5IDApLCBhbmQgd2lsbCB0cmlnZ2VyIGFuCgkgIGF1ZGlibGUgZGlzY29udGludWl0eS4KCjIwMTEtMTEtMTQgMTU6MzQ6NTcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuaDoKCSAgZmxhY3BhcnNlOiBkZXRlY3Qgd2hlbiBhIGZpbGUgbGllcyBhYm91dCBmaXhlZCBibG9jayBzaXplCgkgIElmIHRoZSBzYW1wbGUvYmxvY2sgbnVtYmVyIGhhcHBlbnMgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIGJsb2NrCgkgIHNpemUsIHdlIGFzc3VtZSB2YXJpYWJsZSBibG9jayBzaXplLCBhbmQgdGh1cyBjb3VudGVycyBpbiBzYW1wbGVzCgkgIGluIHRoZSBoZWFkZXJzLiBUaGlzIGNhbiBvbmx5IGdldCB1cyBhIGZhbHNlIHBvc2l0aXZlIGZvciBhIGJsb2NrCgkgIHNpemUgb2YgMSwgd2hpY2ggaXMgaW52YWxpZC4gV2UgY2FuIGdldCBmYWxzZSBuZWdhdGl2ZXMgbW9yZQoJICBvZnRlbiB0aG91Z2ggKGVnLCBpZiBub3Qgc3RhcnRpbmcgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJlYW0pLAoJICBidXQgdGhlbiB0aGF0J3MgYWxyZWFkeSBHSUdPLgoKMjAxMS0wOS0wMiAxOToyMDowNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgZ3N0cnRwc2Vzc2lvbjogQWRkIHNwZWNpYWwgbW9kZSB0byB1c2UgRklSIGFzIHJlcGFpciBhcyBHb29nbGUgZG9lcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NDE5CgoyMDExLTA5LTAxIDE3OjQ3OjM4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIHJ0cHNlc3Npb246IFNlbmQgRklSIHJlcXVlc3RzIGluIHJlc3BvbnNlIHRvIGtleSB1bml0IHJlcXVlc3RzIHdpdGggYWxsLWhlYWRlcnM9VFJVRQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NDE5CgoyMDExLTA5LTAxIDE2OjI1OjIxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIHJ0cHNlc3Npb246IFB1dCB0aGUgUExJIHJlcXVlc3RzIGluIGVhY2ggUlRQU291cmNlCgkgIEFsc28gcmVmYWN0b3IgYSBiaXQgYW5kIHB1dCBhbGwgdGhlIGtleWZyYW1lIHJlcXVlc3QgY29kZSBpbiBvbmUKCSAgcGxhY2UgaW5zaWRlIHJ0cHNlc3Npb24uYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NDE5CgoyMDExLTA4LTMxIDE0OjM1OjMzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBIYWNrIHRvIEZJUiBiZWNhdXNlIEdvb2dsZSBkb2Vzbid0IHNldCB0aGUgc2VuZGVyIHNzcmMgY29ycmVjdGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg0MTkKCjIwMTEtMDgtMzAgMTk6MDY6MTMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgcnRwc2Vzc2lvbjogUHJvY2VzcyByZWNlaXZlZCBGdWxsIEludHJhIFJlcXVlc3RzCgkgIFByb2Nlc3MgRklSIHJlcXVlc3RzIGFjY29yZGluZyB0byBSRkMgNTEwNAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NDE5CgoyMDExLTExLTA3IDE4OjQzOjI2ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogU2V0IHBpeGVsLWFzcGVjdC1yYXRpbyB0byAxLzEKCSAgV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgc2V0dGluZyB0aGUgcGl4ZWwtYXNwZWN0LXJhdGlvIGZyb20gVjRMMi4gU28KCSAgc2ltcGx5IHNldCBpdCB0byBiZSAxLzEgaW4gdGhlIGNhcHMgdG8gcHJldmVudCBuZWdvdGlhdGlvbiBmYWlsdXJlcyB3aGVuCgkgIGZpeGF0aW5nIHRvIHdlaXJkIHZhbHVlcyAoZS5nLiB3aGVuIHRoZSBkb3duc3RyZWFtIGNhcHMgaGFzCgkgIHBpeGVsLWFzcGVjdC1yYXRpbyA9IFsgTUlOLCBNQVggXSApCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjM1ODAKCjIwMTEtMTEtMTQgMDk6Mzk6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzZGVtdXguYzoKCSAgdGVzdHM6IG1ha2UgaWQzZGVtdXggdGVzdCBjb21waWxlCgkgIFN0aWxsIGZhaWxzIHRob3VnaC4KCjIwMTEtMTEtMTIgMTU6NDI6MjcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvc2hhcGV3aXBlLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9jYW1jdHJsLmM6CgkgIGNvbnRyb2xsZXI6IG5vIG5lZWQgdG8gZXhwbGljaXRlbHkgYWRkIGNvbnRyb2xsZWQgcHJvcGVydGllcyBhbnltb3JlCgoyMDExLTExLTEzIDIzOjQyOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHB1c2hmaWxlc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJyYWRpby5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIFVwZGF0ZSBmb3IgR3N0VVJJSGFuZGxlciBnZXRfcHJvdG9jb2xzKCkgY2hhbmdlcwoKMjAxMS0xMS0xMyAxODo1MDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RwdXNoZmlsZXNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwycmFkaW8uYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBzb3VwLCBwdXNoZmlsZSwgcnRzcCwgdWRwLCB2NGwyOiB1cGRhdGUgZm9yIEdzdFVSSUhhbmRsZXIgQVBJIGNoYW5nZXMKCjIwMTEtMTEtMTEgMTk6MjQ6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmMKCjIwMTEtMTEtMTEgMTk6MjE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwOiBmaXggZm9yIHJ0cCBoZWFkZXIgY2hhbmdlcwoKMjAxMS0xMS0xMSAxMDowNjoyNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBmaXggY2FwcyBsZWFrCgoyMDExLTExLTExIDE0OjU1OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBkbyBub3QgbGVhayBjbGllbnRuYW1lIHdoZW4gc2V0dGluZyB1cCBwcm9wZXJ0eQoKMjAxMS0xMS0xMSAxODowNTozNSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYzoKCSAgcHVsc2U6IENoYWluIHVwIGRpc3Bvc2UoKSBpbiBwdWxzZWF1ZGlvc2luawoKMjAxMS0xMS0xMSAxMjozMjo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cnRweHF0ZGVwYXkuaDoKCSogZ3N0L3J0cC9mbnYxaGFzaC5oOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhYzNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBidnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBkdmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzIyZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzIycGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzI5cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc3RkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzdHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMXNkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDRhcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcHZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBwY21hcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHFjZWxwZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVuZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5Lmg6CgkgIHVwZGF0ZSBmb3IgYmFzZSBjbGFzcyByZW5hbWUKCjIwMTEtMTEtMTEgMTI6MjU6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9pc29tcDQvZ3N0cnRweHF0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIycGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWNlbHBkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5kZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVucGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5Lmg6CgkgIHVwZGF0ZSBmb3IgYmFzZSBjbGFzcyByZW5hbWUKCjIwMTEtMTEtMTEgMTI6MDE6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgdXBkYXRlIGZvciBhdWRpb2Jhc2UqIHJlbmFtZQoKMjAxMS0xMS0xMSAxMTo1Mzo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5oOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmg6CgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIGF1ZGlvOiB1cGRhdGUgZm9yIGJhc2UgY2xhc3MgcmVuYW1lCgoyMDExLTExLTExIDExOjMzOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5oOgoJICBmaXggZm9yIHJpbmdidWZmZXIgcmVuYW1lCgoyMDExLTExLTExIDExOjI0OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSogZXh0L2phY2svZ3N0amFja3JpbmdidWZmZXIuaDoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJICB1cGRhdGUgZm9yIHJpbmdidWZmZXIgY2hhbmdlCgoyMDExLTExLTEwIDIzOjE1OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvc2hhcGV3aXBlL3NoYXBld2lwZS1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvY2FtY3RybC5jOgoJICBjb250cm9sbGVyOiBwb3J0IGFwaSBjaGFuZ2VzCgoyMDExLTExLTEwIDIzOjA5OjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2Fubm9kZXgvZ3N0YW5ub2RleC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlaWlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgdmFyaW91czogYWRkIG1pc3NpbmcgaW5jbHVkZXMKCjIwMTEtMTEtMTAgMjE6MzU6MjQgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZml4IGNvbXBpbGF0aW9uIHdpdGggcHVsc2VhdWRpbyAwLjkKCjIwMTEtMTEtMTAgMTg6MzI6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHVwZGF0ZSBmb3IgYWRhcHRlciBhcGkgY2hhbmdlcwoKMjAxMS0xMS0xMCAxNzoyMzo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHVwZGF0ZSBmb3IgY2hhbmdlZCBiYXNlIGNsYXNzZXMKCjIwMTEtMTEtMTAgMTM6NTA6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIGZpeCBmb3IgYXVkaW8gY2xvY2sgY2hhbmdlCgoyMDExLTExLTEwIDExOjAzOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHVwZGF0ZSBmb3IgcmVtb3ZlZCBmaXhhdGUgZnVuY3Rpb24KCjIwMTEtMTEtMDkgMTc6NDA6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTA5IDE3OjM4OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgdXBkYXRlcyBmb3IgbmV3IGFjY2VwdGNhcHMgcXVlcnkKCjIwMTEtMTEtMDggMTU6MzU6MjYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZml4IHdyb25nIHN0cmlkZSB3aGVuIGludmVydGluZyB1bmNvbXByZXNzZWQgdmlkZW8KCSAgU3VjaCBmcmFtZXMgaGF2ZSBhIHN0cmlkZSBtdWx0aXBsZSBvZiA0LCBzZWUKCSAgaHR0cDovL2xzY3ViZS5vcmcvcGlwZXJtYWlsL2ZmbXBlZy1pc3N1ZXMvMjAxMC1BcHJpbC8wMTAyNDcuaHRtbC4KCSAgVGhpcyBzaG93ZWQgdXAgb24gYSBzYW1wbGUgdXNpbmcgYSBvZGQgd2lkdGggb2YgMjQgYml0IHZpZGVvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMjg4CgoyMDExLTExLTA5IDEyOjI1OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJICBoMjYzcHBheTogcmVwb3J0IHRvIDAuMTEKCjIwMTEtMTEtMDkgMTI6MTg6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jCgkgIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmMKCSAgZ3N0L2lzb21wNC9xdGRlbXV4LmMKCjIwMTEtMTEtMDkgMTE6NTM6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHJlbW92ZSBxdWVyeSB0eXBlcwoKMjAxMS0xMS0wOSAxMDozMjowNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbWluaW1hbCBzYW5pdHkgY2hlY2sgb24gY3JlYXRpb24gZGF0ZXRpbWUKCjIwMTEtMTEtMDIgMTI6NTg6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkgIHJ0cGgyNjNwcGF5OiBSZXR1cm4gdGhlIHNpbmsgcGFkIHRlbXBsYXRlIGFzIHNpbmsgY2Fwcywgbm90IHRoZSBzcmMncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc3Nzg0CgoyMDA5LTAzLTE1IDE5OjI2OjQ4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkgIHJ0cGgyNjNwcGF5OiBBbHNvIGltcGxlbWVudCBzaXplL2ZyYW1lcmF0ZSByZXN0cmljdGlvbnMgaW4gZ2V0Y2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc3Nzg0CgoyMDA5LTAzLTA0IDIwOjUwOjE5IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkgIHJ0cGgyNjNwcGF5OiBJbXBsZW1lbnQgZ2V0Y2FwcyBmb2xsb3dpbmcgUkZDIDQ2MjksIHBpY2tzIHRoZSByaWdodCBhbm5leGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01Nzc3ODQKCjIwMTEtMTEtMDggMTQ6MzE6MzQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGFsc28gc2V0IHNlZ21lbnQgc3RvcCBhdCBzdGFydHVwIHJhdGhlciB0aGFuIG9ubHkgcG9zdCBzZWVrCgkgIC4uLiBzbyBhcyB0byBlbnN1cmUgY29uc2lzdGVudCBwbGF5YmFjayB3aXRoIG9yIHdpdGhvdXQgc2VlaywgZXNwZWNpYWxseQoJICBpbiBwcmVzZW5jZSBvZiBzb21lIGJvZ3VzIGVkaXQgbGlzdCBlbnRyaWVzLgoKMjAxMS0xMS0wOCAxMToxODowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHVwZGF0ZSBmb3IgcHJvYmUgYXBpIGNoYW5nZXMKCjIwMTEtMTEtMDggMDg6NTA6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkgIGdvb206IGNvZGUgY2xlYW51cHMKCSAgTW92ZSB2YXJpYWJsZXMgdG8gdGhlIHNjb3BlIHdoZXJlIHRoZXkgYXJlIG5lZWRlZC4gVXNlIG91ciBtYWNyb3MgYW5kIGZ1bmN0aW9ucwoJICBtb3JlLgoKMjAxMS0xMS0wOCAwODo0OTowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgZ29vbTogYWRkIGEgc2lua19xdWVyeSB0byBlYXQgYWxsb2NhdGlvbiBxdWVyaWVzCgkgIFdlIHNob3VsZCBub3QgZm9yd2FyZCBhbGxvY2F0aW9uIHF1ZXJpZXMgZm9yIGF1ZGlvIHRvIHRoZSB2aWRlbyBzaW5rLgoKMjAxMS0xMS0wMiAxNzowMjo1NCArMDAwMCAgUmF1bCBHdXRpZXJyZXogU2VnYWxlcyA8cmdzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkgIGdzdC9mbHYvOiBhZGQgYW1mZGVmcy5oIHRvIG5vaW5zdF9IRUFERVJTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjMzMzQKCjIwMTEtMTEtMDcgMTc6MTQ6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBmaXggZm9yIHByb2JlIHVwZGF0ZXMKCjIwMTEtMTAtMDMgMTc6NTA6NDMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkgIGZsdmRlbXV4OiBkZXRlY3QgbGFyZ2UgcHRzIGdhcHMgYW5kIHJlc3luYwoJICBTaG91bGQgd29yayBvbiBtdWx0aXBsZSBnYXBzLCBidXQgdGVzdGVkIG9uIG9ubHkgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMxNDMwCgoyMDExLTA4LTIyIDEwOjQwOjQ1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogZml4IG9mZiBieSBvbmUgYmV0d2VlbiBncmFucG9zIGFuZCBsYXN0X3N0b3AKCjIwMTEtMTAtMDcgMTk6NDE6MzUgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBmaXggbGFzdCBmcmFtZSB0aW1lc3RhbXAgaW4gZml4ZWQgYmxvY2sgc2l6ZSBtb2RlCgkgIFRoZSBsYXN0IGJsb2NrIG1heSBoYXZlIGEgZGlmZmVyZW50IGJsb2NrIHNpemUsIHNvIHdlIHNob3VsZCBub3QKCSAgdXNlIGl0IHRvIHNjYWxlIG9yIHdlJ2xsIGVuZCB1cCB3aXRoIGEgd3JvbmcgdGltZXN0YW1wLgoJICBTZWUgY29tbWVudCBhbmQgcXVvdGUgZnJvbSB0aGUgRkxBQyBmb3JtYXQgZG9jdW1lbnRhdGlvbiBpbiB0aGUgY29kZS4KCSAgRml4ZXMgbG9vcGVkIHBsYXliYWNrIG9mIEZMQUMgZmlsZXMgKHZpYSBhYm91dC10by1maW5pc2gpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYxMjE1CgoyMDExLTEwLTI3IDE1OjUyOjQ3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuaDoKCSAgY2Fpcm90ZXh0b3ZlcmxheTogYWRkIGEgJ3NpbGVudCcgcHJvcGVydHkgdG8gc2tpcCByZW5kZXJpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Mjg1NgoKMjAxMS0xMS0wNyAxMjowMDoxMiArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkgIG1hdHJvc2thbXV4OiBmaXggcmVncmVzc2lvbiBjYXVzaW5nIG1hbGZvcm1lZCBmaWxlcwoJICBUaGlzIHdhcyBjYXVzZWQgYnkgbWUgaW4gMWIyMTNkLiBJdCBzZWVtcyBJIHdhcyB0b28gZm9jdXNlZCBvbiAwLjExIHdoZW4gSSBkaWQKCSAgdGhpcyBhbmQgdGVzdGVkIHRoZSB3cm9uZyBicmFuY2guCgkgIFRoZSBwcm9ibGVtIHdhcyByZXBvcnRlZCBieSBBbGV4ZXkgRmlzaGVyLgoKMjAxMS0xMS0wNCAxODo0MTozNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuaDoKCSogZ3N0L2FscGhhL01ha2VmaWxlLmFtOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmg6CgkqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9lY2hvLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnguYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9paXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9pbnZlcnQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2xpbWl0LmM6CgkqIGdzdC9lZmZlY3R2L01ha2VmaWxlLmFtOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdG9wLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJpcHBsZS5jOgoJKiBnc3QvZWZmZWN0di9nc3R2ZXJ0aWdvLmM6CgkqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmg6CgkqIGdzdC9zaGFwZXdpcGUvTWFrZWZpbGUuYW06CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC9zbXB0ZS9NYWtlZmlsZS5hbToKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuYzoKCSogZ3N0L3ZpZGVvYm94L01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9wbHVnaW4uYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogc3lzL3Y0bDIvTWFrZWZpbGUuYW06CgkqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9zaGFwZXdpcGUtZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy92NGwyL2NhbWN0cmwuYzoKCSAgY29udHJvbGxlcjogcG9ydCB0byBuZXcgY29udHJvbGxlciBsb2NhdGlvbiBhbmQgYXBpCgoyMDExLTExLTA0IDE3OjM5OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBtb3JlIHRlbXBsYXRlIGZpeGVzCgoyMDExLTExLTA0IDE2OjIxOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBtb3JlIDAuMTEgZml4aW5nCgkgIE1ha2Ugc3VyZSB0aGUgY2FwcyBldmVudCBnZXRzIHRvIHRoZSBzaW5rLgoKMjAxMS0xMS0wNCAxNTozNTo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJICBwdWxzZWF1ZGlvc2luazogcG9ydCBzb21lIG1vcmUKCSAgUmVuYW1lIGRlY29kZWJpbjIgLT4gZGVjb2RlYmluIHNvbWUgbW9yZQoJICBDbGVhbnVwIHVwIHNpbmtwYWQgZXZlbnQgaGFuZGxpbmcKCjIwMTEtMTEtMDQgMTM6NTY6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYzoKCSAgcHVsc2VhdWRpb3Npbms6IHBvcnQgc29tZSBtb3JlIHRvIDAuMTEKCSAgV2UgbXVzdCBub3QgZm9yd2FyZCB0aGUgY2FwcyBldmVudC4gaW5zdGVhZCB3ZSB3aWxsIGRlY2lkZSB3aGF0IHRvIGRvIHdoZW4gdGhlCgkgIHBhZCBibG9jayBpcyB0YWtlbi4KCSAgVXNlIGRlY29kZWJpbiBpbnN0ZWFkIG9mIGRlY29kZWJpbjIKCjIwMTEtMTEtMDQgMTM6MTI6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5oOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgbW9yZSB0ZW1wbGF0ZSBmaXhlcwoKMjAxMS0xMS0wNCAxMTo1ODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS93ZWJtLW11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJKiBnc3QvcnRzcC9nc3RydHBkZWMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F2aW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJICBtYWtlICV1IGluIGFsbCByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMKCjIwMTEtMTEtMDQgMTE6MDE6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYwoKMjAxMS0xMS0wNCAxMDozMjo0NiArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSAgUG9ydCBhcGVkZW11eAoKMjAxMS0xMS0wMyAyMzoyODozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJICBydHA6IHVzZSBHTGliJ3MgR19CSUdfRU5ESUFOIGRlZmluZSBpbnN0ZWFkIG9mIEJJR19FTkRJQU4KCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZyBvbiBtaW5ndzMyCgoyMDExLTExLTAzIDE2OjQzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmg6CgkqIGdzdC91ZHAvTWFrZWZpbGUuYW06CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcC5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1cGRhdGUgZm9yIG5ldyBuZXQgbGlicmFyeQoKMjAxMS0xMS0wMiAxMjowOToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY3RhZy5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHRhZ3M6IHVwZGF0ZSBmb3IgdGFnIEFQSSByZW1vdmFsCgoyMDExLTExLTAyIDEwOjQwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0zMSAwMjo0MDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1cGRhdGUgZm9yIG5ldGJ1ZmZlciBhcGkgY2hhbmdlCgoyMDExLTEwLTMxIDAyOjM1OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHAuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdXBkYXRlIGZvciBuZXRhZGRyZXNzIGNoYW5nZQoKMjAxMS0xMC0zMSAwMjoyNDowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICB1cGRhdGUgZm9yIG1ldGEgYXBpIGNoYW5nZQoKMjAxMS0xMC0yOSAwOToyOToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtb292cmVjb3Zlci5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHVwZGF0ZSBmb3IgbmV3IHRhc2sgYXBpCgoyMDExLTEwLTI5IDA5OjA5OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBmb3IgYXBpIHVwZGF0ZQoKMjAxMS0xMC0yOSAwODoyNToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIGJ1ZmZlcmxpc3Q6IHVwZGF0ZSBmb3IgbmV3IEFQSQoKMjAxMS0xMS0wMSAwMDo0MDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBVcGRhdGUgZm9yIHBhZCBBUEkgY2hhbmdlcwoJICBHc3RQcm9iZVR5cGUsIEdzdFByb2JlUmV0dXJuIGFuZCBHc3RBY3RpdmF0ZU1vZGUgLT4gR3N0UGFkKgoKMjAxMS0xMC0zMSAxODozODo1NSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGZpeCBvYnZpb3VzIGNyYXNoCgoyMDExLTEwLTMxIDE2OjE4OjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGF2b2lkIHNob3J0Y3V0IGV2YWx1YXRpb24gd2hlbiBhZGRpbmcgcGFpcmVkIG1wNCB0YWcKCSAgRml4ZXMgKHBhcnQgb2YpICM2Mzg3MTEuCgoyMDExLTEwLTMxIDE1OjQzOjI1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IGRvIG5vdCB1c2UgdW5vZmZpY2FsIFZfTUpQRUcgY29kZWMgaWQKCSAgLi4uIGJ1dCBhcyBub3Qgc3BlYydlZCBlc3BlY2lhbGx5LCBjb25zaWRlciBpdCBhIFZmVyBjb21wYXRpYmlsaXR5IGNhc2UuCgkgIEZpeGVzICM2NTk4MzcuCgoyMDExLTEwLTMwIDE5OjMwOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgZmxhY2VuYzogcmVtb3ZlIGRlYWQgY29kZSBmcm9tIGhlYWRlcgoJICBXZSByZXF1aXJlIGEgbmV3LWVub3VnaCBsaWJmbGFjIHRoYXQgdGhpcyBjb25kaXRpb24gd2lsbCBuZXZlciBhcHBseS4KCjIwMTEtMTAtMzAgMTk6MDk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBwYXJzZSBzdHJlYW0gaGVhZGVycyBmcm9tIGNhcHMgaW4gc2V0X2Zvcm1hdCBmdW5jdGlvbgoJICBOb3QgdGhhdCB0aGlzIHNlZW1zIHRvIGJlIGFjdHVhbGx5IG5lZWRlZCwgbGliZmxhYyBoYXBwaWx5IGRlY29kZXMKCSAgc3R1ZmYgZXZlbiBpZiB3ZSBqdXN0IGRyb3AgYWxsIGhlYWRlcnMgYW5kIG5ldmVyIGZlZWQgaXQgdG8gdGhlCgkgIGxpYnJhcnkuCgoyMDExLTEwLTMwIDE4OjQ5OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBmbGFjZGVjOiBkb24ndCBleHRyYWN0IG1ldGFkYXRhLCBsZWF2ZSB0aGF0IHRvIHRoZSBwYXJzZXIgb3IgY29udGFpbmVyCgoyMDExLTEwLTMwIDE4OjQ1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBmbGFjZGVjOiB3ZSBleHBlY3QgZnJhbWVkIGlucHV0IG5vdywgcmVtb3ZlIHNvbWUgbW9yZSBjb2RlCgoyMDExLTEwLTA5IDE2OjE4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBmbGFjZGVjOiBuYWl2ZSBwb3J0IHRvIEdzdEF1ZGlvRGVjb2RlcgoJICBUaGlzIHdvdWxkIHByb2JhYmx5IGhhdmUgYmVlbiB0b28gaW52YXNpdmUgdG8gZG8gaW4gdGhlIDAuMTAKCSAgYnJhbmNoLCB3aXRoIGFsbCB0aGUgcHVsbC1tb2RlIGFuZCBwYXJzZXIgaGFuZGxpbmcgY29kZSBpbgoJICB0aGVyZS4KCjIwMTEtMTAtMzAgMTE6NDQ6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3R0YWdpbmplY3QuYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgZXh0LCBnc3Q6IHVwZGF0ZSBmb3IgdGFnbGlzdCBBUEkgY2hhbmdlcwoKMjAxMS0xMC0zMCAxMTo0MTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbiBvZiBhdWRpbyB0ZXN0cyBpbiB1bmluc3RhbGxlZCBzZXR1cAoKMjAxMS0xMC0yOCAyMToyNjozMyArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSAgYXVkaW9wYW5vcmFtYTogc2ltcGxpZnkgZ2V0X3VuaXRfc2l6ZQoKMjAxMS0xMC0yOCAyMToxOTo0MiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZWNoby5jOgoJICB0ZXN0czogYXVkaW9lY2hvOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMjggMjE6MTg6MzMgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uYzoKCSAgYXVkaW9lY2hvOiBmaXggaW50ZXJuYWwgYnVmZmVyIHNpemUgY2FsY3VsYXRpb24KCjIwMTEtMTAtMjggMTQ6MDU6NDggKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJiYW5kLmM6CgkgIHRlc3RzOiBhdWRpb2NoZWJiYW5kOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMjggMTY6NTI6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDE1OjA4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBmaXggcG9ydGluZyBlcnJvcnMKCSAgVGhlIHByb2JlcyB3ZXJlIHBvcnRlZCB3cm9uZ2x5IGFuZCBjYXVzZWQgZGVhZGxvY2tzLgoKMjAxMS0xMC0yOCAwOTo1NzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGFkZCBzb2YtbWFya2VyIHRvIHRlbXBsYXRlIGNhcHMsIHNvIHdlIGRvbid0IGdldCBwbHVnZ2VkIGZvciBsb3NzbGVzcyBqcGVnCgkgIGpwZWdkZWMgKHVzaW5nIGxpYmpwZWcgNi4yLzgpIGNhbid0IGRlY29kZSBzb21lIGxvc3NsZXNzIHR5cGVzIG9mIEpQRUcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTY2NDgKCjIwMTEtMTAtMjggMTM6MDY6MjAgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJsaW1pdC5jOgoJICB0ZXN0czogYXVkaW9jaGVibGltaXQ6IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0yOCAxMzowMjo1NiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlaWlyZmlsdGVyLmM6CgkgIGF1ZGlvZng6IGZpeCBjcmFzaCBpbiBwcm9jZXNzKCkKCjIwMTEtMTAtMjggMTE6NDg6MzEgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2FtcGxpZnkuYzoKCSAgdGVzdHM6IGF1ZGlvYW1wbGlmeTogcG9ydCB0byAwLjExCgoyMDExLTEwLTI4IDEyOjUxOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlOiBmaXggY2hlY2sgZm9yIGVtcHR5IGNhcHMKCjIwMTEtMTAtMjggMTI6MzA6MzMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGVsYWJvcmF0ZSBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTEtMTAtMTEgMjA6NTY6NTEgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBiZSBjYXJlZnVsIHdpdGggbmVnYXRpdmUgY3RzCgkgIEZpeGVzICM2NjE0NzcuCgoyMDExLTEwLTA2IDEzOjA0OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiB0dW5lIG5vbi11cGRhdGUgc2VlayBoYW5kbGluZyBjYXNlcwoJICBGaXhlcyAjNjYxMDQ5LgoKMjAxMS0xMC0yOCAxMTo0Njo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvdmlkZW9taXhlci9nc3Rjb2xsZWN0cGFkczIuYwoKMjAxMS0xMC0yOCAxMToxNjozOCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJICBhdWRpb2R5bmFtaWM6IGRvbid0IHNldCBwcm9jZXNzIGZ1bmN0aW9uIHRvbyBlYXJseQoJICBHc3RBdWRpb0luZm8gYW5kIEdzdEF1ZGlvRmlsdGVyIGhhdmUgYmVlbiBjaGFuZ2VkIHNvIHRoYXQgdGhpcyBjb2RlIGRvZXNuJ3QKCSAgY3Jhc2ggYW55bW9yZSB3aGVuIGEgcHJvcGVydHkgaXMgc2V0IGluIE5VTEwgc3RhdGUuCgoyMDExLTEwLTI4IDEwOjQyOjA0ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9keW5hbWljLmM6CgkgIHRlc3RzOiBhdWRpb2R5bmFtaWM6IHBvcnQgdG8gMC4xMQoKMjAxMS0xMC0yOCAwMDoyNDoxNCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6CgkgIHRlc3RzOiBzcGVjdHJ1bTogcG9ydCB0byAwLjExCgoyMDExLTEwLTI3IDIzOjU3OjE3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9wYW5vcmFtYS5jOgoJICB0ZXN0czogYXVkaW9wYW5vcmFtYTogcG9ydCB0byAwLjExCgoyMDExLTEwLTI3IDIzOjU2OjEyICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJICBhdWRpb3Bhbm9yYW1hOiBmaXggZ2V0X3VuaXRfc2l6ZQoKMjAxMS0xMC0yOCAxMDo0MDozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJICB2aWRlb21peGVyMjogVXNlIHRoZSBjbGlwIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIHByZXBhcmVfYnVmZmVyIGZ1bmN0aW9uCgoyMDExLTEwLTI4IDA5OjA1OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICBydHBtYW5hZ2VyLCB2NGwyOiBmaXggY29tcGlsZXIgd2FybmluZ3MgYWZ0ZXIgZ3N0X2NhcHNfbmV3X3NpbXBsZSgpIGNoYW5nZQoKMjAxMS0xMC0yOCAwOTowMTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IGNvbXBpbGVyIHdhcm5pbmdzIGFmdGVyIGdzdF9jYXBzX25ld19zaW1wbGUoKSBjaGFuZ2UKCjIwMTEtMTAtMjggMDk6MzY6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBnc3QvdmlkZW9taXhlci9nc3Rjb2xsZWN0cGFkczIuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjJwYWQuaDoKCSAgdmlkZW9taXhlcjI6IFVzZSBjb2xsZWN0cGFkczIgZnJvbSBjb3JlCgoyMDExLTEwLTI3IDE5OjM5OjIwICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdmVuYy9NYWtlZmlsZS5hbToKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSAgd2F2ZW5jOiBwb3J0IHRvIDAuMTEgcmF3IGF1ZGlvIGNhcHMKCjIwMTEtMTAtMjcgMTk6MDY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2Zsdi9nc3RmbHZtdXguYwoKMjAxMS0xMC0yNyAxOTowMDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvcnRwL1JFQURNRToKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICBtYWtlIHNvbWUgbW9yZSB0aGluZ3MgY29tcGlsZSBhZ2FpbgoKMjAxMS0xMC0yNyAxNjowODoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBleHQvcHVsc2UvcHVsc2VhdWRpb3NpbmsuYwoJICBleHQvcHVsc2UvcHVsc2VzaW5rLmMKCjIwMTEtMTAtMjcgMTY6MDM6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMTEtMTAtMjggMDA6NDE6NDUgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogRG9uJ3QgcG9pbnRsZXNzbHkgaG9sZCBvYmplY3QgbG9jayBvdmVyIGNhcHMgb3BlcmF0aW9ucwoJICBBdm9pZHMgYSBkZWFkbG9jayB3aGVuIGdldGNhcHMgaXMgcmVjdXJzaXZlIGR1ZSB0byB0aGUgZ2V0Y2FwcyBiZWluZwoJICByZWZsZWN0ZWQgdXBzdHJlYW0vZG93bnN0cmVhbS4gVGhlIGxvY2sgaXNuJ3QgYWN0dWFsbHkgcHJvdGVjdGluZwoJICBhbnl0aGluZyBoZXJlLgoKMjAxMS0xMC0yNyAwMDozNzowMyArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2Zsdi9hbWZkZWZzLmg6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogYWRkIHNvbWUgY29tbWVudHMgYW5kIGRlZmluZXMgdG8gY2xhcmlmeSBjb2RlLgoKMjAxMS0xMC0xMCAxNTozNjoxNCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkgIG1hdHJvc2thOiByZWZhY3RvciBlYm1sLXdyaXRlIHRvIGJlIG1vcmUgMC4xMSBmcmllbmRseQoJICBTd2l0Y2hpbmcgdG8gYSBtb3JlIDAuMTEtZnJpZW5kbHkgcGF0dGVybiwgd2hlcmUgZ2V0dGluZyB0aGUgYnVmZmVyJ3MgZGF0YQoJICBwb2ludGVyIGFuZCBzZXR0aW5nIHRoZSBzaXplIG1hbnkgdGltZXMgaXMgbGVzcyBuYXR1cmFsLiBUaGlzIGlzIG9mIGNvdXJzZSBpbgoJICBwcmVwYXJhdGlvbiB0byB0aGUgdXBjb21pbmcgcG9ydCBvZiB0aGUgcGx1Z2luLgoKMjAxMS0xMC0xMSAyMTo0NTo0NiArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkgIG1hdHJvc2thOiByZW1vdmUgc3RhbGUgZmxvYXRjYXN0IGluY2x1ZGUKCSAgR0RPVUJMRV9UT19CRSB3YXMgbW92ZWQgdG8gY29yZSBhIGxvbmcgdGltZSBhZ28uCgoyMDExLTEwLTExIDIyOjEwOjI3ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZml4IHBvc3NpYmxlIGNyYXNoIHdpdGggbWFsZm9ybWVkIGRpcmFjIGNvZGVjX2RhdGEKCSAgU2luY2Ugc2l6ZSBpcyB1bnNpZ25lZCwgd2UgbmVlZCB0byBzYWZlZ3VhcmQgYWdhaW5zdCB3cmFwcGluZyBiZWxvdyB6ZXJvLgoKMjAxMS0xMC0yMSAyMjozMzozNCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogcmVtb3ZlIGF2b2lkYWJsZSBjYWxsIHRvIGdzdF9vYmplY3Rfc2V0X25hbWUKCjIwMTEtMTAtMjEgMjI6MzI6MzggKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IHJlbW92ZSBhdm9pZGFibGUgY2FsbCB0byBnc3Rfb2JqZWN0X3NldF9uYW1lCgoyMDExLTEwLTIxIDE0OjUxOjIzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmg6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyLmg6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvZWxlbWVudC5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5oOgoJKiBzeXMvdjRsMi9nc3R2NGwycmFkaW8uYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRlb292ZXJsYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnZpZGVvb3ZlcmxheS5oOgoJKiBzeXMvdjRsMi9nc3R2NGwydmlkb3JpZW50LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRvcmllbnQuaDoKCSAgaW50ZXJmYWNlczogY2xlYW4gdXAgdGhlIHVzZSBvZiBpZmFjZSBhbmQgY2xhc3Mva2xhc3MKCjIwMTEtMTAtMjEgMTE6Mzc6MDUgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUgc28gaXRzIHBhcmFsZWwtaW5zdGFsbGFibGUgYW5kIG9ubHkgdHJpZXMgdG8gcGFja2FnZSBwb3J0ZWQgcGx1Z2lucwoKMjAxMS0xMC0xNiAyMDozMDoyNSArMDIwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZ2VuYzogaW5jcmVhc2UgYXJiaXRyYXJ5IHJlc29sdXRpb24gbGltaXRzCgkgIEFwcGFyZW50bHkgbGlicG5nIGNhbiB0ZWNobmljYWxseSBkbyB1cCB0byAyXjMxLTEgcm93cyBhbmQgY29sdW1ucy4gSG93ZXZlciBpdAoJICBpbXBvc2VzIGFuIChhcmJpdHJhcnkpIGRlZmF1bHQgbGltaXQgb2YgMSBtaWxsaW9uICh0aGF0IGNvdWxkIHRoZW9yZXRpY2FsbHkgYmUKCSAgbGlmdGVkIGJ5IHVzaW5nIHNvbWUgYWRkaXRpb25hbCBBUEkpLgoJICBNb3ZlZCBhcnJheSBhbGxvY2F0aW9uIHRvIHRoZSBoZWFwIG5vdy4KCjIwMTEtMTAtMTYgMjA6MjU6NDEgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJICBwbmdlbmM6IGRvbid0IHVuY29uZGl0aW9uYWxseSBhbGxvY2F0ZSA0MDk2IHBvaW50ZXJzIG9uIHRoZSBzdGFjawoJICBJbnN0ZWFkIGFsbG9jYXRlIGFzIG1hbnkgYXMgbmVlZGVkIChvbiB0aGUgc3RhY2sgc3RpbGwpLgoKMjAxMS0xMC0xNiAyMDowNToyOCArMDIwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZ2VuYzogZW5zdXJlIHNldGNhcHMgd2FzIGNhbGxlZCBiZWZvcmUgY2hhaW4gZnVuY3Rpb24KCSAgVGhpcyBpcyBuZWVkZWQgdG8gcHJvcGVybHkgZXJyb3Igb3V0IGZvciBlLmcuICJmYWtlc3JjICEgcG5nZW5jICEgZmFrZXNpbmsiLgoKMjAxMS0xMC0xNiAxOTo0NDoyNyArMDIwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZ2VuYzogdmFsaWRhdGUgaW5wdXQgYnVmZmVyIHNpemUKCSAgSnVzdCBmb3Igc2FmZXR5OyBvZiBjb3Vyc2Ugc3VjaCBtaXNtYXRjaCByZXByZXNlbnRzIGEgYnVnIGluIGFub3RoZXIgZWxlbWVudC4KCjIwMTEtMTAtMTYgMTk6NDE6MjggKzAyMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBleHQvbGlicG5nL01ha2VmaWxlLmFtOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5oOgoJICBwbmdlbmM6IG1ha2Ugc2V0Y2FwcyBtb3JlIHJvYnVzdCwgdXNlIGdzdHZpZGVvIGZ1bmN0aW9ucwoJICBBIHNldGNhcHMgZnVuY3Rpb24gbmVlZHMgdG8gYWN0dWFsbHkgdmVyaWZ5IHRoZSBjYXBzIGNhcmVmdWxseS4gSW4gdGhpcyBjYXNlLAoJICBpdCB3YXMgcG9zc2libGUgdG8gZS5nLiBsaW5rIGEgdmlkZW8gZGVjb2RlciB3aXRoIFlVVitSR0IgdGVtcGxhdGUgY2FwcyB0bwoJICBwbmdlbmMuICBUaGF0IHdvdWxkIGNhdXNlIGEgY3Jhc2ggd2hlbiB0aGUgZGVjb2RlciBwdXNoZXMgYSBZVVYgYnVmZmVyLiBTYW1lCgkgIHRoaW5nIHdoZW4gcHVzaGluZyBhIHZhbGlkIGJ1ZmZlciB0aGF0IGV4Y2VlZHMgdGhlIHJlc29sdXRpb24gbGltaXRzLgoJICBBbHNvLCBtaXNzaW5nIGZyYW1lcmF0ZSBjYXBzIGZpZWxkIHdvdWxkIGNhdXNlIGEgZ2xpYiBjcml0aWNhbCB3YXJuaW5nIGR1ZSB0bwoJICBpbnZhbGlkIEdWYWx1ZS4gVGhpcyBmYWlscyBoYXJkIG5vdy4KCjIwMTEtMTAtMjEgMTA6MDE6NDMgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSAgZWJtbDogc21hbGwgY29ycmVjdGlvbiB0byBwcmV2aW91cyBjb21taXQKCSAgU2lnbmFsIGEgc2hvcnQgcmVhZCB3aXRoIFVORVhQRUNURUQsIGV4YWN0bHkgbGlrZSB0aGUgcGVla19ieXRlcyBmdW5jdGlvbi4KCjIwMTEtMTAtMTkgMTM6MDk6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkgIGVibWw6IEZpeCBwdXNoLWJhc2VkIGJlaGF2aW91cgoJICBUaGUgJ3BlZWsnIG1ldGhvZCB3YXMgY29tcGxldGVseSB3cm9uZyAoIT8pCgoyMDExLTEwLTE4IDE4OjMxOjE3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJICBwdWxzZTogR2V0IGNhcHMgY29ycmVjdGx5IG9uIHBhZCBibG9jawoJICBJbnN0ZWFkIG9mIGFsd2F5cyBnb2luZyB1cHN0cmVhbSwgd2Ugc2hvdWxkIGZpcnN0IHNlZSBpZiBhbHJlYWR5IGdvdAoJICBjYXBzIGZyb20gYSBzZXRjYXBzKCkgY2FsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MTI2MgoKMjAxMS0xMC0xOCAxMjoyNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkgIHdhdnBhY2tlbmM6IGRvbid0IHVucmVmIGJ1ZmZlciB3aXRoIGdzdF9vYmplY3RfdW5yZWYoKQoKMjAxMS0xMC0xOCAxMjowNTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBvbmx5IHVzZSBpc19wY20gZm9yIDEuMCBvZiBwdWxzZWF1ZGlvCgoyMDExLTEwLTE4IDExOjU4OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IG9ubHkgZGlzYWJsZSB0cmlja21vZGVzIGZvciAhcGNtCgkgIE9ubHkgZGlzYWJsZSB0cmlja21vZGVzIHdoZW4gd2UgYXJlIG5vdCBkZWFsaW5nIHdpdGggcmF3IFBDTSBzYW1wbGVzLgoKMjAxMS0xMC0xNiAxNTozMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6CgkgIHZpZGVvY3JvcDogZml4IGNvbXBpbGF0aW9uCgoyMDExLTEwLTE2IDE1OjI2OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmMKCjIwMTEtMTAtMTQgMTA6NTY6MTYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjI6IEZpeCBhIGxlYWsKCSAgQnVmZmVycyB3ZXJlbid0IGJlaW5nIHVucmVmJ2VkIGluIG9uZSBjYXNlIGluc2lkZSwgY2F1c2luZyBtZW1vcnkgdXNhZ2UKCSAgdG8gYmxvdyB1cC4KCjIwMTEtMTAtMTQgMDk6MTA6MDEgKzAyMDAgIE1hcmMgTGVlbWFuIDxtYXJjLmxlZW1hbkBnbWFpbC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJICBzZXQgY29sb3VyIG1hc2tzIGZvciB2aWRlby94LXJhdy1yZ2IgaW4gcnRwdnJhd2RlcGF5CgoyMDExLTEwLTEzIDAxOjA1OjEzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmUtZW5hYmxlIHZpZGVvY3JvcCBwbHVnaW4KCSAgQWxyZWFkeSBwb3J0ZWQgdG8gMC4xMQoKMjAxMS0xMC0xMyAwMTowNTowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuaDoKCSAgYXNwZWN0cmF0aW9jcm9wOiBQb3J0IHRvIDAuMTEKCjIwMTEtMTAtMTMgMDA6Mzk6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC92aWRlb2Nyb3AvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6CgkqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmg6CgkgIHZpZGVvY3JvcDogUG9ydCB0byAwLjExCgoyMDExLTEwLTEyIDE3OjQzOjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hc3BlY3RyYXRpb2Nyb3AuYzoKCSAgdGVzdHM6IGFzcGVjdHJhdGlvY3JvcDogUG9ydCB0byAwLjExCgoyMDExLTEwLTEyIDA4OjI0OjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hbHBoYWNvbG9yLmM6CgkgIHRlc3RzOiBhbHBoYWNvbG9yOiBQb3J0IHRvIDAuMTEKCjIwMTEtMTAtMTMgMTc6MTI6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBQcm9wZXJseSByZWdpc3RlciB0eXBlCgkgIEl0J3MgYSBzdWJjbGFzcyBvZiBHc3RBdWRpb0VuY29kZXIgYW5kIG5vdCBvZiBHc3RFbGVtZW50CgoyMDExLTEwLTEzIDE2OjU5OjUwICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXIyOiBGaXggaW5jb3JyZWN0IGdzdF9idWZmZXJfcmVwbGFjZSgpIGNhbGwKCSAgVGhpcyBnb3QgZXhwb3NlZCB3aGVuIGdzdF9idWZmZXJfcmVwbGFjZSgpIHdhcyBjaGFuZ2VkIGZyb20gYSBtYWNybyB0byBhCgkgIGZ1bmN0aW9uLgoKMjAxMS0xMC0xMyAwOTozNDowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgcnRwc3NyY2RlbXV4OiBGaXggd3JvbmcgdXNhZ2Ugb2YgZ3N0X2l0ZXJhdG9yX2ZpbHRlcgoJICBJdCB0YWtlcyBhIEdWYWx1ZSogYXMgdGhlIHVzZXJfZGF0YS4KCSAgQW5kIGRvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgZGVtdXhlciBiZWZvcmUgcmV0dXJuaW5nLgoKMjAxMS0xMC0xMyAwOTowMjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAgZml4IGNvbXBpbGUKCjIwMTEtMTAtMTMgMDg6NTg6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy5jCgkgIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jCgoyMDExLTEwLTEyIDA4OjA5OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6CgkgIHRlc3RzOiBjbW1sZW5jOiBQb3J0IHRvIDAuMTEKCjIwMTEtMTAtMTIgMDg6MDI6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxkZWMuYzoKCSAgdGVzdHM6IGNtbWxkZWM6IFBvcnQgdG8gMC4xMQoKMjAxMS0xMC0xMiAwNzoyOTozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBVc2UgbmV3IEdzdEl0ZXJhdG9yIEFQSSBjb3JyZWN0bHkKCSAgR3N0SXRlcmF0b3Igbm93IHVzZXMgR1ZhbHVlLCB1c2UgaXQgY29ycmVjdGx5LgoKMjAxMS0xMC0xMiAxMToyNjo1MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSAgcnRwdnJhd3BheTogT25seSB1c2UgMjQgTFNCIGZvciBkZXB0aD0yNCBSR0IgY2FwcwoJICAuLi4gYW5kIGluZGVudCB0aGUgbWFza3MgZm9yIGNsYXJpdHkKCjIwMTEtMTAtMTEgMTQ6NTg6NDMgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBmaXggc2VnbWVudCBoYW5kbGluZywgc28gd2UgYWN0dWFsbHkgdXNlIHJ1bm5pbmcgdGltZQoJICBnc3RfbWF0cm9za2FfbXV4X2Jlc3RfcGFkIGFkanVzdHMgdGhlIGJ1ZmZlciB0aW1lc3RhbXAgdG8gcnVubmluZyB0aW1lIHVzaW5nCgkgIHRoZSBzZWdtZW50IHN0b3JlZCBpbiB0aGUgcGFkJ3MgY29sbGVjdCBkYXRhLiBIb3dldmVyLCB0aGUgZXZlbnQgaGFuZGxlciBkaWRuJ3QKCSAgcGFzcyB0aGUgbmV3c2VnbWVudCBldmVudCBvbiB0byBjb2xsZWN0cGFkcycgaGFuZGxlciwgc28gdGhpcyBzZWdtZW50IHdhcyBuZXZlcgoJICB1cGRhdGVkIGF0IGFsbC4KCSAgUmUtZml4ZXMgYnVnICM0MzI2MTIuCgoyMDExLTEwLTEwIDE5OjAxOjIzICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyMnBheS5jOgoJICBnc3RydHBnNzIycGF5OiBDb21wZW5zYXRlIGZvciBjbG9ja3JhdGUgdnMuIHNhbXBsZXJhdGUgZGlmZmVyZW5jZQoJICBUaGUgUlRQIGNsb2NrLXJhdGUgdXNlZCBmb3IgRzcyMiBpcyA4MDAwLCBldmVuIHRob3VnaCB0aGUgc2FtcGxlcmF0ZSBpcwoJICAxNjAwMC4gQ29tcGVuc2F0ZSBmb3IgdGhpcyBieSBwcmV0ZW5kaW5nIEc3MjIgaGFzIDggYml0cyBwZXIgc2FtcGxlCgkgIGluc3RlYWQgb2YgdGhlIDQgYml0cyBhcyBpZiBpdCB3ZXJlIGEgY29kZWMgdGhhdCByYW4gYXQgaGFsZiB0aGUgc3BlZWQsCgkgIGJ1dCB3aXRoIHR3aWNlIHRoZSBudW1iZXIgb2YgYml0cy4gRml4ZXMgIzY2MTM3NgoKMjAxMS0wOS0yNyAxOToyNTo1MyArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IEltcGxlbWVudCB1cHN0cmVhbSBuZWdvdGlhdGlvbgoJICBBZGQgdXBzdHJlYW0gbmVnb3RpYXRpb24gZm9yIGpwZWdkZWMuIEZpeGVzICM2NjAyNzUKCjIwMTEtMTAtMTAgMTk6MDI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thLWRlbXV4OiBkb24ndCBsZWFrIGF1ZGlvIGNvZGVjX2RhdGEgYnVmZmVyCgoyMDExLTEwLTEwIDE3OjQxOjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIGFscGhhOiBEb24ndCB1c2Ugc3RhcnQoKSB2bWV0aG9kCgkgIFRoZSBvbmx5IHRoaW5nIHdlJ3JlIGRvaW5nIGlzIGluaXRpYWxpemluZyBwYXJhbWV0ZXJzIC4uLgoJICAqIHdoaWNoIHdvbid0IHdvcmsgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHVwc3RyZWFtL2Rvd25zdHJlYW0gY2FwcwoJICAqIHdoaWNoIHdpbGwgYmUgaW5pdGlhbGl6ZWQgd2hlbiA6OnNldF9jYXBzKCkgaXMgY2FsbGVkCgoyMDExLTEwLTEwIDE0OjA4OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0xMCAxMzoyMjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6CgkgIGlkM2RlbXV4OiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMTAgMTM6MjA6MDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jYWlyby9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGFkZCBtaXNzaW5nIFBMVUdJTl9BU0VfTElCUyB0byBMREFERAoKMjAxMS0xMC0xMCAxMjo1NDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkgIGljeWRlbXV4OiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMTAgMTI6Mjc6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJICBhbm5vZGV4OiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMTAgMTE6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmMKCjIwMTEtMTAtMTAgMDA6MTg6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJICBwdWxzZTogcG9ydCBwdWxzZXV0aWwgdG8gMC4xMQoKMjAxMS0xMC0wOSAyMToxNzoyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlYXVkaW9zaW5rLmM6CgkgIHB1bHNlYXVkaW9zaW5rOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMDkgMTg6NTg6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBGaXhpbmcgZ2V0Y2FwcyBmdW5jdGlvbgoJICBVcGRhdGUgZ2V0Y2FwcyBmdW5jdGlvbiB0byAwLjExIEFQSQoKMjAxMS0xMC0wOSAyMTozMToyNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkgIHNwZWV4ZW5jOiBvbmx5IHB1c2ggaGVhZGVyIGJ1ZmZlcnMgZm9sbG93aW5nIGluaXRpYWwgZXZlbnRzCgoyMDExLTEwLTA5IDE2OjI5OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wOSAxNjoyNDozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXhfZHVtcC5jOgoJICBxdGRlbXV4OiB1cGRhdGUgZm9yIF9fZ3N0X2RlYnVnX21pbiBuYW1lIGNoYW5nZQoKMjAxMS0xMC0wOSAxMToxODoxOCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2lzb21wNC9hdG9tc3JlY292ZXJ5LmM6CgkgIHF0bXV4OiBGaXggbWVtb3J5IGxlYWsgb24gYXRvbXMgcmVjb3ZlcnkgZnVuY3Rpb24KCSAgUmVtZW1iZXIgdG8gZnJlZSB0aGUgZnR5cCBkYXRhIGFmdGVyIHdyaXRpbmcgaXQgdG8gYSBmaWxlLgoJICBGaXhlcyAjNjYwOTY5CgoyMDExLTEwLTA2IDEyOjI2OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogcmVwb3J0IG5ldyBiaXRzCgoyMDExLTEwLTA2IDEyOjIzOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jCgkgIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jCgkgIGdzdC9pc29tcDQvYXRvbXMuYwoJICBnc3QvaXNvbXA0L2dzdHF0bXV4LmMKCjIwMTEtMDktMjEgMTg6NDU6NDIgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICBtYXRyb3NrYWRlbXV4OiBpbXByb3ZlIHNlZ21lbnQgaGFuZGxpbmcgd2l0aCBub24temVybyBzdGFydGluZyB0aW1lc3RhbXAKCSAgLi4uIGFzIHdlbGwgYXMgcmVsYXRlZCBpdGVtcywgc3VjaCBhcyBzZWVraW5nIGFuZCBwb3NpdGlvbiByZXBvcnRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk4MDgKCjIwMTEtMDktMjkgMTg6NDE6NTMgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHY0bDIsIHhpbWFnZXNyYzogZml4IHNvbWUgcHJpbnRmIGZvcm1hdCBjb21waWxlciB3YXJuaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMTUwCgoyMDExLTA5LTMwIDEyOjQyOjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkgIHRlc3RzOiBxdG11eDogUmVmYWN0b3IgYml0cmF0ZSBjaGVjayB0ZXN0CgkgIFJlZmFjdG9yIGJpdHJhdGUgY2hlY2sgdGVzdCB0byBhY2NvbW9kYXRlIG11bHRpcGxlIHRlc3RzCgkgIGZvciBiaXRyYXRlCgoyMDExLTA5LTMwIDEzOjAyOjMxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvYXRvbXMuYzoKCSAgcXRtdXg6IHVwZGF0ZSBlc2RzIGF0b20gdW5kZXIgd2F2ZSBhdG9tIGZvciBhYWMgYml0cmF0ZXMKCSAgQUFDIGluIG1vdiBmb3JtYXQgcHV0cyBhbiBFU0RTIGF0b20gaW5zaWRlIG9mIGEgV0FWRSBhdG9tIGluCgkgIFNUU0QgYXRvbSwgd2UgbmVlZCB0byB1cGRhdGUgdGhlIGJpdHJhdGUgb24gdGhpcyBFU0RTLiBUaGlzIHBhdGNoCgkgIGZpeGVzIGl0LgoKMjAxMS0wOS0zMCAxMjo0MTo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2F0b21zLmM6CgkqIGdzdC9pc29tcDQvZm91cmNjLmg6CgkgIHF0bXV4OiBBbHNvIHVwZGF0ZSBidHJ0IGF0b20KCSAgV2hlbiByZXdyaXRpbmcgYml0cmF0ZXMsIGFsc28gdXBkYXRlIHRoZSBidHJ0IGF0b20gdW5kZXIgc3RzZAoKMjAxMS0wOS0zMCAxMDo1NTo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jOgoJICB0ZXN0czogcXRtdXg6IGFkZCB0ZXN0cyBmb3IgYml0cmF0ZSBhdmVyYWdlIGNhbGN1bGF0aW9uCgkgIEFkZHMgdGVzdHMgdG8gbWFrZSBzdXJlIHF0bXV4L21wNG11eCBzZXRzIGF2ZXJhZ2UgYml0cmF0ZQoJICBjb3JyZWN0bHkKCjIwMTEtMDktMjggMTE6NDE6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9hdG9tcy5jOgoJKiBnc3QvaXNvbXA0L2F0b21zLmg6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5oOgoJICBxdG11eDogQ2FsY3VsYXRlIGF2ZXJhZ2UgYml0cmF0ZSBmb3Igc3RyZWFtcwoJICBDYWxjdWxhdGUgYW5kIHVzZSBhdmVyYWdlIGJpdHJhdGUgZm9yIHN0cmVhbXMgd2hlbiBubwoJICBiaXRyYXRlIHRhZyB3YXMgcmVjZWl2ZWQKCjIwMTEtMDktMjggMTA6NDE6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogQXZvaWQgYSBidWZmZXIgbWV0YWRhdGEgY29weSBpZiBwb3NzaWJsZQoJICBJZiBmaXJzdF90cyBpcyAwIHRoZXJlIGlzIG5vIG5lZWQgdG8gc3VidHJhY3QsIHNvIHdlIG1pZ2h0CgkgIHNraXAgc29tZSBjb3B5aW5nIHRvIG1ha2UgdGhlIGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZS4KCjIwMTEtMDktMjkgMjM6MjE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4ZW5jOiBpbml0aWFsaXNlIHZhcmlhYmxlIGJlZm9yZSBhZGRpbmcgdG8gaXQKCjIwMTEtMDktMjkgMTc6MjE6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5oOgoJICBzcGVleGRlYzogcG9ydCB0byBhdWRpb2RlY29kZXIKCjIwMTEtMDktMjkgMTY6MzM6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkgIHNwZWV4ZW5jOiBjbGVhbiB1cCBzb21lIHVudXNlZCByZW1uYW50cwoKMjAxMS0wOS0yOSAxNzozMjoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvTWFrZWZpbGUuYW06CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuaDoKCSAgc3BlZXhlbmM6IHBvcnQgdG8gYXVkaW9lbmNvZGVyCgoyMDExLTA5LTI4IDE5OjEwOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogZ2V0IHJpZCBvZiBncmFudWxlcG9zIGhhbmRsaW5nCgkgIExlYXZlIHRoYXQgdG8gdGhlIHBhcnNlciBvciBkZW11eGVyLiBUaGVyZSdzIHN0aWxsIHNvbWUKCSAgY29kZSBmb3Igb3BlcmF0aW5nIGluIERFRkFVTFQgKHNhbXBsZXMpIGZvcm1hdCwgYnV0IHRoYXQKCSAgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoKMjAxMS0wOS0yOCAxODozMjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSAgZmxhY2RlYzogZ2V0IHJpZCBvZiBwdWxsLW1vZGUgc3VwcG9ydCBhbmQgZm9jdXMgb24gYmVpbmcgYSBkZWNvZGVyCgkgIExlYXZlIGFsbCB0aGUgb3RoZXIgc3R1ZmYgdG8gZmxhY3BhcnNlLgoKMjAxMS0wOS0yOCAxNzoyOTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBmbGFjLCBqcGVnOiBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMS0wOS0yOCAxNzo0MDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkgIGZsYWM6IHBvcnQgdG8gMC4xMQoKMjAxMS0wOS0yOCAxNzozOToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBleHQvZmxhYy9nc3RmbGFjZW5jLmMKCjIwMTEtMDktMjggMTY6MTg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA5LTI4IDE2OjA5OjU4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL01ha2VmaWxlLmFtOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgZmxhY2VuYzogcG9ydCB0byBhdWRpb2VuY29kZXIKCjIwMTEtMDktMjcgMTU6NTk6MjQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkgIG1hdHJvc2thZGVtdXg6IGVuc3VyZSBtaW5pbWFsIGFsaWdubWVudCBmb3IgYXVkaW8veC1yYXctKiBidWZmZXJzCgkgIFNpbmNlIG1hdHJvc2thZGVtdXggd2lsbCBhdHRlbXB0IHRvIHB1c2ggdW5hbGlnbmVkIGJ1ZmZlcnMsCgkgIGRvd25zdHJlYW0gbWlnaHQgaGF2ZSB0cm91YmxlIHdpdGggdGhvc2UsIGVzcGVjaWFsbHkgaWYgZG93bnN0cmVhbQoJICB1c2VzIE9SQywgc3VjaCBhcyBhdWRpb2NvbnZlcnQuCgkgIEVuc3VyZSB3ZSBwdXNoIGJ1ZmZlcnMgYWxpZ25lZCB0byB0aGUgYmFzaWMgdHlwZSBhdCBsZWFzdCBmb3IKCSAgdGhvc2UgcmF3IGJ1ZmZlcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk3OTgKCjIwMTEtMDktMjggMTI6NDQ6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29tbW9uCgkgIGV4dC9wdWxzZS9wdWxzZXNpbmsuYwoJICBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYwoJICBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmMKCSAgZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmMKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmMKCSAgZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmMKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jCgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmMKCjIwMTEtMDktMjggMDA6MTA6MDkgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dvb20yazEvZ29vbV9jb3JlLmM6CgkgIGdvb20yazE6IEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiA2NCBiaXQgbWluZ3ctdzY0CgkgIEZpeGVzIGJ1ZyAjNjYwMjk0LgoKMjAxMS0wOS0yNSAxNToxMzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9NYWtlZmlsZS5hbToKCSogZXh0L3NvdXAvZ3N0c291cC5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cGNsaWVudHNpbmsuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBjbGllbnRzaW5rLmg6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNpbmsuaDoKCSAgc291cDogcmVuYW1lIHNvdXBodHRwc2luayB0byBzb3VwaHR0cGNsaWVudHNpbmsKCSAgVG8gYXZvaWQgY29uZnVzaW9uLCBhbmQgYmVjYXVzZSB3ZSBtaWdodCB3YW50IGEgc2VydmVyCgkgIHNpbmsgYXQgc29tZSBwb2ludCB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk5NDcKCjIwMTEtMDktMjMgMTY6Mzk6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzaW5rLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc2luay5oOgoJICBzb3VwaHR0cHNpbms6IGRvbid0IGNyZWF0ZSB1bnVzZWQgc2Vjb25kIHNpbmsgcGFkIG9iamVjdAoJICBUaGUgYmFzZSBjbGFzcyB3aWxsIGNyZWF0ZSB0aGUgc2luayBwYWQuCgoyMDExLTA5LTIzIDE1OjM2OjM2ICswMjAwICBKdWxpZW4gSXNvcmNlIDxqdWxpZW4uaXNvcmNlQGdtYWlsLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGNvcnJlY3RseSBjaGVjayBmb3IgYWMzL2UtYWMzIHN3aXRjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5OTQzCgoyMDExLTA5LTIxIDE0OjAxOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBVcGRhdGUgY29tbW9uIHRvIDAuMTEgYnJhbmNoCgoyMDExLTA5LTIwIDEzOjM4OjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIHJ0cGgyNjRkZXBheTogaW1wcm92ZSBkb3duc3RyZWFtIGZsb3cgcmV0dXJuIGZlZWRiYWNrIHRvIHVwc3RyZWFtCgkgIC4uLiBhbHRob3VnaCBiYXNlcnRwZGVwYXkgZG9lcyBub3QgcmVhbGx5IG1ha2UgaXQgZWFzeS9wb3NzaWJsZSB0byBkbyBzbwoJICBhbGwgdGhlIHdheS4KCjIwMTEtMDktMjAgMTI6MTE6NDcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuaDoKCSAgeGltYWdlc3JjOiBhZGQgeGlkIGFuZCB4bmFtZSBwcm9wZXJ0aWVzIHRvIGFsbG93IGNhcHR1cmluZyBhIHBhcnRpY3VsYXIgd2luZG93CgkgIEEgcGFydGljdWxhciB3aW5kb3cgbWF5IGJlIHNlbGVjdGVkIHVzaW5nIHRoZSBuZXcgeGlkIChYLVdpbmRvdwoJICBYSUQsIGVnIGEgcG9pbnRlcikgYW5kIHhuYW1lICh3aW5kb3cgdGl0bGUpIHByb3BlcnRpZXMuIElmIGJvdGgKCSAgYXJlIHNwZWNpZmllZCwgdGhlIFhJRCBpcyB1c2VkIGluIHByZWZlcmVuY2UsIGZhbGxpbmcgYmFjayB0bwoJICB4bmFtZSBpZiBub3QgZm91bmQuCgkgIERlZmF1bHQgKGlmIG5vbmUgb2YgeGlkIGFuZCB4bmFtZSBhcmUgc3BlY2lmaWVkLCBvciBpZiBubyBzdWNoCgkgIHdpbmRvdyBpcyBmb3VuZCkgaXMgdG8gY2FwdHVyZSB0aGUgcm9vdCB3aW5kb3cuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NDY5MzIKCjIwMTEtMDgtMDIgMTc6Mzk6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIGVuY29kZWJpbiBwaWNrcyBtcDRtdXggZm9yIHZhcmlhbnQ9aXNvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTE0OTYKCjIwMTEtMDktMTkgMTI6MTU6MTEgKzAyMDAgIEhhIE5ndXllbiA8aGFuZ3V5dHZAZ21haWwuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogRml4IGEgbGVha2VkIGNsb2NrIGZvciBlYWNoIGJ1ZmZlcmluZyBtZXNzYWdlCgkgIEZpeGVzIGJ1ZyAjNjU5MjM3LgoKMjAxMS0wOS0xOSAxMjoxMTozMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBwYXJzZSBlbWJlZGRlZCBJRDMyIHRhZ3MKCjIwMTEtMDktMDIgMTM6NDE6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc2Vzc2lvbjogYXZvaWQgc291cmNlIHByZW1hdHVyZSB0aW1pbmcgb3V0CgkgIFVzZSBzbGlnaHRseSBhZGp1c3RlZCBzZW5kZXIgaW50ZXJ2YWwgdG8gZGV0ZXJtaW5lIHNlbmRlciB0aW1lb3V0IHJhdGhlciB0aGFuCgkgIG91ciBvd24gc2VuZGVyIHNpZGUgaW50ZXJ2YWwgKHdoaWNoIG1heSBoYXZlIGJlZW4gZm9yY2VkIHNtYWxsKS4KCjIwMTEtMDgtMjUgMTI6NDA6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgcnRwc2Vzc2lvbjogYXZvaWQgdGltaW5nIG91dCBzb3VyY2UgdG9vIHF1aWNrbHkKCSAgLi4uIGZvbGxvd2luZyBhIFBBVVNFL1BMQVkgY3ljbGUsIHBhcnRpY3VsYXJseSBhcHBsaWNhYmxlIHdoZW4gb3BlcmF0aW5nCgkgIHdpdGggYSBzaG9ydCBSVENQIGludGVydmFsIChwb3NzaWJseSBmb3JjZWQgc28gc2VydmVyLXNpZGUpLgoKMjAxMS0wOC0yNCAxNDozNzo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlci9ydHBiaW46IHJlbGF4IGRyb3BwaW5nIHJ0Y3AgcGFja2V0cwoJICAuLi4gdG8gYXQgbGVhc3QgaGF2aW5nIGl0IHRyaWdnZXIgYS92IHN5bmNocm9uaXphdGlvbiwgcG9zc2libHkgd2l0aG91dAoJICB1c2luZyBwcm92aWRlZCB2YWx1ZXMgd2hpY2ggYXJlIHN0aWxsIG5vdCBjb25zaWRlcmVkIHNhbmUKCSAgKGFzIHByZXZpb3VzbHkgZHJvcHBlZCkuCgoyMDExLTA4LTI0IDE0OjM0OjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBydHBqaXR0ZXJidWZmZXI6IHNvbWUgbW9yZSByZXNldCB3aGVuIGNsZWFyaW5nIHB0IG1hcAoJICAuLi4gd2hpY2ggaW4gcGFydGljdWxhciBjYXRlcnMgZm9yIHNvbWUgbW9yZSByZXNldCBmb2xsb3dpbmcgYSBwb3NzaWJsZQoJICBydHNwIFBMQVkuCgoyMDExLTA4LTIxIDIxOjU4OjM4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZG8gbm90IHNldCBlbGVtZW50cyB0byBQTEFZSU5HIHdoZW4gZG9pbmcgc2VlayBpbiBQQVVTRUQKCjIwMTEtMDktMDEgMTQ6NDc6NDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogb25seSByZXNldCBza2V3IG9uIGdhcCBpZiBpbnB1dCB0cyBhdmFpbGFibGUKCjIwMTEtMDgtMTggMTQ6MTI6MjEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogY2hlY2sgc29tZSBtb3JlIGZvciBwb3NzaWJsZSBydHAgdGltZXN0YW1wIGRpc2NvbnRpbnVpdHkKCSAgLi4uIHdoZW4gb3BlcmF0aW5nIGluIG5vbiBzbGF2ZSBtb2RlLCBhbmQgcmVzZXQgaWYgZGV0ZWN0ZWQuCgkgIFRoaXMgc2hvdWxkIGF2b2lkIHNvbWUgKGxhcmdlKSBib2d1cyBvdXRnb2luZyB0aW1lc3RhbXAgZHVlIHRvIGp1bXBzCgkgIGluIHJ0cCB0aW1lLCBhcyByZXN1bHQgb2YgUEFVU0UvUExBWSBvciBzZWVrIG9yIC4uLgoKMjAxMS0wOC0wOCAxMjo0ODo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHN3aXRjaCB0byBydHAgdGltZSBiYXNlZCBzeW5jaW5nIHdoZW4gZ3Vlc3NlZCBhcHByb3ByaWF0ZQoKMjAxMS0wOC0wOCAxMjoxNToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkgIHJ0cGJpbjogYWx0ZXJuYXRpdmUgaW50ZXItc3RyZWFtIHN5bmNpbmcgbWV0aG9kcwoJICAuLi4gYXQgbGVhc3QgaWYgbm90IHN5bmNpbmcgdG8gTlBUIHRpbWU6CgkgICogZWl0aGVyIHN5bmMgdXNpbmcgUlRDUCBTUiBkYXRhIChhcyBjdXJyZW50bHkpCgkgICogb25seSBwZXJmb3JtIHRoZSBhYm92ZSBvbmNlIHVzaW5nIGluaXRpYWwgUlRDUCBTUiBwYWNrZXRzCgkgICogZGlzY2FyZCBSVENQIGFuZCBzeW5jIGJ5IGVxdWF0aW5nIHByb3ZpZGVkIHN0cmVhbSdzIGNsb2NrLWJhc2UgcnRwdGltZSwKCSAgYXMgcHJvdmlkZWQgYnkgaml0dGVyYnVmZmVyICh0eXBpY2FsbHkgb2J0YWluZWQgZnJvbSBSVFAtSW5mbyBpbiBSVFNQKS4KCjIwMTEtMDgtMDggMTI6MTE6MjQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogYWxzbyBwcm92aWRlIGNsb2NrLWJhc2UgdG8gc3luYyBzaWduYWwKCjIwMTEtMDgtMDggMTI6MDk6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBydHBiaW46IGFsbG93IGNvbmZpZ3VyYWJsZSBydGNwIHN0cmVhbSBzeW5jaW5nIGludGVydmFsCgkgIC4uLiByYXRoZXIgdGhhbiBuZWNlc3NhcmlseSBzeW5jaW5nIGF0IGVhY2ggUlRDUCBTUi4KCjIwMTEtMDgtMDEgMDg6MzU6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiB0cmlnZ2VyIHJlY29uc2lkZXJhdGlvbiBpZiBydGNwIGludGVydmFsIHNldAoKMjAxMS0wOC0wMSAwODozMjoyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGNvbmZpZ3VyZSBydGNwIGludGVydmFsIGlmIHByb3ZpZGVkCgkgIC4uLiBpbiBQTEFZIHJlc3BvbnNlLgoKMjAxMS0wOS0xNiAxNjo1MzoyMiArMDMwMCAgTGFzc2UgTGF1a2thbmVuIDxsYXNzZS5sYXVra2FuZW5AZGlnaWEuY29tPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBpc29tcDQ6IEZpeCBhbGxvd2luZyB6ZXJvIGR1cmF0aW9uIHRyYWNrcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NDg2CgoyMDExLTA5LTA1IDEwOjExOjE4ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSAgdWRwc3JjOiBlcnJvciBvdXQgd2hlbiBubyBwcm90b2NvbCBpcyBzcGVjaWZpZWQgaW4gdGhlIHVyaQoJICBJdCBpcyBjZXJ0YWlubHkgYmV0dGVyIHRoYW4gdG8gY3Jhc2guCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTgxNzgKCjIwMTEtMDktMTkgMDk6Mzc6NTggKzAyMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4ZW5jOiBkbyBub3QgdXNlIGludmFsaWQgYnVmZmVyIHRpbWVzdGFtcHMKCjIwMTEtMDMtMjkgMTI6MDk6MTggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL01ha2VmaWxlLmFtOgoJKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkqIGV4dC9wdWxzZS9wdWxzZWF1ZGlvc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJICBwdWxzZTogTmV3IHB1bHNlYXVkaW9zaW5rIGVsZW1lbnQgdG8gaGFuZGxlIGZvcm1hdCBjaGFuZ2VzCgkgIFRoaXMgaW50cm9kdWNlcyBhIG5ldyBiaW4gd2hpY2ggd3JhcHMgYXJvdW5kIHB1bHNlc2luayBhbmQgZGVwZW5kaW5nIG9uCgkgIHRoZSBmb3JtYXRzIHN1cHBvcnRlZCBieSB0aGUgc2luaywgcGx1Z3MgaW4vb3V0IGEgZGVjb2RlYmluMiBhcwoJICByZXF1aXJlZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gc3dpdGNoIHNpbmtzIG9uIHRoZSBzdHJlYW0gYW5kIGFkYXB0cwoJICBhY2NvcmRpbmdseSAoZm9yIGV4YW1wbGUsIHlvdSBjb3VsZCB3YXRjaCBhIG1vdmllIGluIHBhc3N0aHJvdWdoIG1vZGUgb24KCSAgeW91ciByZWNlaXZlciB3aGljaCBzdXBwb3J0cyBBQzMgZGVjb2RlLCB0aGVuIHBsdWcgb3V0IGFuZCBzd2l0Y2ggdG8gYQoJICBub24tZGlnaXRhbCBwcm9maWxlIHRvIGNvbnRpbnVlIHVuaW50ZXJydXB0ZWQgb24gYW5hbG9nIG91dHB1dCkuCgkgIFRoZSBiaW4gaXMgcmVxdWlyZWQgYmVjYXVzZSBkb2luZyB0aGUgc2FtZSB3aXRoIHBsYXliaW4yL3BsYXlzaW5rIHdpbGwKCSAgcmVxdWlyZSBBUEkgY2hhbmdlcyB0aGF0IGNhbm5vdCBiZSBtYWRlIGluIDAuMTAuIFdpdGggMC4xMS8xLjAsIHdlCgkgIHNob3VsZCBiZSBhYmxlIHRvIGFzayBmb3IgdXBzdHJlYW0gY2FwcyByZW5lZ290aWF0aW9uIHRvIGRlYWwgd2l0aCBhbGwKCSAgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzE3OQoKMjAxMS0wOS0xNiAxNTowMzoyMyArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rb0BheGlzLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSAgbWF0cm9za2FkZW11eDogQXZvaWQgc2VuZGluZyBFT1Mgd2hlbiBpbiBwYXVzZWQgc3RhdGUKCSAgQ2hhbmdlZCB0aGUgZWJtbCByZWFkZXIncyBnc3RfZWJtbF9wZWVrX2lkX2xlbmd0aCgpIGZ1bmN0aW9uIHNvCgkgIHRoYXQgaXQgcmV0dXJucyB0aGUgYWN0dWFsIHJlYXNvbiBmb3Igd2h5IHRoZSBwZWVrIGZhaWxlZCwgaW5zdGVhZAoJICBvZiAoYWxtb3N0KSBhbHdheXMgcmV0dXJuaW5nIEdTVF9GTE9XX1VORVhQRUNURUQuIFRoaXMgcHJldmVudHMKCSAgdGhlIHB1bGxpbmcgdGFzayBmcm9tIHNlbmRpbmcgRU9TIHdoZW4gZG9pbmcgYSBmbHVzaGluZyBzZWVrLgoKMjAxMS0wOS0xNSAxNTo1Mzo0NyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogZml4IHN0dXR0ZXJpbmcgQS9WCgkgIFNvbWVvbmUgZ290IGhhZCBieSBpbXBsaWNpdCBwcm9tb3Rpb24gdG8gdW5zaWduZWQgaW4gb3BzIHdpdGgKCSAgYSBzaWduZWQgYW5kIGFuIHVuc2lnbmVkIHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MTUzCgoyMDExLTA5LTE0IDE2OjM3OjEyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdnNlZWsuYzoKCSAgbmF2c2VlazogdG9nZ2xlIHBhdXNlL3BsYXkgb24gc3BhY2UgYmFyCgkgIEEgdXNlZnVsIHRoaW5nIHRvIGhhdmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNjUKCjIwMTEtMDktMTQgMTQ6NDY6MDAgKzAyMDAgIERhdmlkIFN2ZW5zc29uIEZvcnMgPGRhdmlkc2ZAYXhpcy5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IGNvbmZpZ3VyYWJsZSB0aW1lc3RhbXAgZ2FwIGhhbmRsaW5nCgkgIG1hdHJvc2thZGVtdXggcGVyZm9ybXMgc2VnbWVudCB0cmlja3MgdG8gc2tpcCBnYXBzIGluIHN0cmVhbXMsCgkgIG5vdGFibHkgYXQgc3RhcnQgZm9yIG5vbiAwIGJhc2VkIGZpbGVzLiAgVGhlcmUgbWF5IGhvd2V2ZXIgYmUKCSAgY2FzZXMgd2hlbiBmdWxsIHByZXNlbnRhdGlvbiAoaW5jbHVkaW5nIGludGVybWVkaWF0ZSBnYXBzKSBpcwoJICBkZXNpcmVkLCBzbyBhIHByb3BlcnR5IGFsbG93cyB0byBjb25maWd1cmUgYXMgb2Ygd2hpY2ggZ2FwCgkgIHRvIGFjdCAob3Igbm90IGF0IGFsbCkuCgkgIEFQSTogR3N0TWF0cm9za2FEZW11eDo6bWF4LWdhcC10aW1lCgkgIEZpeGVzICM2NTkwMDkuCgoyMDExLTA5LTEyIDA5OjIxOjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zsdm11eC5jOgoJICB0ZXN0czogZmx2bXV4OiBGaXggZmx2bXV4J3MgdGVzdHMgYWZ0ZXIgZml4IGZvciByZXF1ZXN0IHBhZHMgaGFuZGxpbmcKCSAgTm93IHRoYXQgZmx2bXV4IGRvZXNuJ3QgcmVsZWFzZSBpdHMgcmVxdWVzdCBwYWRzIG9uIFBBVVNFRC0+UkVBRFkgdGhlCgkgIHRlc3QgZG9lc24ndCBuZWVkIHRvIHJlLXJlcXVlc3QgdGhlbSBmb3IgZXZlcnkgcmV1c2UgdGVzdCBzdGFydC4KCjIwMTEtMDktMDkgMDk6MTI6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogRml4IGN0dHMgZ2VuZXJhdGlvbiBmb3Igc3RyZWFtcyB0aGF0IGRvbid0IHN0YXJ0IGF0IDAgdGltZXN0YW1wcwoJICBTdWJ0cmFjdCB0aGUgZmlyc3QgdGltZXN0YW1wIG9mIGEgc3RyZWFtIGZyb20gYWxsIGlucHV0IGJ1ZmZlcnMgdG8KCSAgZ2V0IDAtYmFzZWQgdGltZXN0YW1wcyBmb3IgY3JlYXRpbmcgYSBzYW5lIGN0dHMgdGFibGUuIFdpdGhvdXQgdGhpcwoJICBwYXRjaCB0aGUgY3R0cyBjb3VsZCBoYXZlIGxhcmdlciB2YWx1ZXMgdGhhbiBuZWVkZWQsIGNhdXNpbmcgdGhlCgkgIHBsYXliYWNrIHRvIGhhdmUgYSBkZWxheSBhdCBzdGFydHVwLgoJICBBcyB0aGUgZmlyc3QgdGltZXN0YW1wIGlzIG9ubHkgZm91bmQgYWZ0ZXIgYSBmZXcgYnVmZmVycyBhcmUgcXVldWVkCgkgIChkdWUgdG8gcG9zc2libGUgcmVvcmRlcmVkIGJ1ZmZlcnMpLCBvbmNlIHdlIGZpbmQgdGhlIGZpcnN0IHRpbWVzdGFtcAoJICB3ZSBzdWJ0cmFjdCBpdCBmcm9tIGFsbCBidWZmZXJzIG9uIHRoZSBxdWV1ZSwgZnJvbSB0aGF0IHBvaW50IG9uLAoJICBhbGwgYnVmZmVycyBoYXZlIHRoZWlyIHRpbWVzdGFtcHMgc3VidHJhY3Qgd2hlbiB0aGV5IGFyZSBjb2xsZWN0ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg2NTkKCjIwMTEtMDktMTIgMDc6NTU6MTkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBkb24ndCByZWxlYXNlIHJlcXVlc3QgcGFkcyBnb2luZyBQQVVTRUQtPlJFQURZCgkgIERvbid0IHJlbGVhc2UgcmVxdWVzdCBwYWRzIGJ1dCBqdXN0IHJlc2V0IHRoZW0uIFRoaXMgbWFrZXMgcGlwZWxpbmVzIHVzaW5nCgkgIGZsdm11eCByZXVzYWJsZS4KCjIwMTEtMDktMDkgMTI6MzU6NTAgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJICBhYzNwYXJzZTogdXNlIGJzaWQgOSBhbmQgMTAgdG8gY29udHJvbCBzYW1wbGUgcmF0ZQoJICBTZWUgaHR0cDovL21hdHJvc2thLm9yZy90ZWNobmljYWwvc3BlY3MvY29kZWNpZC9pbmRleC5odG1sCgkgIFRoZSBzcGVjIGlzIHNpbGVudCBhYm91dCB0aGlzIHRob3VnaC4uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NTQ2CgoyMDExLTA5LTA3IDE0OjEzOjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZW5zdXJlIHNvbWUgaW5pdGlhbCBzdGF0ZSB2YXJpYWJsZSBzZXR1cAoJICAuLi4gd2hpY2ggbWlnaHQgb3RoZXJ3aXNlIGJlIHNraXBwZWQgaWYgdGhlIFBMQVkgY29tbWFuZCBpcyBpc3N1ZWQgYmVmb3JlCgkgIHRoZSBPUEVOIGNvbW1hbmQgaGFkIGEgY2hhbmNlIHRvIGFjdHVhbGx5IGJlIGFjdGVkIHVwb24uCgkgIEZpeGVzICM2NTczNzYuCgoyMDExLTA5LTA4IDE1OjAyOjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiB0d2VhayBnYXAgaGFuZGxpbmcKCSAgLi4uIHNvIGFzIHRvIGF2b2lkIGJ1ZmZlcnMgYmVmb3JlIGFuZCBhZnRlciBnYXAgdG8gaGF2ZSBpZGVudGljYWwgcnVubmluZyB0aW1lLgoKMjAxMS0wOS0wOCAxMzoyODoyNCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IHVzZSBHU1RfUkVTT1VSQ0VfRVJST1JfQlVTWSBpZiB2NGwyX2lvY3RsIGZhaWxzIHdpdGggRUJVU1kKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODU0MwoKMjAxMS0wOS0wNyAwODo1NDoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkgIHF0bXV4OiByZW1vdmUgb25lIEdfVU5MSUtFTFkgZm9yIHVzZXIgcHJvcGVydHkKCSAgVXNpbmcgR19VTkxJS0VMWSBvbiB1c2VyIHByb3BlcnRpZXMgaXNuJ3QgbmljZSwgc3BlY2lhbGx5IHdoZW4KCSAgdGhhdCBpcyB0aGUgZGVmYXVsdCBvcHRpb24uCgoyMDExLTAzLTE1IDExOjAzOjUzICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguaDoKCSAgbWF0cm9za2FtdXg6IGhhbmRsZSBHc3RGb3JjZUtleVVuaXQgZXZlbnQKCSAgLi4uIGJ5IHN0YXJ0aW5nIGEgbmV3IGNsdXN0ZXIgYWZ0ZXIgZm9yd2FyZGluZyBldmVudC4KCSAgRml4ZXMgIzY0NDE1NC4KCjIwMTEtMDktMDcgMTQ6Mjc6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6CgkgIGNtbWw6IFVzZSBjb21wbGV0ZSBjbW1sIGNhcHMgaW4gdGhlIHVuaXQgdGVzdAoKMjAxMS0wOS0wNyAxNDoyNjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jOgoJICBxdG11eDogVXNlIGNvbXBsZXRlIE1QRUcgY2FwcyBpbiB0aGUgdW5pdCB0ZXN0CgoyMDExLTA5LTA3IDE0OjE4OjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBkb2NzOiBjbGVhbnVwIG1ha2VmaWxlcwoJICBSZW1vdmUgY29tbWVudGVkIG91dCBwYXJ0cyB0aGF0IHdlIGRvbid0IG5lZWQuIFJlbW92ZSAidGhlIHdpbmdvIGFkZGl0aW9uIiAtIG5vCgkgIHNvIHVzZWZ1bCBhZnRlciBhbGwuIE5hcnJvdyBkb3duIGZpbGUtZ2xvYnMgZm9yIHBsdWdpbiBkb2NzLgoKMjAxMS0wOC0yOSAxNDoxMjoyMiArMDIwMCAgS29uc3RhbnRpbiBNaWxsZXIgPGtvbnN0YW50aW4ubWlsbGVyQGdtYWlsLmNvbT4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBEb24ndCBoYW5kbGUgSFRUUCByZXNwb25zZSA0MDcgYXMgZXJyb3IgaWYgcHJveHkgYXV0aGVudGljYXRpb24gZGF0YSBpcyBhdmFpbGFibGUKCSAgRml4ZXMgYnVnICM2NTc0MjIuCgoyMDExLTA5LTA3IDEyOjExOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IEFkZCBDb252ZXJ0ZXIgdG8gdGhlIGNsYXNzaWZpY2F0aW9uIGJlY2F1c2UgaXQgY2FuIGNvbnZlcnQgYmV0d2VlbiBkaWZmZXJlbnQgYWxpZ25tZW50cwoJICBUaGlzIGFsbG93cyBkZWNvZGViaW4yIHRvIGxldCBpdCBuZWdvdGlhdGUgcHJvcGVybHkuCgoyMDExLTA5LTA3IDEyOjEwOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBJbXByb3ZlIHNyYyB0ZW1wbGF0ZSBjYXBzCgkgIFJlbW92ZSB0aGUgcGFyc2VkL2ZyYW1lZCBmaWVsZHMgYW5kIGFkZCBhbGwgZmllbGRzIHRvIHRoZSB0ZW1wbGF0ZQoJICBjYXBzIHRoYXQgYWx3YXlzIGV4aXN0LgoKMjAxMS0wOS0wNiAxNTo1OTo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuaDoKCSAgYWFjcGFyc2U6IHBhcnNlIGNvZGVjX2RhdGEgdG8gZGV0ZXJtaW5lIG51bWJlciBvZiBzYW1wbGVzIHBlciBmcmFtZQoJICBGaXhlcyAjNjU2NzM0LgoKMjAxMS0wOS0wNiAyMToyNDo0NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTM5ZWI4MyB0byAxMWYwY2Q1CgoyMDExLTA5LTA2IDE2OjU3OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHRyeSB0byBkaXNhYmxlIGRlaW50ZXJsYWNlLi4KCjIwMTEtMDktMDYgMTU6NDA6MzIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYwNWNkOWEgdG8gYTM5ZWI4MwoKMjAxMS0wOS0wNiAxNjozNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb21tb24KCjIwMTEtMDktMDYgMTY6MDY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jCgkgIGdzdC9pc29tcDQvcXRkZW11eC5jCgoyMDExLTA5LTA2IDE1OjQwOjMyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MDVjZDlhIHRvIGEzOWViODMKCjIwMTEtMDktMDYgMTU6MDU6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIG1hdHJvc2thbXV4OiBtYWtlIGRlZmF1bHQgZHVyYXRpb24gY2hlY2sgbGVzcyBzZW5zaXRpdmUKCSAgRnJhbWUgZHVyYXRpb24gbWlnaHQgdmFyeSBmb3IgMSB1c2Vjb25kLCBpbiB0aGlzIGNhc2UgbWF0cm9za2FtdXgKCSAgZGVjaWRlcyB0byBjcmVhdGUgQkxPQ0tHUk9VUCBpbnN0ZWFkIG9mIFNJTVBMRUJMT0NLLgoJICBDb252ZXJ0IGR1cmF0aW9uIHRvIHRpbWVjb2Rlc2NhbGUgd2hpY2ggaXMgKHR5cGljYWxseSkgbGVzcyBwcmVjaXNlLCBhbmQKCSAgdGhlbiBhbHNvIGFsbG93IHRoZSBkaWZmZXJlbmNlIG9mIDEvLTEgdG8gYXJyYW5nZSBmb3IgbGVzcyBzZW5zaXRpdmUgY2hlY2suCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCSAgRml4ZXMgIzY1MzA4MC4KCjIwMTEtMDktMDYgMTM6MTg6NDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSAgcnRwbXA0Z2RlcGF5OiBpbXByb3ZlIGJvZ3VzIGludGVybGVhdmVkIGluZGV4IGNvbXBlbnNhdGluZwoJICBQYXRjaCBieSA8Z3VkYWtlQGdtYWlsLmNvbT4KCSAgRml4ZXMgIzY1NDU4NS4KCjIwMTEtMDktMDYgMTM6MTY6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmg6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L2xhdy9hbGF3LmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXcuYzoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICAtZ29vZDogcG9ydCB0byBuZXcgYXVkaW8gY2FwcwoKMjAxMS0wOS0wNiAxMDozMzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogQWxsb3cgcG9zaXRpdmUsIG5vbi0xLjAgc2VnbWVudCByYXRlcwoJICBPbmx5IG5lZ2F0aXZlIHJhdGVzIGFyZSBub3Qgc3VwcG9ydGVkLiBGaXhlcyBidWcgIzY1ODMwNS4KCjIwMTEtMDktMDUgMTU6NTA6NTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcGFyc2VyLmM6CgkgIHRlc3RzOiBwYXJzZXJzOiBwcm92aWRlIG1vcmUgcmVhbCBkYXRhIHdoZW4gdGVzdGluZyBkcmFpbmluZyBvZiBnYXJiYWdlCgoyMDExLTA5LTA1IDE1OjUwOjA0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSAgYW1ycGFyc2U6IGZpeCBhbmQgc3RyZWFtbGluZSB2YWxpZCBmcmFtZSBjaGVja2luZwoJICAuLi4gdG8gaGFuZGxlIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHN5bmMgb3Igbm90LCBhbmQgc3VmZmljaWVudCBkYXRhCgkgIG9yIG5vdCBhcyBtaWdodCBiZSBleHBlY3RlZC4KCSAgRml4ZXMgIzY1MDcxNC4KCjIwMTEtMDktMDUgMTQ6NDk6MzIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgYXZvaWQgYWRqdXN0bWVudCBmb3Iga2V5ZnJhbWUgc2VlawoJICAuLi4gc2luY2UgYWxsIGluZGV4IGRhdGEgbWF5IG5vdCB5ZXQgYmUgYXZhaWxhYmxlIGF0IHRoYXQgdGltZS4KCjIwMTEtMDktMDUgMTQ6NDg6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgbWFyayBhbGwgYXVkaW8gdHJhY2sgc2FtcGxlcyBhcyBrZXlmcmFtZQoKMjAxMS0wOS0wNSAxNDo0NjoyOSArMDIwMCAgQnJpYW4gTGkgPGJyaWFuNzAwM0BnbWFpbC5jb20+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZnJhZ21lbnRlZCBzdXBwb3J0OyBwcm9wZXJseSBpbml0IHJldHVybiB2YXJpYWJsZSB2YWx1ZQoJICBGaXhlcyAjNjU1OTE4LgoKMjAxMS0wOS0wNSAxMzozMToyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGFkZCBndGstZG9jIGZvciBuZXcgc2hvcnQtaGVhZGVyIHByb3BlcnR5CgoyMDExLTA5LTA1IDEzOjE4OjM5ICswMjAwICBNYXJjIExlZW1hbiA8bWFyYy5sZWVtYW5AZ21haWwuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IGFsbG93IHNlbmRpbmcgc2hvcnQgUlRTUCByZXF1ZXN0cyB0byBhIHNlcnZlcgoJICBTb21lIGVuY29kZXJzIChBcmVjb250KSBkbyBub3QgbGlrZSB0aGUgbG9uZyBPUFRJT05TIHNlbnQgYXQgc3RhcnR1cCBhcyBzZW50IGJ5CgkgIEdTdHJlYW1lciwgYnV0IGRvIGFjY2VwdCB0aGUgc2hvcnQgaGVhZGVyIGFzIHNlbnQgYnkgTGl2ZTU1NS4KCSAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgZXh0ZW5kaW5nIHRoZSByZXF1ZXN0IG9wdGlvbmFsIGJ5IGFkZGluZyBhIHByb3BlcnR5CgkgIChzaG9ydC1oZWFkZXIpLgoJICBGaXhlcyAjNjU1ODA1LgoJICBBUEk6IEdzdFJUU1BTcmM6c2hvcnQtaGVhZGVyCgoyMDA5LTAzLTA0IDE0OjUxOjA5IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkgIHJ0cGgyNjNwcGF5OiBTZXQgSDI2My0yMDAwIGlmIHRoYXRzIHdoYXQgdGhlIG90aGVyIHNpZGUgd2FudHMKCSAgVGhlIHN0YXRpYyBjYXBzIHN0YXRlcyB0aGlzIGVsZW1lbnQgc3VwcG9ydHMgSDI2My0yMDAwLCBidXQgc2V0Y2FwcyBuZXZlcgoJICBzZXRzIGl0LCBzbyBpdCB3YXMgbGllLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU3Nzc4NAoKMjAxMS0wOC0zMCAxOTowMjo1MSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogSW5pdGlhbGlzZSB0aGUgbGFzdF9rZXlmcmFtZV9yZXF1ZXN0IHZhcmlhYmxlCgoyMDExLTA4LTMxIDE2OjA0OjI0ICswMjAwICBQZXRlciBLb3JzZ2FhcmQgPGphY21ldEBzdW5zaXRlLmRrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgbXVsdGl1ZHBzaW5rOiBtYWtlIGFkZC9yZW1vdmUvY2xlYXIvZ2V0LXN0YXRzIGFjdGlvbiBzaWduYWxzCgkgIGh0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzgzMAoJICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBLb3JzZ2FhcmQgPGphY21ldEBzdW5zaXRlLmRrPgoKMjAxMS0wOC0zMSAxODo0NToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJICBtcDJ0OiBmaXggZW5jb2RpbmcgbmFtZSBhY2NvcmRpbmcgdG8gUkZDMzU1MQoKMjAxMS0wOC0zMCAxMzozMzo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4Lmg6CgkgIHF0ZGVtdXg6IHB1c2ggbW9kZTsgcGVyZm9ybSBzb21lIGV4dHJhIGNoZWNrcyBwcmlvciB0byB1cHN0cmVhbSBzZWVraW5nCgoyMDExLTA4LTMwIDEzOjI4OjIxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBwdXNoIG1vZGU7IGZpeCBidWZmZXJlZCBzdHJlYW1pbmcKCSAgVGhhdCBpcywgaW4gY2FzZSB3aGVyZSBubyBzZWVrIGlzIHBlZm9ybWVkIHRvIG1vb3YsIGJ1dCBwcmVjZWRpbmcKCSAgbGltaXRlZCBtZGF0IGlzIGJ1ZmZlcmVkLgoKMjAxMS0wOC0zMCAxNDowNjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuaDoKCSAgc2hhcGV3aXBlOiBwb3J0IHRvIDAuMTEKCjIwMTEtMDgtMzAgMTI6NDk6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGxhdyBpcyBwb3J0ZWQgbm93CgoyMDExLTA4LTMwIDEyOjI1OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2xhdy9hbGF3LmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXcuYzoKCSAgbGF3OiBwb3J0IHRvIDAuMTEKCjIwMTEtMDgtMjkgMTk6MTE6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSAgYWxhdzogcG9ydCB0byAwLjExCgoyMDExLTA4LTI5IDE5OjEwOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiBmaXggY29tbWVudAoKMjAxMS0wOC0yOSAxODowMjoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzaW5rLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXA6IHBvcnQgc291cCBlbGVtZW50cyB0byAwLjExCgoyMDExLTA4LTI5IDE1OjEzOjU2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhdm9pZCBvdmVyZmxvdyB3cmFwYXJvdW5kIGluIHRpbWVzdGFtcCB3aGVuIGFkZGluZyBkdXJhdGlvbnMKCSAgRG8gc29tZSB0eXBlIGp1Z2dsaW5nIHRvIGF2b2lkIG92ZXJmbG93LCB3aGlsZSBzdGlsbCBhbGxvd2luZyBmb3IgJ25lZ2F0aXZlJwoJICBkdXJhdGlvbnMgKHdoaWNoIHdvdWxkIG5lZWQgYSB3cmFwYXJvdW5kIGVmZmVjdCkuCgoyMDExLTA4LTI5IDEzOjQzOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYwoKMjAxMS0wOC0yNiAxNDoyMDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBhbGxvY2F0aW9uOiBmaXggZm9yIHZtZXRob2QgY2hhbmdlcwoKMjAxMS0wOC0yNSAyMzozNzo0NyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIHY0bDJzcmM6IG1ha2UgdGhpcyB3b3JrIG1vcmUgdGhhbiBvbmNlIGluIGEgcm93CgkgIFdlIHVzZWQgdG8gc2tpcCBmcmFtZSByYXRlIHNldHVwIGlmIHRoZSBjYW1lcmEgd2FzIGFscmVhZHkgc2V0dXAKCSAgd2l0aCB0aGUgcmVxdWVzdGVkIGZyYW1lIHJhdGUuIFRoaXMgYnJlYWtzIHNvbWUgY2FtZXJhcyB0aG91Z2gsCgkgIGNhdXNpbmcgdGhlbSB0byBub3Qgb3V0cHV0IGRhdGEgKHNldmVyYWwgbW9kZWxzIG9mIFRoaW5rcGFkIGNhbWVyYXMKCSAgaGF2ZSB0aGlzIHByb2JsZW0gYXQgbGVhc3QpLgoJICBTbywgZG9uJ3Qgc2tpcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODMwMAoKMjAxMS0wOC0yNSAxNjo0MToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgcG9ydCB0byBuZXcgdmlkZW8gZmxhZ3MKCjIwMTEtMDgtMjQgMTg6NDA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmM6CgkgIHB1bHNlOiBhZGQgc29tZSBtb3JlIGNoYW5uZWxzCgoyMDExLTA4LTI0IDE0OjE2OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOC0yMyAxMjoxMjoxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBvbmx5IHJlcXVpcmUgdHdvIGZyYW1lcyBpbiBhIHJvdyB3aGVuIHdlIGRvIG5vdCBoYXZlIHN5bmMKCSAgVGhpcyBhdm9pZHMgYSBzaW5nbGUgYml0IGVycm9yIGRyb3BwaW5nIHR3byBmcmFtZXMgdW5uZWNlc3NhcmlseS4KCSAgVGhlIHR3byBjb25zZWN1dGl2ZSBmcmFtZXMgY2hlY2sgaXMgc3RpbGwgcmVxdWlyZWQgd2hlbiB3ZSBkb24ndAoJICBoYXZlIHN5bmMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTcwODAKCjIwMTEtMDgtMjMgMjE6NDE6MTUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IFRyaXZpYWwgaW5kZW50YXRpb24gZml4CgoyMDExLTA4LTIzIDE5OjA5OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJICB2aWRlbzogcG9ydCB0byBuZXcgY29sb3JpbWV0cnkgaW5mbwoKMjAxMS0wNy0yMSAxNzoyMzoyOCAtMDQwMCAgTW9udHkgTW9udGdvbWVyeSA8Y21vbnRnb21AcmVkaGF0LmNvbT4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogQ29ycmVjdCBzYW1wbGUgbnVtYmVyIHJvdW5kaW5nIHJlc3VsdGluZyBpbiB0aW1lc3RhbXAgaml0dGVyCgkgIGZsYWNkZWMgY29udmVydHMgdGhlIHNyYyB0aW1lc3RhbXAgdG8gYSBzYW1wbGUgbnVtYmVyLCB1c2VzIHRoYXQgaW50ZXJuYWxseSwgdGhlbiByZWNvbnZlcnRzIHRoZSBzYW1wbGUgbnVtYmVyIHRvIGEgdGltZXN0YW1wIGZvciB0aGUgb3V0cHV0IGJ1ZmZlci4gIFVuZm9ydHVuYXRlbHksIHNhbXBsZSBudW1iZXJzIGNhbid0IGJlIHJlcHJlc2VudGVkIGluIGFuIGludGVnZXIgbnVtYmVyIG9mIG5hbm9zZWNvbmRzLCBhbmQgdGhlIGNvbnZlcnNpb24gcHJvY2VzcyB3YXMgdHJ1bmNhdGluZyByYXRoZXIgdGhhbiByb3VuZGluZywgcmVzdWx0aW5nIGluIHNhbXBsZSBudW1iZXJzIGFuZCBvdXRwdXQgdGltZXN0YW1wcyB0aGF0IHdlcmUgb2Z0ZW4gb2ZmIGJ5IGEgZnVsbCBzYW1wbGUuCgkgIFRoaXMgY29ycmVjdHMgdGhlIHRpbWUtPnNhbXBsZSBjb252ZXNpb24KCjIwMTEtMDgtMjIgMTM6MTA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA4LTIyIDEyOjI0OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvaXNvbXA0L2F0b21zLmM6CgkqIGdzdC9pc29tcDQvYXRvbXMuaDoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJICBmb3VyY2M6IHJlbW92ZSBmb3VyY2MgZnJvbSBjYXBzCgoyMDExLTA4LTIwIDE0OjQ4OjIwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2JyZWFrbXlkYXRhLmM6CgkgIGJyZWFrbXlkYXRhOiBlbGVtZW50IGlzIG5vdCBwYXNzdGhyb3VnaAoKMjAxMS0wNy0xMyAxMToyMDozNCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJICBtdWx0aWZpbGVzcmM6IHF1aWV0IGRlYnVnZ2luZwoKMjAxMS0wNy0xMCAyMTo0MDoyMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHkuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHloLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvbGluZWFyYmxlbmQuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9zY2FsZXJib2IuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3ZmaXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlYmZmLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmV0ZmYuYzoKCSAgZGVpbnRlcmxhY2U6IGNoYW5nZSBmaWVsZCBoYW5kbGluZyB0aHJvdWdoIG1ldGhvZHMKCSAgVGhpcyBsaWtlbHkgYnJlYWtzIHN0dWZmLiAgVGhlIGdvb2Q6IGFsbCBvZiB0aGUgbWV0aG9kcyBub3cgY3JlYXRlCgkgIGZpZWxkIGltYWdlcyBhbGlnbmVkIHdpdGggaW5wdXQgZnJhbWVzLCB3aXRob3V0IHRpbWVzdGFtcCBtYW5nbGluZy4KCSAgVGhlIGJhZDogdGhpcyB0b3VjaGVzIGEgbG90IG9mIGNvZGUsIG11Y2ggb2Ygd2hpY2ggaXMgaGFpcnkgYW5kIGluCgkgIG5lZWQgb2YgY2xlYW51cC4gIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQgd2UgY2FuIHJlYXNvbmFibHkgY3JlYXRlIGEKCSAgUFNOUi1iYXNlZCB0ZXN0LgoKMjAxMS0wOC0yMSAxNDo0MToxNCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgbXVsdGlmaWxlc2luazogcmVzZXQgLT5zdHJlYW1oZWFkZXJzIHRvIE5VTEwgb24gX3N0b3AKCSAgRml4ZXMgaW52YWxpZCBtZW1vcnkgYWNjZXNzIHJldXNpbmcgbXVsdGlmaWxlc2luawoKMjAxMS0wOC0yMCAxMDo0NjoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6CgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmg6CgkgIGN1dHRlcjogYnJpbmcgY3V0dGVyIHNvbWV3aGF0IGludG8gdGhpcyBtaWxsZW5uaXVtCgoyMDExLTA4LTE5IDE2OjI3OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOgoJICByZzogZml4IGNhcHMKCjIwMTEtMDgtMTkgMTY6MTM6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogcG9ydCBhZnRlciBtZXJnZQoKMjAxMS0wOC0xOSAxNjoxMjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDgtMTkgMTY6MDk6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9lY2hvLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlaWlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaWlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlva2FyYW9rZS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSogZ3N0L2F1cGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2xldmVsL01ha2VmaWxlLmFtOgoJKiBnc3QvcmVwbGF5Z2Fpbi9NYWtlZmlsZS5hbToKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2xpbWl0ZXIuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmd2b2x1bWUuYzoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHBvcnQgdG8gbW9yZSBhdWRpbyBhcGkgY2hhbmdlcwoKMjAxMS0wOC0xOSAxNDowMTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogc3lzL29zcy9nc3Rvc3NoZWxwZXIuYzoKCSogc3lzL29zcy9nc3Rvc3NzaW5rLmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaW52ZXJ0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sZXZlbC9sZXZlbC1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL3NwZWN0cnVtLWV4YW1wbGUuYzoKCSAgcG9ydCBtb3JlIGVsZW1lbnRzIHRvIG5ldyBhdWRpbyBjYXBzIGFuZCBBUEkKCjIwMTEtMDgtMTkgMTE6NDk6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5Lmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmJhbmQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGVibGltaXQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ZpcmZpbHRlci5oOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWlpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5oOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2thcmFva2UuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmg6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJICBwb3J0IHRvIG5ldyBhdWRpbyBBUEkgYW5kIGNhcHMKCjIwMTEtMDgtMTggMTM6Mzc6MzkgKzAyMDAgIERhdmlkIEhlbm5pbmdzc29uIDxkYXZpZC5oZW5uaW5nc3NvbkBjYW5vbmljYWwuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IEFsbG93IHdyaXRlcyBpbiBiaWdnZXIgY2h1bmtzCgkgIFRoZXJlJ3Mgbm8gdXNlIGluIHNwbGl0dGluZyB0aGUgaW5jb21pbmcgZGF0YSBkb3duIHRvIHRoZSBzZWdzaXplCgkgIGxpbWl0IC0gYnkgd3JpdGluZyBhcyBtdWNoIGFzIHBvc3NpYmxlIGluIG9uZSBjaHVuaywgd2UgaW5jcmVhc2UKCSAgcGVyZm9ybWFuY2UgYW5kIGF2b2lkIFB1bHNlQXVkaW8gdW5uZWNlc3NhcnkgcmV3aW5kcy4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgSGVubmluZ3Nzb24gPGRhdmlkLmhlbm5pbmdzc29uQGNhbm9uaWNhbC5jb20+CgoyMDExLTA4LTE4IDE5OjM3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOC0xOCAxOToyMTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJICBwb3J0IHRvIG5ldyBhdWRpbyBjYXBzLgoKMjAxMS0wOC0wOCAyMjoxNDoyOCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogZW5zdXJlIG5vLW1vcmUtcGFkcyBpcyBhbHdheXMgZW1pdHRlZAoJICBJbiBwYXJ0aWN1bGFyLCBkbyBzbyBldmVuIGlmIGZhaWxpbmcgdG8gcmVhZCB3aGlsZSBwcmVyb2xsaW5nLAoJICBzdWNoIGFzIHdoZW4gcmVhZGluZyBmcm9tIGEgcGFydGlhbCBmaWxlIChlZywgd2hpbGUgaXQgaXMgYmVpbmcKCSAgZG93bmxvYWRlZCkuCgkgIFRoaXMgZml4ZXMgYSB3ZWRnZSBpbiBwbGF5YmluMi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MTk2NQoKMjAxMS0wOC0xNyAxNzo1NzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMjogaW1wcm92ZSBmaXhhdGUgZnVuY3Rpb24KCSAgVXNlIG5ldyBjb3JlIGZ1bmN0aW9uIHRvIGZpeGF0ZSBhIGZpZWxkLgoJICBDaGFpbiB1cCB0byBwYXJlbnQgZml4YXRlIGZ1bmN0aW9uLgoKMjAxMS0wOC0xNyAxNTo1MjoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLmMKCjIwMTEtMDgtMTcgMTU6Mzk6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9qcGVnL01ha2VmaWxlLmFtOgoJKiBleHQvanBlZy9nc3RqcGVnLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAganBlZzogcG9ydCB0byAwLjExCgkgIEFsc28gZGlzYWJsZSBzbW9rZSBmb3Igbm93LgoKMjAxMS0wOC0xNiAxNzoyNzoxMyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGF2b2lkIHRpbWVzdGFtcC9vZmZzZXQgdHJhY2tpbmcgZ29pbmcgb3V0IG9mIHN5bmMKCSAgVGhlIGxpYkZMQUMgQVBJIGlzIGNhbGxiYWNrIGJhc2VkLCBhbmQgd2UgbXVzdCBvbmx5IGNhbGwgaXQgdG8KCSAgb3V0cHV0IGRhdGEgd2hlbiB3ZSBrbm93IHdlIGhhdmUgZW5vdWdoIGlucHV0IGRhdGEuIEZvciB0aGlzCgkgIHJlYXNvbiwgYSBzaW5nbGUgcHJvY2Vzc2luZyBzdGVwIGlzIGRvbmUgd2hlbiByZWNlaXZpbmcgYSBidWZmZXIuCgkgIEhvd2V2ZXIsIGlmIHRoZXJlIHdlcmUgbWV0YWRhdGEgYnVmZmVycyBzdGlsbCBwZW5kaW5nLCBhIHN0ZXAKCSAgaW50ZW5kZWQgZm9yIHRoZSBmaXJzdCBhdWRpbyBmcmFtZSBtaWdodCBlbmQgdXAgd3JpdGluZyB0aGF0CgkgIGxlZnRvdmVyIG1ldGFkYXRhLiBTaW5jZSBhIHNpbmdsZSBzdGVwIGlzIGRvbmUgcGVyIGJ1ZmZlciwgdGhpcwoJICB3aWxsIGNhdXNlIGV2ZXJ5IGJ1ZmZlciB0byBiZSB3cml0dGVuIG9uZSBzdGVwIGxhdGUuCgkgIFRoaXMgd291bGQgYWRkIHNvbWUgbGF0ZW5jeSAoYSBidWZmZXJmdWxsJ3Mgd29ydGgpLCBwb3NzaWJseQoJICBsb3NlIGEgYnVmZmVyIHdoZW4gc2Vla2luZyBvciB0aGUgbGlrZSwgYW5kIGFsc28gY2F1c2UgdGltZXN0YW1wCgkgIGFuZCBvZmZzZXQgdG8gYmUgYXBwbGllZCB0byB0aGUgd3JvbmcgYnVmZmVyLCBhcyB1cGRhdGVzIHRvCgkgIHRoZSAiY3VycmVudCIgc2VnbWVudCBsYXN0X3N0b3AgKGZyb20gaW5jb21pbmcgYnVmZmVyIHRpbWVzdGFtcCkKCSAgd2lsbCBiZSBhcHBsaWVkIHRvIGFuIG91dHB1dCBidWZmZXIgb3JpZ2luYXRpbmcgZnJvbSB0aGUgcHJldmlvdXMKCSAgaW5jb21pbmcgYnVmZmVyLgoJICBUaGlzIGZpeGVzIHRoZSBpc3N1ZSBieSBlbnN1cmluZyB0aGF0LCB1cG9uIHJlY2VpdmluZyB0aGUgZmlyc3QKCSAgYXVkaW8gZnJhbWUsIHByb2Nlc3NpbmcgaXMgZG9uZSB0aWxsIGFsbCBtZXRhZGF0YSBpcyBwcm9jZXNzZWQsCgkgIHNvIHRoZSBuZXh0ICJzaW5nbGUgc3RlcCIgZG9uZSB3aWxsIGJlIGZvciB0aGUgYXVkaW8gZnJhbWUuIEFmdGVyCgkgIHRoaXMsIHdlIHNob3VsZCBrZWVwIHRvIDEgaW5wdXQgYnVmZmVyIC0+IDEgb3V0cHV0IGJ1ZmZlciBhbmQgc28KCSAgYXZvaWQgZ2V0dGluZyBvdXQgb2Ygc3luYy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDk2MAoKMjAxMS0wOC0xNyAxMToxNzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDgtMTYgMTU6MzI6MDcgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBiYWlsIG9uIHJlc2VydmVkIHZhbHVlCgkgIE5vdyB0aGF0IHdlIGxvb2sgYXQgdGhlIHJpZ2h0IGJpdHMsIHdlIGNhbiB0ZXN0IGFnYWluc3QgdGhlIHJlc2VydmVkCgkgIHZhbHVlIGFzIHdlIGRvIGZvciBvdGhlciBmaWVsZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA5NjAKCjIwMTEtMDgtMTYgMTU6Mjc6NDMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBmaXggYml0IHR3aWRkbGluZwoJICBSaWdodCBzaGlmdGluZyBhIDggYml0IHZhbHVlIGJ5IDggYml0cyBpcyB0d2ljZSB0b28gbXVjaAoJICB0byBnZXQgdGhlIGhpZ2ggNCBiaXRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwOTYwCgoyMDExLTA4LTE2IDE1OjIyOjQ2ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogd2FybiBpZiB3ZSBzZWUgYSB2YXJpYWJsZSBibG9jayBzaXplIHdoZXJlIHVuc3VwcG9ydGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA5NjAKCjIwMTEtMDgtMTYgMTg6MjU6MjkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiBhdm9pZCBjcmFzaGluZyBieSByZXNldHRpbmcgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGNoYW5uZWxzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY2MDYKCjIwMTEtMDgtMTYgMTg6MzU6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jCgoyMDExLTA4LTE2IDEzOjE2OjIyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogZml4IG9mZiBieSBvbmUgaW4gZnJhbWUgc2l6ZSBjaGVjawoJICBZZXMsIEkgd2FzIHRyYWNraW5nIGFub3RoZXIgYnVnIGFuZCB0aGUgc21hbGwgdGVzdCBmaWxlIEkgZ2VuZXJhdGVkCgkgIHRvIHRlc3Qgd2l0aCBpbXByb2JhYmx5IGp1c3QgaGFwcGVuZWQgdG8gdHJpZ2dlciB0aGlzLCB3aXRoIGEgc2Vjb25kCgkgIGFuZCBsYXN0IGZyYW1lIG9mIDE2MTUgYnl0ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTY2NDkKCjIwMTEtMDgtMTUgMTI6MTk6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuYzoKCSAgdGVzdHM6IHVwZGF0ZSBmb3IgX25lZ290aWF0ZWRfY2FwcygpIGNoYW5nZQoKMjAxMS0wOC0xNCAyMDo0NjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdjIuMy4wLmh0bWw6CgkqIGdzdC9pZDNkZW11eC9pZDN2Mi40LjAtZnJhbWVzLnR4dDoKCSogZ3N0L2lkM2RlbXV4L2lkM3YyLjQuMC1zdHJ1Y3R1cmUudHh0OgoJICBpZDNkZW11eDogcmVtb3ZlIHNwZWNzIGZyb20gZ2l0IGFzIHdlbGwgbm93IHRoYXQgcGFyc2luZyBjb2RlIGlzIGluIC1iYXNlCgoyMDExLTA3LTE0IDE1OjQyOjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2lkM2RlbXV4L01ha2VmaWxlLmFtOgoJKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzoKCSogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuaDoKCSogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6CgkgIGlkM2RlbXV4OiB1c2UgLWJhc2UgcHJvdmlkZWQgaWQzIHRhZyBwYXJzaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQzODgKCjIwMTEtMDgtMTMgMTY6NTE6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2thdWRpb3NyYzogZml4IGVycm9yIG1lc3NhZ2UgY29kZQoJICBBbmQgYWxzbyBwb3N0ICdub3QgZm91bmQnIGVycm9yIGlmIGphY2tkIGlzIG5vdCBldmVuIGluc3RhbGxlZC4KCjIwMTEtMDgtMTIgMTY6MzI6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBpbml0aWFsaXplIGJpdHJhdGUgdmFyaWFibGUgYW5kIHJlc2V0IGZvciBlYWNoIGxvb3AKCSAgRG9uJ3QgY2hlY2sgZXZlbnR1YWxseSB1bnNldCB2YXJpYWJsZSBhbmQgZG9uJ3QgYWNjaWRlbnRpYWxseSB1c2UgdmFsdWVzIGZyb20gbGFzdAoJICBjeWNsZS4KCjIwMTEtMDgtMTAgMTE6Mjg6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJICBhYXNpbms6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgoyMDExLTA4LTA5IDExOjI4OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogUHJvcGVybHkgZXJyb3Igb3V0IGlmIFNEUCBjb250YWlucyBubyBzdHJlYW1zCgkgIEFsc28gZml4ZXMgdW5pdGlhbGl6ZWQgdmFyaWFibGUgZXJyb3Igb24gbWFjb3N4LgoKMjAxMS0wOC0wOSAwOTowNTozMSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICB4aW1hZ2VzcmM6IGNsZWFyIGZsYWdzIG9uIGJ1ZmZlciByZXVzZQoJICBUaGlzIHdpbGwgZW5zdXJlIGEgbG9naWNhbGx5IG5ldyBidWZmZXIgZG9lcyBub3Qga2VlcCBmbGFncyBmcm9tCgkgIGEgcHJldmlvdXMgdXNlIG9mIHRoYXQgYnVmZmVyIChlZywgRElTQ09OVCB3b3VsZCBiZSBzZXQgb24gdGhlIGZpcnN0CgkgIGJ1ZmZlciwgYW5kIG1pc3Rha2VubHkga2VwdCB3aGVuIHJldXNlZCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM3MDkKCjIwMTEtMDgtMDggMTA6NTQ6MjYgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiB0YWtlIGNhcmUgbm90IHRvIGNoYW5nZSB0aGUgY3VycmVudCBmb3JtYXQgd2hlcmUgYXBwcm9wcmlhdGUKCSAgU29tZSBkcml2ZXJzIGFyZSBidWdneSBhcmUgd2lsbCBjaGFuZ2UgdGhlIGN1cnJlbnQgZm9ybWF0IHdoZW4KCSAgcHJvY2Vzc2luZyBWSURJT0NfVFJZX0ZNVC4gU2F2ZSBhbmQgcmVzdG9yZSB0aGUgY3VycmVudCBmb3JtYXQKCSAgdG8gZW5zdXJlIHRoZSBmb3JtYXQgaXMga2VwdCB1bmNoYW5nZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkwNjcKCjIwMTEtMDgtMDggMTU6Mjc6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDgtMDggMTU6MjY6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL01ha2VmaWxlLmFtOgoJICBhYWxpYjogbWFrZSBzdXJlIC1ER1NUX1VTRV9VTlNUQUJMRV9BUEkgaXMgZGVmaW5lZAoJICBTbyB3ZSBkb24ndCBnZXQgd2FybmluZ3MuCgoyMDExLTA4LTA4IDE1OjI1OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRlb292ZXJsYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnZpZGVvb3ZlcmxheS5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5Lmg6CgkgIHY0bDI6IHVwZGF0ZSBmb3IgR3N0WE92ZXJsYXkgPT4gR3N0VmlkZW9PdmVybGF5IHJlbmFtZQoKMjAxMS0wOC0wNyAxMjoyMzoyNiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIHY0bDJzcmM6IFVzZSBmcmFjdGlvbiBjb21wYXJlIHV0aWwgZnVuY3Rpb24uCgkgIFVzZSB0aGUgZnJhY3Rpb24gY29tcGFyZSB1dGlsaXR5IHRvIGNvbXBhcmUgZnVuY3Rpb24sIG5vdCB0aGUKCSAgaGFuZGNyYWZ0ZWQgb25lLiBUaGUgaGFuZGNyYWZ0ZWQgb25lIGlzIGJ1Z2d5IGFzIGl0IGRvZXNuJ3QgdGFrZSBpbnRvCgkgIGFjY291bnQgcm91bmRpbmcgZXJyb3IuIEZvciBleGFtcGxlIGNvbXBhcmluZyBhIGZyYW1lcmF0ZSBvZiAyMC8xIG9uIGEKCSAgY2FtZXJhIGNvbmZpZ3VyZWQgYXMgMzAvMSBmcHMgd291bGQgeWllbGQgdHJ1ZTogMSA9PSAoMSAqIDIwKS8zMCBhbmQgbm90CgkgIHJlLWNvbmZpZ3VyZSB0aGUgY2FtZXJhLiBGaXhlcyAjNjU2MTA0CgoyMDExLTA4LTA3IDExOjE0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5oOgoJICBwdWxzZXNyYzogYXZvaWQgcmFjZSBpbiBzdGFydGluZwoJICBTaW5lIHRoZSBiYXNlIGNsYXNzIG5vdyBkb2VzIHRoZSBuZWdvdGlhdGlvbiBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdlIGhhdmUKCSAgdG8gYmUgY2FyZWZ1bCBhbmQgY2hlY2sgaWYgdGhlIHN0cmVhbSBpcyByZWFkeSBiZWZvcmUgY2hhbmdpbmcgaXRzIGNvcmtlZCBzdGF0ZS4KCjIwMTEtMDgtMDUgMTI6Mjc6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBVc2UgR1NUX0NGTEFHUyB3aGVuIGJ1aWxkaW5nIHRlc3RzCgkgIEVuc3VyZXMgd2UgaGF2ZSB0aGUgcHJvcGVyIGRlZmluZSBmb3IgdXNpbmcgdW5zdGFibGUgQVBJCgoyMDExLTA4LTA1IDA4OjU5OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBpc29tcDQ6IGZpeHVwIGFmdGVyIHNtYWxsIGFwaSBjaGFuZ2VzCgkgIFBvcnQgdG8gcmVjZW50bHkgY2hhbmdlZCBhcGkgc28gdGhhdCBpdCBjb21waWxlcyBhZ2Fpbi4KCjIwMTEtMDgtMDUgMTE6MzI6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSAgeTRtZW5jOiBOb3cgZGVwZW5kcyBvbiBsaWJnc3R2aWRlbwoKMjAxMS0wOC0wNCAxODo0MToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZTogbW9yZSBjbGVhbnVwcwoKMjAxMS0wOC0wNCAxODoxNTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogc21hbGwgY2xlYW51cHMKCjIwMTEtMDgtMDQgMTY6MzU6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IGNhbGwgc2V0X2NhcHMgbWV0aG9kIG9mIGJhc2VjbGFzcwoJICBDYWxsIHRoZSBiYXNlY2xhc3Mgc2V0X2NhcHMgZnVuY3Rpb24gdG8gbWFrZSBpdCBzZW5kIHRoZSBjYXBzIGV2ZW50IGFuZAoJICBwcm9wZXJseSB0cmlnZ2VyIHRoZSBuZWdvdGlhdGlvbiBmdW5jdGlvbnMuCgoyMDExLTA4LTA0IDE2OjI1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBzbWFsbCBjbGVhbnVwcwoKMjAxMS0wOC0wNCAxNToyNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiBwb3J0IHRvIG5ldyBjYXBzCgoyMDExLTA4LTA0IDEzOjUyOjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkgIHY0bDJzaW5rOiBTaXplIHZhcmlhYmxlIHNob3VsZCBiZSBhIGd1aW50IGFuZCBub3QgYSBnc2l6ZQoKMjAxMS0wOC0wNCAxMjo1MDowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IGFjdGl2YXRlIHRoZSBwb29sIGluIGZhbGxiYWNrCgkgIFdoZW4gbm9ib2R5IGlzIHVzaW5nIG91ciBwb29sLCBhY3RpdmF0ZSBpdCBvdXJzZWx2ZXMuCgkgIEF2b2lkIGxlYWtpbmcgdGhlIGJ1ZmZlciBhcnJheS4KCSAgU2V0IGRlZmF1bHQgcG9vbCBjb25maWd1cmF0aW9uIHdpdGggY2Fwcy4KCSAgRG9uJ3Qga2VlcCBjdXJyZW50X2NhcHMsIGNvcmUgZG9lcyB0aGF0IGZvciB1cyBub3cuCgoyMDExLTA4LTAzIDIyOjU3OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOgoJICBmaXggY29tcGlsYXRpb24KCSAgaGFsIGVsZW1lbnRzIHdlcmUgcmVtb3ZlZCwgcmVtb3ZlIHRoZW0gZnJvbSBkb2NzIHRvbwoJICBjaGFuZ2UgZXhhbXBsZSBmb3IgcGFkLWJsb2NrIEFQSSAoYWN0dWFsbHkgcmVtb3ZlIHRoZSBwYWQgYmxvY2ssIGFuIGFwcGxpY2F0aW9uCgkgIHNob3VsZCBub3QgYmUgYm90aGVyZWQgd2l0aCB3b3JraW5nIGFyb3VuZCBidWdzIGluIGVsZW1lbnRzKQoKMjAxMS0wOC0wMyAxODozNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICBwb3J0IHRvIG5ldyBBUEkKCjIwMTEtMDgtMDMgMTg6MjU6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZXh0L3B1bHNlL3B1bHNlc2luay5jCgkgIGV4dC9wdWxzZS9wdWxzZXNyYy5jCgkgIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYwoJICBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jCgoyMDExLTA4LTAzIDIyOjUwOjA1ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS5jOgoJICBtYXRyb3NrYTogUmVnaXN0ZXIgbmV3IGRlYnVnIGNhdGVnb3J5CgkgIFJlZ2lzdGVyIHRoZSBtYXRyb3NrYXJlYWRjb21tb24gZGVidWcgY2F0ZWdvcnkgd2hlbiB0aGUKCSAgcGx1Z2luIGlzIGxvYWRlZCB0byBhdm9pZCBhc3NlcnRpb24gb3V0cHV0IHdoZW4gZGVidWcgaXMgdHVybmVkIG9uLgoKMjAxMS0wOC0wMyAxMzozODowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy9nZGtwaXhidWZzaW5rLXRlc3QuYzoKCSAgdGVzdC9pY2tsZXM6IFBvcnQgZ2RrcGl4YnVmc2luayB0ZXN0CgoyMDExLTA4LTAzIDEzOjMzOjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdXRvZGV0ZWN0LmM6CgkgIFJldmVydCAidGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERpc2FibGUgYXV0b2RldGVjdCB0ZXN0IHRlbXBvcmFyaWx5LCBzbyB0aGF0IHRoZSBidWlsZCBib3RzIHVwZGF0ZSAtYmFkIGFuZCB0aGUgcmFua3Mgb2YgdW5yLi4uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDQ3NWFlZDhhZjZkMmE1N2MxZDIxNDkwYzgyNGU3NTRhNmIyMzY3YTkuCgkgIEl0IHdvbid0IGNvbnNpZGVyIGVsZW1lbnRzIGZyb20gYW55d2hlcmUgZWxzZSBhbnltb3JlCgoyMDExLTA4LTAzIDEzOjEwOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuYzoKCSAgY2hlY2s6IFVwZGF0ZSBwYXJzZXIgbWluaS1saWIgdG8gMC4xMSBBUEkKCjIwMTEtMDgtMDMgMTM6MDk6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiB1cGRhdGUgZm9yIG1vZGlmaWVkIHNvdXJjZSBmaWxlIGxvY2F0aW9uCgoyMDExLTA4LTAzIDEzOjA4OjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBjYWlyb19nb2JqZWN0IGlzbid0IHBvcnRlZCBlaXRoZXIKCjIwMTEtMDgtMDMgMTA6NTk6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvTWFrZWZpbGUuYW06CgkqIGV4dC9oYWwvTWFrZWZpbGUuYW06CgkqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmM6CgkqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmg6CgkqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zcmMuYzoKCSogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5oOgoJKiBleHQvaGFsL2dzdGhhbGVsZW1lbnRzLmM6CgkqIGV4dC9oYWwvZ3N0aGFsZWxlbWVudHMuaDoKCSogZXh0L2hhbC9oYWwuYzoKCSogZXh0L2hhbC9oYWwuaDoKCSAgaGFsOiBSZW1vdmUgaGFsIHBsdWdpbgoJICBoYWwgaXMgbm90IGRldmVsb3BlZCBhbnltb3JlIGFuZCBub2JvZHkgaXMgdXNpbmcgdGhlIHBsdWdpbiBub3dhZGF5cy4KCjIwMTEtMDctMjkgMTM6MDM6NTUgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogc29mdGVuIGFzc2VydGlvbiBjaGVjayBvbiBzdHJlYW0gc2l6ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU1NTcwCgoyMDExLTA4LTAzIDEwOjA5OjQyICswMjAwICBSb2JlcnQgS3Jha29yYSA8cm9iLmtyYWtvcmFAbWVzc2FnZW5ldHN5c3RlbXMuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIHJ0cGpwZWdwYXk6IEFkZCBzdXBwb3J0IGZvciBILjI2NCBwYXlsb2FkIGluIE1KUEVHIGNvbnRhaW5lcgoJICBTZWUgaHR0cDovL3d3dy5xdWlja2NhbXRlYW0ubmV0L3V2Yy1oMjY0L1VTQl9WaWRlb19QYXlsb2FkX0guMjY0XzAuODcucGRmCgkgIEZpeGVzIGJ1ZyAjNjU1NTMwLgoKMjAxMS0wOC0wMiAyMjowNTowOCAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSAgamFja2F1ZGlvc2luazogRG9uJ3QgY2FsbCBnX2FsbG9jYSgpIGluIHByb2Nlc3NfY2IKCSAgZ19hbGxvY2EoKSBpcyBub3QgUlQtc2FmZSwgc28gaW5zdGVhZCB3ZSBzaG91bGQgYWxsb2NhdGUgdGhlCgkgIG1lbW9yeSBuZWVkZWQgaW4gYWR2YW5jZS4gRml4ZXMgIzY1NTg2NgoKMjAxMS0wOC0wMyAwODo1ODowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQWRkIGhhbCB0byB0aGUgbGlzdCBvZiBub24tcG9ydGVkIHBsdWdpbnMKCjIwMTEtMDgtMDMgMDg6NTM6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFkZCBtb25vc2NvcGUgdG8gdGhlIGxpc3Qgb2Ygbm9uLXBvcnRlZCBwbHVnaW5zCgoyMDExLTA4LTAzIDA4OjUxOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSAgZWZmZWN0djogRml4IHVudXNlZCBidXQgc2V0IHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA4LTAyIDIzOjQyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICBkb2NzOiBmaXggdHdvIG1vcmUgU2luY2U6IHRhZ3MKCjIwMTEtMDctMzEgMDQ6MTk6MDAgKzAzMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogRml4IFNpbmNlIHRhZ3MgZm9yIGZpZWxkYW5hbHlzaXMgcmVsYXRlZCBuZXcgcHJvcGVydGllcwoJICBjb21taXQgYzFiMTAwY2Y5YyBpcyBhZnRlciAwLjEwLjI5IGFuZCAwLjEwLjMwIHdhcyBhIGJyYW5jaGVkIHJlbGVhc2UuCgkgIFNvIGZpeCBTaW5jZSB0YWdzIGZyb20gMC4xMC4yOSB0byAwLjEwLjMxIGZvciB0aGUgbmV3IHByb3BlcnRpZXMuCgoyMDExLTA4LTAyIDExOjUxOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSAgcnRwdm9yYmlzcGF5OiBmaXggcG9ydGluZyBlcnJvcgoKMjAxMS0wOC0wMiAxMToyOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogRGVmaW5lIGxpc3Qgb2Ygbm9uLXBvcnRlZCBwbHVnaW5zCgoyMDExLTA4LTAyIDExOjI5OjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTEtMDgtMDIgMTE6MTc6MzggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IFNvcnQgQUdfR1NUX0NIRUNLX1BMVUdJTiBhbHBoYWJldGljYWxseQoKMjAxMS0wNy0yOSAxNzoyNzowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuaDoKCSAgLWdvb2Q6IGZpeCBmb3IgYnVmZmVycG9vbCBBUEkgY2hhbmdlCgoyMDExLTA3LTI5IDE3OjIxOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICB2NGw6IGNoYW5nZSBmb3IgbmV3IEFQSQoKMjAxMS0wNy0yOSAxMzowNTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZml4IHZhcmlhYmxlLXNldC1idXQtbm90LXVzZWQgY29tcGlsZXIgd2FybmluZyB3aXRoIG9sZGVyIHB1bHNlIHZlcnNpb25zCgoyMDExLTA3LTI5IDEyOjA3OjI0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogcHJvcGVybHkgaW5pdCBydGNwX21pbl9pbnRlcnZhbAoKMjAxMS0wMy0wOSAxMTowNDozNiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJICBwdWxzZXNpbms6IEFkZCBzdXBwb3J0IGZvciBjb21wcmVzc2VkIGZvcm1hdHMKCSAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHZhcmlvdXMgY29tcHJlc3NlZCBmb3JtYXRzIChBQzMsIEUtQUMzLCBEVFMgYW5kCgkgIE1QMykgcGF5bG9hZGVkIGluIElFQyA2MTkzNyBmb3JtYXQgKHVzZWQgZm9yIHRyYW5zbWlzc2lvbiBvdmVyIFMvUERJRiwKCSAgSERNSSBhbmQgQmx1ZXRvb3RoKS4KCSAgVGhlIGFjY2VwdGNhcHMoKSBmdW5jdGlvbiBhbGxvd3MgYmlucyB0byBwcm9iZSBmb3Igd2hhdCBmb3JtYXRzIHRoZSBzaW5rCgkgIGJlaW5nIGNvbm5lY3RlZCB0byBzdXBwb3J0LiBUaGlzIG9ubHkgd29ya3MgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgc2V0IHRvCgkgIGF0IGxlYXN0IFJFQURZLgoJICBJZiB0aGUgdW5kZXJseWluZyBzaW5rIGNoYW5nZXMgYW5kIHRoZSBmb3JtYXQgd2UgYXJlIHN0cmVhbWluZyBpcyBub3QKCSAgYXZhaWxhYmxlLCB3ZSBlbWl0IGEgbWVzc2FnZSB0aGF0IHdpbGwgYWxsb3cgdXBzdHJlYW0gZWxlbWVudHMvYmlucyB0bwoJICBibG9jayBhbmQgcmVuZWdvdGlhdGUgYSBuZXcgZm9ybWF0LgoKMjAxMS0wMy0wMSAxNTozNDo0NiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmg6CgkgIHB1bHNlc2luazogVXNlIHRoZSBleHRlbmRlZCBzdHJlYW0gQVBJIGlmIGF2YWlsYWJsZQoJICBUaGlzIHVzZXMgdGhlIG5ldyBleHRlbmRlZCBBUEkgZm9yIGNyZWF0aW5nIHN0cmVhbXMuIFRoaXMgd2lsbCBhbGxvdyB1cwoJICB0byBzdXBwb3J0IGNvbXByZXNzZWQgZm9ybWF0cyBuYXRpdmVseSBpbiBwdWxzZXNpbmsgYXMgd2VsbC4KCjIwMTEtMDctMjkgMDA6MDc6NTIgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5oOgoJICBwdWxzZXNyYzogQWRkIGEgc291cmNlLW91dHB1dC1pbmRleCBwcm9wZXJ0eQoJICBUaGlzIGV4cG9zZXMgdGhlIHNvdXJjZSBvdXRwdXQgaW5kZXggb2YgdGhlIHJlY29yZCBzdHJlYW0gdGhhdCB3ZSBvcGVuCgkgIHNvIHRoYXQgY2xpZW50cyBjYW4gdXNlIHRoaXMgd2l0aCB0aGUgaW50cm9zcGVjdGlvbiBpZiB0aGV5IHdhbnQgKHRvCgkgIG1vdmUgdGhlIHN0cmVhbSwgZm9yIGV4YW1wbGUpLgoKMjAxMS0wNy0yOCAxNDo0NDo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgcnRwc3NyY2RlbXV4OiBrZWVwIGEgcmVmIG9uIHRoZSBzcmMgcGFkIHdoaWxlIHVzaW5nIGl0CgkgIFByZXZlbnQgYSBwb3NzaWJsZSByYWNlIGlmIGNsZWFyX3NzcmMoKSBpcyBjYWxsZWQgYmV0d2VlbiBnZXR0aW5nIHRoZSBwYWQgYW5kCgkgIGRvaW5nIHRoZSBwdXNoLgoJICBCYXNlZCBvbiBwYXRjaCBieSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwOTE2CgoyMDExLTA1LTI0IDExOjI5OjU3ICswMzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5oOgoJICBydHBzc3JjZGVtdXg6IE1ha2UgdGhlIHBhZHMgbG9jayByZWN1cnNpdmUgYW5kIGhvbGQgaXQgYWNyb3NzIHRoZSBzaWduYWwgZW1pdAoJICBXZSBuZWVkIHRvIGtlZXAgdGhlIGxvY2sgaGVsZCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgYSBwdXNoIGJlZm9yZSB0aGUgIm5ldy1zc3JjLXBhZCIKCSAgaGFuZGxlciBoYXMgY29tcGxldGVkLiBCdXQgd2UgbWF5IHdhbnQgdG8gcHVzaCBhbiBldmVudCBmcm9tIGluc2lkZSB0aGF0IGhhbmRsZXIsIGhlbmNlCgkgIHRoZSByZWN1cnNpdmUgbXV0ZXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA5MTYKCjIwMTEtMDUtMjQgMTE6MTc6MjUgKzAzMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgcnRwc3NyY2RlbXV4OiBVc2UgUEFEcyBsb2NrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA5MTYKCjIwMTEtMDctMjggMTE6MDk6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBzcGVleDogdXBkYXRlIGZvciBwb3NpdGlvbi9xdWVyeS9jb252ZXJ0IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI4IDEwOjU0OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdnNlZWsuYzoKCSogZ3N0L2RlYnVndXRpbHMvcHJvZ3Jlc3NyZXBvcnQuYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIGdzdDogdWRwYXRlIGZvciBwb3NpdGlvbi9kdXJhdGlvbi9jb252ZXJ0IHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI4IDAwOjM3OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdGF2aWRlbXV4LmM6IEluIGZ1bmN0aW9uICdnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSc6CgkgIGdzdGF2aWRlbXV4LmM6MTI2MToyNDogZXJyb3I6ICdkYXRhJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9dW5pbml0aWFsaXplZF0KCSAgZ3N0YXZpZGVtdXguYzoxMjA0OjExOiBub3RlOiAnZGF0YScgd2FzIGRlY2xhcmVkIGhlcmUKCjIwMTEtMDctMjcgMTg6MTU6MjAgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuaDoKCSAgcnRwaDI2NGRlcGF5OiBDb3BlIHdpdGggRlUtQSBFIGJpdCBub3QgYmVpbmcgc2V0CgkgIFNvbWUgaDI2NCBwYXlsb2FkZXJzIGFyZSB1bmZvcnR1bmF0ZWx5IGJ1Z2d5IGFuZCBkb24ndCBjb3JyZWN0bHkgc2V0IHRoZQoJICBFIGJpdCBpbiBGVS1BIE5BTCB3aGVuIHRoZXkgaGF2ZSBlbmRlZC4gV29yayBhcm91bmQgdGhpcyBieSBhc3N1bWluZwoJICBzdWNoIGEgZnJhZ21lbnRhdGlvbiB1bml0IGhhcyBlbmRlZCB3aGVuIHRoZXJlIHdhcyBubyBwYWNrZXQgbG9zcyBhbmQgYQoJICBuZXcgTkFMIGlzIHN0YXJ0ZWQKCjIwMTEtMDQtMTIgMTc6MDE6NDcgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmg6CgkgIGFjM3BhcnNlOiBTdXBwb3J0IHN3aXRjaGluZyBhbGlnbm1lbnQgb24tdGhlLWZseQoJICBUaGlzIGFsbG93cyBzd2l0Y2hpbmcgb2YgYWxpZ25tZW50IGZvciBFLUFDMyBzdHJlYW1zIGF0IHJ1bi10aW1lLiBUaGlzCgkgIGlzIHJlcXVlc3RlZCBieSBkb3duc3RyZWFtIGVsZW1lbnRzIHZpYSBhIGN1c3RvbSBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDMxMwoKMjAxMS0wNy0yNyAxNjo0Njo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgkgIFVzZSB0aGUgbW9yZSBzcGVjaWFsaXplZCB0eXBlIGZvciB0aGUgYnVmZmVycG9vbC4KCSAgVXNlIHRoZSBzaXplIGZyb20gdGhlIGRyaXZlciBhcyB0aGUgc2l6ZSBvZiB0aGUgaW1hZ2UgdG8gcmVhZC4KCSAgRG9uJ3QgY29uZmlndXJlIHRoZSBwb29sIHdoZW4gY3JlYXRlZC4gVGhpcyB3aWxsIGJlIGRvbmUgaW4gdGhlIHNldHVwX2FsbG9jYXRpb24KCSAgbWV0aG9kIGxhdGVyIG9yIGJ5IHVwc3RyZWFtIGZvciBzaW5rcy4KCSAgUmVtb3ZlIHVudXNlZCBwcm9wZXJ0aWVzIGFuZCB2YXJpYWJsZXMuIEJ1ZmZlcnBvb2wgc2l6ZXMgYXJlIG5vdyBjb25maWd1cmVkIGluCgkgIHRoZSBidWZmZXJwb29sIGJ5IHRoZSBlbGVtZW50cyBpbiB0aGUgcGlwZWxpbmUuIFdlIG1pZ2h0IHdhbnQgdG8gaW5mbHVlbmNlIHRoZQoJICBwb29sIHNpemUgbGF0ZXIgc29tZWhvdy4KCjIwMTEtMDctMjcgMTM6NDY6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJICB2NGwyYnVmZmVycG9vbDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMS0wNy0yNyAxMzo0MzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogYWRkIG1ldGFkYXRhCgoyMDExLTA3LTI3IDEzOjQxOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogY2hlY2sgZm9yIG1ldGFkYXRhCgkgIE9ubHkgYWRkIHZpZGVvIG1ldGFkYXRhIHdoZW4gaXQgd2FzIGNvbmZpZ3VyZWQgaW4gdGhlIHBvb2wuIEZhaWwgaWYgdGhlcmUgd2FzIG5vCgkgIHZpZGVvIG1ldGFkYXRhIGNvbmZpZ3VyZWQgYW5kIHRoZSBzdHJpZGVzIGFyZSBub3QgdGhlIGRlZmF1bHQgb25lcy4KCjIwMTEtMDctMjcgMTI6NDI6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuaDoKCSAgd2FycDogYWRkIHN0cmlkZSBzdXBwb3J0CgoyMDExLTA3LTI3IDEyOjQxOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBhZGQgY29sb3JzcGFjZSB0byBkZWJ1ZwoKMjAxMS0wNy0yNiAxNzo0NTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHA6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0wNy0yNiAxNjoxNTowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IHJlbmFtZSBhIHZhcmlhYmxlCgkgIFJlbmFtZSB0aGUgc2l6ZSB2YXJpYWJsZSB0byBzaXplaW1hZ2UgYW5kIGZpbGwgaXQgd2l0aCB0aGUgc2l6ZSB0aGF0IGhhcyBiZWVuCgkgIGdpdmVuIHRvIHVzZSBieSB0aGUgdjRsMiBkcml2ZXIgaW5zdGVhZCBvZiBtYWtpbmcgc29tZXRoaW5nIHVwLi4KCjIwMTEtMDctMjYgMTM6MTg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB2NGwyOiB1c2UgbmV3IHNldHVwX2FsbG9jYXRpb24gdm1ldGhvZAoKMjAxMS0wNy0yNiAxMDo1NjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IGltcGxlbWVudCBtb3JlIGJpdHMgb2YgUlcgSS9PIG1vZGUKCSAgSW1wbGVtZW50IHRoZSByZWxhZXNlIG9mIFJXIGJ1ZmZlcnMgaW4gdGhlIHBvb2wuCgkgIFdhcm4gZm9yIHVuc3VwcG9ydGVkIHdyaXRlKCkgbW9kZSBmb3Igc2lua3MuCgoyMDExLTA3LTI2IDEwOjU0OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBpbXByb3ZlIElPIG1vZGUgZXJyb3IgaGFuZGxpbmcKCSAgRXJyb3Igb3V0IHdoZW4gYW4gdW5zdXBwb3J0ZWQgSU8gbW9kZSB3YXMgc2VsZWN0ZWQKCjIwMTEtMDQtMDkgMTI6MjY6NTYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FjM3BhcnNlLmM6CgkgIGFjM3BhcnNlOiBBZGQgc3VwcG9ydCBmb3IgSUVDIDYxOTM3IGFsaWdubWVudAoJICBXaGVuIHB1c2hpbmcgb3V0IGJ1ZmZlcnMgb3ZlciBTL1BESUYgb3IgSERNSSwgSUVDIDYxOTM3IHBheWxvYWRpbmcKCSAgcmVxdWlyZXMgZWFjaCBidWZmZXIgdG8gY29udGFpbiA2IGJsb2NrcyBmcm9tIGVhY2ggc3Vic3RyZWFtLiBUaGlzIGFkZHMKCSAgY29kZSB0byBjb2xsZWN0IGFsbCB0aGUgZnJhbWVzIG5lZWRlZCB0byBtZWV0IHRoaXMgcmVxdWlyZW1lbnQgYmVmb3JlCgkgIHB1c2hpbmcgb3V0IGEgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMzEzCgoyMDExLTA2LTA4IDE1OjU3OjM3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIHJ0cHNlc3Npb246IEFsd2F5cyBzZW5kIGFwcGxpY2F0aW9uIHJlcXVlc3RlZCBmZWVkYmFjayBpbiBpbW1lZGlhdGUgbW9kZQoJICBTZW5kIGFzIG1hbnkgYXBwbGljYXRpb24gcmVxdWVzdGVkIGZlZWRiYWNrIG1lc3NhZ2VzIGluIGltbWVkaWF0ZSBtb2RlLCBldmVuIGlmIHRoZXkKCSAgaGF2ZSBhbHJlYWR5IGJlZW4gc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDU4MwoKMjAxMS0wNi0wOCAxNDo0ODowMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogRG9uJ3QgbGV0IHRoZSBjb21wdXRlZCBSVFAgYmFuZHdpZHRoIGZhbGwgdG9vIGxvdwoJICBJZiBpdCBmYWxscyB0b28gbG93LCB0aGUgY29tcHV0ZWQgUlRDUCBiYW5kd2lkdGggd2lsbCBiZSBuZWFyIHplcm8gYW5kCgkgIHRoZSBSVENQIHRocmVhZCB3aWxsIGJlIHN0b3BwZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ1ODMKCjIwMTEtMDQtMjUgMTY6MTM6MzggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogV2FpdCBsb25nZXIgdG8gdGltZW91dCBTU1JDIGNvbGxpc2lvbgoJICBVc2luZyB0aGUgY3VycmVudCBSVENQIGludGVydmFsIHRvIHRpbWVvdXQgU1NSQyBjb2xsaXNpb24gY2FuIGxlYWQgdG8KCSAgY29sbGlzaW9ucyBiZWluZyB0aW1lZCBvdXQgaW1tZWRpYXRlbHkgaWYgYSBCWUUgcGFja2V0IGlzIHNlbnQgYmVjYXVzZQoJICBpdCBpcyBzZW50IGltbWVkaWF0ZWx5LCBzbyB0aGUgaW50ZXJ2YWwgaXMgMC4gVGhpcyBpcyBub3Qgd2hhdCB3ZQoJICB3YW50LiBTbyBqdXN0IHNldCBhIHN0YXRpYyAxMCB0aW1lcyB0aGUgZGVmYXVsdCBSVENQIGludGVydmFsLCBpdAoJICBzaG91bGQgYmUgZW5vdWdoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDg2NDIKCjIwMTEtMDctMjUgMTU6NTE6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJICB2NGwyOiByZW1vdmUgdW51c2VkIG1ldGhvZAoKMjAxMS0wNy0yNSAxNTozODozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogZml4IGZsdXNoaW5nIHN0YXJ0IGFuZCBzdG9wCgkgIE1vdmUgdGhlIGZsdXNoaW5nIGNhbGxzIHRvIHRoZSByaWdodCBwbGFjZSBpbiB0aGUgYnVmZmVycG9vbC4KCSAgRml4IHRoZSBtaW4gYW5kIG1heCBidWZmZXIgc2l6ZXMuCgoyMDExLTA3LTI1IDE0OjQ3OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSAgdjRsMjogZGVxdWV1ZSBidWZmZXJzIHdoZW4gYWxsIGFyZSBxdWV1ZWQKCSAgUHJlZmVyIHRvIGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgYnVmZmVycG9vbCBxdWV1ZSBmb3IgdGhlIF9hY3F1aXJlIGZ1bmN0aW9uCgkgIGJlY2F1c2UgaXQgcHJvcGVybHkgc3VwcG9ydHMgdW5ibG9ja2luZyB3aGVuIHNldHRpbmcgaW5hY3RpdmUgZXRjLiBBcyBhIHJlc3VsdCwKCSAgd2UgbmVlZCB0byBkZXF1ZXVlIGJ1ZmZlcnMgYW5kIHB1dCB0aGVtIGJhY2sgaW4gdGhlIGJ1ZmZlcnBvb2wgcXVldWUgd2hlbiB3ZQoJICBoYXZlIHF1ZXVlZCBhbGwgYnVmZmVycyBpbiB0aGUgc2luay4KCSAgUmVuYW1lIHNvbWUgdmFyaWFibGVzIHRvIG1vcmUgbWVhbmluZ2Z1bGwgbmFtZXMgdG8gYXZvaWQgYSBwcm9ibGVtIHdpdGgKCSAgZnJlZWluZyB0aGUgd3JvbmcgYW1vdW50IG9mIGJ1ZmZlcnMuCgoyMDExLTA3LTE5IDEzOjM4OjAxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogc2V0IFNPVVJDRSBmbGFnIGF0IGluaXQgdGltZQoJICBGaXhlcyAjNjU0ODE2LgoKMjAxMS0wNy0yNSAxMDoxMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSAgdmVydGlnb3R2OiBhZGQgc3RyaWRlIHN1cHBvcnQKCjIwMTEtMDctMTkgMTg6MjU6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBvbmx5IHRvIFNUUkVBTU9GRiB3aGVuIHN0cmVhbWluZwoJICBPbmx5IGNhbGwgU1RSRUFNT0ZGIHdoZW4gd2UgcHJldmlvdXNseSBjYWxsZWQgU1RSRUFNT04KCjIwMTEtMDctMjIgMjE6MjY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkgIHJlcGxheTogZml4IGZvciBldmVudCBoYW5kbGVyCgoyMDExLTA3LTIyIDIxOjE5OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2c2Vlay5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJICBmaXhlcyBmb3IgZXZlbnQgaGFuZGxlciBjaGFuZ2VzCgoyMDExLTA3LTE4IDE2OjQ2OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSAgcnRwaDI2NGRlcGF5OiBDb21wbGV0ZSBtZXJnZWQgQVUgb24gbWFya2VyIGJpdAoJICBUaGUgbWFya2VyIGJpdCBvbiBhIFJUUCBwYWNrZXQgbWVhbnMgdGhlIEFVIGhhcyBiZWVuIGNvbXBsZXRlZCwgc28gcHVzaCBpdCBvdXQKCSAgaW1tZWRpYXRlbHkgdG8gcmVkdWNlIHRoZSBsYXRlbmN5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0ODUwCgoyMDExLTA3LTE4IDIwOjI3OjM4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5oOgoJICBydHBoMjY0cGF5OiBPbmx5IHNldCB0aGUgbWFya2VyIGJpdCBvbiB0aGUgbGFzdCBOQUxVIG9mIGEgbXVsdGktTkFMVSBhY2Nlc3MgdW5pdAoJICBBbiBhY2Nlc3MgdW5pdCBjb3VsZCBjb250YWluIG11bHRpcGxlIE5BTCB1bml0cywgaW4gdGhhdCBjYXNlLCBvbmx5IHRoZSBsYXN0CgkgIFJUUCBwYWNrZXQgb2YgdGhlIGxhc3QgTkFMVSBzaG91bGQgaGF2ZSBpdHMgbWFya2VyIGJpdCBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ4NTAKCjIwMTEtMDctMjAgMDg6NTI6NTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSAgbXVsdGlwYXJ0OiBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMS0wNy0xOSAxODoyMDo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMjogaGFuZGxlIHVuc3VwcG9ydGVkIGZvcm1hdHMKCjIwMTEtMDctMTkgMTY6NTk6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMjogRml4IHNpbmsgYnVmZmVycG9vbCBoYW5kbGluZwoJICBSZW1vdmUgb2xkIG1ldGhvZCwgdXNlIG5ld3cgX3Byb2Nlc3MgbWV0aG9kIGZvciB0aGUgc2luay4KCSAgSW5mb3JtIHRoZSBwYXJlbnQgYnVmZmVycG9vbCBjbGFzcyBhYm91dCB0aGUgc2V0dGluZ3MgdG9vLiBUaGlzIGlzIG5lZWRlZCB0byBsZXQKCSAgaXQga25vdyBhYm91dCB0aGUgbWF4LWJ1ZmZlcnMuCgkgIEFsbG9jYXRlIHRoZSBuZWdvdGlhdGVkIG1heC1idWZmZXJzIGFuZCBpbml0aWFsbHkgbW1hcCBtaW4tYnVmZmVycy4gVGhlIGlkZWEgaXMKCSAgdGhhdCB0aGUgYnVmZmVycG9vbCB3aWxsIGFsbG9jYXRlIG1vcmUgd2hlbiBuZWVkZWQuCgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICBPbmx5IHBvbGwgaW4gY2FwdHVyZSBtb2RlLCBpdCBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gcGxheWJhY2sgbW9kZSBvbiB0aGlzCgkgIGJlYWdsZWJvYXJkLgoKMjAxMS0wNy0xOSAxMjowNTo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkgIGF1cGFyc2U6IGF2b2lkIGhhbmdpbmcgb24gaW52YWxpZCBzaG9ydCBpbnB1dAoJICAuLi4gYXMgaW4gc3VjaCBjYXNlIHRoZXJlIGlzIG5vIHNyY3BhZCB5ZXQgb24gd2hpY2ggdG8gZm9yd2FyZCBFT1MuCgoyMDExLTA3LTE4IDE1OjEzOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogRml4IGRlZmF1bHQgdmFsdWUgbGVha2luZwoJICBSZW1lbWJlciB0byBmcmVlIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGNsaWVudCBuYW1lLCBhdm9pZGluZyBhCgkgIGxlYWsKCjIwMTEtMDctMTggMTg6NTQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkgIHY0bDI6IE1vcmUgd29yayBvbiBidWZmZXJwb29scwoJICBBZGQgZGlmZmVyZW50IHRyYW5zcG9ydCBtZXRob2RzIHRvIHRoZSBidWZmZXJwb29sIChNTUFQIGFuZCBSRUFEL1dSSVRFKQoJICBEbyBtb3JlIHBhcnNpbmcgb2YgdGhlIGJ1ZmZlcnBvb2wgY29uZmlnLgoJICBTdGFydCBhbmQgc3RvcCBzdHJlYW1pbmcgYmFzZWQgb24gdGhlIGJ1ZmZlcnBvb2wgc3RhdGUuCgkgIE1ha2Ugc2VwYXJhdGUgbWV0aG9kcyBmb3IgZ2V0dGluZyBhIGJ1ZmZlciBmcm9tIHRoZSBwb29sIGFuZCBmaWxsaW5nIGl0IHdpdGgKCSAgZGF0YS4gVGhpcyBhbGxvd3MgdXMgdG8gZmlsbCBidWZmZXJzIGZyb20gb3RoZXIgcG9vbHMgdG9vLiBFaXRoZXIgdXNlIGNvcHkgb3IKCSAgcmVhZCB0byBmaWxsIHVwIHRoZSB0YXJnZXQgYnVmZmVycy4KCSAgQWRkIHByb3BlcnR5IHRvIGZvcmNlIGEgdHJhbnNmZXIgbW9kZSBpbiB2NGwyc3JjLgoJICBJbmNyZWFzZSBkZWZhdWx0IG51bWJlciBvZiBidWZmZXJzIHRvIDQuCgkgIE5lZ290aWF0ZSBidWZmZXJwb29sIGFuZCBpdHMgcHJvcGVydGllcyBpbiB2NGwyc3JjLgoKMjAxMS0wNy0xOCAxNDoyNDo0OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICBydHBoMjY0ZGVwYXk6IHJlc2V0IHVwb24gRkxVU0hfU1RPUAoJICAuLi4gd2hpY2ggaXMgcGFydGljdWxhcmx5IG5lZWRlZCB3aGVuIG1lcmdpbmcgTkFMIHVuaXRzLCB3aGVyZSBub3QgcmVzZXR0aW5nCgkgIHdvdWxkIGxlYWQgdG8gb3V0cHV0IG9mIGFuIG9sZGVyIChwcmUtZmx1c2gpIEFVICh3aXRoIHVuaW50ZW5kZWQgdGltZXN0YW1wKS4KCjIwMTEtMDctMTggMTQ6MzA6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIG11bHRpZmlsZXNpbms6IGRvIG5vdCB1c2UgZ19zbGlzdF9mcmVlX2Z1bGwKCSAgLi4uIGFzIHRoYXQgaXMgb25seSBpbiBHTGliIDIuMjgsIHdoaWNoIGlzIG5vdCB5ZXQgcmVxdWlyZWQgYXQgdGhpcyB0aW1lLgoKMjAxMS0wNy0xOCAxMDo1MjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICB2NGwyOiBhZGQgSU8gbWV0aG9kIGVudW0KCjIwMTEtMDctMTggMTA6NTE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBpbXByb3ZlIF9uZXcgZnVuY3Rpb24KCjIwMTEtMDctMTggMDk6Mzg6MjYgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzoKCSAgbXVsdGlmaWxlc2luazogYWRkIG1heC1maWxlcyBwcm9wZXJ0eQoJICBBZGQgbWF4LWZpbGVzIHByb3BlcnR5IHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgZmlsZXMgc2F2ZWQgb24gZGlzay4KCSAgQVBJOiBtdWx0aWZpbGVzaW5rOjptYXgtZmlsZXMKCjIwMTEtMDctMTcgMjM6MzY6NTUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIG11bHRpZmlsZXNpbms6IHJlZmFjdG9yIGZpbGUgb3BlbmluZyBhbmQgY2xvc2luZyBjb2RlCgoyMDExLTA3LTE2IDE5OjM4OjUxICswMjAwICBBbGV4ZXkgRmlzaGVyIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogZml4IHBpeGVsLWFzcGVjdC1yYXRpbyBpZiBoZWFkZXIgaGFzIG9ubHkgb25lIGRpc3BsYXkgdmFyaWFibGUKCSAgQ3VycmVudCBtYXRyb3NrYSBkZW11eCBjYWxjdWxhdGVzIHRoZSBwaXhlbCBhc3BlY3QgcmF0aW8gb25seSBpZiBib3RoCgkgIERpc3BsYXlIZWlnaHQgYW5kIERpc3BsYXlXaWR0aCBhcmUgc2V0LCBidXQgaXQgaXMgbGVnYWwgdG8gdXNlIG9ubHkKCSAgb25lIHZhcmlhYmxlIGlmIHRoZSBvdGhlciBpcyBlcXVhbCB0byBQaXhlbFdpZHRoIG9yIFBpeGVsSGVpZ2h0LCBhdAoJICBsZWFzdCB0aGUgbWtjbGVhbiB1dGlsaXR5IGlzIGRvaW5nIHRoYXQuIFNvIHRoaXMgbWFrc2UgbWtjbGVhbmVkCgkgIGZpbGVzIHBsYXkgY29ycmVjdGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NzQ0CgoyMDExLTA3LTE2IDIzOjQ3OjUwICswMTAwICBBbnRvaW5lIEphY291dG90IDxhamFjb3V0b3RAb3BlbmJzZC5vcmc+CgoJKiBnc3QvZ29vbS9wbHVnaW5faW5mby5jOgoJICBnb29tOiBmaXggYnVpbGQgb24gUFBDIG9uIG9wZW5ic2QKCSAgQSBtaXNzaW5nIHN5cy9wYXJhbS5oIGluY2x1ZGUgcmVzdWx0cyBpbjoKCSAgL3Vzci9pbmNsdWRlL3N5cy9wcm9jLmg6NjQ6IGVycm9yOiAnTUFYTE9HTkFNRScgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4gYQoJICBmdW5jdGlvbikKCSAgL3Vzci9pbmNsdWRlL3N5cy9wcm9jLmg6Mjg1OiBlcnJvcjogJ01BWENPTUxFTicgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4gYQoJICBmdW5jdGlvbikKCSAgd2hlbiBjb21waWxpbmcgZ29vbSBvbiBvcGVuYnNkL3BwYy4gV2UgY2FuIGp1c3QgcmVtb3ZlIHRoZSB0d28gc3lzLyBpbmNsdWRlcwoJICBoZXJlLCB0aGV5IGFyZSBub3QgbmVlZGVkIGZvciBhbnl0aGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDc0OQoKMjAxMS0wNy0xNSAxNzowNjozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDctMTUgMTY6NTU6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IGltcGxlbWVudCBzZXR1cF9hbGxvY2F0aW9uCgkgIEltcGxlbWVudCB0aGUgc2V0dXBfYWxsb2NhdGlvbiB2bWV0aG9kLCB3ZSdsbCBob3BlZnVsbHkgZG8gc29tZXRoaW5nIGNsZXZlciBpbgoJICB0aGVyZSBsYXRlci4KCjIwMTEtMDctMTUgMTY6MjY6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IGltcHJvdmUgYnVmZmVycG9vbCBjb25maWcgc2V0dGluZwoJICBQYXNzIHRoZSBjYXBzIGFuZCB0aGUgZGVmYXVsdCB2aWRlbyBzaXplIHRvIHRoZSBidWZmZXJwb29sIGNvbmZpZy4KCSAgRG9uJ3QgYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wsIHRoaXMgd2lsbCBiZSBkb25lIGJ5IHRoZSBvYmplY3QgdGhhdCBkZWNpZGVzIHRvCgkgIHVzZSB0aGUgYnVmZmVycG9vbC4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYW5kIGVycm9yIHJlcG9ydGluZy4KCjIwMTEtMDctMTUgMTM6NTI6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBoYW5kbGUgZGVxdWV1ZWluZyBjb3JyZWNseQoJICBGaXJzdCBjbGVhbiB1cCB0aGUgYnVmZmVycyBpbiB0aGUgcXVldWUsIHRoZW4gdGhlIHJlbWFpbmluZyBvbmVzIGluIHRoZQoJICBkZXZpY2UuCgoyMDExLTA3LTE1IDEzOjI5OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiB1bnJlZiBjb3BpZWQgYnVmZmVyCgkgIEFmdGVyIHdlIGNvcHkgdGhlIGluY29tbWluZyBidWZmZXIgdG8gb25lIG9mIG91ciBidWZmZXJwb29sIGJ1ZmZlcnMsIHVucmVmIHRoZQoJICB0YXJnZXQgYnVmZmVyIGFmdGVyIHJlbmRlcmluZyBzbyB0aGF0IGl0IGlzIHB1dCBiYWNrIGluIHRoZSBwb29sLgoKMjAxMS0wNy0xNSAxMzowNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkgIHY0bDI6IGRlcXVldWUgYnVmZmVycyBmb3IgdGhlIHNpbmsKCSAgV2hlbiB3ZSBoYXZlIGFsbCBidWZmZXJzIHF1ZXVlZCBmb3IgcGxheWJhY2sgYW5kIHdlIG5lZWQgYSBuZXcgZW1wdHkgYnVmZmVyLAoJICBkZXF1ZXVlIG9uZSBhbmQgcmV0dXJuIGl0LgoJICBTZXQgdGhlIHJpZ2h0IHNpemUgZm9yIHNpbmsgYnVmZmVycy4KCSAgSW1wcm92ZSBjb3VudGluZyBvZiBxdWV1ZWQgYnVmZmVycy4KCjIwMTEtMDctMTUgMTI6MzU6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiB1c2UgdGhlIHBhcmVudCBxdWV1ZSBmb3IgdGhlIHNpbmsKCSAgV2Ugd2FudCB0byBtYWludGFpbiBhIHF1ZXVlIG9mIGZyZWUgYnVmZmVycyBmb3IgdGhlIHNpbmssIHVzZSB0aGUgcGFyZW50IG1ldGhvZHMKCSAgdG8gZG8gdGhhdC4KCjIwMTEtMDctMTUgMTI6MDA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IGZpeCBlcnJvciBtZXNzYWdlcwoKMjAxMS0wNy0xNSAxMTozMDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkgIHY0bDI6IGFkZCBBTExPQ0FUSU9OIHF1ZXJ5IHRvIHRoZSBzaW5rCgoyMDExLTA3LTE1IDExOjI3OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkgIHY0bDI6IGNvbnZlcnQgdG8gR3N0QnVmZmVyUG9vbAoJICBFeHRlbmQgZnJvbSBHc3RCdWZmZXJQb29sLgoJICBIYW5kbGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBwb29sIGJ1ZmZlcnMgY29ycmVjdGx5IHdpdGggdGhlIHN0YXJ0L3N0b3Agdm1ldGhvZHMuCgkgIE1hcCBhY3F1aXJlIGFuZCByZWxlYXNlIGRpcmVjdGx5IHRvIFFCVUYgYW5kIERRQlVGLiBXZSBzdGlsbCBleHBvc2UgYW4gZXhwbGljaXQKCSAgcWJ1ZiBmb3IgdGhlIHY0bDJzaW5rIGZvciBub3cuCgoyMDExLTA3LTE1IDExOjE4OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICB2NGwyOiByZW1vdmUgZXhwZXJpbWVudGFsIG1hcmtlcnMKCjIwMTEtMDctMTQgMjA6MTA6MDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211cGF5LmM6CgkgIHJ0cHBjbUFwYXkvZGVwYXk6IFN0YXRpYyBjbG9jayByYXRlcyBvbiBzdGF0aWMgcGF5bG9hZHMsIGR5bmFtaWMgb24gZHluYW1pYwoJICBQYXJ0aWFsbHkgcmV2ZXJ0cyAzOTdkYzYwYgoKMjAxMS0wNy0xNCAxNjoyMTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogbWVyZ2UgY29kZQoKMjAxMS0wNy0xNCAxNjoxMjoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5oOgoJICB2NGwyOiBNb3ZlIG91dHB1dCBkZXRhaWxzIHRvIGRldmljZSBvYmplY3QKCSAgTW92ZSB0aGUgZGV0YWlscyBvZiBob3cgYSBidWZmZXIgaXMgcmVuZGVyZWQgdG8gdGhlIGRldmljZSBvYmplY3QuCgoyMDExLTAzLTA0IDE1OjQxOjIyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogSW1wbGVtZW50IGdldGNhcHMKCSAgQ29udmVydCBwcm9maWxlLWxldmVsLWlkIGZyb20gUlRQIGNhcHMgaW50byB2aWRlby94LWgyNjQgc3R5bGUgY2FwcyAod2l0aCBwcm9maWxlIGFuZCBsZXZlbCkKCjIwMTEtMDctMTMgMTg6MzI6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnZpZG9yaWVudC5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgdjRsMjogbW92ZSBjYXB0dXJlIGNvZGUgdG8gZGV2aWNlIG9iamVjdAoJICBNb3ZlIHRoZSBkZXRhaWxzIG9mIGhvdyB0byBjYXB0dXJlIHRvIHRoZSBkZXZpY2Ugb2JqZWN0LiBSZW1vdmUgdGhlCgkgIHY0bDJzcmNfY2FsbHMuW2NoXSBmaWxlcyBiZWNhdXNlIHRoZXkgYXJlIGVtcHR5IG5vdy4KCSAgUHJvdmlkZSB0d28gc2ltcGxlIG1ldGhvZHMgdG8gZ2V0IGFuZCByZXR1cm4gYSBidWZmZXIgdG8gdGhlIGRldmljZS4KCSAgQWxzbyBkbyBhIHNsb3cgY29weSB3aGVuIHRoZSBidWZmZXIgaXMgbm90IGZyb20gb3VyIHBvb2wuCgoyMDExLTA3LTEzIDE2OjU4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTA3LTEzIDE2OjU2OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMjogc3RvcCBzdHJlYW1pbmcgaW4gUkVBRFkgYW5kIE5VTEwKCjIwMTEtMDctMTMgMTY6NDA6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IHN0YXJ0IHN0cmVhbWluZyBmb3IgdGhlIG91dHB1dCBhcyB3ZWxsCgoyMDExLTA3LTEzIDE2OjMzOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJyYWRpby5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmg6CgkgIHY0bDI6IExldCB0aGUgZGV2aWNlIG9iamVjdCBtYW5hZ2UgdGhlIHBvb2wKCSAgUmVuYW1lIHN0YXJ0IGFuZCBzdG9wIG1ldGhvZHMgdG8gb3BlbiBhbmQgY2xvc2UgYmVjYXVzZSB0aGF0IGlzIHdoYXQgdGhleSBkby4KCSAgQWZ0ZXIgc2V0dGluZyB0aGUgZm9ybWF0IG9uIHRoZSBkZXZpY2Ugb2JqZWN0LCBzZXR1cCB0aGUgYnVmZmVycG9vbHMuIE1vdmUgdGhpcwoJICBjb2RlIGZyb20gdGhlIHY0bDJzcmNfY2FsbHMuYyBmaWxlLCBpdCBpcyBzaGFyZWQgYmV0d2VlbiBzb3VyY2UgYW5kIHNpbmsuCgkgIE1ha2UgbmV3IGRldmljZSBzdGFydCBhbmQgc3RvcCBtZXRob2QgdGhhdCBtZXJnZXMgdmFyaW91cyBiaXRzIG9mIGNvbW1vbiBjb2RlCgkgIHNwcmVhZCBvdmVyIHNldmVyYWwgZmlsZXMuCgoyMDExLTA3LTEzIDEzOjUyOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkgIHY0bDI6IGRvbid0IHN0b3JlIHN0cmlkZSBpbiB0aGUgdmlkZW9pbmZvCgkgIFdlIHdhbnQgdG8ga2VlcCB0aGUgZGVmYXVsdCBzdHJpZGVzIGluIHRoZSB2aWRlb2luZm8uIEtlZXAgdGhlIHN0cmlkZSBvZiB0aGUKCSAgdmlkZW8gZnJhbWVzIHNlcGFyYXRlIHNvIHRoYXQgd2UgY2FuIHVzZSBib3RoIHRvIGNvcHkgYSB2aWRlbyBmcmFtZSBhbmQgZG8KCSAgY29ycmVjdCBzdHJpZGUgY29udmVyc2lvbi4KCjIwMTEtMDctMTMgMTM6Mzg6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB2NGwyOiBVc2UgdmlkZW8gZnJhbWUgY29weSBmb3IgcmF3IHZpZGVvCgkgIFVzZSB0aGUgdmlkZW8gZnJhbWUgY29weSBBUEkgZm9yIHJhdyB2aWRlbyBmcmFtZXMgc28gdGhhdCB3ZSBjb3B5IHdpdGggdGhlIHJpZ2h0CgkgIHN0cmlkZXMuCgoyMDExLTA3LTEzIDEzOjM3OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSAgdjRsMjogYWRkIHZpZGVvIG1ldGFkYXRhIHRvIHJhdyB2aWRlbyBidWZmZXJzCgoyMDExLTA3LTEzIDEzOjE1OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBzbWFsbCBjbGVhbnVwcwoKMjAxMS0wNy0xMyAxMzowMDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICB2NGwyOiBpbXByb3ZlIGNhcHMgcGFyc2luZwoJICBVc2UgR3N0VmlkZW9JbmZvIHRvIHN0b3JlIHRoZSBwYXJzZWQgY2Fwcy4KCSAgUmVtb3ZlIG91dHNpemUgZnJvbSB0aGUgY2FwcyBwYXJzaW5nIGNvZGUsIGl0J3Mgd3JvbmcgYmVjYXVzZSBpdCBkb2VzIG5vdCB1c2UKCSAgdGhlIHN0cmlkZSBnaXZlbiBieSB0aGUgZHJpdmVyLgoKMjAxMS0wNy0xMyAxMTo0MDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogdXNlIGVycm5vCgoyMDExLTA3LTEzIDExOjM2OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBoYW5kbGUgRUlOVkFMIHdpdGhvdXQgcG9zdGluZyBhIHdhcm5pbmcKCSAgRUlOVkFMIG1lYW5zIHRoYXQgYSBjYWxsIGlzIG5vdCBzdXBwb3J0ZWQsIHdlIG9ubHkgd2FudCB0byBwb3N0IGEgV0FSTklORyB3aGVuCgkgIHNvbWV0aGluZyBpcyByZWFsbHkgd3JvbmcuCgoyMDExLTA3LTEzIDExOjI5OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBvbmx5IHNldCBmcmFtZXJhdGUgZm9yIGNhcHR1cmUgZm9yIG5vdwoKMjAxMS0wNy0xMyAxMToxOToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5oOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgdjRsMjogTW92ZSBjb25maWd1cmF0aW9uIG9mIGZyYW1lcmF0ZSB0byBfc2V0X2Zvcm1hdAoJICBNb3ZlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBmcmFtZXJhdGUgdG8gd2hlcmUgd2Ugc2V0IHRoZSBvdGhlciBmb3JtYXQKCSAgcGFyYW1ldGVycy4KCSAgUmVtb3ZlIGhhY2sgdG8gY2hlY2sgaWYgdGhlIGRldmljZSBpcyBhY3RpdmUuCgkgIFN0b3JlIHN0cmVhbXBhcm0gaW4gdGhlIGRldmljZSBpbmZvLgoJICBVc2Ugc29tZSBtYWNyb3MgdG8gYWNjZXNzIHRoZSBjdXJyZW50IGRldmljZSBjb25maWd1cmF0aW9uLgoJICBSZW1vdmUgc29tZSBkdXBsaWNhdGUgZmllbGRzIGluIHNyYyBhbmQgc2luayBhbmQgdXNlIHRoZSBkZXZpY2UgY29uZmlndXJhdGlvbgoJICBpbnN0ZWFkLgoKMjAxMS0wNy0xMiAxOToxMzo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogZml4IHJldHVybiB2YWx1ZS4uLgoKMjAxMS0wNy0xMiAxOTowMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJICB2NGwyOiBzaW1wbGlmeSBzZXR0aW5nIHRoZSBjYXB0dXJlIGZvcm1hdAoJICBQYXNzIHRoZSBjYXBzIHRvIHRoZSBzZXRfZm9ybWF0IGZ1bmN0aW9uIGFuZCBtYWtlIF9zZXRfZm9ybWF0IHBhcnNlIHRoZSBjYXBzLgoJICBBbHNvIGtlZXAgdGhlIHBhcnNlZCB2YWx1ZXMgaW4gdGhlIHY0bDJvYmplY3Qgc28gdGhhdCB3ZSBjYW4gcmVmZXIgdG8gdGhlbSB3aGVuCgkgIHdlIHdhbnQuCgoyMDExLTA3LTEyIDE4OjQxOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgdjRsMjogcmVtb3ZlIG1vcmUgdW51c2VkIHBhcmFtZXRlcnMKCjIwMTEtMDctMTIgMTg6Mjk6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDogaGFuZGxlIG9iamVjdCBvdXQgb2YgdGhlIG5vcm1hbCBmbG93CgoyMDExLTA3LTEyIDE4OjEzOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMjogTGV0IHRoZSBidWZmZXJwb29sIG93biB0aGUgVjRsMk9iamVjdAoJICBLZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBmb3JtYXQgYW5kIHNldHRpbmcgaW4gdGhlCgkgIHY0bDJvYmplY3QuCgkgIFBhc3MgdGhlIHY0bDJvYmplY3QgdG8gdGhlIGJ1ZmZlcnBvb2wgY29uc3RydWN0b3Igc28gdGhhdCB0aGUgYnVmZmVycG9vbCBjYW4KCSAga25vdyBldmVyeXRoaW5nIGFib3V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBzZXR0aW5ncy4gVGhpcyBhbHNvIGFsbG93cyB1cwoJICB0byByZW1vdmUgc29tZSBhd2t3YXJkIGNvZGUuCgoyMDExLTA3LTEyIDE3OjA2OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGw6IHJlbW92ZSBjYXBzIGFyZ3VtZW50LCBpdCdzIG5vdCBuZWVkZWQKCSAgUmVtb3ZlIHRoZSBjYXBzIHBhcmFtZXRlciwgd2UgZG9uJ3QgbmVlZCBpdCBhbnltb3JlIGJlY2F1c2Ugd2UgZG9uJ3Qgc2V0CgkgIGNhcHMgb24gYnVmZmVycyBhbnltb3JlLgoKMjAxMS0wNy0xMiAxNjo0NjoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIHY0bDogcGFzcyB0aGUgYnl0ZXNwZXJsaW5lIGFyb3VuZAoJICBXaGVuIHNldHRpbmcgYSBmb3JtYXQsIHJldHVybiB0aGUgYnl0ZXNwZXJsaW5lIHRvIHRoZSBjYWxsZXIgc28gdGhhdCBpdCBjYW4gYmUKCSAgdXNlZCB0byBhbGxvY2F0ZSBidWZmZXJzLgoKMjAxMS0wNy0xMiAxNjo0MzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHBvb2w6IG1ha2UgYnVmZmVyIHdyaXRhYmxlCgkgIFdlIG5lZWQgd3JpdGFibGUgYnVmZmVycyB3aGVuIHdlIG5lZWQgdG8gZG8gYSBzbG93IG1lbWNweS4KCjIwMTEtMDctMTIgMTU6MDQ6MzggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggc2Vla2luZyByZWdyZXNzaW9uCgkgIC4uLiBpbnRyb2R1Y2VkIHdoZW4gc2h1ZmZsaW5nIGFyb3VuZCBjb2RlIGZvciB0aGUgYXN5bmMgaW1wbGVtZW50YXRpb24KCSAgYnkgc2V0dGluZyBzdGF0ZSBvZiBzb3VyY2UgKGFuZCB1ZHAgc291cmNlcykgaW4gX3BsYXkgYmVmb3JlIGRvd25zdHJlYW0KCSAgZmx1c2hpbmcgaXMgdW5kb25lLgoKMjAxMS0wNy0xMSAxNToyMzo0MSArMDMwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQG5va2lhLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5oOgoJICBhYzNwYXJzZTogZml4IGJ1ZmZlciBkdXJhdGlvbiBvbiBibG9ja3MtcGVyLWZyYW1lIGNoYW5nZQoJICBUaGUgZ3N0X2Jhc2VfcGFyc2Vfc2V0X2ZyYW1lX3JhdGUgY2FsbCB3YXMgcHJlZGljYXRlZCBvbiBhIGNoYW5nZSB0bwoJICBzYW1wbGUgcmF0ZSwgZHVyYXRpb24gb3IgcHJvZmlsZS4gSG93ZXZlciwgdGhlIGJsb2NrIGNvdW50IHBlciBmcmFtZSBjYW4KCSAgYWxzbyBjaGFuZ2UgYmV0d2VlbiBwYWNrZXRzLCB3aGljaCB3b3VsZCByZXN1bHQgaW4gaW5jb3JyZWN0IGJ1ZmZlcgoJICBkdXJhdGlvbnMuCgoyMDExLTA3LTExIDEzOjUxOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IGhhbmRsZSBwb29scwoJICBDcmVhdGUgYSBuZXcgcG9vbCBpbiBzZXRjYXBzIGFuZCBzdG9wL2Rlc3Ryb3kgdGhlIG9sZCBvbmUuCgkgIFJlbW92ZSBidWZmZXJfYWxsb2MgZnVuY3Rpb25zLgoJICBDaGVjayB0aGF0IHdlIGhhdmUgdjRsMiBtZXRhZGF0YSBpbiBzaG93X2ZyYW1lIGFuZCBmYWxsIGJhY2sgdG8gbWVtY3B5IGludG8gYQoJICBidWZmZXIgZnJvbSBvdXIgcG9vbCBpZiB3ZSBkb24ndCByZWNlaXZlIG9uZSBvZiBvdXIgb3duIGJ1ZmZlcnMuCgoyMDExLTA3LTExIDEyOjA0OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIHY0bDI6IHZhcmlvdXMgY2xlYW51cHMKCSAgVmFyaW91cyBjbGVhbnVwcywgYXZvaWRzIHVzZWxlc3MgY2FzdHMsIG1vdmUgZXJyb3IgaGFuZGxpbmcgb3V0c2lkZSBvZiB0aGUgbWFpbgoJICBjb2RlIGZsb3cuCgkgIE5lZ290aWF0ZSB0byBhIHJlc29uYWJsZSByZXNvbHV0aW9uIGluc3RlYWQgb2YgdGhlIG1heCByZXNvbHV0aW9uLgoKMjAxMS0wNy0xMCAyMTo1MDoxOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWNlbHBkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVucGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5Lmg6CgkgIHJ0cDogcG9ydCByZW1haW5pbmcgdG8gMC4xMQoKMjAxMS0wNy0xMCAxNDo1NjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkqIHN5cy94aW1hZ2UveGltYWdldXRpbC5jOgoJICB4aW1hZ2U6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNy0xMCAxMzo0NDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmg6CgkgIHk0bTogcG9ydCBzb21lIG1vcmUKCSAgVXNlIHZpZGVvIGhlbHBlcnMuCgoyMDExLTA3LTEwIDEzOjI4OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgeTRtOiBwb3J0IHRvIDAuMTEKCjIwMTEtMDctMTAgMTI6NDY6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4Lmg6CgkgIG11bHRpcGFydDogcG9ydCB0byAwLjExCgoyMDExLTA3LTEwIDExOjQyOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNy0xMCAxMTo0MDo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVidWd1dGlscy9icmVha215ZGF0YS5jOgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RkZWJ1Zy5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZpZ2F0aW9udGVzdC5oOgoJKiBnc3QvZGVidWd1dGlscy9nc3RwdXNoZmlsZXNyYy5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RzLmM6CgkgIGRlYnVnOiBwb3J0IHRvIDAuMTEsIGRpc2FibGUgb3RoZXJzCgkgIERpYXNhYmxlIHRoZSBlZmVuY2UgYW5kIGNhcHNkZWJ1ZyBlbGVtZW50cywgcG9ydCB0aGVtIGxhdGVyLgoKMjAxMS0wNy0wOSAxOToyMzo0MSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5oOgoJICBtdWx0aWZpbGVzcmM6IEltcHJvdmUgbG9vcGluZwoJICBBZGQgc3RhcnQtaW5kZXggYW5kIHN0b3AtaW5kZXggcHJvcGVydGllcy4KCjIwMTEtMDYtMTYgMTM6NTc6MDMgKzAxMDAgIEpvbm55IExhbWIgPGpvbm55bGFtYkBqb25ueWxhbWIuY29tPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuaDoKCSAgbXVsdGlmaWxlOiBhZGQgbG9vcCBwcm9wZXJ0eSB0byBtdWx0aWZpbGVzcmMKCSAgRml4ZXM6ICM2NTI3MjcKCSAgU2lnbmVkLW9mZi1ieTogSm9ubnkgTGFtYiA8am9ubnlsYW1iQGpvbm55bGFtYi5jb20+CgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAwOS0xMS0yMCAxMDowNzo0MyArMDEwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiAxNi1iaXQgYXVkaW8gaXMgc2lnbmVkLCA4LWJpdCBpcyB1bnNpZ25lZC4KCSAgUHJldGVuZGluZyB0byBoYW5kbGUgOC1iaXQgc2lnbmVkIGNhdXNlcyBkaXN0b3J0ZWQgYXVkaW8gd2hlbgoJICBhY3R1YWxseSBnaXZlbiBzdWNoIGF1ZGlvLCB3aGljaCB5b3Ugd2lsbCBnZXQgaWYgcGFzc2luZyA4LWJpdAoJICB1bnNpZ25lZCB0aHJvdWdoIGF1ZGlvY29udmVydCAhIGF1ZGlvcmVzYW1wbGUsIGFzIGF1ZGlvcmVzYW1wbGUKCSAgb25seSBoYW5kbGVzIDgtYml0IHNpZ25lZC4gIEZpeGVzICM2MDU4MzQuCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAxMS0wNy0wOCAxNjozNzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMjogZml4IGdyYXkgZm9ybWF0LCB1c2UgZmlsdGVyIGluIGdldGNhcHMKCjIwMTEtMDctMDggMTY6MTA6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3Y0bDIvZ3N0djRsMi5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB2NGwyOiBwb3J0IGFuZCBlbmFibGUgdjRsMnNpbmsKCjIwMTEtMDctMDggMTQ6MzQ6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogcG9ydCB0byBuZXcgdmlkZW8gZm9ybWF0cwoKMjAxMS0wNy0wOCAxMjo1MToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDctMDggMTI6NDk6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJyYWRpby5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMjogcG9ydCB0byAwLjExCgoyMDExLTA3LTA3IDE4OjI3OjM2ICswMjAwICBBbGV4ZXkgRmlzaGVyIDxidWctdHJhY2tAZmlzaGVyLXByaXZhdC5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogaGFuZGxlIGJsb2NrcyB3aXRoIGR1cmF0aW9uPTAKCSAgU29tZSB2aWRlbyBmcmFtZXMsIGZvciBleGFtcGxlIGFsdC1yZWYgZnJhbWUgaW4gVlA4LCB3aWxsIGJlCgkgIG5ldmVyIGRpc3BsYXllZC4gVGhpcyBpcyB3aHkgaXQgaGFzIGR1cmF0aW9uPTAuCgkgIFRoaXMgcGF0Y2ggYWxsb3cgdG8gdXNlIHRoaXMgZHVyYXRpb24uCgkgIEJ1ZzogNjU0MTc1CgkgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCjIwMTEtMDctMDYgMTc6MTg6MDUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4bWFwLmM6CgkgIHF0bXV4OiBBZGQgZGlyZWN0IGRpcmFjIG1hcHBpbmcKCjIwMTEtMDctMDcgMTc6NTk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmlwcGxlLmg6CgkgIGVmZmVjdHY6IHBvcnQgbGFzdCBlZmZlY3R2IGVsZW1lbnQgdG8gMC4xMQoKMjAxMS0wNy0wNyAxNzo0OTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c3RyZWFrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHN0cmVhay5oOgoJICBlZmZlY3R2OiBwb3J0IHN0cmVha3R2IHRvIDAuMTEKCjIwMTEtMDctMDcgMTc6NDA6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuaDoKCSAgZWZmZWN0djogcG9ydCByYWRpb2FjdHYgdG8gMC4xMQoKMjAxMS0wNy0wNyAxNzoyOTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzdHJlYWsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgIGVmZmVjdHY6IGZpeCBkb2NzCgoyMDExLTA3LTA3IDE3OjI5OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0b3AuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0b3AuaDoKCSAgZWZmZWN0djogcG9ydCBvcCB0byAwLjExCgoyMDExLTA3LTA3IDE3OjE4OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkgIGVmZmVjdHY6IHBvcnQgcXVhcmsgdHYKCjIwMTEtMDctMDcgMTY6NTc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RyZXYuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2Lmg6CgkgIGVmZmVjdHY6IHBvcnQgcmV2dHYgdG8gMC4xMQoKMjAxMS0wNy0wNyAxNjo0Njo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5oOgoJICBlZmZlY3R2OiBwb3J0IHZlcnRpZ290diB0byAwLjExCgoyMDExLTA3LTA3IDE2OjM4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmg6CgkgIGVmZmVjdHY6IHBvcnQgc2hhZ2FkZWxpY3R2IHRvIDAuMTEKCjIwMTEtMDctMDcgMTE6MjI6MjYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJICBhdXBhcnNlOiB1c2UgQUxXQVlTIHNyYyBwYWQgcmF0aGVyIHRoYW4gU09NRVRJTUVTCgoyMDExLTA3LTA3IDExOjE0OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSAgYXVwYXJzZTogcG9ydCB0byAwLjExCgoyMDExLTA3LTA2IDE5OjAzOjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgc2hhcGV3aXBlOiBiZWdpbm5pbmdzIG9mIHBvcnRpbmcKCjIwMTEtMDctMDYgMTg6NTA6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuaDoKCSAgd2FycHR2OiBwb3J0IHRvIDAuMTEKCjIwMTEtMDctMDYgMTg6NTA6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkgIGRpY2U6IGtlZXAgdHJhY2sgb2YgaW5mbwoKMjAxMS0wNy0wNiAxODozMjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5oOgoJICBlZmZlY3R2OiBwb3J0IGRpY2UKCjIwMTEtMDctMDYgMTg6MDk6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5oOgoJICBlZmZlY3R2OiBwb3J0IGFnaW5ndHYKCjIwMTEtMDctMDYgMTc6NTA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYWFsaWIvTWFrZWZpbGUuYW06CgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2FhbGliL2dzdGFhc2luay5oOgoJICBhYXNpbms6IHBvcnQgdG8gbmV3IHZpZGVvIEFQSQoKMjAxMS0wNy0wNiAxNzo0MDoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9saWJjYWNhL01ha2VmaWxlLmFtOgoJKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOgoJKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5oOgoJICBjYWNhc2luazogcG9ydCB0byAwLjExCgoyMDExLTA3LTA2IDE2OjUwOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnOiBiZWdpbm5pbmdzIG9mIHBvcnRpbmcgdG8gMC4xMQoKMjAxMS0wNy0wNiAxNjozMToxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IHVzZSBBTFdBWVMgc291cmNlIHBhZCByYXRoZXIgdGhhbiBTT01FVElNRVMKCjIwMTEtMDctMDYgMTY6MTA6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICB3YXZwYXJzZTogcG9ydCB0byAwLjExCgoyMDExLTA3LTA2IDE2OjEwOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkgIHdhdmVuYzogcG9ydCB0byAwLjExCgoyMDExLTA3LTA2IDEyOjIyOjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhZGp1c3QgdG8gdW5zaWduZWQgc2VnbWVudCBmaWVsZHMKCjIwMTEtMDctMDYgMTU6NTc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4OiBwb3J0IHNwZWV4IGVsZW1lbnRzCgoyMDExLTA3LTA2IDEyOjA1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNy0wNiAxMDoxMTo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBydHBtYW5hZ2VyOiBwb3J0IHRvIDAuMTEKCSAgKiB1c2UgR19ERUZJTkVfVFlQRQoJICAqIGFkanVzdCB0byBuZXcgR3N0QnVmZmVyIGFuZCBjb3JyZXNwb25kaW5nIHJ0cCBhbmQgcnRjcCBidWZmZXIgaW50ZXJmYWNlcwoJICAqIG1pc2MgY2FwcyBhbmQgc2VnbWVudCBoYW5kbGluZyBjaGFuZ2VzCgkgIEZJWE1FOiBhbHNvIHJlbGllcyBvbiBiZWluZyBhYmxlIHRvIHBhc3MgY2FwcyBhbG9uZyB3aXRoIGEgYnVmZmVyLAoJICB3aGljaCBoYXMgbm8gZXZpZGVudCBlcXVpdmFsZW50IHlldCwgc28gdGhhdCBlaXRoZXIgbmVlZHMgb25lLAoJICBvciBzdGlsbCBuZWVkcyBxdWl0ZSBzb21lIGNvZGUgcGF0aCBtb2RpZmljYXRpb24gdG8gZHJhZyBhbG9uZyBjYXBzLgoKMjAxMS0wNi0yOSAyMDo1OToyNiArMDMwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQG5va2lhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJICBwdWxzZXNpbms6IHByZXZlbnQgcmFjZSBjb25kaXRpb24gY2F1c2luZyByZWYgbGVhawoJICBTaW5jZSBjb21taXQgOGJmZDgwLCBnc3RfcHVsc2VyaW5nYnVmZmVyX3N0b3AgZG9lc24ndCB3YWl0IGZvciB0aGUKCSAgZGVmZXJyZWQgY2FsbCB0byBiZSBydW4gYmVmb3JlIHJldHVybmluZy4gVGhpcyBjYXVzZXMgYSByYWNlIHdoZW4KCSAgUkVBRFktPk5VTEwgaXMgZXhlY3V0ZWQgc2hvcnRseSBhZnRlciwgd2hpY2ggc3RvcHMgdGhlIG1haW5sb29wLiBUaGlzCgkgIGxlYWtzIHRoZSBlbGVtZW50IHJlZmVyZW5jZSB3aGljaCBpcyBwYXNzZWQgYXMgdXNlcmRhdGEgZm9yIHRoZSBjYWxsYmFjawoJICAoaW50cm9kdWNlZCBpbiBjb21taXQgN2NmOTk2LCBidWcgIzYxNDc2NSkuCgkgIFRoZSBjb3JyZWN0IGZpeCBpcyB0byB3YWl0IGluIFJFQURZLT5OVUxMIGZvciBhbGwgb3V0c3RhbmRpbmcgY2FsbHMgdG8KCSAgYmUgZmlyZWQgKHNpbmNlIGxpYnB1bHNlIGRvZXNuJ3QgcHJvdmlkZSBhIERlc3Ryb3lOb3RpZnkgZm9yIHRoZQoJICB1c2VyZGF0YSkuIFdlIGdldCByaWQgb2YgdGhlIHJlZmVyZW5jZSBwYXNzaW5nIGZyb20gN2NmOTk2IGFsdG9nZXRoZXIsCgkgIHNpbmNlIGZpbmFsaXphdGlvbiBmcm9tIHRoZSBjYWxsYmFjayB3b3VsZCBhbnl3YXlzIGxlYWQgdG8gYSBkZWFkbG9jay4KCSAgUmUtZml4ZXMgYnVnICM2MTQ3NjUuCgoyMDExLTA3LTA0IDA4OjU4OjE0ICswMzAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAbm9raWEuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHNtYWxsIGNsZWFudXAgb2YgY29weS1wYXN0ZSBjb2RlCgoyMDExLTA2LTI5IDE5OjUwOjQyICswMzAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAbm9raWEuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkgIHB1bHNlc2luazogcmVtb3ZlIHVudXNlZCBtZW1iZXIgdmFyaWFibGUgYW5kIG1pc2xlYWRpbmcgbG9nIG1lc3NhZ2UKCSAgV2ltIGNoYW5nZWQgaXQgaW4gY29tbWl0IDhiZmQ4MCBzbyB0aGF0IHBhX2RlZmVyX3JhbiBpcyBub3QgcmVhZAoJICBhbnl3aGVyZS4KCSAgVGhlIGxvZyBtZXNzYWdlIHVzZWQgdG8gYW5ub3RhdGUgYSBtYWlubG9vcF93YWl0IGNhbGwgd2hpY2ggaXMgZ29uZS4KCjIwMTEtMDctMDUgMTU6Mzc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkgIHZpZGVvZmxpcDogZml4IGNhcHMKCjIwMTEtMDctMDUgMTE6NDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGVkZ2UuaDoKCSAgZWZmZWN0djogcG9ydCBlZGdldHYKCjIwMTEtMDctMDUgMTA6MTI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBBZGQgLURHU1RfVVNFX1VOU1RBQkxFX0FQSSB0byB0aGUgY29tcGlsZXIgZmxhZ3MgdG8gYXZvaWQgd2FybmluZ3MKCjIwMTEtMDctMDQgMTI6NTg6MzggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiBEb24ndCBhbnN3ZXIgbGFudGVuY3kgcXVlcmllcyBiZWZvcmUgbmVnb3RpYXRpb24KCjIwMTEtMDctMDQgMTg6MTU6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwOiBwb3J0IHRvIG5ldyBBUEkKCjIwMTEtMDctMDQgMTg6MTI6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlci5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZTogcmVtb3ZlIGltcGxlbWVudHNpbnRlcmZhY2UKCjIwMTEtMDctMDQgMTg6MTA6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IGZpeCBjYXBzCgoyMDExLTA3LTA0IDE4OjA2OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmg6CgkgIGFscGhhOiBwb3J0IHRvIG5ldyB2aWRlbyBBUEkKCjIwMTEtMDctMDQgMTc6MDA6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IG1vcmUgcG9ydGluZwoKMjAxMS0wNy0wNCAxNjowOTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuaDoKCSAgcG9ydCB0byBuZXcgdmlkZW8gYXBpCgoyMDExLTA2LTI4IDE0OjAzOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5oOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuaDoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmg6CgkgIHZpZGVvOiBwb3J0IHRvIG5ldyB2aWRlbyBhcGlzCgoyMDExLTA3LTA0IDE0OjMwOjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogYXZvaWQgY3Jhc2hpbmcgb24gaW52YWxpZCBpbnB1dCB3aXRob3V0IGNvbXBvbmVudHMKCjIwMTEtMDctMDQgMTE6MDk6MTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdjogcG9ydCB0byAwLjExCgkgICogdXNlIEdfREVGSU5FX1RZUEUKCSAgKiBhZGp1c3QgdG8gbmV3IEdzdEJ1ZmZlcgoJICAqIG1pc2Mgc2VnbWVudCBhbmQgY2FwcyBjaGFuZ2VzCgoyMDExLTA3LTA0IDExOjQ4OjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBleHQvcHVsc2UvcHVsc2VzaW5rLmMKCjIwMTEtMDctMDQgMTE6MjU6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBwYXNzIGFsb25nIHNlZ21lbnQgaW5mbyB0byBjb2xsZWN0cGFkcwoJICAuLi4gc28gaXQgY2FuIHRyYWNrIHRoaXMgYW5kIGJlIHN1YnNlcXVlbnRseSB1c2VkIHRvIGRldGVybWluZSBydW5uaW5nIHRpbWUgZXRjLgoKMjAxMS0wNy0wNCAxMToyNDoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBpbmRpY2F0ZSByYXcgZm9ybWF0IGluIGFhYyBjYXBzCgoyMDExLTA3LTA0IDExOjA3OjEzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IG1pbmQgcmVxdWVzdGVkIG5hbWUgZm9yIHJlcXVlc3QgcGFkCgoyMDExLTA3LTA0IDExOjA2OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZyZWUgc2NoZWR1bGluZyBxdWVyeQoKMjAxMS0wNy0wMyAxOTo1MTozMiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkgIHB1bHNlOiBJbmNyZWFzZSByYW5rcyB0byBQUklNQVJZICsgMTAKCSAgU28gdGhhdCBwdWxzZXNyYy9wdWxzZXNpbmsgZ2V0IGNob3NlbiBvdmVyIG90aGVyIHBvc3NpYmxlIFBSSU1BUlkKCSAgc3JjL3NpbmtzIGJ5IGF1dG9hdWRpb3NpbmsuICBQcmVzdW1hYmx5LCBpZiBwdWxzZSBpcyBhdmFpbGFibGUsIGl0CgkgIGlzIGFsd2F5cyBwcmVmZXJyZWQgb3ZlciBhbm90aGVyIHNyYy9zaW5rLgoJICBGaXhlczogIzY0NzU0MC4KCjIwMTEtMDYtMzAgMTg6NDc6NDggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSAgbXVsdGlwYXJ0bXV4OiBBZGQgXHJcbiB0byB0YWlsIG9mIHB1c2hlZCBidWZmZXJzCgkgIENsaWVudHMgc3VjaCBhcyBGaXJlZm94IHJlcXVpcmUgdGhlIFxyXG4gYWZ0ZXIgdGhlIHBheWxvYWQuCgoyMDExLTA2LTE2IDE0OjUyOjUxICswMjAwICBCcmFua28gU3ViYXNpYyA8YnJhbmtvQGF4aXMuY29tPgoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogYXZvaWQgbG9vcGluZyB3aGVuIHNlYXJjaGluZyBmb3IgY2x1c3RlcnMKCSAgRml4ZXMgc29tZSBidWdzIHRoYXQgcmVzdWx0cyBpbiB0aGUgZGVtdXhlciBsb29waW5nIHdoZW4gc2VhY2hpbmcKCSAgZm9yIGNsdXN0ZXJzIGluIG5vbi1maW5hbGl6ZWQgZmlsZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIxOTUKCjIwMTEtMDYtMzAgMTI6MzA6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgIG11bHRpZmlsZTogcG9ydCB0byAwLjEwCgkgICogdXNlIEdfREVGSU5FX1RZUEUKCSAgKiBhZGp1c3QgdG8gbmV3IEdzdEJ1ZmZlcgoJICAqIG1pc2MgY2FwcyBoYW5kbGluZwoKMjAxMS0wNi0zMCAxMTozNToyMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJICBjdXR0ZXI6IHBvcnQgdG8gMC4xMQoJICAqIHVzZSBHX0RFRklORV9UWVBFCgkgICogYWRqdXN0IHRvIG5ldyBHc3RCdWZmZXIKCSAgKiBtaW5vciBtaXNjCgoyMDExLTA2LTMwIDExOjE3OjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmM6CgkgIHJlcGxheWdhaW46IHBvcnQgdG8gMC4xMQoJICAqIHVzZSBHX0RFRklORV9UWVBFCgkgICogYWRqdXN0IHRvIG5ldyBHc3RCdWZmZXIKCjIwMTEtMDYtMzAgMTA6NTM6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiByZW1vdmUgZGVwcmVjYXRlZCBwcm9wZXJ0eQoKMjAxMS0wNi0zMCAxMDo1MTo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IHBvcnQgdG8gMC4xMQoJICAqIHVzZSBHX0RFRklORV9UWVBFCgkgICogYWRqdXN0IHRvIG5ldyBHc3RCdWZmZXIKCjIwMTEtMDYtMzAgMTA6Mzg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkgIGxldmVsOiBwb3J0IHRvIDAuMTEKCSAgKiB1c2UgR19ERUZJTkVfVFlQRQoJICAqIGFkanVzdCB0byBuZXcgR3N0QnVmZmVyCgoyMDExLTA2LTMwIDEwOjMwOjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcm5iYW5kcy5jOgoJICBlcXVhbGl6ZXI6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNi0xMCAxODo1NDo0OCArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkgIG1hdHJvc2thcGFyc2U6IGZpeCByZWZlcmVuY2UgY291bnRpbmcgb2YgcGFyc2UtPnN0cmVhbWhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUyMjg2CgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAxMS0wNi0yOSAxNDozOTo1MiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkgIGpwZWdlbmM6IERvbid0IHJvdW5kIHVwIHNpemUgb2YgZW5jb2RlZCBidWZmZXJzCgkgIEZvciBzb21lIHJlYXNvbiwgaW4gY29kZSBkYXRpbmcgdG8gMjAwMSwgZW5jb2RlZCBqcGVnIGJ1ZmZlcnMgd2VyZQoJICByb3VuZGVkIHVwIHRvIG11bHRpcGxlcyBvZiA0IGJ5dGVzLiAgV2l0aCB0aGUgYWRkZWQgYm9udXMgdGhhdCB0aGUKCSAgZXh0cmEgYnl0ZXMgYXJlIHVud3JpdHRlbiwgY2F1c2luZyB2YWxncmluZCBpc3N1ZXMuICBPb3BzLiAgSSBjYW4ndAoJICB0aGluayBvZiBhbnkgcmVhc29uIHdoeSBKUEVHIGJ1ZmZlcnMgbmVlZCB0byBiZSBtdWx0aXBsZXMgb2YgNCBieXRlcywKCSAgc28gSSByZW1vdmVkIHRoZSBwYWRkaW5nLiAgVGhlcmUgbWlnaHQgYmUgc29tZSBjb2RlIHNvbWV3aGVyZSB0aGF0CgkgIGRlcGVuZHMgb24gdGhpcyBiZWhhdmlvciwgc28gaWYgdGhpcyBuZWVkcyB0byBiZSByZXZlcnRlZCwgcGxlYXNlIGZpeAoJICB0aGUgdmFsZ3JpbmQgaXNzdWVzLgoKMjAxMS0wNi0yOSAxMjo0NjoyMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L01ha2VmaWxlLmFtOgoJKiBnc3QvaXNvbXA0L2F0b21zLmM6CgkqIGdzdC9pc29tcDQvYXRvbXNyZWNvdmVyeS5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4Lmg6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXhtYXAuYzoKCSogZ3N0L2lzb21wNC9nc3RydHB4cXRkZXBheS5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4Lmg6CgkgIGlzb21wNDogcG9ydCB0byAwLjExCgoyMDExLTA2LTI4IDEyOjU1OjQ1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHR3ZWFrIHNvbWUgcG9ydGVkIHNlZ21lbnQgaGFuZGxpbmcKCSAgLi4uIHRvIGF2b2lkIGxvc2luZyBkdXJhdGlvbiBkdXJpbmcgcHVzaCBtb2RlIHNlZWtpbmcsIGFuZCB0byBwcm9wZXJseQoJICBhY2N1bXVsYXRlIHJ1bm5pbmcgdGltZSB3aGVuIHNlZ21lbnQgc2Vla2luZy4KCjIwMTEtMDYtMjkgMTI6MDU6MDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogZnJlZSBkYXRlIHRhZwoKMjAxMS0wNi0yOCAxMjoyNjozNyArMDIwMCAgSm9uYXMgTGFyc3NvbiA8am9uYXMubGFyc3NvbkBoaXEuc2U+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBub3Qgc28gZ3JlZWR5IG1pbmltdW0gZnJhbWUgc2l6ZQoJICBGaXhlcyAjNjUzNTU5LgoKMjAxMS0wNi0yNSAxMTozOToyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIG5vbi1wa2ctY29uZmlnIGNoZWNrIGZvciBzaG91dAoJICBGaXhlczogNjUzMzI3CgoyMDExLTA2LTIwIDE4OjQ5OjU3ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBleHQvcmF3MTM5NC9nc3QxMzk0Y2xvY2suYzoKCSAgZHYxMzk0c3JjOiBtYWtlIHRoZSBpbnRlcm5hbCBjbG9jayB0aHJlYWQgc2FmZQoJICBGaXhlczogIzY1MzA5MS4KCjIwMTEtMDYtMjQgMTE6NTQ6MjkgKzAyMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogcmV0dXJuIGNvcnJlY3QgdHlwZSB3aGVuIGFzc2VydGlvbiBmYWlscwoKMjAxMS0wNi0yMyAxMToyODoyNyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDY5Yjk4MWYgdG8gNjA1Y2Q5YQoKMjAxMS0wNi0yMiAxNjo0MToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcDogZml4IGZvciB1cmkgY2hhbmdlcwoKMjAxMS0wMi0wMiAxNjoxODo1NCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJICBwdWxzZTogRHJvcCBzdXBwb3J0IGZvciBQQSB2ZXJzaW9ucyBiZWZvcmUgMC45LjE2CgkgIFRoaXMgZHJvcHMgc3VwcG9ydCBmb2YgUHVsc2VBdWRpbyB2ZXJzaW9ucyBwcmlvciB0byAwLjkuMTYsIHdoaWNoIHdhcwoJICByZWxlYXNlZCBhYm91dCAxLjUgeWVhcnMgYWdvLiBUZXN0aW5nIHdpdGggdmVyeSBvbGQgdmVyc2lvbnMgaXMgbm90CgkgIGZlYXNpYmxlIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1haW50YWluIDIgaW5kZXBlbmRlbnQgY29kZS1wYXRocy4KCjIwMTEtMDYtMjEgMTg6MjQ6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWwKCjIwMTEtMDYtMjEgMTg6MTk6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZml4IGZvciBoZWFkZXIgY2xlYW51cHMKCjIwMTEtMDYtMjEgMTU6MTU6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzoKCSAgcnRwbXA0YWRlcGF5OiBmaXggb3V0cHV0IGJ1ZmZlciB0aW1lc3RhbXBzIGluIGNhc2Ugb2YgbXVsdGlwbGUgZnJhbWVzCgoyMDExLTA2LTIwIDE2OjQ3OjM2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBUaGUgc2lnbmFsIGhhcyA1IGFyZ3VtZW50cywgbm90IDQKCjIwMTEtMDYtMjAgMTI6MTM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IHVzZSBzdHJpbmcgZm9yIHZpZGVvIGZvcm1hdCBub3cKCjIwMTEtMDYtMjAgMTI6MDQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL01ha2VmaWxlLmFtOgoJICBhdmk6IGxpbmsgYWdhaW5zdCBnc3R2aWRlbyBub3cKCjIwMTEtMDYtMjAgMTI6MDM6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmk6IHBvcnQgdG8gbmV3IGNhcHMKCjIwMTEtMDYtMTggMTM6NDM6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgQnVtcCBnaXQgdmVyc2lvbiBhZnRlciB1bnBsYW5uZWQgMC4xMC4zMCByZWxlYXNlCgkgIE1lcmdlIGJyYW5jaCAnMC4xMC4zMCcKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWwKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbAoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sCgkgIHdpbjMyL2NvbW1vbi9jb25maWcuaAoKMjAxMS0wNi0xNyAxMDozNzozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuaDoKCSAgc3VuYXVkaW86IGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTEtMDYtMTcgMTg6MTI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA2LTE3IDE4OjExOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zcmMuYzoKCSAgYXV0b2RldGVjdDogZml4IGNhcHMKCjIwMTEtMDYtMTYgMTU6Mzg6MTAgKzAyMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuZGViZXRoZW5jb3VydEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiBmaXggdW51c2VkLWJ1dC1zZXQtY29tcGlsZXIgd2FybmluZ3MKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJlcyB2YXJpYWJsZXMsIGNvcmUgY2hlY2tzIGV4aXN0YW5jZQoJICBhbmQgdHlwZSBvZiB0aGVzZSBmaWVsZHMgZm9yIHVzIGFscmVhZHkgdmlhIHRoZSB0ZW1wbGF0ZQoJICBjYXBzLCBhbmQgd2Uga25vdyB0aGF0IHRoZXNlIGZpZWxkcyBleGlzdCBiZWNhdXNlIHdlJ3ZlCgkgIGZpeGF0ZWQgdGhlbSBiZWZvcmUgaW4gX25lZ290aWF0ZSgpLgoKMjAxMS0wNi0xNyAwMzowNzowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9lY2hvLmM6CgkgIGF1ZGlvZWNobzogZml4IHBhcmFtIGZsYWdzCgkgIElmIHRoZSBwYXJhbWV0ZXIgY2Fubm90IGJlIGNoYW5nZWQgaW4gcGF1c2VkJnBsYXlpbmcsIGl0IGlzIG5vdCBjb250cm9sYWJsZS4gU2V0CgkgIHRoZSBhcHByb3ByaWF0ZSBtdXRhYmlsaXR5IGZsYWcgaW5zdGVhZC4KCj09PSByZWxlYXNlIDAuMTAuMzAgPT09CgoyMDExLTA2LTE1IDIzOjU3OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4zMAoJICBUaGlzIGlzIGFuIGFkLWhvYyByZWxlYXNlIHRoYXQgaXMgYWxtb3N0IGlkZW50aWNhbCB0byAwLjEwLjI5OgoJICAqIHdvcmsgYXJvdW5kIEdMaWIgYXRvbWljIG9wcyBBUEkgY2hhbmdlCgkgICogYmV0dGVyIGhhbmRsaW5nIG9mIG1hbGZvcm1lZCBidWZmZXJzIGluIFJUUCBkZXBheWxvZGVycwoJICAqIHNvbWUgbWlub3IgY29tcGlsYXRpb24gZml4ZXMKCjIwMTEtMDYtMDggMTg6MzM6MTAgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICB1ZHA6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uIG1pbmd3LXc2NAoJICBGaXhlczogIzY1MjE0NC4KCSAgZ3N0dWRwbmV0dXRpbHMuaDozMjowOiBlcnJvcjogIldJTlZFUiIgcmVkZWZpbmVkCgkgIC91c3IvaTY4Ni13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL19taW5ndy5oOjIzMTowOiBub3RlOiB0aGlzIGlzIHRoZQoJICBsb2NhdGlvbiBvZiB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbgoKMjAxMS0wNi0wNCAxMzo0OTo1MiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkgIGludGVybGVhdmU6IFdvcmsgYXJvdW5kIGNoYW5nZXMgaW4gZ19hdG9taWMgQVBJCgkgIFNlZSAjNjUxNTE0IGZvciBkZXRhaWxzLgoKMjAxMS0wNS0xOCAxMjozNjo0MCArMDIwMCAgSm9zZSBBbnRvbmlvIFNhbnRvcyBDYWRlbmFzIDxzYW50b3NjYWRlbmFzQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSAgcnRwOiBGaXggc2VnbWVudGF0aW9uIGZhdWx0IHByb2Nlc3NpbmcgcGF5bG9hZCBidWZmZXJzCgkgIFRoaXMgY29tbWl0IGNoZWNrcyBpZiB0aGUgdmFsdWUgcmV0dXJuZWQgYnkKCSAgZ3N0X3J0cF9idWZmZXJfZ2V0X3BheWxvYWRfYnVmZmVyIGFuZAoJICBnc3RfcnRwX2J1ZmZlcl9nZXRfcGF5bG9hZF9zdWJidWZmZXIgaXMgTlVMTCBiZWZvcmUgdXNpbmcgaXQuCgoyMDExLTA1LTE2IDA5OjA0OjMxICswMjAwICBQaW5vIFRvc2Nhbm8gPHRvc2Nhbm8ucGlub0B0aXNjYWxpLml0PgoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJICBwdWxzZTogRGVmaW5lIFBBVEhfTUFYIGlmIGl0IGlzbid0IGRlZmluZWQKCSAgR05VIEh1cmQgZm9yIGV4YW1wbGUgZG9lc24ndCBkZWZpbmUgaXQuCgoyMDExLTA0LTI5IDA4OjU1OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkgIHdhdmVuYzogQWxsb3cgc2V0Y2FwcyB0byBiZSBjYWxsZWQgYWZ0ZXIgYSBmb3JtYXQgd2FzIG5lZ290aWF0ZWQgaWYgaXQncyBjb21wYXRpYmxlCgkgIE90aGVyd2lzZSB3YXZlbmMgd2lsbCBmYWlsIGlmIHVwc3RyZWFtIGRlY2lkZXMgdG8gc2V0IGVxdWl2YWxlbnQgY2FwcyBvciBjYXBzCgkgIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBsYXRlci4KCSAgVGhhbmtzIHRvIEFsZXhhbmRlciBTY2hyZW1tZXIgZm9yIGZpbmRpbmcgdGhpcyBidWcuCgoyMDExLTA2LTE1IDE1OjA2OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIFJFUVVJUkVNRU5UUzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBleHQvTWFrZWZpbGUuYW06CgkqIGV4dC9lc2QvTWFrZWZpbGUuYW06CgkqIGV4dC9lc2QvZXNkbW9uLmM6CgkqIGV4dC9lc2QvZXNkbW9uLmg6CgkqIGV4dC9lc2QvZXNkc2luay5jOgoJKiBleHQvZXNkL2VzZHNpbmsuaDoKCSogZXh0L2VzZC9nc3Rlc2QuYzoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJKiBtNC9NYWtlZmlsZS5hbToKCSogbTQvYXMtYXJ0cy5tNDoKCSogbTQvZXNkLm00OgoJKiBwby9QT1RGSUxFUy5pbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgUmVtb3ZlIGVzb3VuZC9lc2RzaW5rIHBsdWdpbgoKMjAxMS0wNi0xNSAxNDozNzoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogUkVRVUlSRU1FTlRTOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGV4dC9NYWtlZmlsZS5hbToKCSogZXh0L2djb25mL01ha2VmaWxlLmFtOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmYuYzoKCSogZXh0L2djb25mL2dzdGdjb25mLmg6CgkqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuaDoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuYzoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuaDoKCSogZXh0L2djb25mL2dzdGdjb25mZWxlbWVudHMuYzoKCSogZXh0L2djb25mL2dzdGdjb25mZWxlbWVudHMuaDoKCSogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc2luay5oOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5oOgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5jOgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5oOgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc3JjLmM6CgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzcmMuaDoKCSogZ2NvbmYvLmdpdGlnbm9yZToKCSogZ2NvbmYvTWFrZWZpbGUuYW06CgkqIGdjb25mL2dzdHJlYW1lci5zY2hlbWFzLmluOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkqIG00L01ha2VmaWxlLmFtOgoJKiBtNC9nY29uZi0yLm00OgoJKiBwby9QT1RGSUxFUy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBnY29uZiBlbGVtZW50cyBhbmQgcGx1Z2luCgkgIEdDb25mIHdhcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBHU2V0dGluZ3MgZXRjLgoKMjAxMS0wNi0xNSAxNToxNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogZml4IHVuaXRpYWxpemVkIGFjY2VzcwoKMjAxMS0wNi0wOSAyMTowNjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkgIG1hdHJvc2thOiBhZGQgbWlzc2luZyBzdGRpbyBpbmNsdWRlIGZvciBzc2NhbmYKCjIwMTEtMDYtMTMgMTk6MDg6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA2LTEzIDE3OjUxOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIC1nb29kOiBwb3J0IHNvbWUgbW9yZSBwbHVnaW5zCgoyMDExLTA2LTEzIDE3OjE0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwOiBmaXggZm9yIGZsdXNoX3N0b3AgQVBJIGNoYW5nZQoKMjAxMS0wNi0xMyAxNzoxNDowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkgIHJ0cDogcG9ydCBzb21lIG1vcmUgKGRlKXBheWxvYWRlcgoKMjAxMS0wNi0xMyAxNzowNToxOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBub3Qgc28gZ3JlZWR5IG1pbmltdW0gZnJhbWUgc2l6ZQoJICAuLi4gd2hpY2ggd2lsbCBiZSBkZXRlcm1pbmVkIGJ5IHBhcnNpbmcgYW55d2F5LCBhbmQgYXZvaWRzIGludHJvZHVjaW5nCgkgIHJlZHVuZGFudCBhZGRpdGlvbmFsIGxhdGVuY3kuCgoyMDExLTA2LTEzIDE2OjMzOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIC1nb29kOiB1cGRhdGUgZm9yIGJ1ZmZlciBBUEkgY2hhbmdlCgoyMDExLTA2LTEzIDE2OjMzOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHA6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNi0xMyAxMzoyNTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJICBydHA6IGZpeCBmb3IgQVBJIGNoYW5nZXMgaW4gdGhlIGJhc2UgY2xhc3NlcwoKMjAxMS0wNi0xMyAxMzowNzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogdXNlIGNhcHMgZXZlbnQgZm9yIG5lZ290aWF0aW9uCgoyMDExLTA2LTEzIDEzOjA3OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZml4IGZvciBmbHVzaCBzdG9wIGV2ZW50IGNoYW5nZXMKCjIwMTEtMDYtMDggMTg6MzM6MTAgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICB1ZHA6IEZpeCBjb21waWxlciB3YXJuaW5nIG9uIG1pbmd3LXc2NAoJICBGaXhlczogIzY1MjE0NC4KCSAgZ3N0dWRwbmV0dXRpbHMuaDozMjowOiBlcnJvcjogIldJTlZFUiIgcmVkZWZpbmVkCgkgIC91c3IvaTY4Ni13NjQtbWluZ3czMi9zeXMtcm9vdC9taW5ndy9pbmNsdWRlL19taW5ndy5oOjIzMTowOiBub3RlOiB0aGlzIGlzIHRoZQoJICBsb2NhdGlvbiBvZiB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbgoKMjAxMS0wNi0xMSAxODo1ODowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgZ29vbTogZml4IGZvciBidWZmZXJwb29sIHVwZGF0ZQoKMjAxMS0wNi0xMCAxODowNTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgZ29vbTogdXBkYXRlIGZvciBhbGlnbm1lbnQgY2hhbmdlCgoyMDExLTA2LTA5IDE3OjU2OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogcG9ydCBzb21lIG1vcmUKCjIwMTEtMDYtMDkgMTc6NTI6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHBkZWMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3A6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNi0wOSAxNzo1MDowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcDogcG9ydCB0byAwLjExCgoyMDExLTA2LTA5IDExOjM3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJICBhYXNpbms6IHJlZ2lzdGVyIHRlbXBsYXRlIGFuZCBrbGFzcyBjb3JyZWN0bHkKCjIwMTEtMDYtMDkgMTA6NTA6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tL2dzdGdvb20uaDoKCSAgZ29vbTogcG9ydCBnb29tCgoyMDExLTA2LTA4IDE4OjA2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNi0wOCAxODowNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSAgYXNzaW5rOiBwb3J0IGFhc2luayB0byAwLjExCgoyMDExLTA2LTA3IDEyOjA2OjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2JyZWFrbXlkYXRhLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2NwdXJlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RjYXBzZGVidWcuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RuYXZzZWVrLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHB1c2hmaWxlc3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RwbHVnaW4uYzoKCSAgZGVidWd1dGlsczogU3dpdGNoIGZyb20gR1NUX0JPSUxFUlBMQVRFIHRvIEdfREVGSU5FX1RZUEUKCjIwMTEtMDYtMDcgMTE6MjU6MTggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZpbHRlcjogVXNlIG5ldyBHc3RCYXNlVHJhbnNmb3JtOjp0cmFuc2Zvcm1fY2FwcyBBUEkKCjIwMTEtMDYtMDcgMTE6MjM6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJICBhdXBhcnNlOiBEb24ndCB1c2UgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA2LTA3IDExOjIyOjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkgIGF1ZGlvZnhiYXNlZmlyZmlsdGVyOiBCdWZmZXJzIG5vIGxvbmdlciBoYXZlIGNhcHMKCjIwMTEtMDYtMDcgMTE6MjA6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkgIGFscGhhOiBVc2UgbmV3IHRyYW5zZm9ybV9jYXBzIHZtZXRob2QgKHdpdGggZmlsdGVyKQoKMjAxMS0wNi0wNiAyMDo0MzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogZml4IHNvbWUgbW9yZSBwYXJzZXJzCgoyMDExLTA2LTA2IDE4OjIxOjA0ICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3BhcnNlX2NoYXB0ZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDYtMDYgMTQ6NDc6MjcgKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiByZWZhY3RvciBjb2RlIGNvbW1vbiB0byBtYXRyb3NrYWRlbXV4IGFuZCBtYXRyb3NrYXBhcnNlCgkgIE1vdmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiB0byBtYXRyb3NrYS1yZWFkLWNvbW1vbi5bY2hdIGZyb20KCSAgbWF0cm9za2EtZGVtdXguYyBhbmQgbWF0cm9za2EtcGFyc2UuYzoKCSAgLSBnc3RfbWF0cm9za2Ffe2RlbXV4LHBhcnNlfV9wYXJzZV9hdHRhY2htZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA2LTA2IDEyOjQzOjE0ICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3BhcnNlX2F0dGFjaGVkX2ZpbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDg3NwoKMjAxMS0wNi0wNSAyMjo0NTo1NSArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3BhcnNlX2luZm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDg3NwoKMjAxMS0wNi0wNSAxMDoxNToyMyArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3BhcnNlX21ldGFkYXRhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDYtMDUgMDk6NTQ6NDIgKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gdG8gbWF0cm9za2EtcmVhZC1jb21tb24uW2NoXSBmcm9tCgkgIG1hdHJvc2thLWRlbXV4LmMgYW5kIG1hdHJvc2thLXBhcnNlLmM6CgkgIC0gZ3N0X21hdHJvc2thX3tkZW11eCxwYXJzZX1fcGFyc2VfbWV0YWRhdGFfaWRfdGFnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDYtMDUgMDI6MjQ6NDEgKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gdG8gbWF0cm9za2EtcmVhZC1jb21tb24uW2NoXSBmcm9tCgkgIG1hdHJvc2thLWRlbXV4LmMgYW5kIG1hdHJvc2thLXBhcnNlLmM6CgkgIC0gZ3N0X21hdHJvc2thX3tkZW11eCxwYXJzZX1fcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA2LTA2IDEyOjQyOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogcmVzZXQgc3RhdGUgdHJhY2tpbmcgdmFyaWFibGUgd2hlbiBhcHByb3ByaWF0ZQoJICAuLi4gc28gd2UgZG9uJ3QgZW5kIHVwIGludGVycnVwdGluZyBhbiBvcGVyYXRpb24gdGhhdCBzaG91bGQgbm90IGJlIGludGVycnVwdGVkCgkgIGJhc2VkIG9uIHRoZSBpbmRpY2F0aW9uIG9mIGEgcHJldmlvdXMgaW50ZXJydXB0YWJsZSBvcGVyYXRpb24uCgoyMDExLTA2LTA0IDEzOjQ5OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSAgaW50ZXJsZWF2ZTogV29yayBhcm91bmQgY2hhbmdlcyBpbiBnX2F0b21pYyBBUEkKCSAgU2VlICM2NTE1MTQgZm9yIGRldGFpbHMuCgoyMDExLTA2LTA0IDEzOjQzOjAwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNpbmsuaDoKCSAgc291cGh0dHBzaW5rOiBjb2RlIGNsZWFudXAKCjIwMTEtMDYtMDUgMDI6MDA6MDggKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJICBtYXRyb3NrYXBhcnNlOiBVc2UgQVJUSVNUIHRhZyBpbnN0ZWFkIG9mIEFVVEhPUiBmb3IgR1NUX1RBR19BUlRJU1QKCSAgQVVUSE9SIG9ubHkgZXhpc3RlZCBpbiBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgc3BlYyBhbmQgQVJUSVNUIGlzCgkgIHRoZSBuZXcgcmVwbGFjZW1lbnQgZm9yIHRoaXMuIFdlIGFyZSBzdGlsbCByZWFkaW5nIGJvdGggdG8gc3RpbGwKCSAgYmUgY29tcGF0aWJsZSB3aXRoIG9sZCBmaWxlcy4KCSAgRml4ZXMgYnVnICM2NDQ4NzUuCgoyMDExLTA2LTAyIDE4OjUxOjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHN5cy94aW1hZ2UveGltYWdldXRpbC5jCgoyMDExLTA2LTAyIDE4OjQ3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSAgYXZpOiBwb3J0IEFWSSBlbGVtZW50cyB0byBuZXcgQVBJCgoyMDExLTA2LTAyIDEzOjM4OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkgIGR2ZGVtdXg6IEZpcnN0IHF1ZXJ5IHRoZSBwZWVyIGR1cmF0aW9uIGluIHRoZSByZXF1ZXN0ZWQgZm9ybWF0IGJlZm9yZSBjb252ZXJ0aW5nIHRvIEJZVEVTCgkgIEZpeGVzIHVzYWdlIG9mIGR2ZGVtdXggYWZ0ZXIgYW5vdGhlciBkZW11eGVyLCBlLmcuIG14ZmRlbXV4LgoJICBGaXhlcyBidWcgIzY1MDUwMy4KCjIwMTEtMDYtMDIgMTA6NDE6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzaW5rLmM6CgkgIHNvdXBodHRwc2luazogRml4IHJlZmNvdW50aW5nIG9mIHRoZSAic2Vzc2lvbiIgcHJvcGVydHkKCSAgUHJvcGVydGllcyBzaG91bGQgbmV2ZXIgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHZhbHVlcwoJICBwYXNzZWQgdG8gdGhlbS4KCjIwMTEtMDYtMDEgMTc6MDQ6MjcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogRm9yIHN0cmVhbWluZyBmaWxlcywgcHVzaCB0YWdzIGZpcnN0CgoyMDExLTA1LTI0IDE0OjUyOjAxIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC9zb3VwL01ha2VmaWxlLmFtOgoJKiBleHQvc291cC9nc3Rzb3VwLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc2luay5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNpbmsuaDoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cDogQWRkIHNvdXBodHRwc2luawoKMjAxMS0wNi0wMSAxMDoxOTozMSArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogYWxsb3cgc2tpcC1maXJzdC1ieXRlcyBvZiBmdWxsIGJ1ZmZlciBzaXplCgoyMDExLTA1LTMwIDE4OjMxOjUwICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB0byBtYXRyb3NrYS1yZWFkLWNvbW1vbi5bY2hdIGZyb20KCSAgbWF0cm9za2EtZGVtdXguYyBhbmQgbWF0cm9za2EtcGFyc2UuYzoKCSAgLSBnc3RfbWF0cm9za2Ffe2RlbXV4LHBhcnNlfV9wYXJzZV9oZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDg3NwoKMjAxMS0wNS0zMCAxMjowOTozMSArMDIwMCAgQW50b25pbyBGcmVkaWFuaSA8YW50b25pby5mcmVkaWFuaUBpbndpbmQuaXQ+CgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBVc2UgR1NUX1RBR19JTUFHRSBmb3IgY292ZXJhcnQgdG9vCgkgIEZpeGVzIGJ1ZyAjNjM4MTA3LgoKMjAxMS0wNS0zMCAxMDo0MDowOCArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiByZWZhY3RvciBjb2RlIGNvbW1vbiB0byBtYXRyb3NrYWRlbXV4IGFuZCBtYXRyb3NrYXBhcnNlCgkgIE1vdmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgdG8gbWF0cm9za2EtcmVhZC1jb21tb24uW2NoXSBmcm9tCgkgIG1hdHJvc2thLWRlbXV4LmMgYW5kIG1hdHJvc2thLXBhcnNlLmM6CgkgIC0gZ3N0X21hdHJvc2thX3tkZW11eCxwYXJzZX1fZ2V0X3NlZWtfdHJhY2sKCSAgLSBnc3RfbWF0cm9za2Ffe2RlbXV4LHBhcnNlfV9yZXNldF9zdHJlYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjggMjI6MDQ6MzQgKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiByZWZhY3RvciBjb2RlIGNvbW1vbiB0byBtYXRyb3NrYWRlbXV4IGFuZCBtYXRyb3NrYXBhcnNlCgkgIE1vdmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiB0byBtYXRyb3NrYS1yZWFkLWNvbW1vbi5bY2hdIGZyb20KCSAgbWF0cm9za2EtZGVtdXguYyBhbmQgbWF0cm9za2EtcGFyc2UuYzoKCSAgLSBnc3RfbWF0cm9za2F7ZGVtdXgscGFyc2V9X2ZvdW5kX2dsb2JhbF90YWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDg3NwoKMjAxMS0wNS0yOCAxMDo1OTowOSArMDUzMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiByZWZhY3RvciBjb2RlIGNvbW1vbiB0byBtYXRyb3NrYWRlbXV4IGFuZCBtYXRyb3NrYXBhcnNlCgkgIE1vdmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgdG8gbWF0cm9za2EtcmVhZC1jb21tb24uW2NoXSBmcm9tCgkgIG1hdHJvc2thLWRlbXV4LmMgYW5kIG1hdHJvc2thLXBhcnNlLmM6CgkgIC0gZ3N0X21hdHJvc2thX2luZGV4X3NlZWtfZmluZAoJICAtIGdzdF9tYXRyb3NrYXtkZW11eCxwYXJzZX1fZG9faW5kZXhfc2VlawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA1LTI3IDIzOjE1OjIzICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3RyYWNrbnVtYmVyX3VuaXF1ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA1LTI3IDIwOjI4OjE5ICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X2RlY29kZV9kYXRhCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjcgMTk6MzA6NDggKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gdG8gbWF0cm9za2EtcmVhZC1jb21tb24uW2NoXSBmcm9tCgkgIG1hdHJvc2thLWRlbXV4LmMgYW5kIG1hdHJvc2thLXBhcnNlLmM6CgkgIC0gZ3N0X21hdHJvc2thX3tkZW11eCxwYXJzZX1fZ2V0X2xlbmd0aAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA1LTI3IDA5OjE3OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogUmV2ZXJ0IDFhOTBhNmM0IGFuZCBkcm9wIERpcmFjIHN1cHBvcnQgYWdhaW4KCSAgSXQgZG9lcyBub3Qgd29yayBhdCBhbGwgKEEvViBzeW5jIGlzc3VlcyksIGlzIG5vdCB2ZXJ5IHVzZWZ1bCwKCSAgb3RoZXIgY29udGFpbmVycyB3b3JrIG11Y2ggYmV0dGVyIHdpdGggRGlyYWMgYW5kIERpcmFjIGluIEFWSQoJICBpcyBub3Qgc3VwcG9ydGVkIGJ5IG90aGVyIHNvZnR3YXJlLgoJICBGaXhlcyBidWcgIzU0MTIxNS4KCjIwMTEtMDUtMjYgMjM6MzU6NTIgKzA1MzAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X2VuY29kaW5nX2NtcAoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3JlYWRfdHJhY2tfZW5jb2RpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjMgMTg6MDY6NDQgKzAzMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3BlZWtfaWRfbGVuZ3RoX3B1bGwKCSAgLSBnc3RfbWF0cm9za2Ffe2RlbXV4LHBhcnNlfV9wZWVrX2lkX2xlbmd0aF9wdXNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjMgMTg6MDY6NDQgKzAzMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiByZWZhY3RvciBjb2RlIGNvbW1vbiB0byBtYXRyb3NrYWRlbXV4IGFuZCBtYXRyb3NrYXBhcnNlCgkgIE1vdmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiB0byBtYXRyb3NrYS1yZWFkLWNvbW1vbi5bY2hdIGZyb20KCSAgbWF0cm9za2EtZGVtdXguYyBhbmQgbWF0cm9za2EtcGFyc2UuYzoKCSAgLSBnc3RfbWF0cm9za2Ffe2RlbXV4LHBhcnNlfV9wZWVrX2FkYXB0ZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDg3NwoKMjAxMS0wNS0yNiAxMjo0ODozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSAgeHZpbWFnZXNpbms6IEZhbGxiYWNrIHRvIG5vbi1YU2htIG1vZGUgaWYgYWxsb2NhdGluZyB0aGUgWFNobSBpbWFnZSBmYWlsZWQKCSAgRml4ZXMgYnVnICM2MzA0NTYuCgoyMDExLTA1LTI2IDEyOjIyOjUyICswMjAwICBNYXJjIExlZW1hbiA8bWFyYy5sZWVtYW5AZ21haWwuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkgIHJ0cG1wNHZwYXk6IERlcHJlY2F0ZWQgc2VuZC1jb25maWcgcHJvcGVydHkgYW5kIHJlcGxhY2UgYnkgY29uZmlnLWludGVydmFsCgkgIEZpeGVzIGJ1ZyAjNjIyNDEyLgoKMjAxMC0wNi0yMyAxMToxMjowMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBtYXRyb3NrYWRlbXV4OiBVVEYtOCBzdWJ0aXRsZXMgbWF5IGhhdmUgbWFya3VwCgkgIEZpeGVzICM2MTY5MzYuCgoyMDExLTAxLTIzIDE1OjU2OjQ5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuaDoKCSAgY2Fpcm90ZXh0b3ZlcmxheTogZm9yd2FyZCBuZXcgc2VnbWVudCBldmVudHMgZnJvbSB0aGUgc2luayB0byB0aGUgc291cmNlCgkgIE5vdCBkb2luZyBzbyB3aWxsIGNhdXNlIGJ1ZmZlcnMgdG8gYmUgcmVjZWl2ZWQgYnkgZG93bnN0cmVhbSB3aXRob3V0CgkgIGEgdGltZSBiYXNlIHNldC4KCSAgV2UgdXNlIHRoZSBzYW1lIG1ldGhvZCBhdmltdXggdXNlcyB0byBnZXQgYWNjZXNzIHRvIHRoZSBldmVudCB3aGVuCgkgIGNvbGxlY3RwYWRzIGdvdCB0aGUgc2luayBldmVudCBmdW5jdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDMyMwoKMjAxMS0wMS0yNCAxMToxMTo0OCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSAgdGV4dG92ZXJsYXk6IGZvcndhcmQgc291cmNlIGV2ZW50cyB0byBzaW5rcwoJICBFdmVudHMgYXJlIHBhc3NlZCB0byB0aGUgdmlkZW8gc2luaywgYW5kIHRvIHRoZSB0ZXh0IHNpbmsgaWYgaXQgaXMKCSAgbGlua2VkLgoJICBUaGlzIHdpbGwgYWxsb3cgc2Vla2luZywgZm9yIGluc3RhbmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg2NDUwCgoyMDExLTA1LTI1IDIxOjEyOjEyICswMjAwICBEYXZpZCBIb3l0IDxkaG95dEBsbG5sLmdvdj4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5oOgoJICBtdWx0aXBhcnRkZW11eDogQWRkIHByb3BlcnR5IHRvIGFzc3VtZSBhIHNpbmdsZSBzdHJlYW0gYW5kIGVtaXQgbm8tbW9yZS1wYWRzCgkgIEZpeGVzIGJ1ZyAjNjE2Njg2LgoKMjAxMS0wNS0yNSAxNDo1MDoyNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHVuaWZvcm0gdW5rbm93biBtZXNzYWdlIGhhbmRsaW5nCgkgIERvIHRoZSBzYW1lIHByb2Nlc3NpbmcgaW4gYWxsIHRoZSBjYXNlcyB3aGVuIGFuIHVua25vd24gbWVzc2FnZSBpcyByZWNlaXZlZC4KCSAgVGhhdCBpcywgZ2l2ZSBhIHdhcm5pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTEwNTkKCjIwMTEtMDUtMjMgMTg6MDY6NDQgKzAzMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gdG8gbWF0cm9za2EtcmVhZC1jb21tb24uW2NoXSBmcm9tCgkgIG1hdHJvc2thLWRlbXV4LmMgYW5kIG1hdHJvc2thLXBhcnNlLmM6CgkgIC0gZ3N0X21hdHJvc2thX3tkZW11eCxwYXJzZX1fcGVla19wdWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjMgMTg6MDY6NDQgKzAzMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiByZWZhY3RvciBjb2RlIGNvbW1vbiB0byBtYXRyb3NrYWRlbXV4IGFuZCBtYXRyb3NrYXBhcnNlCgkgIE1vdmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiB0byBtYXRyb3NrYS1yZWFkLWNvbW1vbi5bY2hdIGZyb20KCSAgbWF0cm9za2EtZGVtdXguYyBhbmQgbWF0cm9za2EtcGFyc2UuYzoKCSAgLSBnc3RfbWF0cm9za2Ffe2RlbXV4LHBhcnNlfV9wZWVrX2J5dGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjMgMTg6MDY6NDQgKzAzMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBNb3ZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHRvIG1hdHJvc2thLXJlYWQtY29tbW9uLltjaF0gZnJvbQoJICBtYXRyb3NrYS1kZW11eC5jIGFuZCBtYXRyb3NrYS1wYXJzZS5jOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X2VuY29kaW5nX29yZGVyX3VuaXF1ZQoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3JlYWRfdHJhY2tfZW5jb2RpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDg3NwoKMjAxMS0wNS0yNCAxODoyNzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc3JjLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6CgkgIGF1dG9kZXRlY3Q6IHBvcnQgdG8gbmV3IEFQSQoKMjAxMS0wNS0yNCAxNzozNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmMKCSAgZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jCgkgIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5LmMKCSAgZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jCgkgIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jCgoyMDExLTA1LTI0IDEzOjEyOjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkgIHBjbXVkZXBheTogYWxsb3cgdmFyaWFibGUgc2FtcGxlIHJhdGUKCjIwMTEtMDUtMjQgMTM6MTE6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSAgcGNtYWRlcGF5OiBhbGxvdyB2YXJpYWJsZSBzYW1wbGUgcmF0ZQoKMjAxMC0wNC0wNCAwNjo0Mzo0MSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICB2NGwyOiBhZGQgbm9ybSBwcm9wZXJ0eQoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEd1ZW5uYWRpIExpYWtob3ZldHNraS4KCSAgdjI6IHVwZGF0ZXMgYmVjYXVzZSBJIGZvcmdvdCB0byBhZGQgR3N0VHVuZXIgaW50ZXJmYWNlIHRvIHY0bDJzaW5rCgkgIHYzOiB1cGRhdGUgdG8gYWRkIGFsbCBwb3NzaWJsZSB2YWx1ZXMgdG8gbm9ybSBlbnVtCgoyMDExLTA1LTIzIDIwOjQ2OjA0ICswMzAwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiBmaXhlZCBjb3B5cmlnaHQgaGVhZGVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA1LTIzIDE4OjA2OjQ0ICswMzAwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaDoKCSAgbWF0cm9za2E6IHJlZmFjdG9yIGNvZGUgY29tbW9uIHRvIG1hdHJvc2thZGVtdXggYW5kIG1hdHJvc2thcGFyc2UKCSAgTW92ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB0byBtYXRyb3NrYS1yZWFkLWNvbW1vbi5bY2hdIGZyb20KCSAgbWF0cm9za2EtZGVtdXguYyBhbmQgbWF0cm9za2EtcGFyc2UuYzoKCSAgLSBnc3RfbWF0cm9za2FfZGVjb2RlX2NvbnRlbnRfZW5jb2RpbmdzCgkgIC0gZ3N0X21hdHJvc2thX2RlY29tcHJlc3NfZGF0YQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwODc3CgoyMDExLTA1LTIzIDE4OjQ4OjU3ICswMzAwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmg6CgkgIG1hdHJvc2thOiBtb3ZlIEdzdE1hdHJvc2the0RlbXV4LFBhcnNlfTo6c3RhdGUgdG8gR3N0TWF0cm9za2FSZWFkQ29tbW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjQgMDk6NDg6NTYgKzAyMDAgIEpvbmFzIExhcnNzb24gPGpvbmFzLmxhcnNzb25AaGlxLnNlPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEZpeCBidWZmZXIgbGVhayB3aXRoIGNvcnJ1cHRlZCBmaWxlcwoJICBGaXhlcyBidWcgIzY1MDkxMi4KCjIwMTEtMDUtMjMgMDI6NDY6MzggLTA3MDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBmaXggcGFyYW1ldGVyIHR5cGUgaW4gdHJhY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDkzNwoKMjAxMS0wNS0yMyAxODowNjo0NCArMDMwMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oOgoJICBtYXRyb3NrYTogcmVmYWN0b3IgY29kZSBjb21tb24gdG8gbWF0cm9za2FkZW11eCBhbmQgbWF0cm9za2FwYXJzZQoJICBSZXBsYWNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHdpdGggdGhlaXIgZ3N0X21hdHJvc2thX3JlYWRfY29tbW9uXyoKCSAgY291bnRlcnBhcnRzOgoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3BhcnNlX2luZGV4CgkgIC0gZ3N0X21hdHJvc2thX3tkZW11eCxwYXJzZX1fcGFyc2Vfc2tpcAoJICAtIGdzdF9tYXRyb3NrYV97ZGVtdXgscGFyc2V9X3N0cmVhbV9mcm9tX251bQoJICBJbnRyb2R1Y2UgR3N0TWF0cm9za2FSZWFkQ29tbW9uIHRvIGNvbnRhaW4gdGhvc2UgbWVtYmVycyBvZgoJICBHc3RNYXRyb3NrYURlbXV4IGFuZCBHc3RNYXRyb3NrYVBhcnNlIHRoYXQgd2VyZSB1c2VkIGJ5IHRoZSBhYm92ZQoJICBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA4NzcKCjIwMTEtMDUtMjMgMTM6NTA6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiB0ZWxsIGJhc2VwYXJzZSB0aGUgZHVyYXRpb24gaW4gc2FtcGxlcyBmb3IgYmV0dGVyIGFjY3VyYWN5CgkgIFRlbGwgR3N0QmFzZVBhcnNlIHRoZSBkdXJhdGlvbiBpbiBzYW1wbGVzIGluc3RlYWQgb2YgdGltZSwgc28gdGhhdAoJICBhIGR1cmF0aW9uIHF1ZXJ5IGluIERFRkFVTFQgZm9ybWF0IHdpbGwgcmV0dXJuIHRoZSBjb3JyZWN0IG51bWJlcgoJICBvZiBzYW1wbGVzIHdpdGhvdXQgcm91bmRpbmcgZXJyb3JzLiBCYXNlcGFyc2Ugd2lsbCBjb252ZXJ0IHRoaXMKCSAgaW50byB0aW1lIGl0c2VsZiB3aGVuIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDc4NQoKMjAxMS0wNS0yMyAxMzoyNTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGFsc28gdHJ5IHVwc3RyZWFtIGZpcnN0IGZvciBkdXJhdGlvbiBxdWVyeSBpbiBERUZBVUxUIGZvcm1hdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwNzg1CgoyMDExLTA1LTIzIDEzOjIzOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogbWFrZSBjb252ZXJzaW9uIGZyb20gVElNRSB0byBERUZBVUxUIGZvcm1hdCAoc2FtcGxlcykgd29yawoJICBGaXggY29weSduJ3Bhc3RlIGVycm9yIGluIHRoZSBwcmV2aW91cyBjb21taXQuCgoyMDExLTA1LTIzIDExOjM2OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogSW1wbGVtZW50IGNvbnZlcnNpb25zIGJldHdlZW4gVElNRSBhbmQgREVGQVVMVCBmb3JtYXQKCSAgRml4ZXMgYnVnICM2NTA3ODUuCgoyMDExLTA1LTIyIDE4OjUwOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogZG9uJ3QgZXJyb3Igb3V0IG9uIGludmFsaWQgbWluaW11bV9ibG9ja3NpemUgdmFsdWUgaW4gc3RyZWFtaW5mbyBoZWFkZXIKCSAgV2UgZG9uJ3QgdXNlIGl0LCBzbyBtYXkganVzdCBhcyB3ZWxsIGFjY2VwdCBhbiBpbnZhbGlkIHZhbHVlCgkgIG9mIDAgaGVyZSwgd2hpY2ggaXMgbGlrZWx5IGluY29uc2VxdWVudGlhbCBhbnl3YXkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTA2OTEKCjIwMTEtMDUtMjAgMTA6MzQ6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFjZWxwZGVwYXkuYzoKCSAgcnRwOiBmaXggc3RhdGljIGFycmF5IG92ZXJydW5zIGluIGEgbmljZXIgd2F5CgkgIFVzZSBHX05fRUxFTUVOVFMgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyB0aGUgYXJyYXkgc2l6ZS4KCjIwMTEtMDUtMjAgMDA6NTM6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFjZWxwZGVwYXkuYzoKCSAgcnRwOiBmaXggc3RhdGljIGFycmF5IG92ZXJydW5zCgkgIFllcyBhcnJheVsxMF0gaGFzIGVsZW1lbnRzIGZyb20gMC4uLjkuCgoyMDExLTA1LTE5IDIzOjMxOjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBpbnRyb3NwZWN0aW9uIGRhdGEKCSAgTm93IG1vcmUgZmlsZXMgYXJlIG1lcmdlZCBhbmQgcHJvZHVjZWQgaW4gYSBjYW5vbmljYWwgZmFzaGlvbiwgd2hpY2ggaG9wZWZ1bGx5CgkgIGNyZWF0ZXMgbGVzcyBvciBubyBkZWx0YSBpbiB0aGUgZnV0dXJlLgoKMjAxMS0wNS0xOSAyMjo1NzoxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5ZTViYmQ1IHRvIDY5Yjk4MWYKCjIwMTEtMDUtMTkgMTg6MjE6MzMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhZGQgbWlzc2luZyBicmVhawoKMjAxMC0xMS0wOCAxNDowNjoxNSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICBkZWludGVybGFjZTogQWRkIHN1cHBvcnQgZm9yIGRlaW50ZXJsYWNpbmcgdXNpbmcgYnVmZmVyIGNhcHMvZmxhZ3MKCSAgV2hlbiBub3QgdXNpbmcgdGhlIGZpZWxkYW5hbHlzaXMgZWxlbWVudCBpbW1lZGlhdGVseSB1cHN0cmVhbSBvZiBkZWludGVybGFjZSwKCSAgYmVoYXZpb3VyIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkLiBmaWVsZGFuYWx5c2lzIHdpbGwgc2V0IHRoZSBjYXBzIGFuZCBmbGFncyBvbgoJICB0aGUgYnVmZmVycyBzdWNoIHRoYXQgdGhleSBjYW4gYmUgaW50ZXJwcmV0ZWQgYW5kIGFjdGVkIHVwb24gdG8gcHJvZHVjZQoJICBwcm9ncmVzc2l2ZSBvdXRwdXQuCgkgIFRoZXJlIGFyZSB0d28gbWFpbiBtb2RlcyBvZiBvcGVyYXRpb246CgkgIC0gUGFzc2l2ZSBwYXR0ZXJuIGxvY2tpbmcKCSAgUGFzc2l2ZSBwYXR0ZXJuIGxvY2tpbmcgaXMgYSBub24tYmxvY2tpbmcsIGxvdy1sYXRlbmN5IG1vZGUgb2Ygb3BlcmF0aW9uIHRoYXQKCSAgaXMgc3VpdGFibGUgZm9yIGNsb3NlLXRvLWxpdmUgdXNhZ2UuIEluaXRpYWxseSBhIHRlbGVjaW5lIHN0cmVhbSB3aWxsIGJlCgkgIG91dHB1dCBhcyB2YXJpYWJsZSBmcmFtZXJhdGUgd2l0aCBuYcOvdmUgdGltZXN0YW1wIGFkanVzdG1lbnQuIFdpdGggZWFjaAoJICBpbmNvbWluZyBidWZmZXIsIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBsb2NrIG9udG8gYSBwYXR0ZXJuLiBXaGVuIGEgbG9jayBpcwoJICBvYnRhaW5lZCwgdGhlIHNyYyBwYWQgYW5kIG91dHB1dCBidWZmZXIgY2FwcyB3aWxsIHJlZmxlY3QgdGhlIHBhdHRlcm4gYW5kCgkgIHRpbWVzdGFtcHMgd2lsbCBiZSBhY2N1cmF0ZWx5IGludGVycG9sYXRlZCBiZXR3ZWVuIHBhdHRlcm4gcmVwZWF0cy4gVGhpcwoJICBtZWFucyB0aGF0IGluaXRpYWxseSBhbmQgYXQgcGF0dGVybiB0cmFuc2l0aW9ucyB0aGVyZSB3aWxsIGJlIHNob3J0IHBlcmlvZHMKCSAgb2YgaW5hY2N1cmF0ZSB0aW1lc3RhbXBpbmcuCgkgIC0gQWN0aXZlIHBhdHRlcm4gbG9ja2luZwoJICBBY3RpdmUgcGF0dGVybiBsb2NraW5nIGlzIGEgYmxvY2tpbmcsIGhpZ2gtbGF0ZW5jeSBtb2RlIG9mIG9wZXJhdGlvbiB0aGF0IGlzCgkgIHRhcmdldGVkIGF0IHVzZS1jYXNlcyB3aGVyZSB0aW1lc3RhbXAgYWNjdXJhY3kgaXMgcGFyYW1vdW50LiBCdWZmZXJzIHdpbGwgYmUKCSAgcXVldWVkIHVudGlsIGVub3VnaCBhcmUgcHJlc2VudCB0byBtYWtlIGEgbG9jay4gV2hlbiBsb2NrZWQsIHRpbWVzdGFtcHMgd2lsbAoJICBiZSBhY2N1cmF0ZWx5IGludGVycG9sYXRlZCBiZXR3ZWVuIHBhdHRlcm4gcmVwZWF0cy4gT3JwaGFuIGZpZWxkcyBjYW4gYmUKCSAgZHJvcHBlZCBvciBkZWludGVybGFjZWQuIElmIG5vIGxvY2sgY2FuIGJlIG9idGFpbmVkLCBhIHNpbmdsZSBmaWVsZCBtaWdodCBiZQoJICBwdXNoZWQgdGhyb3VnaCB0byBiZSBkZWludGVybGFjZWQuCgkgIExvY2tpbmcgY2FuIGFsc28gYmUgZGlzYWJsZWQgb3IgJ2F1dG8nIGNob29zZXMgYmV0d2VlbiBwYXNzaXZlIGFuZCBhY3RpdmUKCSAgbG9ja2luZyBtb2RlcyBkZXBlbmRpbmcgb24gd2hldGhlciB1cHN0cmVhbSBpcyBsaXZlLgoKMjAxMS0wNS0xMCAxNjoyNTo0MCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIGNvbmZpZyBzY3JpcHQgY2hlY2sgZm9yIGNhY2EKCjIwMTEtMDUtMTggMTI6MzY6NDAgKzAyMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAxc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkgIHJ0cDogRml4IHNlZ21lbnRhdGlvbiBmYXVsdCBwcm9jZXNzaW5nIHBheWxvYWQgYnVmZmVycwoJICBUaGlzIGNvbW1pdCBjaGVja3MgaWYgdGhlIHZhbHVlIHJldHVybmVkIGJ5CgkgIGdzdF9ydHBfYnVmZmVyX2dldF9wYXlsb2FkX2J1ZmZlciBhbmQKCSAgZ3N0X3J0cF9idWZmZXJfZ2V0X3BheWxvYWRfc3ViYnVmZmVyIGlzIE5VTEwgYmVmb3JlIHVzaW5nIGl0LgoKMjAxMS0wNS0xOCAxNjoxMDowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZDM1MDczIHRvIDllNWJiZDUKCjIwMTEtMDUtMTggMTI6NTI6MzEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZW5zdXJlIDAtcGFkZGluZyB3aGVuIGNvcnJlY3RpbmcgZHViaW91cyBsaXN0IHNpemUKCjIwMTEtMDUtMTggMTI6MjQ6MjUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDZkZmNlYSB0byBmZDM1MDczCgoyMDExLTA1LTE4IDEwOjIyOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHVzZSBFSU5WQUwgZm9yIG1pc3NpbmcgdXJsIHBhcmFtZXRlcgoJICBGaXhlcyBnY2Mgd2FybmluZyBhYm91dCB1c2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlICdyZXMnLgoKMjAxMS0wNC0yOCAxNTozNzo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSAgdmFyaW91czogZml4IGF1dGhvciB0YWcgaW4gZWxlbWVudCBkZXRhaWxzCgoyMDExLTA0LTIwIDE1OjI1OjU4IC0wNDAwICBDaHJpcyBFIEpvbmVzIDxjaHJpc0BjaHJpc2Vqb25lcy5jb20+CgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkgIGF1cGFyc2U6IGltcGxlbWVudCBzZWVraW5nCgkgIEltcGxlbWVudCBzZWVraW5nIGFuZCBzZWVraW5nIHF1ZXJ5LiBGaXhlcyAjNjQ0NTEyCgoyMDExLTA1LTE3IDE2OjEzOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNiAxNjowNTo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGFsc28gYWxsb3cgUEFVU0UgdG8gYmUgaW50ZXJydXB0ZWQKCSAgLi4uIGFzIGl0IGlzIG9uIHRoZSB3YXkgb3V0IHRvIE5VTEwuCgkgIFNlZSAjNjMyNTA0LgoKMjAxMS0wNC0wNiAxNTo1MTo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGVuc3VyZSBwcm9wZXIgY2xvc2luZyBhbmQgY2xlYW51cAoJICAuLi4gc2luY2UgdGhlIFRFQVJET1dOIHNlcXVlbmNlIG1pZ2h0IG5vdCBoYXZlIGhhZCBhIGNoYW5jZSB0byBldmVuIHN0YXJ0LAoJICBidXQgYXQgbGVhc3QgY29ubmVjdGlvbnMgc2hvdWxkIGJlIGNsb3NlZCAoc3luY2hyb25vdXNseSkgYW5kIHN0YXRlIGNsZWFuZWQgdXAuCgkgIFNlZSAjNjMyNTA0LgoKMjAxMS0wNC0wNiAxNTo0OTowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogZml4IGFuZCBpbXByb3ZlIGFzeW5jIGhhbmRsaW5nCgkgIFNpbXBsaWZ5IHRoZSBjb21tYW5kIGhhbmRsaW5nOyBwYXNzaW5nIGEgY29tbWFuZCB0byB0aHJlYWQgbWVhbnMgd2UgcmVhbGx5CgkgIHdhbnQgaXQgdG8gZ2V0IHRoZSBtZXNzYWdlLCB3aGljaCBtZWFucyB0byBhbHdheXMgZmx1c2ggcHJvdmlkZWQgdGhlIGNvbW1hbmQKCSAgY2FuIGhhbmRsZSBiZWluZyBpbnRlcnJ1cHRlZC4gIENvbW1hbmQgdGhyZWFkIGluZGljYXRlcyB3aGV0aGVyIGNvbW1hbmQKCSAgYWxsb3dzIGludGVycnVwdGlvbiBhbmQgZW5zdXJlIG5vbi1mbHVzaGluZyBjb25uZWN0aW9uIGFzIGl0IHN1YnNlcXVlbnRseQoJICBuZWVkcyBpdC4KCSAgSW4gcGFydGljdWxhciwgdGhpcyBhbHNvIG1ha2VzIHRoZSBURUFSRE9XTiBzZXF1ZW5jZSBpbnRlcnJ1cHRhYmxlCgkgIGFuZCBhbHNvIHByZXZlbnRzIHJhY2VzIHdoZXJlIF9sb29wXyBjb3VsZCBtaXNzIGEgY29tbWFuZCBhbmQgd291bGQKCSAgY29udGludWUgcmVjZWl2aW5nIChvciBhdCBsZWFzdCB0cnlpbmcgdG8pLgoJICBTZWUgIzYzMjUwNC4KCjIwMTEtMDQtMDYgMTQ6NTM6MjcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiB0d2VhayBwb3N0LXNlZWsgbG9vcCBoYW5kbGluZwoKMjAxMS0wMS0xMCAxMjo0NjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBvcGVuIG9uIHBsYXkgYW5kIHBhdXNlIHdoZW4gbm90IGRvbmUgeWV0CgkgIFdpdGggdGhlIGFzeW5jIHN0YXRlIGNoYW5nZXMsIGl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgbmVlZCB0byBvcGVuIHRoZSBzdHJlYW0KCSAgYmVmb3JlIHBsYXkgYW5kIHBhdXNlLgoJICBBbHNvIG1ha2Ugc3VyZSB3ZSByZW1lbWJlciBhIHByZXZpb3VzIG9wZW4gZmFpbHVyZSBzbyB0aGF0IHdlIGRvbid0IGtlZXAgdHJ5aW5nCgkgIGFnYWluLgoKMjAxMS0wMS0xMCAxMTo0NTowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogaW1wcm92ZSBhc3luYyBoYW5kbGluZwoJICBTaW1wbGlmeSB0aGUgY29tbWFuZCBoYW5kbGluZywgb25seSBjb250aW51ZSBsb29waW5nIHdoZW4gd2UgaGF2ZSBub3QgcmVjZWl2ZWQKCSAgYW5vdGhlciBjb21tYW5kIG9yIHdoZW4gdGhlIHByZXZpb3VzIGxvb3Agd2FzIHN1Y2Nlc3NmdWxsLgoJICBBdm9pZCBsb29waW5nIG9uIGEgZGlzY29ubmVjdGVkIHNvY2tldC4KCjIwMTEtMDEtMDcgMTg6MDI6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHJld29yayByZWNvbm5lY3QgY29kZQoJICBVc2UgdGhlIHNhbWUgYXN5bmMgY29kZSBwYXRoIHRvIGltcGxlbWVudCByZWNvbm5lY3RzLgoJICBNYWtlIHN1cmUgd2Ugb25seSBwb3N0IHByb2dyZXNzIG1lc3NhZ2VzIHdoZW4gZG9pbmcgYXN5bmMgdGhpbmdzLgoKMjAxMS0wMS0wNyAxNzoxOTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogc21hbGwgY2xlYW51cHMKCSAgTWFrZSBzdXJlIHdlIGNhbmNlbCB0aGUgcHJldmlvdXMgdGFzayB3aGVuIHF1ZXVpbmcgYSBuZXcgb25lLgoJICBNb3ZlIHRoZSBtZXNzYWdlcyB0byBhIGNlbnRyYWwgcGxhY2Ugc28gd2UgY2FuIG1vcmUgZWFzaWx5IHBvc3QgdGhlbS4KCjIwMTEtMDEtMDcgMTU6MTU6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGRvbid0IHBvc3QgZXJyb3JzIHdoZW4gaW50ZXJydXB0aW5nCgoyMDExLTAxLTA3IDEzOjQzOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IGltcGxlbWVudCBtb3JlIGFzeW5jIGhhbmRsaW5nCgkgIFJlbW92ZSBzb21lIG9sZCBsb2Nrcy4KCSAgTWFrZSBzdXJlIHdlIG5ldmVyIGdvIGludG8gdGhlIGxvb3AgZnVuY3Rpb24gd2hlbiBmbHVzaGluZy4KCjIwMTEtMDEtMDcgMTE6NDA6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpcnN0IGF0dGVtcHQgYXQgYXN5bmMgaW1wbGVtZW50YXRpb24KCjIwMTEtMDEtMDcgMTE6NDA6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IHNtYWxsIGhlYWRlciBjbGVhbnVwcwoKMjAxMS0wNS0xNyAxMDo0NzozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgc3NyY2RlbXV4OiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nIGZvciAocHJlLSkgcmVsZWFzZXMgdG9vCgoyMDExLTA0LTI4IDE1OjU3OjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMm9iamVjdHM6IE9ubHkgYWxsb3cgbXBlZy10cyBvbiBzb3VyY2Ugb2JqZWN0cwoJICBVZ2x5IGZpeCBmb3IgIzY0ODMxMgoKMjAxMS0wNS0xNyAwOToyNDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgcnRwc3NyY2RlbXV4OiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDExLTA1LTA2IDE5OjA5OjE3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgc3NyY2RlbXV4OiBJbXBsZW1lbnQgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBmb3Igc2luayBwYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDk2MTcKCjIwMTEtMDUtMDYgMTg6NDE6MDEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHBzc3JjZGVtdXg6IGl0ZXJhdGUgcGFkIGZ1bmN0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIHNyYyBwYWRzCgkgIFRoZSBpdGVyYXRlIGZ1bmN0aW9uIGlzIG9ubHkgdXNlZCBmb3Igc3JjIHBhZHMsIHNvIG1hcmsgaXQgYXMgc3VjaCBhbmQgcmVtb3ZlCgkgIGRlYWQgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTYxNwoKMjAxMS0wNS0wNiAxODoxMjo1MyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgIHJ0cHNzcmNkZW11eDogUmVsZWFzZSBsb2NrIGJlZm9yZSBlbWl0dGluZyBzaWduYWwKCSAgSWYgdGhlIGxvY2sgaXMgbm90IHJlbGVhc2VkIGJlZm9yZSBlbWl0dGluZyBhIHNpZ25hbCwgaXQgbWF5IGNhdXNlIGEgZGVhZGxvY2sKCSAgaWYgYW55IG90aGVyIGZ1bmN0aW9uIGluIHRoZSBlbGVtZW50IGlzIGNhbGxlZC4KCSAgQWxzbyByZW1vdmVkIGFuIHVudXNlZCB0aW1lc3RhbXAgcGFyYW1ldGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDk2MTcKCjIwMTEtMDUtMTUgMjM6MjU6MTUgKzAzMDAgIERlYmFyc2hpIFJheSA8cmlzaGlAZ251Lm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1wYXJzZS5jOgoJICBtYXRyb3NrYXBhcnNlOiBjYWxjdWxhdGUgc2VnbWVudCBkdXJhdGlvbiBhZnRlciBwYXJzaW5nIGFsbCB0aGUgSURzCgkgIFNpbmNlIHRoZSBzZWdtZW50IGR1cmF0aW9uIGlzIGdpdmVuIGluIHRlcm1zIG9mIHRoZQoJICBHU1RfTUFUUk9TS0FfSURfVElNRUNPREVTQ0FMRSB3ZSBzaG91bGQgb25seSBjb252ZXJ0IGl0IGludG8KCSAgbmFub3NlY29uZHMgd2hlbiB3ZSBhcmUgc3VyZSB0aGF0IGFueSBzY2FsZSBzcGVjaWZpZWQgaW4gdGhlIGZpbGUgaGFzCgkgIGJlZW4gcmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDI1OAoKMjAxMS0wNS0xNiAxNzo1MjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTEtMDUtMTYgMTc6NTA6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zcmMuYzoKCSAgLWdvb2Q6IGZpeCBmb3IgbmV3IEFQSQoKMjAxMS0wNS0wNCAxMTo1NToyMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogYWRkaXRpb25hbCBsb2NrIHNhZmV0eQoJICBGaXhlcyAjNjE5NTkwLgoKMjAxMS0wNC0yNiAxNjowNjo1NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYWxzbyBjaGVjayBmb3IgYml0cmF0ZSBpbmZvIGluIGNhcHMKCjIwMTAtMDUtMjUgMDE6MDQ6NDMgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LmM6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5oOgoJICBxdGRlbXV4OiBndWVzcyBiaXRyYXRlIGlmIG9ubHkgb25lIHN0cmVhbSdzIGJpdHJhdGUgaXMgdW5rbm93bgoJICBJZiB0aGUgYml0cmF0ZXMgZm9yIGFsbCBidXQgb25lIGF1ZGlvL3ZpZGVvIHN0cmVhbXMgYXJlIGtub3duLCBhbmQgdGhlCgkgIHRvdGFsIHN0cmVhbSBzaXplIGFuZCBkdXJhdGlvbiBjYW4gYmUgZGV0ZXJtaW5lZCwgdGhpcyBjYWxjdWxhdGVzIHRoZQoJICB1bmtvd24gYml0cmF0ZSBhcyAoc3RyZWFtIHNpemUgLyBkdXJhdGlvbikgLSAoc3VtIG9mIGtub3duIGJpdHJhdGVzKS4KCSAgV2hpbGUgdGhpcyBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSB2ZXJ5IGFjY3VyYXRlLCBpdCBzaG91bGQgYmUgZ29vZAoJICBlbm91Z2ggZm9yIG1vc3QgcHVycG9zZXMuCgkgIEZvciBleGFtcGxlLCB0aGlzIGlzIHVzZWZ1bCBmb3IgSC4yNjMgKyBBQUMgc3RyZWFtcyB3aGVyZSBubyAnYnRydCcgYXRvbQoJICBpcyBhdmFpbGFibGUgZm9yIHRoZSB2aWRlbyBwb3J0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5NTQ4CgoyMDEwLTA1LTMxIDIzOjU5OjU5ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBFeHBvcnQgbWF4IGJpdHJhdGUgZm9yIEFNUi1OQi8tV0Igc3RyZWFtcwoJICBUaGlzIHBhcnNlcyB0aGUgJ2RhbXInIGF0b20gaWYgcHJlc2VudCwgYW5kIGV4cG9ydHMgdGhlIG1heGltdW0gYml0cmF0ZQoJICBvZiB0aGUgc3RyZWFtIHVzaW5nIHRoZSBtb2RlIHNldCBmaWVsZCB0byBkZXRlcm1pbmUgdGhlIGhpZ2hlc3QgYml0cmF0ZQoJICBmcmFtZSB0eXBlIHRoYXQgbWlnaHQgYmUgcHJlc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMDE4NgoKMjAxMS0wNS0xNiAwOTowNDozMSArMDIwMCAgUGlubyBUb3NjYW5vIDx0b3NjYW5vLnBpbm9AdGlzY2FsaS5pdD4KCgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSAgcHVsc2U6IERlZmluZSBQQVRIX01BWCBpZiBpdCBpc24ndCBkZWZpbmVkCgkgIEdOVSBIdXJkIGZvciBleGFtcGxlIGRvZXNuJ3QgZGVmaW5lIGl0LgoKMjAxMS0wNS0xNSAyMzoyNToxNSArMDMwMCAgRGViYXJzaGkgUmF5IDxyaXNoaUBnbnUub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGNhbGN1bGF0ZSBzZWdtZW50IGR1cmF0aW9uIGFmdGVyIHBhcnNpbmcgYWxsIHRoZSBJRHMKCSAgU2luY2UgdGhlIHNlZ21lbnQgZHVyYXRpb24gaXMgZ2l2ZW4gaW4gdGVybXMgb2YgdGhlCgkgIEdTVF9NQVRST1NLQV9JRF9USU1FQ09ERVNDQUxFIHdlIHNob3VsZCBvbmx5IGNvbnZlcnQgaXQgaW50bwoJICBuYW5vc2Vjb25kcyB3aGVuIHdlIGFyZSBzdXJlIHRoYXQgYW55IHNjYWxlIHNwZWNpZmllZCBpbiB0aGUgZmlsZSBoYXMKCSAgYmVlbiByZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMjU4CgoyMDExLTA1LTA5IDE5OjAwOjQ1ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IEFkZCBzdXBwb3J0IGZvciBtcGVndmVyc2lvbiAyLCB3aGljaCBpcyBhbHNvIEFBQwoKMjAxMS0wNS0xMSAxMDoyNToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSAgZmxhY2RlYzogU2VuZCBFT1Mgd2hlbiBzZWVraW5nIGFmdGVyIHRoZSBlbmQgb2YgZmlsZSBpbnN0ZWFkIG9mIGZhaWxpbmcKCSAgRml4ZXMgYnVnICM2NDk3ODAuCgoyMDExLTA0LTI5IDA4OjU5OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkgIHdhdmVuYzogU2V0IGZpeGVkY2FwcyBnZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBzaW5rcGFkCgkgIHdhdmVuYyBkb2VzIG5vdCBhbGxvdyB0byBjaGFuZ2UgdGhlIGNhcHMgZHVyaW5nIHBsYXliYWNrCgkgIGFuZCBhbHdheXMgcmV0dXJuaW5nIHRoZSB0ZW1wbGF0ZSBjYXBzIGlzIGp1c3Qgd3JvbmcuCgoyMDExLTA0LTI5IDA4OjU1OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkgIHdhdmVuYzogQWxsb3cgc2V0Y2FwcyB0byBiZSBjYWxsZWQgYWZ0ZXIgYSBmb3JtYXQgd2FzIG5lZ290aWF0ZWQgaWYgaXQncyBjb21wYXRpYmxlCgkgIE90aGVyd2lzZSB3YXZlbmMgd2lsbCBmYWlsIGlmIHVwc3RyZWFtIGRlY2lkZXMgdG8gc2V0IGVxdWl2YWxlbnQgY2FwcyBvciBjYXBzCgkgIHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBsYXRlci4KCSAgVGhhbmtzIHRvIEFsZXhhbmRlciBTY2hyZW1tZXIgZm9yIGZpbmRpbmcgdGhpcyBidWcuCgoyMDExLTA1LTE0IDEwOjAyOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMjkgPT09CgoyMDExLTA1LTEwIDEwOjA0OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjI5CgkgIEhpZ2hsaWdodHM6CgkgIC0gYW1ycGFyc2UsIGFhY3BhcnNlLCBhYzNwYXJzZSwgZmxhY3BhcnNlLCBtcGVnYXVkaW9wYXJzZSwgZGNhcGFyc2UgYXVkaW8gcGFyc2VycyAobW92ZWQgZnJvbSAtYmFkKQoJICAtIG11eGVycyBub3cgbXV4IGJhc2VkIG9uIHJ1bm5pbmcgdGltZQoJICAtIElTTyBNUDQgbXV4ZXJzOiBtcDRtdXgvM2dwcG11eC9xdG11eC9tajJtdXggKG1vdmVkIGZyb20gLWJhZCkKCSAgLSBuZXcgbWF0cm9za2FwYXJzZSBlbGVtZW50CgkgIC0gbmV3IHY0bDJyYWRpbyBlbGVtZW50CgkgIC0gcnRwc2Vzc2lvbjogc3VwcG9ydCBSVENQIEVhcmx5IEZlZWRiYWNrICh0aGUgQVZQRiBwcm9maWxlKQoJICAtIG9yYyAwLjQuMTQgb3IgbmV3ZXIgcmVjb21tZW5kZWQKCSAgLSBtYW55IG90aGVyIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMKCjIwMTEtMDUtMDUgMTM6MjQ6MjMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5jOgoJICBxdG11eDogRml4IHNpZ25lZCBmbG9hdGluZyBwb2ludCB2YWx1ZXMgd3JpdGluZwoJICBZb3Ugd291bGQgZW5kIHVwIG9uIHNvbWUgYXJjaGl0ZWN0dXJlcyB3aXRoIDAgYmVpbmcgd3JpdHRlbiBvdXQKCSAgaW5zdGVhZCBvZiB0aGUgcHJvcGVyIHZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5NDQ5CgoyMDExLTA1LTA0IDEyOjA0OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IGF2b2lkIGJ1aWxkaW5nIGluZGV4IHdoZW4gc3RyZWFtYWJsZQoJICAuLi4gYXMgaXQgd2lsbCBub3QgYmUgd3JpdHRlbiBhbnl3YXkuCgkgIEZpeGVzICM2NDg5MzcgKD8pLgoKMjAxMS0wNS0wMiAxMjowOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGFkZCBvbGQgcXRkZW11eC9xdWlja3RpbWUgZGlyZWN0b3JpZXMgdG8gQ1JVRlRfRElSUyBhbmQgQ1JVRlRfRklMRVMKCjIwMTEtMDUtMDEgMDA6MDQ6MDMgLTA0MDAgIFRvbSBKYW5pc3pld3NraSA8dG9tLmphbmlzemV3c2tpQGFsY2F0ZWwtbHVjZW50LmNvbT4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogZG9uJ3Qgb3ZlcndyaXRlIG1ldGFkYXRhIHRhZyB3aXRoIGR1cmF0aW9uIGluIHN0cmVhbWluZyBtb2RlCgkgIEEgZHVyYXRpb24gdGFnIGdldHMgaW5zZXJ0ZWQgb25seSBmb3Igc3RyZWFtYWJsZT1mYWxzZSwgc28gb25seQoJICB1cGRhdGUvd3JpdGUgdGhlIGR1cmF0aW9uIGxhdGVyIGlmIHdlIGFjdHVhbGx5IGluc2VydGVkIHRoYXQgdGFnLAoJICBvdGhlcndpc2Ugd2Ugd3JpdGUgZ2FyYmFnZSBpbnRvIG90aGVyIHRhZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkwNjAKCjIwMTEtMDQtMzAgMTg6MTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taXNvbXA0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogcG8vZnIucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4yOC40IHByZS1yZWxlYXNlCgoyMDExLTA0LTMwIDE3OjQ2OjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIEFuZHJvaWQubWs6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlzb21wNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkqIGdzdC9pc29tcDQvTEVHQUw6CgkqIGdzdC9pc29tcDQvTWFrZWZpbGUuYW06CgkqIGdzdC9pc29tcDQvYXRvbXMuYzoKCSogZ3N0L2lzb21wNC9hdG9tcy5oOgoJKiBnc3QvaXNvbXA0L2F0b21zcmVjb3ZlcnkuYzoKCSogZ3N0L2lzb21wNC9hdG9tc3JlY292ZXJ5Lmg6CgkqIGdzdC9pc29tcDQvZGVzY3JpcHRvcnMuYzoKCSogZ3N0L2lzb21wNC9kZXNjcmlwdG9ycy5oOgoJKiBnc3QvaXNvbXA0L2ZvdXJjYy5oOgoJKiBnc3QvaXNvbXA0L2Z0eXBjYy5oOgoJKiBnc3QvaXNvbXA0L2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L2lzb21wNC9nc3RxdG1vb3ZyZWNvdmVyLmg6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXgtZG9jLmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXgtZG9jLmg6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXguYzoKCSogZ3N0L2lzb21wNC9nc3RxdG11eC5oOgoJKiBnc3QvaXNvbXA0L2dzdHF0bXV4bWFwLmM6CgkqIGdzdC9pc29tcDQvZ3N0cXRtdXhtYXAuaDoKCSogZ3N0L2lzb21wNC9nc3RydHB4cXRkZXBheS5jOgoJKiBnc3QvaXNvbXA0L2dzdHJ0cHhxdGRlcGF5Lmg6CgkqIGdzdC9pc29tcDQvaXNvbXA0LXBsdWdpbi5jOgoJKiBnc3QvaXNvbXA0L3Byb3BlcnRpZXMuYzoKCSogZ3N0L2lzb21wNC9wcm9wZXJ0aWVzLmg6CgkqIGdzdC9pc29tcDQvcXRhdG9tcGFyc2VyLmg6CgkqIGdzdC9pc29tcDQvcXRkZW11eC5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXguaDoKCSogZ3N0L2lzb21wNC9xdGRlbXV4LnZjcHJvajoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X2R1bXAuYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X2R1bXAuaDoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X2ZvdXJjYy5oOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXhfbGFuZy5jOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXhfbGFuZy5oOgoJKiBnc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYzoKCSogZ3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmg6CgkqIGdzdC9pc29tcDQvcXRwYWxldHRlLmg6CgkqIGdzdC9xdWlja3RpbWUvTEVHQUw6CgkqIGdzdC9xdWlja3RpbWUvTWFrZWZpbGUuYW06CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zcmVjb3ZlcnkuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tc3JlY292ZXJ5Lmg6CgkqIGdzdC9xdWlja3RpbWUvZGVzY3JpcHRvcnMuYzoKCSogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5oOgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2Z0eXBjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG1vb3ZyZWNvdmVyLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXgtZG9jLmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXgtZG9jLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RydHB4cXRkZXBheS5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHJ0cHhxdGRlcGF5Lmg6CgkqIGdzdC9xdWlja3RpbWUvcHJvcGVydGllcy5jOgoJKiBnc3QvcXVpY2t0aW1lL3Byb3BlcnRpZXMuaDoKCSogZ3N0L3F1aWNrdGltZS9xdGF0b21wYXJzZXIuaDoKCSogZ3N0L3F1aWNrdGltZS9xdGRlbXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eC5oOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXgudmNwcm9qOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfZHVtcC5jOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfZHVtcC5oOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfZm91cmNjLmg6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eF9sYW5nLmM6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eF9sYW5nLmg6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eF90eXBlcy5jOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfdHlwZXMuaDoKCSogZ3N0L3F1aWNrdGltZS9xdHBhbGV0dGUuaDoKCSogZ3N0L3F1aWNrdGltZS9xdWlja3RpbWUuYzoKCSogcG8vUE9URklMRVMuaW46CgkgIHF1aWNrdGltZTogcmVuYW1lIHBsdWdpbiB0byBpc29tcDQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODAwNAoKMjAxMS0wNC0yOSAxNzo1NToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogZml4IHNvbWUgcGFyc2VycwoKMjAxMS0wNC0yOSAxNzo1NDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgZml4IGVycm9yIGNhdXNlZCBieSBtZXJnaW5nCgoyMDExLTA0LTI5IDE1OjQ5OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoJICBnc3QvcnRwL2dzdHJ0cGdzdHBheS5jCgoyMDExLTA0LTI5IDE1OjQ2OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSAgYXVkaW9meDogZml4IHBhZF9hbGxvYwoKMjAxMS0wNC0yNyAxMjo0NTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9wYXJzZXJzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogcG8vYmcucG86CgkqIHBvL2phLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4yOC4zIHByZS1yZWxlYXNlCgoyMDExLTA0LTI2IDE1OjU4OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSAgcnRwZ3N0cGF5OiBmaXggYnVmZmVyIGxlYWsKCjIwMTEtMDQtMjYgMTU6NTg6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGdzdHBheS5jOgoJICBydHBnc3RwYXk6IGZpeCBidWZmZXIgbGVhawoKMjAxMS0wNC0yNiAxNTo0Mjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IHBvcnQgamFjayBlbGVtZW50cwoKMjAxMS0wNC0yNSAxMDowNDo1MiArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogZG9jdW1lbnRhdGlvbiB0eXBvICJqcGVnZGRlYyIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODU4OQoKMjAxMS0wNC0yNSAxODoxNDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkgIHJ0cDogcG9ydCBzb21lIG1vcmUgZWxlbWVudHMKCjIwMTEtMDQtMjUgMTc6Mjc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211cGF5LmM6CgkgIHJ0cDogcG9ydCBtb3JlIHRvIDAuMTEKCjIwMTEtMDQtMjUgMTM6MTY6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgcnRwOiBwb3J0IHNvbWUgbW9yZSAoZGUpcGF5bG9hZGVycwoKMjAxMS0wNC0yNSAxMjo0OTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9maXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9paXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9pbnZlcnQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2xpbWl0LmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgcG9ydCBzb21lIG1vcmUgZWxlbWVudHMgdG8gMC4xMQoKMjAxMS0wNC0yNSAxMTozODoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMjQgMTY6NDU6MDcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBhdmltdXgsbWF0cm9za2FtdXg6IEFkZCBzdHJlYW0tZm9ybWF0IHRvIGgyNjQgY2FwcwoJICBGaXhlcyAjNjA2NjYyLgoKMjAxMS0wMi0yMCAxMjoxMzo0OSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICBwbmdkZWM6IFJlbW92ZSB0ZW1wb3JhcnkgY29kZQoJICBOb3cgdGhhdCB3ZSBkZXBlbmQgb24gKHdoYXQgd2lsbCBiZSkgLWJhc2UtMC4xMC4zMy4KCjIwMTEtMDQtMjQgMTQ6MDM6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGRvbid0IHBhc3MgLVdhZGRyZXNzIHRvIE9iakMgY29tcGlsZXIgb24gT1NYIHdoZW4gY29tcGlsaW5nIG9zeHZpZGVvc2luawoJICBUZW1wb3Jhcnkgd29ya2Fyb3VuZCB1bnRpbCB3ZSBmaXggdGhpcyBwcm9wZXJseSBhbmQgY2hlY2sgZm9yCgkgIHRoZSBPYmpDIHdhcm5pbmcvZXJyb3IgZmxhZ3MgaW5zdGVhZCBvZiBqdXN0IHBhc3NpbmcgQ0ZMQUdTIHRvIHRoZQoJICBPYmpDIGNvbXBpbGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQzOTM5CgoyMDExLTA0LTI0IDEzOjI5OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkqIGdzdC9xdWlja3RpbWUvTWFrZWZpbGUuYW06CgkgIHF1aWNrdGltZTogcmVuYW1lIHBsdWdpbiBmaWxlbmFtZSBmcm9tICpxdGRlbXV4KiB0byAqcXVpY2t0aW1lKgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MDA0CgoyMDExLTA0LTI0IDE0OjAzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzNjYWZlMSB0byA0NmRmY2VhCgoyMDExLTA0LTIxIDIzOjMwOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvcXVpY2t0aW1lL01ha2VmaWxlLmFtOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC1kb2MuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC1kb2MuaDoKCSAgZG9jczogYWRkIHZhcmlvdXMgcXRtdXggdmFyaWFudHMgdG8gZG9jdW1lbnRhdGlvbgoKMjAxMS0wNC0yMSAyMjo1MTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5oOgoJICBxdWlja3RpbWU6IHJlZ2lzdGVyIDNncHBtdXggZWxlbWVudCBpbiBhZGRpdGlvbiB0byB0aGUgbWlzbmFtZWQgZ3BwbXV4CgoyMDExLTA0LTE4IDE4OjA4OjMwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBydHBzZXNzaW9uOiBSZW1vdmUgaW5jb21wbGV0ZSBzdXBwb3J0IGZvciBSVENQIEZJUgoJICBSZW1vdmUgYml0cyB0aGF0IHdlcmUgbWVhbnQgdG8gc3VwcHBvcnQgUlRDUCBGSVIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODE2MAoKMjAxMS0wNC0xOSAxODo1NTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkgIGZsYWM6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNC0xOSAxNzozNTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdXNlIEdfREVGSU5FX1RZUEUgc29tZSBtb3JlCgoyMDExLTA0LTE5IDE3OjIwOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmM6CgkgIGF2aTogdXNlIEdfREVGSU5FX1RZUEUKCjIwMTEtMDQtMTkgMTc6MDc6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlci5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJICB1c2UgR19ERUZJTkVfVFlQRQoKMjAxMS0wNC0xOSAxNjoyNToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTkgMTQ6MzM6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9pbmRleC5jOgoJICB0ZXN0czogYWRkIGdlbmVyaWMgc2V0X2luZGV4IHRlc3QKCjIwMTEtMDQtMTkgMTQ6MzM6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogZml4IGRlYWRsb2NrIG9uIHNldHRpbmcgaW5kZXggb24gZmx2ZGVtdXgKCjIwMTEtMDQtMTkgMTQ6MTY6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmxhY3BhcnNlLmM6CgkgIHRlc3RzOiBhZGQgaW5kZXgtc2V0dGluZyB0ZXN0IGZvciBiYXNlcGFyc2UvZmxhY3BhcnNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY4MTEKCjIwMTEtMDQtMTggMTE6Mjk6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdnBhY2suYzoKCSAgd2F2cGFjazogUmVtb3ZlIGJ1cyBHU291cmNlIHRvIHByZXZlbnQgYSB2YWxncmluZCB3YXJuaW5nCgoyMDExLTA0LTE4IDExOjE0OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy93YXZlbmMuYzoKCSAgd2F2ZW5jOiBSZW1vdmUgYnVzIEdTb3VyY2UgdG8gcHJldmVudCBhIHZhbGdyaW5kIHdhcm5pbmcKCjIwMTEtMDQtMTggMTE6MTE6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3RhZ3NjaGVja2luZy5jOgoJICB0YWdzY2hlY2tpbmc6IFJlbW92ZSBidXMgR1NvdXJjZSB0byBwcmV2ZW50IGEgdmFsZ3JpbmQgd2FybmluZwoKMjAxMS0wNC0xOCAxMToxMDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogUmVtb3ZlIGJ1cyBHU291cmNlIHRvIHByZXZlbnQgYSB2YWxncmluZCB3YXJuaW5nCgoyMDExLTA0LTE4IDEwOjU0OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgcG9ydCBtb3JlIHBsdWdpbnMgdG8gMC4xMQoKMjAxMS0wNC0xOCAxMDoyMzo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBhbmRyb2lkL2FwZXRhZy5tawoJICBhbmRyb2lkL2F2aS5tawoJICBhbmRyb2lkL2Zsdi5tawoJICBhbmRyb2lkL2ljeWRlbXV4Lm1rCgkgIGFuZHJvaWQvaWQzZGVtdXgubWsKCSAgYW5kcm9pZC9xdGRlbXV4Lm1rCgkgIGFuZHJvaWQvcnRwLm1rCgkgIGFuZHJvaWQvcnRwbWFuYWdlci5tawoJICBhbmRyb2lkL3J0c3AubWsKCSAgYW5kcm9pZC9zb3VwLm1rCgkgIGFuZHJvaWQvdWRwLm1rCgkgIGFuZHJvaWQvd2F2ZW5jLm1rCgkgIGFuZHJvaWQvd2F2cGFyc2UubWsKCSAgY29uZmlndXJlLmFjCgoyMDExLTA0LTE3IDAxOjI5OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCAndmFyaWFibGUgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCcgd2FybmluZ3MgY2F1c2VkIGJ5IC1ER19ESVNBQkxFX0FTU0VSVAoKMjAxMS0wNC0xNiAxODo1MDoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHJ0cGJpbi1tYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RydHBiaW4tbWFyc2hhbC5oOgoJICAwLjEwLjI4LjIgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMTYgMTg6NDk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5oOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5oOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0LmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuaDoKCSAgZ3N0OiB1cGRhdGUgZGlzdGVkIG9yYyBiYWNrdXAgY29kZQoKMjAxMS0wNC0xNiAxODoyOTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcGFyc2Vycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMTYgMTg6Mjc6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZXMucG86CgkqIHBvL2lkLnBvOgoJKiBwby9zbC5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTEtMDQtMTYgMTg6MTc6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogcmVmdXNlIGluY29tcGxldGUgbGVnYWN5IGgyNjQgY2FwcwoJICBSZWZ1c2UgaDI2NCBjYXBzIHdpdGhvdXQgc3RyZWFtLWZvcm1hdCBhbmQgY29kZWNfZGF0YSBmaWVsZHMgZm9yCgkgIG5vdywgdG8gYXZvaWQgY3JlYXRpbmcgYnJva2VuIGZpbGVzLiBUaGlzIG1pZ2h0IGNhdXNlIHNvbWUgcGlwZWxpbmVzCgkgIHRoYXQgd29ya2VkIHByZXZpb3VzbHkgdG8gZmFpbC4gSG93ZXZlciwgdGhlIG1vdmUgZnJvbSAtYmFkIHRvIC1nb29kCgkgIGlzIG91ciBvbmx5IGNoYW5jZSB0byBmaXggdGhpcyB1cCwgc28gbWFrZSBpdCBzdHJpY3QgZm9yIG5vdy4gV2UgY2FuCgkgIGFsd2F5cyBjaGFuZ2UgaXQgYmFjayB0byBiZSBsZXNzIHN0cmljdCBpbiBmdXR1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc5MTkKCjIwMTEtMDQtMTYgMTg6MTY6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IGZpeCBhbm90aGVyIHVudXNlZC1idXQtc2V0LXZhcmlhYmxlIHdhcm5pbmcKCjIwMTEtMDQtMTYgMTg6MTA6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkgIHB1bHNlLCBzcGVleGVuYywgcnRwZ3NtcGF5OiBkb24ndCB1c2UgZ19hc3NlcnQoKSBmb3IgZXJyb3IgaGFuZGxpbmcKCSAgRG9uJ3QgdXNlIGdfYXNzZXJ0KCkgZm9yIGVycm9yIGhhbmRsaW5nLCBldmVuIGlmIHRoZXkncmUgaGlnaGx5IHVubGlrZWx5LgoJICBFaXRoZXIgd2UgKmtub3cqIHRoYXQgc29tZXRoaW5nIGNhbid0IGhhcHBlbiwgaW4gd2hpY2ggY2FzZSB3ZQoJICBzaG91bGQganVzdCBub3QgaGFuZGxlIGl0LCBvciB3ZSB0aGluayBzb21ldGhpbmcgY2FuIGhhcHBlbiwgYnV0IGl0IGlzCgkgIHZlcnkgdmVyeSB1bmxpa2VseSB0aGF0IGl0IHdpbGwgZXZlciBoYXBwZW4sIGluIHdoaWNoIGNhc2Ugd2Ugc2hvdWxkCgkgIGhhbmRsZSBpdCBsaWtlIGFueSBvdGhlciBlcnJvciBpbnN0ZWFkIG9mIGFzc2VydGluZy4KCSAgZ19hc3NlcnQoKSBpcyBiZXN0IGxlZnQgZm9yIGNvbmRpdGlvbnMgd2UgaGF2ZSBjb250cm9sIG9mLCBsaWtlIGNoZWNraW5nCgkgIGludGVybmFsIGNvbnNpc3RlbmN5IG9mIG91ciBjb2RlLCBub3QgY2hlY2tpbmcgcmV0dXJuIHZhbHVlcyBvZiBleHRlcm5hbAoJICBjb2RlLgoJICBGaXhlcyBhIGJ1bmNoIG9mIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIHdpdGggLURHX0RJU0FCTEVfQVNTRVJUOgoJICBnc3RydHBnc21wYXkuYzogSW4gZnVuY3Rpb24gJ2dzdF9ydHBfZ3NtX3BheV9oYW5kbGVfYnVmZmVyJzoKCSAgZ3N0cnRwZ3NtcGF5LmM6MTMwOjE3OiB3YXJuaW5nOiB2YXJpYWJsZSAncnRwZ3NtcGF5JyBzZXQgYnV0IG5vdCB1c2VkCgkgIGdzdHNwZWV4ZW5jLmM6IEluIGZ1bmN0aW9uICdnc3Rfc3BlZXhfZW5jX2VuY29kZSc6CgkgIGdzdHNwZWV4ZW5jLmM6OTA0OjE5OiB3YXJuaW5nOiB2YXJpYWJsZSAnd3JpdHRlbicgc2V0IGJ1dCBub3QgdXNlZAoJICBwdWxzZXNpbmsuYzogSW4gZnVuY3Rpb24gJ2dzdF9wdWxzZXNpbmtfY2hhbmdlX3N0YXRlJzoKCSAgcHVsc2VzaW5rLmM6MjcyNTo5OiB3YXJuaW5nOiB2YXJpYWJsZSAncmVzJyBzZXQgYnV0IG5vdCB1c2VkCgkgIHB1bHNlc3JjLmM6IEluIGZ1bmN0aW9uICdnc3RfcHVsc2VzcmNfY2hhbmdlX3N0YXRlJzoKCSAgcHVsc2VzcmMuYzoxMjUzOjc6IHdhcm5pbmc6IHZhcmlhYmxlICdlJyBzZXQgYnV0IG5vdCB1c2VkCgoyMDExLTA0LTE2IDE4OjA3OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItYWxzYXNyYy1QQ01BLmM6CgkgIGV4YW1wbGVzOiBmaXggc29tZSB3YXJuaW5ncyBpbiBydHAgZXhhbXBsZQoJICBDYXVzZWQgYnkgLURHX0RJU0FCTEVfQVNTRVJUCgoyMDExLTA0LTE2IDE3OjU3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2xldmVsL2xldmVsLWV4YW1wbGUuYzoKCSAgZXhhbXBsZXM6IGRvbid0IHB1dCBjb2RlIHdpdGggc2lkZS1lZmZlY3RzIGludG8gZ19hc3NlcnQoKQoJICBPdGhlcndpc2UgdGhpbmdzIHdvbid0IHdvcmsgdG9vIHdlbGwgd2hlbiBjb21waWxpbmcgd2l0aAoJICAtREdfRElTQUJMRV9BU1NFUlQgKGFzIHdlIGRvIGZvciBwcmUtcmVsZWFzZXMgYW5kIHJlbGVhc2VzKS4KCjIwMTEtMDQtMTYgMTY6NTE6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHloLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgZGVpbnRlcmxhY2UsIG1hdHJvc2thOiBmaXggdHdvIHZhcmlhYmxlLW1heS1iZS11c2VkLXVuaW5pdGlhbGl6ZWQgY29tcGlsZXIgd2FybmluZ3MKCSAgV2UgdXNlIC1ER19ESVNBQkxFX0FTU0VSVCBmb3IgdGhlIHByZS1yZWxlYXNlcywgd2hpY2ggbWFrZXMgdGhlc2UKCSAgd2FybmluZ3MgcG9wIHVwIGluIGNhc2VzIHRoYXQgd2VyZSBwcmV2aW91c2x5IGNvdmVyZWQgYnkgZ19hc3NlcnRfbm90X3JlYWNoZWQoKQoJICBhbmQgdGhlIGxpa2U6CgkgIHR2dGltZS9ncmVlZHloLmM6ODAxOjE0OiB3YXJuaW5nOiAnc2NhbmxpbmUnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbgoJICBtYXRyb3NrYS1tdXguYzo1MDE6MTk6IHdhcm5pbmc6ICdjb250ZXh0JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KCjIwMTEtMDQtMTYgMTQ6NDU6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOgoJICBhcGVkZW11eDogUG9ydCB0byAwLjExCgoyMDExLTA0LTE2IDEzOjMzOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IGZpeCB1bnVzZWQtYnV0LXNldC12YXJpYWJsZSB3YXJuaW5ncyB3aXRoIGdjYy00LjYKCjIwMTEtMDQtMTYgMTM6MjM6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vY2Fpcm9fb3ZlcmxheS5jOgoJICBleGFtcGxlczogZml4ICdjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uJyB3YXJuaW5nIGluIGNhaXJvIGV4YW1wbGUKCjIwMTEtMDQtMTUgMTU6NDc6MjQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogQWRkcmVzcyB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZQoJICBUaGUgdjRsMm9iamVjdCBmb3JtYXRzIGxpc3Qgd2FzIGJlaW5nIG9idGFpbmVkIGludG8gYSBsb2NhbCB2YXJpYWJsZSBhbmQKCSAgdGhlbiBzdGlsbCB1c2VkIGZyb20gdGhlIGNvbnRleHQuIE1ha2UgdXNlIG9mIHRoZSBsb2NhbCB2YXJpYWJsZS4KCjIwMTEtMDQtMTUgMTU6MTc6MzQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3M0L29zczQtbWl4ZXItc2xpZGVyLmM6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXItc3dpdGNoLmM6CgkqIHN5cy9vc3M0L29zczQtcHJvcGVydHktcHJvYmUuYzoKCSogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgb3NzNDogQWRkcmVzcyB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZXMKCSAgR0NDIDQuNi54IGNvbXBsYWlucyBhYm91dCBzdWNoIHZhcmlhYmxlIHVzYWdlLiBVbnVzZWQgYnV0IHNldCB2YXJpYWJsZXMKCSAgd2VyZSByZW1vdmVkIGV4Y2VwdCB0aGF0IGdzdF9vc3M0X21peGVyX3NsaWRlcl9zZXRfbXV0ZSAoKSBub3cgcmV0dXJucwoJICB0aGUgdmFsdWUgZnJvbSB0aGUgY2FsbCB0byBnc3Rfb3NzNF9taXhlcl9zZXRfY29udHJvbF92YWwgKCkuCgoyMDExLTA0LTE1IDE1OjE0OjEzICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGhkdjEzOTRzcmMuYzoKCSAganBlZ2VuYzogcHVsc2VzaW5rOiByYXcxMzk0OiBBZGRyZXNzIHVudXNlZCBidXQgc2V0IHZhcmlhYmxlcwoJICBHQ0MgNC42Lnggc3BpdHMgd2FybmluZ3MgYWJvdXQgc3VjaCB1c2FnZSBvZiB2YXJpYWJsZXMuIFRoZSB2YXJpYWJsZXMgaW4KCSAgcmF3MTM5NCB3ZXJlIG1hcmtlZCB3aXRoIEdfR05VQ19VTlVTRUQgYXMgdGhpcyBzZWVtZWQgb21yZSBhcHByb3ByaWF0ZS4KCSAgVGhlIG90aGVycyB3ZXJlIHJlbW92ZWQuCgoyMDExLTA0LTE1IDE1OjEyOjQ0ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICB5NG1lbmNvZGU6IHNoYXBld2lwZTogQWRkcmVzcyB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZXMKCSAgR0NDIDQuNi54IGNvbXBsYWlucyBhYm91dCBzdWNoIHVzYWdlLgoKMjAxMS0wNC0xNSAxNToxMTozNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxhY2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGV2ZWwvbGV2ZWwtZXhhbXBsZS5jOgoJKiB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOgoJKiB0ZXN0cy9pY2xlcy94aW1hZ2VzcmMtdGVzdC5jOgoJICB0ZXN0czogQWRkcmVzcyB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZXMKCSAgR0NDIDQuNi54IHNwaXRzIHdhcm5pbmdzIGFib3V0IHN1Y2ggdXNhZ2Ugb2YgdmFyaWFibGVzLgoKMjAxMS0wNC0xNSAxNTozNjo0MSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMub3JjOgoJICB2aWRlb21peGVyOiBGaXggYXJnYi9yZ2JhIG92ZXJsYXkgb3JjIGNvZGUKCSAgUmVtb3ZlIHNvbWUgcmVkdW5kYW50IG9wZXJhdGlvbnMgKGNvbnZ1YncpIGFuZCB1c2UgdGhlIGNvcnJlY3QgdmFyaWFibGUsCgkgIHQyLCBpbiB0aGUgb3JjX292ZXJsYXlfYmdyYSBmdW5jdGlvbi4KCjIwMTEtMDQtMTUgMTU6MzM6MzUgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkqIGdzdC92aWRlb21peGVyL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJICB2aWRlb21peGVyOiBhZGRyZXNzIHVudXNlZCBidXQgc2V0IHZhcmlhYmxlcwoJICBHQ0MgNC42Lnggc3BpdHMgd2FybmluZ3MgYWJvdXQgdmFyaWFibGVzIHRoYXQgYXJlIHNldCBidXQgdW51c2VkLiBTdWNoCgkgIHZhcmlhYmxlcyBoYXZlIGJlZW4gcmVtb3ZlZCBpbiBibGVuZCwgY29sbGVjdHBhZHMyIGFuZCB2aWRlb21peGVyMi4KCjIwMTEtMDQtMTUgMTQ6NTc6MjAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWNlbHBkZXBheS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHAsIHJ0cG1hbmFnZXI6IEFkZHJlc3MgdW51c2VkIGJ1dCBzZXQgdmFyaWFibGVzCgkgIEdDQyA0LjYueCBzcGl0cyB3YXJuaW5ncyBhYm91dCB2YXJpYWJsZXMgdGhhdCBhcmUgdW51c2VkIGJ1dCBzZXQuIFN1Y2gKCSAgdmFyaWFibGVzIGhhdmUgYmVlbiByZW1vdmVkIHdoZXJlIHRyaXZpYWwgYnV0IHdpdGggY29tbWVudHMgbGVmdCBiZWhpbmQKCSAgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgaW4gc29tZSBjYXNlcy4KCSAgZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRjcCAoKSB3YXMgY2hhbmdlZCBpbiBjb21taXQgNDkwMTEzZDQKCSAgdG8gYWx3YXlzIHJldHVybiBHU1RfRkxPV19PSyBpbnN0ZWFkIG9mIHRoZSByZXR1cm4gdmFsdWUgb2YKCSAgcnRwX3Nlc3Npb25fcHJvY2Vzc19ydGNwICgpLCBzbyB3ZSdsbCBrZWVwIGl0IHRoYXQgd2F5LgoKMjAxMS0wNC0xNSAxMToyOTozMCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eC5jOgoJICBxdWlja3RpbWU6IFJlbW92ZSB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZXMKCSAgR0NDIDQuNi54IHNwaXRzIHdhcm5pbmdzIGFib3V0IHN1Y2ggdmFyaWFibGUgdXNhZ2UuIE5vdGUgdGhhdCBzb21lCgkgIGNhbGN1bGF0aW9ucyBhcmUgbGVmdCBhcyBjb21tZW50cyBmb3IgaW5mb3JtYXRpdmUgcHVycG9zZXMuCgoyMDExLTA0LTE1IDExOjIzOjM4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmM6CgkgIG1hdHJvc2thOiBSZW1vdmUgdW51c2VkIGJ1dCBzZXQgdmFyaWFibGVzCgkgIEdDQyA0LjYueCBzcGl0cyB3YXJuaW5ncyBhYm91dCBzdWNoIHZhcmlhYmxlIHVzYWdlLgoKMjAxMS0wNC0xNSAxMToxOToyNiArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBSZW1vdmUgdW51c2VkIGJ1dCBzZXQgZHVyYXRpb24gdmFyaWFibGUKCSAgR0NDIDQuNi54IHNwaXRzIHdhcm5pbmdzIGFib3V0IHN1Y2ggdmFyaWFibGUgdXNhZ2UuCgoyMDExLTA0LTE1IDExOjE4OjE5ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZseGRlbXV4OiBSZW1vdmUgdW51c2VkIGJ1dCBzZXQga2V5ZnJhbWUgdmFyaWFibGVzCgkgIFRoZSBGSVhNRXMgYWJvdXQgdGhlIGtleWZyYW1lIGZsYWcgbmV2ZXIgYmVpbmcgdXNlZCBhcmUgbGVmdCBmb3IgbGF0ZXIKCSAgZml4aW5nLCBhdCB3aGljaCBwb2ludCB0aGUga2V5ZnJhbWUgdmFyaWFibGVzIGNvdWxkIGJlIGFkZGVkIGJhY2suCgoyMDExLTA0LTE1IDExOjE2OjQyICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkgIGVkZ2V0djogUmVtb3ZlIHVudXNlZCBidXQgc2V0IGhlaWdodCB2YXJpYWJsZQoJICBHQ0MgNC42Lnggc3BpdHMgd2FybmluZ3MgYWJvdXQgc3VjaCB2YXJpYWJsZXMuCgoyMDExLTA0LTE1IDE4OjUxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogdXBkYXRlIGZvciBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCkgQVBJIGNoYW5nZQoKMjAxMS0wMi0wMSAxNTo1NzowMSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBVc2UgZXhpc3RpbmcgZnVuY3Rpb25zIHRvIHBhcnNlIFJUQ1AgRkIgcGFja2V0cwoJICBVc2UgZXhpc3RpbmcgZnVuY3Rpb25zIHRvIGdldCB0aGUgRkNJIGZyb20gRkIgcGFja2V0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjU1MwoKMjAxMS0wMi0wMSAxNjoyMzo1MiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLW1hcnNoYWwubGlzdDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBtYXJzaGFsIEdzdEJ1ZmZlciBhcyBhIE1pbmlPYmplY3QgaW5zdGVhZCBvZiBhIHBvaW50ZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjU1MwoKMjAxMS0wNC0xNCAyMzoyNDo1NiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogQmV0dGVyIGNhbGN1bGF0aW9uIG9mIGZyYW1lcmF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3ODMzCgoyMDExLTA0LTEzIDEyOjM3OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGRlZmF1bHQgdG8gZHRzLW1ldGhvZD1yZW9yZGVyIGFuZCBwcmVzZW50YXRpb24tdGltZT10cnVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY2OTkKCjIwMTEtMDQtMTUgMTI6NDc6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgdGVzdHM6IHF0bXV4OiB0ZXN0IHZhcmlvdXMgZHRzLW1ldGhvZHMKCjIwMTEtMDQtMTUgMTI6MzQ6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZml4IGNvcm5lciBjYXNlIGJ1ZmZlciBoYW5kbGluZyBmb3IgcmVvcmRlciBtZXRob2QKCjIwMTEtMDQtMTQgMTM6NDc6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogRG9uJ3QgbGVhayB0aGUgU0VFS0lORyBxdWVyeQoKMjAxMS0wNC0xNCAxMzo0MzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bW9vdnJlY292ZXIuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG1vb3ZyZWNvdmVyLmg6CgkgIHF0bW9vdnJlY292ZXI6IERvbid0IGxlYWsgdGhlIHN0YXRpYyByZWN1cnNpdmUgbXV0ZXgKCjIwMTEtMDQtMTQgMTM6Mzc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnJhZGlvLmM6CgkgIHY0bDJyYWRpbzogRnJlZSB2aWRlb2RldiBzdHJpbmcgYmVmb3JlIHJlcGxhY2luZyBpdAoKMjAxMS0wNC0xNCAxMzoyNDoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSAgbWF0cm9za2FwYXJzZTogQWxsb3cgd2VibSBhbmQgbWF0cm9za2EgY2FwcyBhbmQgZG9uJ3QgbGVhayBjYXBzCgoyMDExLTA0LTE0IDA3OjM1OjI5ICswMTAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBBZGQgcGFyc2VyIHBsdWdpbgoKMjAxMS0wMy0yNCAxNDozNDoyNCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAZW50cm9weXdhdmUuY29tPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IEFkZCBjb25kaXRpb25hbHMgb24gV0FWRV9GT1JNQVRfRE9MQllfQUMzX1NQRElGCgoyMDExLTA0LTExIDIwOjA5OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGNhcHNkZWJ1Zy5jOgoJICBjYXBzZGVidWc6IGZpeCB1bnVzZWQtYnV0LXNldC12YXJpYWJsZSB3YXJuaW5ncyB3aXRoIGdjYyA0LjYKCjIwMTEtMDQtMTEgMjA6MDU6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZml4IHVudXNlZC1idXQtc2V0LXZhcmlhYmxlIHdhcm5pbmcgd2l0aCBnY2MgNC42CgkgIE1vc3QgbGlrZWx5IGEgbGVmdG92ZXIgZnJvbSB3aGVuIHRoZSBpbmRleCBwYXJzaW5nIGNvZGUgd2FzIHJld3JpdHRlbi4KCjIwMTEtMDQtMTEgMTk6NTQ6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJICBhYzNwYXJzZTogZml4IHVudXNlZC1idXQtc2V0LXZhcmlhYmxlIHdhcm5pbmcgd2l0aCBnY2MgNC42CgoyMDExLTA0LTExIDE5OjUwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgdmlkZW9iYWxhbmNlOiBmaXggaGFuZGxpbmcgb2YgWVVWIGltYWdlcyB3aXRoICdvZGQnIHdpZHRocwoJICBGaXhlcyB1bnVzZWQtYnV0LXNldC12YXJpYWJsZSB3YXJuaW5ncyB3aXRoIGdjYyA0LjYuCgoyMDExLTA0LTExIDE5OjQ5OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgdmlkZW9mbGlwOiBmaXggdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgd2FybmluZ3Mgd2l0aCBnY2MgNC42CgoyMDExLTA0LTEzIDE4OjExOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJICBhdWRpb3dzaW5je2JhbmQsbGltaXR9OiBGaXggY2hlY2sgZm9yIGRpdmlzb24gYnkgemVybwoKMjAxMS0wNC0xMyAxODowMTowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJICBhdWRpb3dzaW5jYmFuZDogRml4IHJhbmdlIG9mIGtlcm5lbCBlbGVtZW50cyAobGltIC0+IGxpbS0xKQoKMjAxMS0wNC0xMyAxODowMDo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSAgYXVkaW93c2luY2xpbWl0OiBBZGQgc29tZSBtb3JlIGJyYWNlcyB0byBtYWtlIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUKCjIwMTEtMDQtMTEgMTg6NDA6MzAgLTA1MDAgIEpvcmRpIEJ1cmd1ZXQtQ2FzdGVsbCA8am9yZGkuYnVyZ3VldC1jYXN0ZWxsQGxpZ28ub3JnPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2xpbWl0LmM6CgkgIGF1ZGlvd3NpbmNsaW1pdDogRml4IHJhbmdlIG9mIGtlcm5lbCBlbGVtZW50cyAobGltIC0+IGxpbS0xKSBpbiBoaWdoL2xvdy1wYXNzIGZpbHRlcnMKCjIwMTEtMDQtMTMgMTc6NDk6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzoKCSAgYXVkaW93c2luY2JhbmQ6IEFkZCBuZXcgd2luZG93aW5nIGZ1bmN0aW9uczogZ2F1c3NpYW4sIGNvcyBhbmQgaGFubgoKMjAxMS0wNC0xMSAxODo0MTo0MyAtMDUwMCAgSm9yZGkgQnVyZ3VldC1DYXN0ZWxsIDxqb3JkaS5idXJndWV0LWNhc3RlbGxAbGlnby5vcmc+CgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSAgYXVkaW93c2luY2xpbWltdDogQWRkIG5ldyB3aW5kb3dzIHRvIGhpZ2gvbG93LXBhc3MgZmlsdGVyczogZ2F1c3NpYW4sIGNvc2luZSwgaGFubgoKMjAxMS0wNC0xMyAxNjo0NzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogc2V0IHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0gb24gaDI2NCBjYXBzIGlmIHRoZXJlJ3Mgbm8gY29kZWMgZGF0YQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2NjYyCgoyMDExLTA0LTEzIDE2OjM3OjA3ICswMTAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOgoJICBxdG11eDogcmVzdHJpY3QgaDI2NCBzb21lIG1vcmUgdG8gb25seSBhY2NlcHQgQVUtYWxpZ25lZCBBVkMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjY2MgoKMjAxMS0wNC0xMyAxNzoxMToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgIG1wZWdhdWRpb3BhcnNlOiBUaGUgVkJSSSBoZWFkZXIgaXMgYWx3YXlzIGF0IG9mZnNldCAweDIwLCBpbmRlcGVuZGVudCBvZiBNUEVHIHZlcnNpb24KCSAgQWxzbyBjbGVhbiB1cCBhZHZhbmNpbmcgb2YgdGhlIGRhdGEgcG9pbnRlciBhIGJpdC4KCSAgRml4ZXMgYnVnICM2NDc2NTkuCgoyMDExLTA0LTEzIDE1OjE4OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgcXRtdXg6IGFkZCB2YXJpYW50LWxlc3MgdmlkZW8vcXVpY2t0aW1lIHRvIHNvdXJjZSBwYWQgdGVtcGxhdGUgY2FwcwoJICBUaGlzIGlzIG5lZWRlZCBmb3IgYXV0b21hdGljIHRyYW5zY29kaW5nIHVzaW5nIGVuY29kZWJpbi4gT3VyIHR5cGVmaW5kZXIKCSAgZG9lcyBub3QgYWx3YXlzIGFkZCBhIHZhcmlhbnQgdG8gdGhlIGZvdW5kIGNhcHMsIGFuZCBlbmNvZGViaW4gbmVlZHMKCSAgYW4gKmV4YWN0KiBtYXRjaCB0byB0aGUgY2FwcyBvbiB0aGUgc291cmNlIHBhZCB0ZW1wbGF0ZSwgc28gd2UgbmVlZAoJICB0byBhZGQgdGhlIHZhcmlhbnQtbGVzcyB2aWRlby9xdWlja3RpbWUgY2FwcyB0byB0aGUgdGVtcGxhdGUgYXMgd2VsbAoJICBmb3IgZW5jb2RlYmluIHRvIGJlIGFibGUgdG8gZmluZCBpdC4gQWRkIHVuaXQgdGVzdCBmb3IgdGhpcyBhcyB3ZWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyODc5CgoyMDExLTA0LTEzIDE2OjE3OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogUHJvcGVybHkgaW50ZXJwcmV0ZSB0aGUgcmVzdWx0IG9mIHN0cmNtcCgpCgoyMDExLTA0LTEzIDE2OjA5OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogRG9uJ3Qgc3RvcmUgaW1hZ2UgdGFncyBpbnNpZGUgdGhlIHZvcmJpc2NvbW1lbnRzIGFuZCB0aGUgZmxhYyBtZXRhZGF0YQoJICBJbnN0ZWFkIG9ubHkgc3RvcmUgdGhlbSBpbnNpZGUgdGhlIGZsYWMgbWV0YWRhdGEuIFRoZXJlJ3MKCSAgbm8gcG9pbnQgaW4gc3RvcmluZyB0aGVtIHR3aWNlIGFuZCB0aGUgZmxhYyBtZXRhZGF0YSBpcwoJICBzdGlsbCB0aGUgb2ZmaWNpYWwgd2F5IHRvIHN0b3JlIGltYWdlIHRhZ3MgaW5zaWRlIGZsYWMuCgoyMDExLTA0LTEzIDEyOjM4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICB0ZXN0czogaWdub3JlIG5ldyBxdG11eC1yZWxhdGVkIHRlc3QgYmluYXJpZXMKCjIwMTEtMDQtMTMgMTE6MjU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBnc3QvcXVpY2t0aW1lL01ha2VmaWxlLmFtOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4cGx1Z2luLmM6CgkqIGdzdC9xdWlja3RpbWUvcXVpY2t0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBxdWlja3RpbWU6IG1vdmUgcXRtdXggcGx1Z2luIGZyb20gLWJhZCB0byAtZ29vZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2Njk5CgoyMDExLTA0LTA0IDEyOjIxOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IG1vcmUgaGVscGZ1bCBkZWJ1ZyBlcnJvciBtZXNzYWdlIHdoZW4gbm8gbmVlZGVkIGR1cmF0aW9uIG9uIGlucHV0IGJ1ZmZlcnMKCSAgRml4ZXMgIzY0NjI1Ni4KCjIwMTEtMDMtMjEgMTA6NTY6NTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IEFkZGluZyBHc3RUYWdYbXBXcml0ZXIgaW50ZXJmYWNlCgkgIEFkZHMgR3N0VGFnWG1wV3JpdGVyIGludGVyZmFjZSBzdXBwb3J0IHRvIHF0bXV4CgoyMDExLTAzLTIyIDIwOjUzOjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHVzZSBydW5uaW5nIHRpbWUgZm9yIHN5bmNocm9uaXphdGlvbgoJICBTZWUgYWxzbyAjNDMyNjEyLgoKMjAxMS0wMy0xMCAxNjowMzo1OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBwcm92aWRlIGZvciBQVFMgbWV0YWRhdGEgd2hlbiBzbyBjb25maWd1cmVkCgkgIC4uLiBhbmQgbm90IG9ubHkgd2hlbiBzb3J0LW9mIGZlZWxpbmcgbGlrZSBpdC4KCSAgSW4gYW55IGNhc2UsIGlmIGl0IHR1cm5zIG91dCBhbGwgcmVhbGx5IGlzIGluIG9yZGVyLAoJICBhbmQgcHJlc3VtYWJseSBEVFMgPT0gUFRTLCB0aGVuIG5vIGN0dHMgd2lsbCBiZSBwcm9kdWNlZCBhbnl3YXkuCgoyMDExLTAzLTEwIDE2OjAyOjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGFsc28gdHJhY2sgb3JpZ2luYWwgUFRTIGJ1ZmZlciB0aW1lc3RhbXAgaW4gcmVvcmRlciBkdHMtbWV0aG9kCgoyMDExLTAyLTIxIDEyOjE0OjU5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgUmV2ZXJ0ICJDaGVjayB0aGF0IGNvbGxlY3RwYWRzIGV4aXN0cyBiZWZvcmUgcmVtb3ZpbmcgcGFkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDZkODc0MDQ3NmNjZDNhMzQ5OGRjNGYxOGMxOTczMzY0MzgyNWM3YjguCgkgIERlcGVuZHMgb24gYSBjb3JlIGNvbW1pdCB0aGF0IHdhcyByZXZlcnRlZAoKMjAxMS0wMi0yMCAyMzo1NzoxOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIENoZWNrIHRoYXQgY29sbGVjdHBhZHMgZXhpc3RzIGJlZm9yZSByZW1vdmluZyBwYWQKCSAgVGhlIGNvcmUgbm93IGNhbGxzIHJlbGVhc2UgcGFkIGZyb20gZmluYWxpemUsIGF0IHdoaWNoIHBvaW50CgkgIHRoZSBjb2xsZWN0cGFkcyBtaWdodCBoYXZlIGFscmVhZHkgYmVlbiBmcmVlZC4KCjIwMTEtMDEtMTMgMTE6Mjg6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSAgdGVzdDogcXRtdXg6IFRlc3RzIHF0bXV4IHJldXNlCgkgIEZvcmNlcyB0aGUgdXNlIG9mIHF0bXV4IGFmdGVyIGl0IGhhcyBiZWVuIHB1dCB0byBQTEFZSU5HIGFuZCBiYWNrCgkgIHRvIE5VTEwgb25jZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MzM4CgoyMDExLTAxLTEzIDE1OjI3OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHNldCBzcmMgcGFkcyB3aGVuIHN0YXJ0aW5nIGZpbGUKCSAgLi4uIHJhdGhlciB0aGFuIGF0IF9pbml0IHRpbWUsIHNvIHRoZXkgYXJlIGFsc28gYXZhaWxhYmxlIGZvbGxvd2luZyBhCgkgIHBhZCAoZGUpYWN0aXZhdGlvbiBjeWNsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTMzOAoKMjAxMS0wMS0wMyAxNzoyNDoyMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgcXRtdXg6IGFkanVzdCBuYXN0eSBjYXNlIHRpbWVzdGFtcCB0cmFja2luZwoJICBUaGF0IGlzLCBhbGwgc29ydHMgb2YgcHJvYmxlbXMgYXJpc2Ugd2l0aCByZS1vcmRlcmVkIGlucHV0IHRpbWVzdGFtcHMgdGhhdAoJICB0ZW5kIHRvIGRlZnkgYXV0b21hZ2ljIGhhbmRsaW5nIGZvciBldmVyeSBjYXNlLCBzbyBhbGxvdyBmb3IgYSBmZXcgdmFyaWF0aW9ucwoJICB0aGF0IGNhbiBiZSB0cmllZCBkZXBlbmRpbmcgb24gY2lyY3Vtc3RhbmNlcy4KCSAgQWxzbyB0cnkgdG8gZG9jdW1lbnQgYWNjb3JkaW5nbHkuCgkgIEFsc28gZml4ZXMgIzYzODI4OC4KCjIwMTAtMTItMzAgMjE6NDg6NDEgKzAyMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAbm9raWEuY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZ2V0IHJpZCBvZiB0aW1lc3RhbXAgb3ZlcnByb3RlY3RpdmVuZXNzCgkgIFNpZ25lZC1vZmYtYnk6IEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAbm9raWEuY29tPgoKMjAxMS0wMS0wMyAxNjo1Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9hdG9tc3JlY292ZXJ5LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHNpbXBsaWZ5IGFuZCBmaXggcHRzX29mZnNldCBzdG9yaW5nCgkgIEluIHBhcnRpY3VsYXIsIG9ubHkgd3JpdGUgYSBjdHRzIGF0b20gaWYgYW5kIG9ubHkgaWYgZXZlciBhIG5vbi16ZXJvIG9mZnNldC4KCjIwMTEtMDEtMDMgMTA6NDM6MTUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogYWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uCgoyMDEwLTEyLTAzIDE1OjIzOjAwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgcXRtdXg6IHJlbW92ZSBsYXJnZS1maWxlIHByb3BlcnR5CgkgIFJhdGhlciwgYXV0by1kZXRlcm1pbmUgaWYgNjQtYml0cyBmaWVsZHMgYXJlIG5lZWRlZCBmb3IgYSB2YWxpZCByZXN1bHQsIGFuZAoJICBzdGljayB0byBwbGFpbiAzMi1iaXRzIGlmIG5vdCBuZWVkZWQuCgkgIEFQSTogR3N0UVRNdXg6bGFyZ2UtZmlsZSAocmVtb3ZlZCkKCjIwMTAtMTItMTkgMTI6NTM6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogRnJlZSBBdG9tSW5mbyBzdHJ1Y3RzCgoyMDEwLTEyLTE5IDEyOjUwOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IEZyZWUgdGFnIHN0cmluZyBhZnRlciB1c2UKCjIwMTAtMTItMTkgMTI6MTI6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3RhZ3NjaGVja2luZy5jOgoJICB0YWdzY2hlY2tpbmc6IEZpeCBzb21lIG1vcmUgbWVtb3J5IGxlYWtzCgoyMDEwLTEyLTE3IDE5OjQxOjI1ICswMjAwICBMYXNzZSBMYXVra2FuZW4gPGxhc3NlLmxhdWtrYW5lbkBkaWdpYS5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBhbGxvdyB6ZXJvIGR1cmF0aW9uIHRyYWNrcwoKMjAxMC0xMi0wMyAxODowOTo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBhZGQgZG9jdW1lbnRhdGlvbgoKMjAxMC0xMi0wMSAxMDo0NTo0OSArMDEwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBoYW5kbGUgbXN2YyBmdHJ1bmNhdGUgaW5jb21wYXRpYmlsaXR5CgkgIEZpeGVzICM2MzYxODUuCgoyMDEwLTExLTI3IDE2OjA3OjE5IC0wNjAwICBBbGVqYW5kcm8gR29uemFsZXogPGFnb256YWxlekBkZXh0cmF0ZWNoLmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGdzdF9xdG11eF9jaGVja19kaWZmZXJlbmNlIHZlcmlmeSBiZWZvcmUgc3VidHJhY3QKCSAgQXZvaWQgbmVnYXRpdmUgb3ZlcmZsb3cgYnkgY2hlY2tpbmcgdGhlIG9yZGVyIG9mIG9wZXJhbmRzCgkgIG9uIHN1YnRyYWN0aW9uIG9mIHVuc2lnbmVkIGludGVnZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1ODc4CgoyMDEwLTExLTE5IDE3OjU1OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHJlbW92ZSByZW1uYW50IG9mIG9ic29sZXRlIHByb3BlcnR5CgoyMDEwLTExLTE5IDE1OjE4OjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F0bXV4LmM6CgkgIHRlc3RzOiBxdG11eDogYWxzbyB1bml0IHRlc3QgZnJhZ21lbnRlZCBmaWxlIGNhc2VzCgoyMDEwLTA3LTMwIDEyOjQ4OjI5ICswMjAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICBxdG11eDogYWxsb3cgc3BlY2lmeWluZyB0cmFrIHRpbWVzY2FsZQoJICBUaGlzIGlzIG1haW5seSBiZWNhdXNlIFNtb290aHN0cmVhbWluZyBjbGllbnQgYXJlIGJyb2tlbiBhbmQgZG9uJ3QKCSAgdGFrZSB0aGUgVGltZVNjYWxlIHByb3BlcnR5IGludG8gYWNjb3VudC4KCjIwMTAtMTEtMTkgMTc6NDE6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGluY2x1ZGUgc2R0cCBhdG9tcyBmb3IgaXNtdiBmcmFnbWVudGVkIGZpbGVzCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKMjAxMC0xMS0xOSAxOToxNzo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBlbmFibGUgZGVmYXVsdCBmcmFnbWVudGVkIGZpbGUgZm9yIGlzbWxtdXgKCjIwMTAtMDktMDIgMTM6NTg6MDUgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2Z0eXBjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuaDoKCSAgcXRtdXg6IGFkZCBpc21sbXV4LCBmb3IgZnJhZ21lbnRlZCBpc21sIG1ham9yIGJyYW5kCgoyMDEwLTExLTE5IDE0OjQ0OjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGZpbmFsaXplIHNpbmtwYWRzIGxpc3QKCjIwMTAtMDctMjIgMTk6NDA6MDcgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogYWRkIG1vb3YgaW4gc3RyZWFtaGVhZGVyCgoyMDEwLTA4LTA2IDEzOjI2OjI3ICswMjAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICBxdG11eDogYWRkIHN0cmVhbWFibGUgcHJvcGVydHkgdG8gYXZvaWQgYnVpbGRpbmcgZnJhZ21lbnRlZCBtZnJhIGluZGV4CgoyMDEwLTExLTE4IDE2OjQ4OjA2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgcXRtdXg6IGFkZCBtZnJhIHRvIGZyYWdtZW50ZWQgZmlsZQoJICBCYXNlZCBvbiBwYXRjaCBieSBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCjIwMTAtMTEtMTUgMTU6MTc6NTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICBxdG11eDogb3B0aW9uYWxseSBjcmVhdGUgZnJhZ21lbnRlZCBmaWxlCgkgIEluIHRoaXMgbW9kZSwgYW4gaW5pdGlhbCBlbXB0eSBtb292IChjb250YWluaW5nIG9ubHkgc3RyZWFtIG1ldGFkYXRhKSBpcyB3cml0dGVuLAoJICBmb2xsb3dlZCBieSBmcmFnbWVudHMgY29udGFpbmluZyBhY3R1YWwgZGF0YSAoYWxvbmcgd2l0aCByZXF1aXJlZCBtZXRhZGF0YSkuCgkgIE5ldyBmcmFnbWVudHMgYXJlIHN0YXJ0ZWQgZWl0aGVyIGF0IGtleWZyYW1lIChpZiBzdWNoIGFyZSBzcGFyc2UpIG9yIHdoZW4KCSAgcHJvcGVydHkgY29uZmlndXJlZCBkdXJhdGlvbiBleGNlZWRlZC4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgTWFyYy1BbmRyw6kgTHVyZWF1IDxtbHVyZWF1QGZsdW1vdGlvbi5jb20+CgkgIEZpeGVzICM2MzI5MTEuCgoyMDEwLTExLTE1IDE1OjEyOjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgcXRtdXg6IHVzZSBoZWxwZXIgdG8gc2V0IGF0b20gZmxhZ3MgZnJvbSBnaXZlbiB1aW50CgoyMDEwLTExLTA5IDE2OjQ5OjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHJlZmFjdG9yIGNvbmZpZ3VyaW5nIGFuZCBzZW5kaW5nIG9mIG1vb3YKCSAgQmFzZWQgb24gcGF0Y2ggYnkgTWFyYy1BbmRyw6kgTHVyZWF1IDxtbHVyZWF1QGZsdW1vdGlvbi5jb20+CgoyMDEwLTExLTA5IDE1OjU0OjQ0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHJlZmFjdG9yIGV4dHJhIHRvcC1sZXZlbCBhdG9tIGhhbmRsaW5nCgkgIEFsc28gY2hlY2sgYSBiaXQgbW9yZSBmb3IgcG9zc2libGUgZXJyb3JzLCBhbmQgZnJlZSBwcm9wZXIgaXRlbXMgaW4gc3VjaCBjYXNlLgoKMjAxMC0xMS0wOSAxNTowMToxNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiByZWZhY3RvciBzbGlnaHRseSB1c2luZyBidWZmZXIgaGVscGVyCgoyMDEwLTExLTA1IDEzOjQ4OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGZpeCBtaXNpbmZvcm1pbmcgY29tbWVudAoKMjAxMC0xMS0wNSAxMjowODoxNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZGVsZWdhdGUgbXZleCBoYW5kbGluZyB0byBhdG9tcwoJICAuLi4gd2hpY2gga2VlcHMgcXRtdXggc2ltcGxlci4KCjIwMDktMDktMjggMTY6MTE6MzUgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGFkZCBtdmV4L3RyZXggaW4gaGVhZGVyIGlmIGZyYWdtZW50ZWQKCSAgT25lICJ0cmV4IiBpcyBhZGRlZCBwZXIgInRyYWsiLiBXZSBkb24ndCBzdXBwb3J0IGRlZmF1bHQgdmFsdWVzLAoJICBidXQgdGhlICJ0cmV4IiBib3ggaXMgbWFuZGF0b3J5LgoKMjAwOS0wOS0yOCAxMzowMTozMCArMDIwMCAgTWFyYy1BbmRyw6kgTHVyZWF1IDxtbHVyZWF1QGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJICBxdG11eDogYWRkIGEgY291cGxlIG9mIGZvdXJjYyBmb3IgZnJhZ21lbnRlZCBtcDQKCjIwMTAtMTEtMDUgMTE6MDg6MDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogYXZvaWQgcmVtb3ZpbmcgdGVtcCBmaWxlIHdoZW4gZXJyb3Igb2NjdXJyZWQKCjIwMDktMDktMzAgMTc6MTY6MzAgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogdHJ1bmNhdGUgYnVmZmVyIGZpbGUgYWZ0ZXIgZWFjaCBzZW5kCgoyMDA5LTA5LTI4IDE2OjUzOjUxICswMjAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHJlbW92ZSB0ZW1wIGZpbGUgd2hlbiByZXNldC9maW5hbGl6ZQoKMjAxMC0xMC0xOSAxMzo0MzoxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG1vb3ZyZWNvdmVyLmM6CgkgIHZhcmlvdXMgKGdzdCk6IGFkZCBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZmxhZ3MKCSAgQ2Fub25pY2FsaXplIHByb3BlcnR5IG5hbWVzIGFzIG5lZWRlZC4KCjIwMTAtMTAtMTMgMTc6NDc6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogcHJldmVudCBpbmZpbml0ZSBsb29wIHdoZW4gYWRqdXN0aW5nIGZyYW1lcmF0ZQoJICBGaXhlcyAjNjMyMDcwLgoKMjAxMC0xMC0wMyAyMzo0NTo0NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBBZGQgR19QQVJBTV9TVEFUSUNfU1RSSU5HUwoJICBBZGQgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyB0byBxdG11eCBwcm9wZXJ0aWVzCgoyMDEwLTA5LTE1IDE3OjU0OjQ5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgcXRtdXg6IEZvbGxvdyB4bXAgc2VyaWFsaXphdGlvbiBndWlkZWxpbmVzIGNsb3NlcgoJICBxdCBhbmQgaXNvbSB2YXJpYW50cyBoYXZlIGRpZmZlcmVudCB3YXlzIG9mIHNlcmlhbGl6aW5nCgkgIHhtcCwgZm9sbG93IHRoZXNlIGd1aWRlbGluZXMuCgkgIFRob3NlIGNhbiBiZSBmb3VuZCBpbiBBZG9iZSdzIHhtcCBkb2NzLgoKMjAxMC0wOC0xNiAxMjozNjoyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBhdXRvZGV0ZWN0IG91dC1vZi1vcmRlciBpbnB1dCB0aW1lc3RhbXBzIGFuZCBkZXRlcm1pbmUgRFRTIGFjY29yZGluZ2x5CgkgIEZhdm91ciB1c2luZyBpbnB1dCBidWZmZXIgdGltZXN0YW1wcyBmb3IgRFRTLCBidXQgZmFsbGJhY2sgdG8gdXNpbmcgYnVmZmVyCgkgIGR1cmF0aW9uIChhY2N1bXVsYXRpb24pIGlmIGlucHV0IHRzIGRldGVjdGVkIG91dC1vZi1vcmRlci4KCSAgRml4ZXMgIzYyNDIxMi4KCjIwMTAtMDctMjggMTY6MTU6NTMgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogdXNlIGNhcHMgYml0cmF0ZSBhdCBsYXN0IGNoYW5jZQoJICBJZiB3ZSBkaWRuJ3QgZ2V0IHRoZSBzdHJlYW0ncyBiaXRyYXRlIGZyb20gb25lIG9mIHRoZSBhdG9tcywKCSAgdHJ5IGdldHRpbmcgaXQgZnJvbSB0aGUgY2FwcyBhcyBhIGxhc3QgcmVzb3J0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1NDk2CgoyMDEwLTA3LTI4IDE2OjEyOjExICswMjAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgcXRtdXg6IGJ0cnQgLSBtYXggYml0cmF0ZSBiZWZvcmUgYXZlcmFnZQoJICBBY2NvcmRpbmcgdG8gaXNvIGJhc2UgbWVkaWEgZmlsZSBmb3JtYXQsIHRoZSBtYXggYml0cmF0ZQoJICBpcyBiZWZvcmUgdGhlIGF2ZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1NDk2CgoyMDEwLTA3LTA2IDE0OjQ4OjA4ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBXcml0ZSAnYnRydCcgYXRvbSBmb3IgSC4yNjQgbWVkaWEgaWYgcG9zc2libGUKCSAgVGhpcyB3cml0ZXMgb3V0IHRoZSBvcHRpb25hbCAnYnRydCcgYXRvbSAoTVBFRzRCaXRyYXRlQm94KSBmb3IgSC4yNjQKCSAgbWVkaWEgaWYgZWl0aGVyIG9yIGJvdGggb2YgYXZlcmFnZSBhbmQgbWF4aW11bSBiaXRyYXRlIGFyZSBhdmFpbGFibGUgZm9yCgkgIHRoZSBzdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM2NzgKCjIwMTAtMDctMDUgMTQ6MDk6NTAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICBxdG11eDogV3JpdGUgYXZnL21heCBiaXRyYXRlIHRvIEVTRFMgaWYgYXZhaWxhYmxlCgkgIFRoaXMgY29sbGVjdHMgdGhlICdiaXRyYXRlJyBhbmQgJ21heGltdW0tYml0cmF0ZScgdGFncyBvbiB0aGUKCSAgY29ycmVzcG9uZGluZyBwYWQgYW5kIHVzZXMgdGhlc2UgdG8gcG9wdWxhdGUgdGhlc2UgZmllbGRzIGluIHRoZSBFU0RTCgkgIHdoZXJlIGFwcGxpY2FibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM2NzgKCjIwMTAtMDctMDIgMTI6NDU6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBEb24ndCB1c2UgYm9ndXMgY29kZWMvZm9ybWF0IHRhZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzM2NQoKMjAxMC0wNi0yNSAyMDoxOToyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBXcml0ZSB1aW50IHRhZ3MgdGhhdCBkb24ndCBoYXZlIGEgY29tcGxlbWVudAoJICBXcml0ZSB1aW50IHRhZ3MgdGhhdCBoYXZlIGNvbXBsZW1lbnRzIChlLmcuIHRyYWNrLW51bWJlci8KCSAgdHJhY2stY291bnQpIGV2ZW4gd2hlbiB3ZSBvbmx5IGhhdmUgb25lIG9mIHRoZW0gYXZhaWxhYmxlCgkgIGFuZCBzZXQgdGhlIG90aGVyIG9uZSB0byAwLgoJICBGaXhlcyAjNjIyNDg0CgoyMDEwLTA2LTIxIDE5OjM5OjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogUmVtb3ZlIHRoZSBwYWQgZnJvbSBvdXIgaW50ZXJuYWwgbGlzdCBiZWZvcmUgY2FsbGluZyBjb2xsZWN0cGFkcwoJICBQcmV2aW91c2x5IHdlIHdvdWxkIGVuZCB1cCB3aXRoIHRoZSBjb2xsZWN0cGFkZGF0YSBzdHJ1Y3R1cmUgYWxyZWFkeSBmcmVlZC4KCSAgVGhpcyB3b3VsZCByZXN1bHQgaW4gYSBib2d1cyBpdGVyYXRpb24gb2YgbXV4LT5zaW5rcGFkcyAoYWxsIHRoZQoJICBHc3RRVFBhZCBiZWluZyBmcmVlZCkgYW5kIGl0IHdvdWxkbid0IGJlIHJlbW92ZWQgZnJvbSB0aGF0IGxpc3QuCgkgIEZpbmFsbHksIGR1ZSB0byBpdCBub3QgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoYXQgbGlzdCwgd2Ugd291bGQgZW5kIHVwCgkgIGNhbGxpbmcgYSBib2d1cyBnc3RfcXRfbXV4X3BhZF9yZXNldCBvbiB0aG9zZSBzdHJ1Y3R1cmVzID0+IFNFR0ZBVUxUCgoyMDEwLTA1LTEyIDE4OjUwOjM0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9xdWlja3RpbWUvZm91cmNjLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOgoJICBxdG11eDogQWRkIFZQOAoKMjAxMC0wNS0xMSAxMzoxNTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvdGFnc2NoZWNraW5nLmM6CgkgIHRlc3RzOiBkb24ndCBmYWlsIHRhZ3NjaGVja2luZyB0ZXN0IGlmIHF0ZGVtdXggaXMgbm90IGF2YWlsYWJsZSBvciB0b28gb2xkCgoyMDEwLTAzLTI3IDA5OjQ2OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhwbHVnaW4uYzoKCSAgcXRtdXg6IHVzZSBHU3RyZWFtZXIgcGFja2FnZSBuYW1lIGFuZCBvcmlnaW4gaW4gdGhlIHBsdWdpbiBpbmZvCgoyMDEwLTAzLTIzIDE3OjM0OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy90YWdzY2hlY2tpbmcuYzoKCSAgdGVzdHM6IHRhZ3NjaGVja2luZzogTmV3IHRhZ3MgdGVzdHMKCSAgQWRkcyBuZXcgdGFncyBjaGVja2luZyB0ZXN0cy4KCjIwMTAtMDMtMjUgMDA6MjA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogaW5pdCBkZWJ1ZyBjYXRlZ29yeSBiZWZvcmUgdXNpbmcgaXQKCjIwMTAtMDMtMjIgMTY6NTY6MDMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgQWRkIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KCSAgYW5kIGZpeCB0aGUgd2FybmluZ3MKCjIwMTAtMDMtMjIgMTM6MTY6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jOgoJICBBZGQgLVd3cml0ZS1zdHJpbmdzCgkgIGFuZCBmaXggaXRzIHdhcm5pbmdzCgoyMDEwLTAzLTIxIDIxOjM5OjE4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9hdG9tc3JlY292ZXJ5LmM6CgkqIGdzdC9xdWlja3RpbWUvZGVzY3JpcHRvcnMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXRtdXguYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3RhZ3NjaGVja2luZy5jOgoJICBBZGQgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcyB0byBjb25maWd1cmUgZmxhZ3MKCSAgQW5kIGZpeCBhbGwgd2FybmluZ3MKCjIwMTAtMDMtMTggMTc6MzA6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtb292cmVjb3Zlci5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoKMjAxMC0wMy0xMiAxMToyODo1MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvdGFnc2NoZWNraW5nLmM6CgkgIHRlc3RzOiB0YWdzY2hlY2tpbmc6IEltcHJvdmVtZW50cyBhbmQgbmV3IGdlby1sb2NhdGlvbiB0ZXN0cwoJICBNYWtlcyBzb21lIGltcHJvdmVtZW50cyB0byB0YWdzY2hlY2tpbmcuYywgbWFraW5nIGl0IHVzZQoJICBmYWtlc3JjIGluc3RlYWQgb2YgdmlkZW90ZXN0c3JjIGFuZCBhbGxvd2luZyB0byBzZXQgaW5wdXQKCSAgY2FwcyBzbyB0aGF0IG1vcmUgbXV4ZXJzIGNhbiBiZSB1c2VkLiBQcmV2aW91c2x5IHdlIGNvdWxkCgkgIG9ubHkgdXNlIHRob3NlIHRoYXQgYWNjZXB0ZWQgcmF3IHZpZGVvIGNhcHMuCgkgIEFsc28gYWRkcyBzb21lIHRlc3RzIGZvciBnZW8tbG9jYXRpb24gdGFncwoKMjAxMC0wMy0xMiAxMDo1MzozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBVc2UgeG1wIG9uIG1wNG11eCBhbmQgZ3BwbXV4IHRvbwoJICBEbyBub3QgcmVzdHJpY3QgeG1wIHRvIHF0bXV4LCBidXQgdXNlIGl0IHRvbwoJICBvbiBtcDRtdXggYW5kIGdwcG11eAoKMjAxMC0wMy0wNSAxMzozMzozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvdGFnc2NoZWNraW5nLmM6CgkgIGNoZWNrOiB0YWdzY2hlY2tpbmc6IHRlc3RzIGZvciB0YWdzIHNlcmlhbGl6YXRpb24gaW4gbXV4ZXJzCgkgIEFkZHMgYSBjaGVjayB1bml0IHRlc3QgdGhhdCBhaW1zIHRvIHRlc3QgdGFncyBzZXJpYWxpemF0aW9uCgkgIGFuZCBkZXNlcmlhbGl6YXRpb24gY29uc2lzdGVuY3kgKGluIG11eGVycykuIEl0IHByb3ZpZGVzIGEKCSAgYmFzaWMgZnVuY3Rpb24gdGhhdCBhbGxvd3Mgb25lIHRvIGVhc2lseSBzcGVjaWZ5IHRhZ3MsIGEKCSAgbXV4ZXIgYW5kIGEgZGVtdXhlciBhbmQgYSB0ZXN0IHdpbGwgYmUgZG9uZSB0byBjaGVjayBpZgoJICB0aGUgdGFncyBoYXZlIGJlZW4gY29uc2lzdGVudGx5IG11eGVkIGFuZCBkZW11eGVkCgoyMDEwLTAyLTIyIDE2OjQ1OjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBhZGQgeG1wIHN1cHBvcnQKCSAgQWRkcyB4bXAgbWV0YXRhZ3MgYWRkaW5nIHRvIHF0bXV4LgoJICBGaXhlcyAjNjA5NTM5CgoyMDEwLTAzLTExIDE3OjE3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtb292cmVjb3Zlci5jOgoJICBxdG11eDogZml4IEdTVF9FTEVNRU5UX0VSUk9SIHVzYWdlCgkgIFdlIG5lZWQgdG8gcGFzcyAoTlVMTCkgcmF0aGVyIHRoYW4gTlVMTCBmb3IgZW1wdHkgYXJndW1lbnRzLgoKMjAxMC0wMy0xMCAxMDoyMzoyMyAtMDYwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG1vb3ZyZWNvdmVyLmM6CgkgIHF0bXV4OiBmaXggY29tcGlsZSBlcnJvcgoJICBnc3QvcXVpY2t0aW1lL2dzdHF0bW9vdnJlY292ZXIuYzoyNjg6IHdhcm5pbmc6IGZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbCBhbmQgbm8gZm9ybWF0IGFyZ3VtZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyNDU0CgoyMDEwLTAyLTIyIDE5OjM4OjE1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgcXRtdXg6IFJlbmFtZSAnYXZjLXNhbXBsZScgdG8gJ2F2YycgaW4gY2FwcwoJICBGaXhlcyAjNjA2NjYyCgoyMDEwLTAyLTI2IDExOjUwOjI1IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IFRha2UgbG9jayBhcm91bmQgdXNlIG9mIChub24tdGhyZWFkc2FmZSkgdGFnc2V0dGVyIGludGVyZmFjZS4KCjIwMTAtMDItMjIgMTY6NTE6MDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogd3JpdGUgYWxsIHVkdGEgY2hpbGRyZW4gYXRvbXMKCSAgVURUQSBtaWdodCBoYXZlIE1FVEEgYW5kIG90aGVyIGNoaWxkcmVuIGF0b21zCgkgIHRvZ2V0aGVyLCB3cml0ZSB0aGVtIGFsbC4KCjIwMTAtMDItMjIgMTA6NDg6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkgIHF0bXV4OiBVc2UgaW50ZXJuYWwgc2luayBwYWRzIGxpc3QKCSAgRHVlIHRvIEdzdENvbGxlY3RQYWRzIHNpbmsgcGFkcyBsaXN0IGJlaW5nIG5vdCByZWxpYWJseQoJICBpdGVyYXRhYmxlICh3aGVuIG5vdCBpbnNpZGUgdGhlIGNvbGxlY3RlZCBmdW5jdGlvbikgdGhpcwoJICBwYXRjaCBhZGRzIGEgc2luayBwYWRzIGxpc3QgdG8gcXRtdXggdG8gYmUgdXNlZCB3aGVuIGl0ZXJhdGluZwoJICBzaW5rIHBhZHMgb24gcmVzZXQgZnVuY3Rpb24uCgkgIEZpeGVzICM2MDkwNTUKCjIwMTAtMDItMTYgMTc6MTM6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogcHJldmVudCBsZWFraW5nIGhkbHIgbmFtZQoKMjAxMC0wMi0xNiAxNjoyNDoxMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkgIHF0bXV4OiBzdXBwb3J0IGZvciBBTEFDCgkgIEZpeGVzICM1ODA3MzEuCgoyMDEwLTAyLTE2IDE0OjE5OjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgcXRtdXg6IHJlZmFjdG9yIGJ1aWxkaW5nIHN0c2QgZW50cnkgJ3dhdmUnIGV4dGVuc2lvbgoKMjAxMC0wMi0wOCAxMTo1MTo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zcmVjb3ZlcnkuYzoKCSAgcXRtdXg6IGF0b21zcmVjb3Zlcnk6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtCgkgIEZpeGVzIGEgY29tcGlsYXRpb24gZXJyb3IgZHVlIHRvIHVudXNlZCBmdW5jdGlvbiByZXN1bHQuCgoyMDA5LTEyLTEyIDE2OjA3OjE1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zcmVjb3ZlcnkuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tc3JlY292ZXJ5Lmg6CgkqIGdzdC9xdWlja3RpbWUvZm91cmNjLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtb292cmVjb3Zlci5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bW9vdnJlY292ZXIuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhwbHVnaW4uYzoKCSAgcXRtdXg6IEFkZHMgbW9vdiByZWNvdmVyeSBmZWF0dXJlCgkgIEFkZHMgYSBuZXcgcHJvcGVydHkgdG8gcXRtdXggdGhhdCBzZXRzIGEgcGF0aCB0byBhIGZpbGUgdG8gd3JpdGUKCSAgYW5kIHVwZGF0ZSBkYXRhIGFib3V0IHRoZSBtb292IGF0b20gKHRoYXQgaXMgbm90IHdyaXRlbiB0aWxsIHRoZQoJICBlbmQgb2YgdGhlIGZpbGUpLiBJZiB0aGUgcGlwZWxpbmUvYXBwIGNyYXNoZXMgZHVyaW5nIGV4ZWN1dGlvbiBpdAoJICBtaWdodCBiZSBwb3NzaWJsZSB0byByZWNvdmVyIHRoZSBtb3ZpZSB1c2luZyB0aGUgcXRtb292cmVjb3ZlciBlbGVtZW50LgoJICBxdG1vb3ZyZWNvdmVyIGlzIGFuIGVsZW1lbnQgdGhhdCBpcyBhbHNvIGEgcGlwZWxpbmUuIEl0IGlzIG5vdAoJICBtZWFudCB0byBiZSB1c2VkIHdpdGggb3RoZXIgZWxlbWVudHMgKGl0IGhhcyBubyBwYWRzKS4gSXQgaXMgbWVyZWx5CgkgIGEgdG9vbC91dGlsaXRhcnkgdG8gcmVjb3ZlciB1bmZpbmlzaGVkIHF0bXV4IGZpbGVzLgoJICBGaXhlcyAjNjAxNTc2CgoyMDEwLTAxLTI3IDE5OjA2OjUzIC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgcXRtdXg6IGZvciBmaXhlZC1zYW1wbGUgc2l6ZSBzdHJlYW1zIChQQ00gYXVkaW8sIGV0YykgZG9uJ3QgYWxsb2NhdGUgYW4gZW5vcm1vdXMgYnVmZmVyIHRoYXQgd2UgdGhlbiB3b24ndCB1c2UgYXQgYWxsLgoKMjAxMC0wMS0yNyAxNTozNzozNyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBoYW5kbGUgbXV4aW5nIGFkcGNtIGNvcnJlY3RseS4KCjIwMTAtMDEtMjIgMTM6MzY6MDQgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogU2V0IHRoZSBtZGlhIGhkbHIgbmFtZSBmaWVsZCB0byB3aGF0IHF1aWNrdGltZSB1c2VzLiBGaXggd3JpdGluZyBpdCBzaW5jZSBpdCdzIG5vdCBudWxsLXRlcm1pbmF0ZWQuIEltcHJvdmVzIGNvbXBhdGliaWxpdHkgd2l0aCBzb21lIGhhcmR3YXJlIHBsYXllcnMuCgoyMDEwLTAxLTIyIDEzOjMwOjA3IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGVuZGlhbm5lc3MgaW4gZ3N0cmVhbWVyIGlzIGFuIGludCwgbm90IGJvb2xlYW4uCgoyMDEwLTAxLTI2IDE3OjU0OjI4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJICBxdG11eDogc3RyZWFtbGluZSBtb292IGRhdGEgbWVtb3J5IHN0b3JhZ2UKCSAgSW4gcGFydGljdWxhciwgdXNlIGFycmF5cyByYXRoZXIgdGhhbiAoZG91YmxlKSBsaW5rZWQgbGlzdHMuCgoyMDEwLTAxLTI2IDEzOjQ0OjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGdfZnJlZSBpcyBOVUxMIHNhZmUKCjIwMTAtMDEtMjAgMTM6MzA6NDggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9xdWlja3RpbWUvZGVzY3JpcHRvcnMuYzoKCSogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5oOgoJKiBnc3QvcXVpY2t0aW1lL3Byb3BlcnRpZXMuYzoKCSAgW2NsZWFudXBdIFZhcmlvdXMgc3R5bGUgYW5kIGNsZWFudXBzCgkgIFZhcmlvdXMgZml4ZXMgZm9yIGd0ay1kb2Mgd2FybmluZ3MgYW5kIG1ha2luZyBmdW5jdGlvbnMgd2l0aG91dAoJICBhcmd1bWVudHMgdGFrZSB2b2lkIGFzIHBhcmFtZXRlci4KCjIwMTAtMDEtMTQgMDg6MDk6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBBY3R1YWxseSB1c2UgbmV3IGNhcHMgaW5mbyBvbiByZW5lZ290aWF0aW9uCgkgIEZvbGxvd2luZyB0aGUgcHJldmlvdXMgcXRtdXggY29tbWl0LCB0aGlzIHBhdGNoIHRyaWVzCgkgIHRvIHVzZSB0aGUgbmV3IGluZm8gYWRkZWQgdG8gdGhlIGNhcHMgdG8gZmlsbCB0aGUgJ3RyYWsnCgkgIGF0b20ncyBmaWVsZHMgYW5kIGNoaWxkcmVuIGF0b21zLiBUaGlzIHdheSBxdG11eCB3aWxsCgkgIHVzZSB0aGUgbGF0ZSBhZGRlZCAnY29kZWNfZGF0YScgd2hlbiBoMjY0cGFyc2UgYWRkcwoJICBpdCBpbiB0aGUgZm9sbG93aW5nIHBpcGVsaW5lOgoJICB2aWRlb3Rlc3RzcmMgbnVtLWJ1ZmZlcnM9MjAwICEgeDI2NGVuYyBieXRlLXN0cmVhbT10cnVlICEgXAoJICBoMjY0cGFyc2Ugb3V0cHV0LWZvcm1hdD0wICEgcXRtdXggISBcCgkgIGZpbGVzaW5rIGxvY2F0aW9uPXRlc3QubW92CgoyMDEwLTAxLTEzIDIzOjMzOjUxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogRG8gY2FwcyByZW5lZ290aWF0aW9uIHdoZW4gaXQgb25seSBhZGRzIGZpZWxkcwoJICBRdG11eCBjYW4gYWNjZXB0IGNhcHMgcmVuZWdvdGlhdGlvbiBpZiB0aGUgbmV3IGNhcHMgaXMgYQoJICBzdXBlcnNldCBvZiB0aGUgb2xkIG9uZSwgbWVhbmluZyB1cHN0cmVhbSBhZGRlZCBuZXcgaW5mbyB0bwoJICB0aGUgY2Fwcy4gVGhpcyBwYXRjaCBzdGlsbCBkb2Vzbid0IG1ha2UgcXRtdXggdXBkYXRlIGFueQoJICBhdG9tcyBpbmZvIGZyb20gdGhlIG5ldyBpbmZvLCBidXQgYXQgbGVhc3QgaXQgZG9lc24ndAoJICByZWplY3QgdGhlIG5ldyBjYXBzIGFueW1vcmUuCgkgIEEgcGlwZWxpbmUgdGhhdCByZXByb2R1Y2VzIHRoaXMgdXNlIGNhc2UgaXM6CgkgIHZpZGVvdGVzdHNyYyBudW0tYnVmZmVycz0yMDAgISB4MjY0ZW5jIGJ5dGUtc3RyZWFtPXRydWUgISBcCgkgIGgyNjRwYXJzZSBvdXRwdXQtZm9ybWF0PTAgISBxdG11eCAhIFwKCSAgZmlsZXNpbmsgbG9jYXRpb249dGVzdC5tb3YKCjIwMTAtMDEtMTMgMTk6MzA6NDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogcHJvdmlkZSByZXF1ZXN0IHBhZHMgdW5kZXIgd2lkZXIgY29uZGl0aW9ucwoJICBGaXhlcyAjNjA2ODU5LgoKMjAxMC0wMS0xMyAxMDozNTowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkgIHF0bXV4OiBPbmx5IGFjY2VwdCBhdmMtc2FtcGxlIGgyNjQKCSAgcXRtdXggYW5kIG1wNG11eCBzaG91bGQgb25seSBhY2NlcHQgaDI2NCBpbiBhdmMtc2FtcGxlCgkgIGZvcm1hdAoKMjAxMC0wMS0xMSAxMzoxMzo0MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgUmVuYW1lIGFhYydzIHN0cmVhbS1mb3JtYXQgJ25vbmUnIHRvICdyYXcnCgkgIFJlbmFtZXMgYWFjJ3Mgc3RyZWFtLWZvcm1hdCBmcm9tIHByZXZpb3VzIGNvbW1pdHMgZnJvbSBub25lIHRvCgkgIHJhdwoKMjAxMC0wMS0xMSAxMDozNDozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgcXRtdXg6IE9ubHkgYWNjZXB0IHN0cmVhbS1mb3JtYXQ9J25vbmUnIGFhYwoJICBPbmx5IGFjY2VwdCByYXcgYWFjIHN0cmVhbXMgKHN0cmVhbS1mb3JtYXQ9bm9uZSkgdG8gYXZvaWQKCSAgZ2VuZXJhdGluZyBpbnZhbGlkIGZpbGVzLgoJICBGaXhlcyAjNjA0OTI1CgoyMDA5LTEyLTI4IDExOjM0OjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkgIHF0bXV4OiBhbHNvIGFkZCAuaCBmaWxlIGNoYW5nZXMgdG8gdW5icmVhayB0aGUgYnVpbGQKCjIwMDktMTItMjcgMjM6NTE6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IHVzZSBjb3JyZWN0IG5hbWVzIGZyb20gdGVtcGxhdGUgZm9yIHJlcXVlc3QgcGFkcwoJICBUaGUgcGFkcyB3aGVyZSBuYW1lcyBwYWQwLCBwYWQxLCAuLi4KCjIwMDktMTItMjcgMjM6MzI6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IG1vdmUgZXJyb3JzIF9uZXdfcGFkIHRvIHRoZSBlbmQKCjIwMDktMTItMjEgMTM6NTg6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogQWNjZXB0IG5vbi1wYWlyZWQgdWludCB0YWdzCgkgIEFkZHMgc3VwcG9ydCBmb3IgdW5wYWlyZWQgdW5zaWduZWQgaW50ZXJnZXIgdGFncwoKMjAwOS0xMi0yMSAxMjowNTozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBBZGRzIG5ldyB0YWdzCgkgIE1hcHMgbW9yZSB0YWdzIHRoYXQgYXJlIGFscmVhZHkgcG9zdGVkIGJ5IHF0ZGVtdXgKCSAgRml4ZXMgIzU5OTc1OQoKMjAwOS0xMi0xMCAyMjoyMDo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9mb3VyY2MuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgcXRtdXg6IHN1cHBvcnQgbW9yZSBvZiBqMmsKCSAgUmVhZHMgdGhlIG5ldyBjYXBzIGFkZGVkIHRvIHF0ZGVtdXggYnkgY29tbWl0CgkgIGM5MTdkNjVlNmRmMGI1ZDU4NWY5MDVjN2FkNzhhOGEwYTQ0YjJjYjAKCSAgYW5kIGFkZHMgaXRzIGNvcnJlc3BvbmRpbmcgYXRvbXMuCgkgIEFsc28gYWRkcyBzdXBwb3J0IGZvciBpbWFnZS94LWpwYyBhcyBpdCBpcyB0aGUgc2FtZQoJICBhcyBpbWFnZS94LWpwMiwgZXhjZXB0IHRoYXQgdGhlIGJ1ZmZlcnMgbmVlZCB0byBiZQoJICBib3hlZCBpbnNpZGUgYSBqcDJjIGlzb20gYm94IGJlZm9yZSBtdXhpbmcuIFRvIHNvbHZlCgkgIHRoaXMgdGhlIFFUUGFkcyBub3cgaGF2ZSBhIGZ1bmN0aW9uIHRoYXQgKGlmCgkgIG5vdCBOVUxMKSBpcyBjYWxsZWQgd2hlbiBhIGJ1ZmZlciBpcyBjb2xsZWN0ZWQuIFRoaXMKCSAgZnVuY3Rpb24gcmV0dXJucyBhIHJlcGxhY2VtZW50IHRvIHRoZSBjdXJyZW50IGNvbGxlY3RlZAoJICBidWZmZXIuCgkgIEZpeGVzICM1OTg5MTYKCjIwMDktMTItMTAgMTY6NTM6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9mb3VyY2MuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkgIHF0bXV4OiBNYXBzICdjbGFzc2lmaWNhdGlvbicgdGFnIGZvciAzZ3BwIGZpbGVzCgkgIEFkZHMgdGhlIG1hcHBpbmcgb2YgJ2NsYXNzaWZpY2F0aW9uJyB0YWdzIHRvIHdyaXRpbmcgb2YKCSAgJ2Nsc2YnIGF0b21zIGZvciBncHBtdXguCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnk6IExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCjIwMDktMTItMDggMTc6NTk6MDQgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiByZW1vdmUgYysrIGNvbW1lbnRzIGFuZCBhZGQgc29tZSBtb3JlIGNvbW1lbnRzLgoKMjAwOS0xMi0wOCAxNzo1NTo1NiAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9mb3VyY2MuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkgIHF0bXV4OiBhZGQgaW1hIGFkcGNtIHN1cHBvcnQKCjIwMDktMTEtMjUgMjE6NDE6MjcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogcmVwbGFjZSBfc2NhbGUgd2l0aCBfc2NhbGVfcm91bmQKCSAgVXNlIHRoZSByb3VuZGluZyB2ZXJzaW9uIGZvciBpbXByb3ZlZCBzeW5jIGJldHdlZW4gc3RyZWFtcy4KCSAgU21hbGwgdmFyaWF0aW9ucyBpbiB0aGUgZHVyYXRpb24gd2hlbiBtdXhpbmcgbWlnaHQgbGVhZCB0bwoJICBjdW11bGxhdGl2ZSB3cm9uZyB0aW1lc3RhbXBpbmcgd2hlbiBkZW11eGluZy4KCSAgRml4ZXMgIzYwMjkzNgoKMjAwOS0xMS0yNCAxNjoxNjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiB1c2UgdGltZXN0YW1wcyBmb3IgbXV4aW5nCgkgIFRyeSB0byB1c2UgdGltZXN0YW1wcyBldmVuIHdoZW4gdGhlIHN0cmVhbSBoYXMgb3V0IG9mIG9yZGVyCgkgIHRpbWVzdGFtcHMsIG9ubHkgZmFsbCBiYWNrIHRvIGR1cmF0aW9ucyB3aGVuIHdlIGRldGVjdCBhbgoJICBvdXQgb2Ygb3JkZXIgYnVmZmVyLiBJbXByb3ZlcyBzeW5jIGJldHdlZW4gc3RyZWFtcy4KCjIwMDktMTEtMTkgMTg6Mjg6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZml4IG1pc3NpbmcgZGVidWcgYXJndW1lbnQKCSAgQWRkcyBhIG1pc3NpbmcgZGVidWcgYXJndW1lbnQKCjIwMDktMTEtMTkgMTE6MzY6MTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZml4IG1pc2luZm9ybWluZyBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMDktMTEtMTkgMTE6MTQ6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZW5zdXJlIHdyaXRhYmxlIGJ1ZmZlciBtZXRhZGF0YSBiZWZvcmUgc2V0dGluZyBjYXBzCgoyMDA5LTEwLTI5IDA4OjM2OjAyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgcXRtdXg6IHN1cHBvcnQgZm9yIFNWUTMKCSAgQWRkcyBzdXBwb3J0IGZvciBtdXhpbmcgU1ZRMyBjb250ZW50LiBVc3VhbGx5IHRoaXMgZm9ybWF0CgkgIGhhcyBkZWNvZGVyIGluZm8gdGhhdCBtdXN0IGJlIHBhc3NlZCBpbiB0aGUgJ3NlcWgnIGZpZWxkCgkgIGluIHRoZSBjYXBzLiBJdCBpcyBhbHNvIGdvb2QgdG8gYWRkIHRoZSBnYW1hIGF0b20gdG8gbWFrZQoJICBxdWlja3RpbWUgbm90IGNyYXNoLgoJICBGaXhlcyAjNTg3OTIyCgoyMDA5LTExLTE3IDA5OjI2OjA1IC0wMzAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc0ByZWRtb29uLihub25lKT4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGRvIG5vdCBsZWFrIGEgc3RyaW5nCgkgIEZyZWVzIGEgc3RyaW5nIGFmdGVyIHVzZS4gQWxzbyBkb2VzIHNvbWUgY29kZSBvcmdhbml6YXRpb24KCjIwMDktMTEtMTYgMTQ6NTc6NTMgLTAzMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzQHJlZG1vb24uKG5vbmUpPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogZG8gbm90IGFkZCBzaXplIHRvIHRoZSBwb2ludGVyIHZhcmlhYmxlCgkgIERvIG5vdCB3cm9uZ2x5IGFkZCB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiB0byB0aGUKCSAgcG9pbnRlciB0byB0aGUgYnVmZmVyIHNpemUuIEluc3RlYWQsIGNoZWNrIHRoZSByZXN1bHQKCSAgdG8gc2VlIGlmIHRoZSBzZXJpYWxpemF0aW9uIHdhcyBvay4KCSAgQmFzZWQgb24gYSBwYXRjaCBieTogIkNhcnN0ZW4gS3JvbGwgPGNhckB4aW1pZGkuY29tPiIKCSAgRml4ZXMgIzYwMjEwNgoKMjAwOS0xMS0wNiAxMDozNDozOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkgIHF0bXV4OiBoYW5kbGUgJ2xhdGUnIHN0cmVhbXMKCSAgV2hlbiBtdXhpbmcgc3RyZWFtcywgc29tZSBjYW4gc3RhcnQgbGF0ZXIgdGhhbiBvdGhlcnMuIHF0bXV4CgkgIG5vdyBoYW5kbGUgdGhpcyBieSBhZGRpbmcgYW4gZW1wdHkgZWR0cyBlbnRyeSB3aXRoIHRoZQoJICBkdXJhdGlvbiBvZiB0aGUgJ2xhdGVuZXNzJyB0byB0aGUgc3RyZWFtJ3MgdHJhay4KCSAgSXQgdG9sZXJhdGVzIGEgc3RyZWFtIHRvIGJlIHVwIHRvIDAuMXMgbGF0ZS4KCSAgRml4ZXMgIzU4Njg0OAoKMjAwOS0xMS0wNSAyMTozNTo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSAgcXRtdXg6IGFkZHMgdGhlIEVEVFMgYW5kIEVMVFMgYXRvbXMgdG8gYXRvbXMuYwoJICBUaGVzZSBhdG9tcyB3aWxsIGJlIHVzZWZ1bCBmb3Igc2lnbmFsaW5nIHN0cmVhbXMKCSAgdGhhdCBzdGFydCBsYXRlciBpbiB0aGUgZmlsZS4gQXMgd2VsbCBmb3IgYWRkaW5nCgkgIGVkaXQgbGlzdHMgaWYgbmVlZGVkIHNvbWV0aW1lIGxhdGVyLgoKMjAwOS0xMS0wNiAwMDo0NjoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IEFkZGluZyBzb21lIGlmcyBmb3IgcHJvdGVjdGlvbgoJICBBZGRpbmcgc29tZXMgaWZzIHRvIHByb3RlY3QgYWdhaW5zdCB3YXJuaW5nIGNvbmRpdGlvbnMKCSAgdGhhdCBtaWdodCBoYXBwZW4gd2hlbiB1cHN0cmVhbSBlbGVtZW50IGlzIG5vdCBzYW5lCgkgIEZpeGVzICM2MDA4OTUKCjIwMDktMTAtMTYgMTA6NDc6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L3F1aWNrdGltZS9mdHlwY2MuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5oOgoJICBncHBtdXg6IEFkZCBzdXBwb3J0IGZvciAzZ3I2CgkgIEtlZXAgdHJhY2sgb2YgdGhlIGNodW5rIGR1cmF0aW9ucyB0byBiZSBhYmxlIHRvIGFkZCAzZ3I2CgkgIGJyYW5kIGlmIGl0IGlzIGEgZmFzdHN0YXJ0IGZpbGUgYW5kIHRoZSBsb25nZXN0IGNodW5rIGlzCgkgIHNtYWxsZXIgdGhhbiBhIHNlYy4gSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIDNncHAKCSAgVFMgMjYuMjQ0IHY2LjQuMCAoMjAwNS0wOSkKCSAgRml4ZXMgIzU4NDM2MQoKMjAwOS0xMC0xNSAyMToxMToxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBPbmx5IHB1c2ggZnR5cCBsYXRlciAoaW4gZmFzdHN0YXJ0IG1vZGUpCgkgIEluIGZhc3RzdGFydCBtb2RlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHNlbmQgdGhlIGZ0eXAKCSAgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyZWFtLiBXYWl0aW5nIGFuZCBzZW5kaW5nIGl0CgkgIG9ubHkgbGF0ZXIgKHdoZW4gdGhlIG1vb3YgYXRvbSBpcyByZWFkeSB0byBiZSBzZW50KSBwcm92aWRlcwoJICB1cyB3aXRoIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0cmVhbSBhbmQgd2UgY2FuIGJldHRlcgoJICBzZWxlY3QgdGhlIGNvbXBhdGlibGUgYnJhbmRzLgoKMjAwOS0xMC0xNSAxNzo1MTozOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBJbXByb3ZlIGVycm9yIG1lc3NhZ2UKCSAgSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gd2UgY2FuJ3QgZ2V0IG9yIGVzdGltYXRlIHRoZQoJICB0aW1lc3RhbXAvZHVyYXRpb24gb2YgYSBidWZmZXIKCjIwMDktMDktMjkgMTU6NDc6MTMgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogZml4IGZsYWdzX2FzX3VpbnQgdG8gZmxhZ3NbXQoKMjAwOS0wOC0wNCAxMjo1ODozNSArMDIwMCAgSmFuIFVyYmFuc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogRG9uJ3QgcmVxdWlyZSBlbmRpYW5uZXNzIGZpZWxkIGZvciA4IGJpdCByYXcgYXVkaW8KCSAgRml4ZXMgYnVnICM1OTAzNjAuCgoyMDA5LTA2LTI1IDA4OjM4OjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDktMDYtMjUgMDg6Mzg6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBGaXggZGVidWcgc3RhdGVtZW50LgoKMjAwOS0wNi0xMSAxNTo1NDo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICBxdG11eDogb25seSB1c2UgKDY0LWJpdCkgZXh0ZW5kZWQgKG1kYXQpIGF0b20gc2l6ZSBpZiBuZWVkZWQuICBGaXhlcyAjNTg1MzE5LgoKMjAwOS0wNi0xMCAxNDo0NjoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBzZXQgZGVmYXVsdCBtb3ZpZSB0aW1lc2NhbGUgdG8gbWljcm9zZWNvbmQgdW5pdHMKCjIwMDktMDYtMTAgMTM6MjQ6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICBxdG11eDogY29tcHJlc3Mvb3B0aW1pemUgc3RzYyB3cml0aW5nCgoyMDA5LTA2LTEwIDEyOjQyOjQ0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgcXRtdXg6IGFkZCAzR1Agc3R5bGUgdGFnZ2luZyAoYW5kIHJlZmFjdG9yIGFwcHJvcHJpYXRlbHkpCgoyMDA5LTA2LTAxIDIzOjAwOjQ0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4IChhbmQgdmFyaWFudHMpOiBoYW5kbGUgcGl4ZWwtYXNwZWN0LXJhdGlvLiAgRml4ZXMgIzU4NDM1OC4KCjIwMDktMDYtMDEgMjI6NDI6MDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkqIGdzdC9xdWlja3RpbWUvZnR5cGNjLmg6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgZ3BwbXV4OiBlbmhhbmNlIGZ0eXAgYnJhbmQgaGV1cmlzdGljLiAgRml4ZXMgIzU4NDM2MC4KCjIwMDktMDUtMjggMTM6NTY6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9mb3VyY2MuaDoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogdXNlIGRpZmZlcmVudCBzdHNkIGF0b20gdHlwZSBmb3IgSDI2MyBmb3IgSVNPIGFuZCBRVCB2YXJpYW50cwoJICBGaXhlcyAjNTg0MTE0LgoKMjAwOS0wNS0xNSAwMTo1NDo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6CgkgIFtxdG11eF0gRml4ZXMgc2VnZmF1bHQgd2hlbiBhZGRpbmcgYSBibG9iIGFzIGZpcnN0IHRhZy4KCSAgTW92ZXMgdGFncyBkYXRhIGluaXRpYWxpemF0aW9uIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGFwcGVuZHMKCSAgdGhlIHRhZ3MgdG8gdGhlIGxpc3QuIEZpeGVzICM1ODI3MDIKCSAgQWxzbyBmaXhlcyBzb21lIHN0eWxlIGNhdWdodCBieSB0aGUgcHJlLWNvbW1pdCBob29rLgoKMjAwOS0wNS0xMCAyMToyMTozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkgIGdwcG11eDogQWRkIE1QRUctNCBwYXJ0IDIgdG8gc3VwcG9ydGVkIGZvcm1hdHMuICBGaXhlcyAjNTgxNTkzLgoKMjAwOS0wNS0wNyAxNzo1Mzo0MiArMDEwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBBZGQgcmFua3MgdG8gdmFyaW91cyBtdXhlcnMgYW5kIGVuY29kZXJzIGluIC1iYWQKCjIwMDktMDQtMzAgMTQ6NDM6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOgoJICBxdG11eDogY2hhbmdlcyBjYXBzIG9mIHNyYyBwYWRzIHRvIHZpZGVvL3F1aWNrdGltZSwgdmFyaWFudD1zb21ldGhpbmcKCSAgVGFrZSBhIGxvb2sgYXQgYnVnICM1ODAwMDUgZm9yIGZ1cnRoZXIgaW5mby4KCjIwMDktMDQtMjQgMTg6NTM6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOgoJICBtcDRtdXg6IENoYW5nZXMgc3JjIGNhcHMgdG8gYXBwbGljYXRpb24veC1pc28tbXA0CgkgIEZpeGVzICM1ODAwMDUKCjIwMDktMDMtMjUgMjE6MjQ6NDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICBxdG11eDogZml4IHJldXNpbmcgZWxlbWVudAoJICBTdGF0ZSBjaGFuZ2UgdG8gUkVBRFkgYW5kIHRoZW4gYmFjayB0byBQQVVTRUQgc2hvdWxkIHN0aWxsIHByb3ZpZGUKCSAgdGhlIHByb3BlciBzdHJ1Y3R1cmVzIGFzIGFyZSBvdGhlcndpc2UgZnJlc2hseSBhdmFpbGFibGUgZm9sbG93aW5nCgkgIGEgcmVxdWVzdF9uZXdfcGFkLgoJICBQb2ludGVkIG91dCBieSBUaGlhZ28gU2FudG9zLgoKMjAwOS0wMy0yMyAxMToxNzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgcXRtdXg6IGZpeCBpbmNsdWRlcyBmb3IgbHNlZWsKCSAgLS0KCjIwMDktMDMtMjAgMTQ6MjA6MTYgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICB3aW4zMjogZml4IHNlZWtpbmcgaW4gbGFyZ2UgZmlsZXMKCSAgVXNlIF9sc2Vla2k2NCgpIG9uIFdpbmRvd3MgdG8gc2VlayBpbiBsYXJnZSBmaWxlcy4KCSAgRml4ZXMgIzU3NjAyMS4KCjIwMDktMDMtMDIgMTA6NTc6MzUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgIHF0bXV4OiBCZSBhIGJpdCBtb3JlIHZlcmJvc2UgaW4gb3VyIGRlYnVnIG1lc3NhZ2Ugd2hlbiBmYWlsaW5nIHRvIHJlbmVnb3RpYXRlCgoyMDA5LTAxLTI4IDEzOjI1OjE0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgQWRkaXRpb25hbCBtZWRpYSB0eXBlIHN1cHBvcnQgaW4gcXRtdXggKGFuZCBmcmllbmRzKS4KCSAgU3VwcG9ydCBBTVIgYW5kIEgyNjMgZm9yIGJvdGggcXRtdXggYW5kIGdwcG11eCwKCSAgYW5kIGFkZCBleHRlbnNpb25zIGluIHNhbXBsZSB0YWJsZSBkZXNjcmlwdGlvbi4KCjIwMDktMDEtMDkgMjE6NTk6NDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOiBBZGQgdmlkZW8veC1xdC1wYXJ0IGFuZCB2aWRlby94LW00LXBhcnQgdG8gY2FwcyBzbyBzY2hyb2VuYy9zY2hyb3BhcnNlIGNhbiB1c2UgaXQuICBGaXhlcyAjNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6IEFkZCB2aWRlby94LXF0LXBhcnQgYW5kIHZpZGVvL3gtbTQtcGFydAoJICB0byBjYXBzIHNvIHNjaHJvZW5jL3NjaHJvcGFyc2UgY2FuIHVzZSBpdC4gIEZpeGVzICM1NjY5NTgKCjIwMDgtMTItMTkgMTg6NTM6NDcgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOiBEbyBub3QgdGVtcHQgb3Igc3VnZ2VzdCB0byB2aW9sYXRlIGdzdF9jb2xsZWN0X3BhZHMgQVBJIHNwZWNpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzogKGdzdF9xdF9tdXhfY2hhbmdlX3N0YXRlKToKCSAgRG8gbm90IHRlbXB0IG9yIHN1Z2dlc3QgdG8gdmlvbGF0ZSBnc3RfY29sbGVjdF9wYWRzIEFQSSBzcGVjaWZpY2F0aW9uLgoKMjAwOC0xMi0xOSAxODozMzo0NyArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvcXVpY2t0aW1lLzogRHVhbCBsaWNlbnNlIHF0bXV4IExHUEwvTUlULiAgRml4ZXMgIzU2NDIzMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICAqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2Rlc2NyaXB0b3JzLmM6CgkgICogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5oOgoJICAqIGdzdC9xdWlja3RpbWUvZm91cmNjLmg6CgkgICogZ3N0L3F1aWNrdGltZS9mdHlwY2MuaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmg6CgkgICogZ3N0L3F1aWNrdGltZS9wcm9wZXJ0aWVzLmM6CgkgICogZ3N0L3F1aWNrdGltZS9wcm9wZXJ0aWVzLmg6CgkgIER1YWwgbGljZW5zZSBxdG11eCBMR1BML01JVC4gIEZpeGVzICM1NjQyMzIuCgoyMDA4LTEyLTE2IDE2OjI2OjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBUb3RhbGx5IHJlbW92ZSB0aGUgaW50ZXJuYWwgdGFnbGlzdHMgYW5kIGZ1bGx5IHVzZSB0YWdzZXR0ZXIuIEZpeGVzIHZhcmlvdXMgdGFnIG11eGluZyBpc3N1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jZWx0L2dzdGNlbHRlbmMuYzoKCSAgKiBleHQvY2VsdC9nc3RjZWx0ZW5jLmg6CgkgICogZXh0L21ldGFkYXRhL2dzdG1ldGFkYXRhbXV4LmM6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgVG90YWxseSByZW1vdmUgdGhlIGludGVybmFsIHRhZ2xpc3RzIGFuZCBmdWxseSB1c2UgdGFnc2V0dGVyLiBGaXhlcwoJICB2YXJpb3VzIHRhZyBtdXhpbmcgaXNzdWVzLgoKMjAwOC0xMi0wMSAxNjozNzo0NSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvcXVpY2t0aW1lL2F0b21zLmM6IEZpeCBtajIgc2FtcGxlIGRlc2NyaXB0aW9uIG1ldGFkYXRhIGNvbnN0cnVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOiAoYnVpbGRfanAyaF9leHRlbnNpb24pOgoJICBGaXggbWoyIHNhbXBsZSBkZXNjcmlwdGlvbiBtZXRhZGF0YSBjb25zdHJ1Y3Rpb24uCgoyMDA4LTExLTE4IDAxOjA5OjA5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzogUXVpZXQgYSBkZWJ1Z2dpbmcgbWVzc2FnZSB0aGF0IEkgcmVjZW50bHkgYWRkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzogUXVpZXQgYSBkZWJ1Z2dpbmcgbWVzc2FnZSB0aGF0IEkgcmVjZW50bHkKCSAgYWRkZWQuCgoyMDA4LTExLTE1IDAyOjU2OjMxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguKjogVXNlIGR0cyBmcm9tIEdTVF9CVUZGRVJfT0ZGU0VUX0VORCgpIGZvciB2aWRlby94LXF0LXBhcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4Lmg6CgkgIFVzZSBkdHMgZnJvbSBHU1RfQlVGRkVSX09GRlNFVF9FTkQoKSBmb3IgdmlkZW8veC1xdC1wYXJ0LgoKMjAwOC0xMS0xNCAyMToyNDo1MSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvcXVpY2t0aW1lLzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F1aWNrdGltZS9hdG9tcy5jOgoJICAqIGdzdC9xdWlja3RpbWUvYXRvbXMuaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2Rlc2NyaXB0b3JzLmM6CgkgICogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5oOgoJICAqIGdzdC9xdWlja3RpbWUvZm91cmNjLmg6CgkgICogZ3N0L3F1aWNrdGltZS9mdHlwY2MuaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4LmM6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5oOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXhtYXAuYzoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmg6CgkgICogZ3N0L3F1aWNrdGltZS9wcm9wZXJ0aWVzLmM6CgkgICogZ3N0L3F1aWNrdGltZS9wcm9wZXJ0aWVzLmg6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQuCgoyMDA4LTExLTE0IDIwOjM4OjE4ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9xdWlja3RpbWUvOiBEdWFsIGxpY2Vuc2UgTEdQTC9NSVQsIGFzIGFwcGFyZW50bHkgc3VwcG9zZWQgdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkgICogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5jOgoJICAqIGdzdC9xdWlja3RpbWUvZGVzY3JpcHRvcnMuaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJICAqIGdzdC9xdWlja3RpbWUvZnR5cGNjLmg6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5oOgoJICAqIGdzdC9xdWlja3RpbWUvcHJvcGVydGllcy5jOgoJICAqIGdzdC9xdWlja3RpbWUvcHJvcGVydGllcy5oOgoJICBEdWFsIGxpY2Vuc2UgTEdQTC9NSVQsIGFzIGFwcGFyZW50bHkgc3VwcG9zZWQgdG8uCgoyMDA4LTExLTE0IDIwOjE3OjEwICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9xdWlja3RpbWUvOiBDdXQgZGV0b3VyIGluIHNhbXBsZSBkZXNjcmlwdGlvbiBleHRlbnNpb24gY29uc3RydWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXVpY2t0aW1lL2F0b21zLmM6IChidWlsZF9lc2RzX2V4dGVuc2lvbiksCgkgIChidWlsZF9tb3ZfYWFjX2V4dGVuc2lvbiksIChidWlsZF9qcDJoX2V4dGVuc2lvbiksCgkgIChidWlsZF9jb2RlY19kYXRhX2V4dGVuc2lvbik6CgkgICogZ3N0L3F1aWNrdGltZS9hdG9tcy5oOgoJICAqIGdzdC9xdWlja3RpbWUvZm91cmNjLmg6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOiAoZ3N0X3F0X211eF9hdWRpb19zaW5rX3NldF9jYXBzKSwKCSAgKGdzdF9xdF9tdXhfdmlkZW9fc2lua19zZXRfY2Fwcyk6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5jOiAoZ3N0X3F0X211eF9tYXBfZm9ybWF0X3RvX2hlYWRlcik6CgkgIEN1dCBkZXRvdXIgaW4gc2FtcGxlIGRlc2NyaXB0aW9uIGV4dGVuc2lvbiBjb25zdHJ1Y3Rpb24uCgkgIEFsc28gYWN0dWFsbHkgaW1wbGVtZW50IElTTyBKUEVHMjAwMCBtajIgZm9ybWF0LgoKMjAwOC0xMS0xMSAxOTozMTozNSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICB0ZXN0cy9jaGVjay86IEFkZCB1bml0IHRlc3QgZm9yIHF0bXV4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdG11eC5jOiAoc2V0dXBfc3JjX3BhZCksCgkgICh0ZWFyZG93bl9zcmNfcGFkKSwgKHNldHVwX3F0bXV4KSwgKGNsZWFudXBfcXRtdXgpLAoJICAoY2hlY2tfcXRtdXhfcGFkKSwgKEdTVF9TVEFSVF9URVNUKSwgKHF0bXV4X3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBxdG11eC4KCjIwMDgtMTEtMTEgMTk6MjQ6MTIgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOiBBZGQgc29tZSBtb3JlIHNhZmV0eS9zYW5pdHkgY2hlY2tzIGluIHRhZyBtYW5pcHVsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguYzogKGdzdF9xdF9tdXhfYWRkX21ldGFkYXRhX3RhZ3MpOgoJICBBZGQgc29tZSBtb3JlIHNhZmV0eS9zYW5pdHkgY2hlY2tzIGluIHRhZyBtYW5pcHVsYXRpb24uCgoyMDA4LTExLTA4IDAyOjAwOjU4ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIENvcHkgcXRtdXggZnJvbSByZXZpc2lvbiAxNDggb2YgdGhlIGdzdC1xdG11eCByZXBvc2l0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3NAZ21haWwuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvcXVpY2t0aW1lL01ha2VmaWxlLmFtOgoJICAqIGdzdC9xdWlja3RpbWUvYXRvbXMuYzoKCSAgKiBnc3QvcXVpY2t0aW1lL2F0b21zLmg6CgkgICogZ3N0L3F1aWNrdGltZS9kZXNjcmlwdG9ycy5jOgoJICAqIGdzdC9xdWlja3RpbWUvZGVzY3JpcHRvcnMuaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2ZvdXJjYy5oOgoJICAqIGdzdC9xdWlja3RpbWUvZnR5cGNjLmg6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eC5jOgoJICAqIGdzdC9xdWlja3RpbWUvZ3N0cXRtdXguaDoKCSAgKiBnc3QvcXVpY2t0aW1lL2dzdHF0bXV4bWFwLmM6CgkgICogZ3N0L3F1aWNrdGltZS9nc3RxdG11eG1hcC5oOgoJICAqIGdzdC9xdWlja3RpbWUvcHJvcGVydGllcy5jOgoJICAqIGdzdC9xdWlja3RpbWUvcHJvcGVydGllcy5oOgoJICBDb3B5IHF0bXV4IGZyb20gcmV2aXNpb24gMTQ4IG9mIHRoZSBnc3QtcXRtdXggcmVwb3NpdG9yeS4KCSAgRml4ZXMgIzU1MDI4MC4KCjIwMTEtMDQtMTIgMTg6MjU6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBnc3QvcXRkZW11eC9MRUdBTDoKCSogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5Lmg6CgkqIGdzdC9xdGRlbXV4L3F0YXRvbXBhcnNlci5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC52Y3Byb2o6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuaDoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9sYW5nLmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfbGFuZy5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuaDoKCSogZ3N0L3F0ZGVtdXgvcXRwYWxldHRlLmg6CgkqIGdzdC9xdGRlbXV4L3F1aWNrdGltZS5jOgoJKiBnc3QvcXVpY2t0aW1lL0xFR0FMOgoJKiBnc3QvcXVpY2t0aW1lL01ha2VmaWxlLmFtOgoJKiBnc3QvcXVpY2t0aW1lL2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9xdWlja3RpbWUvZ3N0cnRweHF0ZGVwYXkuaDoKCSogZ3N0L3F1aWNrdGltZS9xdGF0b21wYXJzZXIuaDoKCSogZ3N0L3F1aWNrdGltZS9xdGRlbXV4LmM6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eC5oOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXgudmNwcm9qOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfZHVtcC5jOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfZHVtcC5oOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfZm91cmNjLmg6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eF9sYW5nLmM6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eF9sYW5nLmg6CgkqIGdzdC9xdWlja3RpbWUvcXRkZW11eF90eXBlcy5jOgoJKiBnc3QvcXVpY2t0aW1lL3F0ZGVtdXhfdHlwZXMuaDoKCSogZ3N0L3F1aWNrdGltZS9xdHBhbGV0dGUuaDoKCSogZ3N0L3F1aWNrdGltZS9xdWlja3RpbWUuYzoKCSogcG8vUE9URklMRVMuaW46CgkgIHF0ZGVtdXg6IHJlbmFtZSBkaXJlY3RvcnkgdG8gcXVpY2t0aW1lIHRvIG1hdGNoIHBsdWdpbiBuYW1lCgkgIEluIHByZXBhcmF0aW9uIGZvciBxdG11eCBtb3ZpbmcgdG8gLWdvb2QuCgoyMDExLTA0LTEyIDExOjQ5OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IHNpbXBsaWZ5IGZyYW1lcmF0ZSBmcmFjdGlvbiBjYWxjdWxhdGlvbgoKMjAxMS0wMS0yNCAxNTo0NToyOCAtMDYwMCAgTGVvbmFyZG8gU2FuZG92YWwgPGxzYW5kb3ZhbEB0aS5jb20+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSAgZmx2ZGVtdXg6IGFkZCB3aWR0aCwgaGVpZ2h0IGFuZCBmcmFtZXJhdGUgdG8gY2FwcyB3aGVuIHByZXNlbnQgb24gb25NZXRhRGF0YQoJICBGaXhlcyAjNjQwNDgzLgoKMjAxMC0wOC0yNCAxMzo1Nzo1NSArMDIwMCAgUGFzY2FsIEJ1aGxlciA8cGFzY2FsLmJ1aGxlckB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgcnRwc3NyY2RlbXV4OiBVbmtub3duIFNTUkMgaXMgbm90IGZhdGFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY5NjYKCjIwMTAtMDgtMjQgMTM6NTQ6NTggKzAyMDAgIFBhc2NhbCBCdWhsZXIgPHBhc2NhbC5idWhsZXJAdGFuZGJlcmcuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBOdW1iZXIgb2YgYWN0aXZlIHNvdXJjZXMgc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbmV2ZXIgdGhlIHN0YXR1cyBvZiB0aGUgc291cmNlIGNoYW5nZXMgdG8gYWN0aXZlCgkgIEZvcndhcmQtcG9ydGVkIGJ5IE9saXZpZXIgQ3LDqnRlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY5NjUKCjIwMTAtMDYtMjMgMTE6Mjk6NTggKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwbWFuYWdlcjogaWdub3JlIGEgQllFIGlmIGl0IGlzIHNlbnQgd2l0aCBvdXIgaW50ZXJuYWwgU1NSQwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2OTY0CgoyMDEwLTAxLTI5IDA5OjQ5OjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQWRkcyBtb3JlIGgyNjQgZmllbGRzIHRvIGl0cyBjYXBzCgkgIEFkZHMgYWxpZ25tZW50PWF1IGFuZCBzdHJlYW0tZm9ybWF0PWF2YyB0byBoMjY0IGNhcHMKCSAgRml4ZXMgIzYwNjY2MgoKMjAxMS0wNC0xMSAxMjo0NDoxOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICBqYWNrOiBhbHNvIGhhbmRsZSBkZXByZWNhdGlvbnMgZm9yIGphY2sgMS45LjcKCSAgSmFjayAxLjkuNyB3YXMgcmVsZWFzZWQgMjAuTWFyLjIwMTEsIG5lZWQgdG8gaGFuZGxlIHRoZSBkZXByZWNhdGVkIGFwaSBmb3IgdGhpcwoJICB2ZXJzaW9uIHRvby4KCjIwMTEtMDQtMTAgMTg6NTY6NTIgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQW5kcm9pZC5tazoKCSogYW5kcm9pZC9OT1RJQ0U6CgkqIGFuZHJvaWQvYXBldGFnLm1rOgoJKiBhbmRyb2lkL2F2aS5tazoKCSogYW5kcm9pZC9mbHYubWs6CgkqIGFuZHJvaWQvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLW1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5oOgoJKiBhbmRyb2lkL2dzdC91ZHAvZ3N0dWRwLWVudW10eXBlcy5jOgoJKiBhbmRyb2lkL2dzdC91ZHAvZ3N0dWRwLWVudW10eXBlcy5oOgoJKiBhbmRyb2lkL2dzdC91ZHAvZ3N0dWRwLW1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvdWRwL2dzdHVkcC1tYXJzaGFsLmg6CgkqIGFuZHJvaWQvaWN5ZGVtdXgubWs6CgkqIGFuZHJvaWQvaWQzZGVtdXgubWs6CgkqIGFuZHJvaWQvcXRkZW11eC5tazoKCSogYW5kcm9pZC9ydHAubWs6CgkqIGFuZHJvaWQvcnRwbWFuYWdlci5tazoKCSogYW5kcm9pZC9ydHNwLm1rOgoJKiBhbmRyb2lkL3NvdXAubWs6CgkqIGFuZHJvaWQvdWRwLm1rOgoJKiBhbmRyb2lkL3dhdmVuYy5tazoKCSogYW5kcm9pZC93YXZwYXJzZS5tazoKCSogZ3N0L2FscGhhL01ha2VmaWxlLmFtOgoJKiBnc3QvYXBldGFnL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSogZ3N0L2F1cGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9hdXRvZGV0ZWN0L01ha2VmaWxlLmFtOgoJKiBnc3QvYXZpL01ha2VmaWxlLmFtOgoJKiBnc3QvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVidWd1dGlscy9NYWtlZmlsZS5hbToKCSogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSogZ3N0L2VxdWFsaXplci9NYWtlZmlsZS5hbToKCSogZ3N0L2Zsdi9NYWtlZmlsZS5hbToKCSogZ3N0L2ZseC9NYWtlZmlsZS5hbToKCSogZ3N0L2dvb20vTWFrZWZpbGUuYW06CgkqIGdzdC9nb29tMmsxL01ha2VmaWxlLmFtOgoJKiBnc3QvaWN5ZGVtdXgvTWFrZWZpbGUuYW06CgkqIGdzdC9pZDNkZW11eC9NYWtlZmlsZS5hbToKCSogZ3N0L2ltYWdlZnJlZXplL01ha2VmaWxlLmFtOgoJKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSogZ3N0L2xhdy9NYWtlZmlsZS5hbToKCSogZ3N0L2xldmVsL01ha2VmaWxlLmFtOgoJKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkqIGdzdC9tb25vc2NvcGUvTWFrZWZpbGUuYW06CgkqIGdzdC9tdWx0aWZpbGUvTWFrZWZpbGUuYW06CgkqIGdzdC9tdWx0aXBhcnQvTWFrZWZpbGUuYW06CgkqIGdzdC9xdGRlbXV4L01ha2VmaWxlLmFtOgoJKiBnc3QvcmVwbGF5Z2Fpbi9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHNwL01ha2VmaWxlLmFtOgoJKiBnc3Qvc2hhcGV3aXBlL01ha2VmaWxlLmFtOgoJKiBnc3Qvc21wdGUvTWFrZWZpbGUuYW06CgkqIGdzdC9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSogZ3N0L3VkcC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvYm94L01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9jcm9wL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJKiBnc3Qvd2F2ZW5jL01ha2VmaWxlLmFtOgoJKiBnc3Qvd2F2cGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgIGFuZHJvaWQ6IE1ha2UgaXQgcmVhZHkgZm9yIGFuZHJvZ2VuaXplcgoJICBSZW1vdmUgdGhlIGFuZHJvaWQvIHRvcCBkaXIKCSAgRml4ZSB0aGUgTWFrZWZpbGUuYW0gdG8gYmUgYW5kcm9nZW5pemVkCgkgIFRvIGJ1aWxkIGdzdHJlYW1lciBmb3IgYW5kcm9pZCB3ZSBhcmUgbm93IHVzaW5nIGFuZHJvZ2VuaXplciB3aGljaCBnZW5lcmF0ZXMgdGhlIG5lZWRlZCBBbmRyb2lkLm1rIGZpbGVzLgoJICBBbmRyb2dlbml6ZXIgY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHA6Ly9naXQuY29sbGFib3JhLmNvLnVrLz9wPXVzZXIvZGVyZWsvYW5kcm9nZW5pemVyLmdpdAoKMjAxMS0wNC0wNSAyMToxNDo0MyArMDIwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUBnbWFpbC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGdzdHBheS5jOgoJICBydHBnc3RwYXk6IGRlY2xhcmUgZnJhZ19vZmZzZXQgdG8gaG9sZCAzMmJpdHMuCgkgIEFzIHNwZWNpZmllZCBpbiBkb2N1bWVuYXRpb24gYWJvdmUgYW5kIGJlbG93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2OTU0CgoyMDExLTA0LTA5IDEyOjQxOjQ4ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IGZpeCB3cm9uZ2x5IGFwcGxpZWQgcGF0Y2gKCSAgT2J2aW91c2x5IHJlY3ZfcnRwX3NpbmsgZG9lcyBub3QgaGF2ZSBtdWNoIHRvIGRvIHdpdGggc2VuZF9ydGNwX3NyYy4uLgoJICBTZWUgY29tbWl0IDA0NmZmMTcwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3MjYzCgoyMDExLTA0LTA4IDE1OjU5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHVwZGF0ZSBmb3Igc2V0X2ZyYW1lX3Byb3BzIC0+IHNldF9mcmFtZV9yYXRlIEFQSSBjaGFuZ2UKCjIwMTEtMDQtMDggMDA6MDM6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIHRlc3RzOiBob29rIHVwIGF1ZGlvcGFyc2VyIHVuaXQgdGVzdHMKCjIwMTEtMDQtMDcgMTg6MzA6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICBtcGVnYXVkaW9wYXJzZTogcmVsYXggc3luYyBtYXRjaCBhIGJpdCB3aGVuIGRyYWluaW5nCgkgIC4uLiB0byBhdCBsZWFzdCBhbGxvdyBpbml0aWFsIGNhcHMgY2hhbmdlIChidXQgbm8gZnVydGhlciBjYXBzIGppdHRlcikuCgkgIEZpeGVzIHVuaXQgdGVzdCBhZ2FpbiBhZnRlciBwcmV2aW91cyBjaGFuZ2UuCgoyMDExLTA0LTA3IDE1OjIxOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgY2hhbmdlcyBpbiBnaXQKCjIwMTEtMDQtMDcgMTU6MjA6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3BhcnNlcnMueG1sOgoJICBkb2NzOiBhZGQgYXVkaW9wYXJzZXJzIHRvIGRvY3MKCjIwMTEtMDQtMDcgMTU6MDc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBhYWNwYXJzZSwgYW1ycGFyc2U6IGdzdF9mb29wYXJzZV94eXogLT4gZ3N0X2Zvb19wYXJzZV94eXogdG8gbWF0Y2ggR3N0Rm9vUGFyc2UKCSAgU2VlIG1vdmluZy1wbHVnaW5zIGNoZWNrbGlzdC4KCjIwMTEtMDQtMDcgMTQ6NDM6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvYXVkaW9wYXJzZXJzL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBhdWRpb3BhcnNlcnM6IGhvb2sgdXAgdG8gYnVpbGQKCjIwMTEtMDQtMDcgMTM6MjY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuaDoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IHBvcnQgdG8gbmV3IEdzdEJhc2VQYXJzZSBpbiBjb3JlCgoyMDExLTA0LTA0IDIwOjU1OjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgbXBlZ2F1ZGlvcGFyc2U6IHJlcXVpcmUgdGlnaHRlciBzeW5jIG1hdGNoIHdoZW4gZHJhaW5pbmcKCjIwMTEtMDQtMDEgMTQ6NDc6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmg6CgkgIG1wZWdhdWRpb3BhcnNlOiBQYXJzZSBlbmNvZGVyIGRlbGF5IGFuZCBlbmNvZGVyIHBhZGRpbmcgZnJvbSB0aGUgTEFNRSBoZWFkZXIgaWYgcHJlc2VudAoKMjAxMS0wMy0wOSAyMzowNjoxNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBkY2FwYXJzZTogQnVtcCByYW5rIHRvIHByaW1hcnkrMQoJICBTZWVtcyB0byB3b3JrIGZpbmUgd2l0aCBhIHJlYXNvbmFibHkgd2lkZSByYW5nZSBvZiBtZWRpYSwgc28gYnVtcGluZwoJICByYW5rLgoKMjAxMS0wMy0yMyAyMjowMjozNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuaDoKCSAgZGNhcGFyc2U6IEV4cG9zZSBmcmFtZSBzaXplIGluIGNhcHMKCSAgVGhpcyBleHBvcnRzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSAobnVtYmVyIG9mIGJ5dGVzIGZyb20gb25lIHN5bmMgcG9pbnQKCSAgdG8gdGhlIG5leHQpIGFzIHRoZSAiZnJhbWVfc2l6ZSIgZmllbGQgaW4gY2Fwcy4KCjIwMTEtMDMtMDkgMjM6MDM6MTAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmg6CgkgIGRjYXBhcnNlOiBFeHBvc2UgYmxvY2sgc2l6ZSBpbiBjYXBzCgkgIFRoaXMgc2V0cyB0aGUgImJsb2NrX3NpemUiIGZpZWxkIG9uIGNhcHMgYXMgdGhlIG51bWJlciBvZiBzYW1wbGVzCgkgIGVuY29kZWQgaW4gb25lIGZyYW1lLgoKMjAxMS0wMy0xNiAxNTo1MzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgIG1wZWdhdWRpb3BhcnNlOiBhZGQgRklYTUUgZm9yIG1ha2luZyB0aGUgYmFzZSBjbGFzcyB1c2UgeGluZyBzZWVrIHRhYmxlcyBiZXR0ZXIKCjIwMTEtMDMtMTQgMTg6MjU6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmg6CgkgIGRjYXBhcnNlOiBBZGQgZGVwdGggYW5kIGVuZGlhbm5lc3MgdG8gdGhlIGNhcHMKCSAgU29tZSBkZWNvZGVycyBjYW4gb25seSBoYW5kbGUgc3BlY2lmaWMgZW5kaWFubmVzcyBvciBhIGZpeGVkCgkgIGRlcHRoIGFuZCB0aGlzIGFsbG93cyBiZXR0ZXIgbmVnb3RpYXRpb24uCgkgIEZpeGVzIGJ1ZyAjNjQ0MjA4LgoKMjAxMS0wMi0yNiAxMzo1Mzo0NCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIFJldmVydCAiYWFjcGFyc2U6IGFsbG93IHBhcnNlZCBmcmFtZXMgb24gc2luayBwYWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZTQ5Yjg5ZDVjNWExMjQ0ZmEwZGNiOGJiNDk5NmUzOGZiOWJmZjllNS4KCjIwMTEtMDItMjMgMTc6MjU6MDMgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogYWxsb3cgcGFyc2VkIGZyYW1lcyBvbiBzaW5rIHBhZAoKMjAxMC0xMC0xMyAxNjoxMjowMiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuYzoKCSAgdGVzdHM6IGZpeCBiYXNlcGFyc2UgdGVzdAoKMjAxMC0xMC0xMyAxNTozOTo1NSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuaDoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBDcmVhdGUgYmFzZXBhcnNlIGxpYnJhcnkKCjIwMTEtMDItMDcgMTQ6NDY6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dW5lIFFVRVJZX1NFRUtJTkcgcmVzcG9uc2UKCSAgRXZlbiBpZiB3ZSBjdXJyZW50bHkgZG8gbm90IGhhdmUgYSBkdXJhdGlvbiB5ZXQsIGFzc3VtZSBzZWVrYWJsZSBpZgoJICBpdCBsb29rcyBsaWtlIHdlJ2xsIGxpa2VseSBiZSBhYmxlIHRvIGRldGVybWluZSBpdCBsYXRlciBvbgoJICAod2hpY2ggY29pbmNpZGVzIHdpdGggbmVlZGVkIGluZm9ybWF0aW9uIHRvIHBlcmZvcm0gc2Vla2luZykuCgkgIEZpeGVzICM2NDEwNDcuCgoyMDExLTAyLTA4IDIzOjM5OjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXBkYXRlIG1pbi9tYXggYml0cmF0ZSBiZWZvcmUgZmlyc3QgcG9zdGluZyB0aGVtCgkgIFRoaXMgYXZvaWRzIHBvc3RpbmcgYW4gaW5pdGlhbCBtaW4tYml0cmF0ZSBvZiBHX1VJTlRNQVggYW5kIG1heC1iaXRyYXRlCgkgIG9mIDAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE4NTcKCjIwMTEtMDItMDggMjM6NTA6MTMgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmg6CgkgIG1wZWdhdWRpb3BhcnNlOiBQb3N0IENCUiBiaXRyYXRlIGFzIG5vbWluYWwgYml0cmF0ZQoJICBFdmVuIGlmIFZCUiBoZWFkZXJzIGFyZSBtaXNzaW5nLCB3ZSBjYW4ndCBndWFyYW50ZWUgdGhhdCBhIHN0cmVhbSBpcyBpbgoJICBmYWN0IGEgQ0JSIHN0cmVhbSwgc28gaXQncyBzYWZlciB0byBsZXQgYmFzZXBhcnNlIGNhbGN1bGF0ZSB0aGUgYXZlcmFnZQoJICBiaXRyYXRlIHJhdGhlciB0aGFuIGFzc3VtZSBhIENCUiBzdHJlYW0uIEhvd2V2ZXIsIGluIG9yZGVyIHRvIG1ha2UKCSAgL3NvbWUvIG1ldGFkYXRhIGF2YWlsYWJsZSBiZWZvcmUgdGhlIHJlcXVpc2l0ZSBudW1iZXIgb2YgZnJhbWVzIGhhdmUKCSAgYmVlbiBwYXJzZWQsIHRoaXMgcG9zdHMgdGhlIGJpdHJhdGUgZnJvbSB0aGUgbm9uLVZCUiBoZWFkZXJzIGFzIHRoZQoJICBub21pbmFsIGJpdHJhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE4NTgKCjIwMTAtMDktMDYgMTQ6MTA6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJICBhbXJwYXJzZTogYSB2YWxpZCBhbXItd2IgZnJhbWUgc2hvdWxkIG5vdCBoYXZlIHJlc2VydmVkIGZyYW1lIHR5cGUgaW5kZXgKCSAgU2VlICM2Mzk3MTUuCgoyMDExLTAxLTI3IDE2OjUyOjM0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGltcHJvdmUgaGFuZGxpbmcgb2YgZGVwZW5kZW50IHN1YnN0cmVhbSBmcmFtZXMKCSAgSW4gcGFydGljdWxhciwgdGltZXN0YW1wcyBvZiB0aGVzZSBzaG91bGQgdHJhY2sgbWFpbi1zdHJlYW0gdGltZXN0YW1wcy4KCjIwMTEtMDEtMjEgMTQ6NTM6MzkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dW5lIGRlZmF1bHQgZHVyYXRpb24gZXN0aW1hdGUgdXBkYXRlIGludGVydmFsCgkgIFJhdGhlciB0aGFuIGEgZml4ZWQgZGVmYXVsdCBmcmFtZSBjb3VudCwgZXN0aW1hdGUgZnJhbWUgY291bnQgdG8gYWltIGZvcgoJICBhbiBpbnRlcnZhbCBkdXJhdGlvbiBkZXBlbmRpbmcgb24gZnBzIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVzZSBvbGQKCSAgZml4ZWQgZGVmYXVsdC4KCjIwMTEtMDEtMTQgMTU6MTY6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnNlIHBsYXliYWNrOyBtaW5kIGtleWZyYW1lcyBmb3IgZnJhZ21lbnQgYm91bmRhcnkKCjIwMTEtMDEtMTMgMTU6MjY6MjEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJICBhbXJwYXJzZTogcHJvcGVybHkgY2hlY2sgZm9yIHN1ZmZpY2llbnQgYXZhaWxhYmxlIGRhdGEgcHJpb3IgdG8gYWNjZXNzCgoyMDExLTAxLTEyIDE0OjQwOjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIG5vbi1lbXB0eSBjYW5kaWRhdGUgZnJhbWVzCgoyMDExLTAxLTExIDE1OjI0OjIzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xhcmlmeSBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTEtMDEtMTEgMTU6MjQ6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXJseSB0cmFjayB1cHN0cmVhbSB0aW1lc3RhbXBzCgkgIC4uLiByYXRoZXIgdGhhbiB3aXRoIGEgZGVsYXkuCgoyMDExLTAxLTExIDE1OjIzOjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbmVlZCBwcm9wZXIgZnJhbWUgZHVyYXRpb24gdG8gb2J0YWluIHNlbnNpYmxlIGZyYW1lIGJpdHJhdGUKCjIwMTEtMDEtMTEgMTU6MjI6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wZXIgaW5pdGlhbCB2YWx1ZXMgZm9yIGluZGV4IHRyYWNraW5nIHZhcmlhYmxlcwoKMjAxMS0wMS0xMSAxMjowNToxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFycmFuZ2UgZm9yIGNvbnNpc3RlbnQgZXZlbnQgaGFuZGxpbmcKCjIwMTEtMDEtMTAgMTY6NTk6NTkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBoZWFkZXIgc3R5bGUgY2xlYW5pbmcKCjIwMTEtMDEtMTAgMTc6MDc6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIHNvbWUgbW9yZSBpbml0aWFsIGZyYW1lIG1ldGFkYXRhIGluIHBhcnNlX2ZyYW1lCgkgIC4uLiBhbmQgZG9jdW1lbnQgYWNjb3JkaW5nbHkuCgoyMDExLTAxLTEwIDE2OjU2OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBwYXNzdGhyb3VnaCBpbnRvIGZvcm1hdCBmbGFncwoJICBBbHNvIGFkZCBhIGZvcm1hdCBmbGFnIHRvIHNpZ25hbCBiYXNlcGFyc2UgdGhhdCBzdWJjbGFzcy9mb3JtYXQgY2FuIHByb3ZpZGUKCSAgKHBhcnNlZCkgdGltZXN0YW1wIHJhdGhlciB0aGFuIGFuIGVzdGltYXRlZCBvbmUuICBJbiBwYXJ0aWN1bGFyLCBzdWNoICJzdHJvbmciCgkgIHRpbWVzdGFtcCB0aGVuIGFsbG93cyB0byBlLmcuIGRldGVybWluZSBkdXJhdGlvbi4KCjIwMTEtMDEtMTAgMTU6MzQ6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW50cm9kdWNlIGEgYmFzZXBhcnNlIGZyYW1lIHRvIHNlcnZlIGFzIGNvbnRleHQKCSAgLi4uIGFuZCBhZGp1c3Qgc3ViY2xhc3MgcGFyc2VycyBhY2NvcmRpbmdseQoKMjAxMS0wMS0wNyAxNjozOTo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlc3RyaWN0IGR1cmF0aW9uIHNjYW5uaW5nIHRvIHB1bGwgbW9kZSBhbmQgYXZvaWQgZXh0cmEgc2V0X2NhcHMgY2FsbAoKMjAxMS0wMS0wNyAxNTo1ODo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHVwZGF0ZSBzb21lIGRvY3VtZW50YXRpb24KCSAgQWxzbyBhZGQgc29tZSBtb3JlIGRlYnVnLgoKMjAxMS0wMS0wNiAxMTo0MTo0NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsbG93IGluY3JlYXNpbmcgbWluX3NpemUgZm9yIGN1cnJlbnQgZnJhbWUgcGFyc2luZyBvbmx5CgkgIEFsc28gY2hlY2sgdGhhdCBzdWJjbGFzcyBhY3R1YWxseSBlaXRoZXIgZGlyZWN0cyB0byBza2lwIGJ5dGVzIG9yCgkgIGluY3JlYXNlcyBleHBlY3RlZCBmcmFtZSBzaXplIHRvIGF2b2lkIGdvaW5nIG5vd2hlcmUgaW4gYm9ndXMKCSAgaW5kZWZpbml0ZSBsb29waW5nLgoKMjAxMS0wMS0xNCAxNToyNjozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYWVzcGFyc2U6IGZpeCByZWZhY3RvciByZWdyZXNzaW9uIGluIGxvb3AgYmFzZWQgcGFyc2luZwoKMjAxMS0wMS0wNiAxMToxNjo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBhc3MgYWxsIGF2YWlsYWJsZSBkYXRhIHRvIHN1YmNsYXNzIHJhdGhlciB0aGFuIG1pbmltdW0KCSAgQWxzbyByZWR1Y2Ugc29tZSBhZGFwdGVyIGNhbGxzIGFuZCBhZGQgYSBmZXcgZGVidWcgc3RhdGVtZW50cy4KCjIwMTAtMTItMTAgMTU6NTk6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcmV2ZXJzZSBwbGF5YmFjayBoYW5kbGluZwoKMjAxMC0xMi0xMCAxNDo1NjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHR5cG8gYW5kIGRlYnVnIHN0YXRlbWVudCBjbGVhbnVwCgoyMDEwLTEyLTEwIDE0OjQwOjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVkdWNlIGxvY2tpbmcKCSAgLi4uIHdoaWNoIGlzIGVpdGhlciBhbHJlYWR5IG11dGUgYW5kL29yIGltcGxpY2l0bHkgaGFuZGxlZCBieSBTVFJFQU1fTE9DSy4KCjIwMTEtMDEtMTQgMTQ6MDg6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCBsb29wIGluIGZyYW1lIGxvY2F0aW5nIGludGVycG9sYXRpb24KCjIwMTEtMDEtMTkgMTg6MjY6MzAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBtaW5kIGdzdF9idWZmZXJfdW5yZWYgbm90IGxpa2luZyBOVUxMCgkgIEZpeGVzICM2Mzk5NTAuCgoyMDExLTAxLTE0IDE2OjMwOjExIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogYmFzZXBhcnNlOiBCZSBjYXJlZnVsIHRvIG5vdCBsb3NlIHRoZSBldmVudCByZWYKCSAgRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGlmIGl0IGhhc24ndCBiZWVuIGhhbmRsZWQsIGJlY2F1c2UgdGhlIGNhbGxlcgoJICBhc3N1bWVzIGl0IGlzIHN0aWxsIHZhbGlkIGFuZCBtaWdodCByZXVzZSBpdC4KCSAgSSByYW4gaW50byB0aGlzIHByb2JsZW0gd2hlbiB0cmFuc2NvZGluZyBhbiBBVkkgKHdpdGggbXAzIGluc2lkZSkKCSAgdG8gZ3BwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NTU1CgoyMDExLTAxLTEzIDE3OjEwOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZGNhcGFyc2UuYzoKCSAgZGNhcGFyc2U6IGZpeCBzeW5jIHdvcmQgZm9yIDE0LWJpdCBsaXR0bGUgZW5kaWFuIGNvZGluZwoJICBGaXggY29weSduJ3Bhc3RlIGJ1ZyB0aGF0IG1hZGUgdXMgbG9vayBmb3IgdGhlIHJhdyBsaXR0bGUgZW5kaWFuCgkgIHN5bmMgd29yZCB0d2ljZSBpbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIHRoZSAxNC1iaXQgTEUgc3luYyB3b3JkCgkgIGFzIHdlbGwuIEZpeGVzIHBhcnNpbmcgb2Ygc3VjaCBzdHJlYW1zIChzZWUgIzYzNjIzNCBmb3Igc2FtcGxlIGZpbGUpLgoKMjAxMS0wMS0xMyAxNjoyNzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBiYXNlcGFyc2UgZG9jcy9jb21tZW50IGZpeGVzCgkgIFJlbW92ZSBjb3B5J24ncGFzdGUgbGVmdG92ZXJzLgoKMjAxMS0wMS0wNiAxMjo0OTo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZSBvbiBtYWNvc3gKCjIwMTAtMTItMTMgMTU6MTc6MjkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJICBhYzNwYXJzZTogcmVsYXggYnNpZCBjaGVja2luZwoJICAuLi4gdG8gdGhlIHdpZGVzdCBwb3NzaWJsZSBzcGVjIGludGVycHJldGF0aW9uLgoJICBGaXhlcyAjNjM3MDYyLgoKMjAxMC0xMi0wMyAxODoxMTo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHVwZGF0ZSBzb21lIGRvY3VtZW50YXRpb24KCjIwMTAtMTItMDMgMTg6MTE6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICBtcGVnYXVkaW9wYXJzZTogYWRkIHRvIGRvY3VtZW50YXRpb24KCjIwMTAtMTItMDMgMTg6MTE6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJICBkY2FwYXJzZTogYWRkIHRvIGRvY3VtZW50YXRpb24KCjIwMTAtMTEtMDggMTk6NTg6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbmNyZWFzZSBrZXlmcmFtZSBhd2FyZW5lc3MKCSAgLi4uIHdoaWNoIGlzIG5vdCBwYXJ0aWN1bGFyIHJlbGV2YW50IGZvciBhdWRpbyBwYXJzaW5nLCBidXQgbW9yZSBzbwoJICBpbiB2aWRlbyBjYXNlcy4gIEluIHBhcnRpY3VsYXIsIGF1dG8tZGV0ZXJtaW5lIGlmIGRlYWxpbmcgd2l0aCB2aWRlbyAoY2FwcykuCgoyMDEwLTEyLTAxIDE1OjI4OjUzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5oOgoJICBhYzNwYXJzZTogdXNlIHByb3BlciBFQUMtMyBjYXBzCgoyMDEwLTExLTMwIDE1OjQxOjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXZvaWQgdW5leHBlY3RlZCBzdHJheSBtZXRhZGF0YQoKMjAxMC0xMS0zMCAxNTo0MDoyOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBwcm9wZXIgX05PTkUgb3V0cHV0IHZhbHVlIHdoZW4gYXBwbGljYWJsZQoKMjAxMC0xMS0yNSAxODo1Njo0MiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDEwLTExLTI1IDE3OjE0OjIzICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlOiBmaXggcG9zc2libGUgZGl2aXNpb24tYnktemVybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1Nzg2CgoyMDEwLTExLTE3IDE2OjIzOjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGNvcnJlY3Qgb2Zmc2V0IHdoZW4gYWRkaW5nIGluZGV4IGVudHJ5CgkgIC4uLiBiZWFyaW5nIGluIG1pbmQgdGhhdCBCVUZGRVJfT0ZGU0VUIGlzIG1lZGlhIHNwZWNpZmljIGFuZCBtYXkgbm90CgkgIHJlZmxlY3QgdGhlIGJhc2ljIG9mZnNldCBhZnRlciBoYXZpbmcgYmVlbiBwYXJzZWQuCgoyMDEwLTExLTE3IDE0OjMwOjA5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5oYW5jZW1lbnRzIGZvciB0aW1lc3RhbXAgbWFya2VkIGZyYW1lZCBmb3JtYXRzCgkgIFRoYXQgaXMsIGFzIHN1Y2ggZm9ybWF0cyBhbGxvdyBzdWJjbGFzcyB0byBleHRyYWN0IHBvc2l0aW9uIGZyb20gZnJhbWUsCgkgIGl0IGlzIHBvc3NpYmxlIHRvIGV4dHJhY3QgZHVyYXRpb24gKGlmIG5vdCBvdGhlcndpc2UgcHJvdmlkZWQpCgkgIGZyb20gKG5lYXIpIGxhc3QgZnJhbWUsIGFuZCBhIHNlZWsgY2FuIGZhaXJseSBhY2N1cmF0ZWx5IHRhcmdldCB0aGUgcmVxdWlyZWQKCSAgcG9zaXRpb24uCgkgIEZpeGVzICM2MzEzODkuCgoyMDEwLTExLTE2IDE3OjA2OjE0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgZnJhbWUgc2Nhbm5pbmcgcGVmb3JtZWQgYnkgX2xvb3AKCjIwMTAtMTEtMTYgMTg6MDQ6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzbGlnaHRseSBvcHRpbWl6ZSBzZW5kaW5nIG9mIHBlbmRpbmcgbmV3c2VnbWVudCBldmVudHMKCjIwMTAtMTEtMTYgMTc6MDQ6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtaW5vciBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzCgkgIEFycmFuZ2UgZm9yIHVwc3RyZWFtIGFzIHdlbGwgYXMgZG93bnN0cmVhbSBmbHVzaGluZyB3aGVuIHNlZWtpbmcuCgkgIEFsc28gZGV0ZXJtaW5lIHVwc3RyZWFtIHNpemUgYXMgd2VsbCBhcyBzZWVrYWJpbGl0eS4gIEFkanVzdCBzb21lIGNvbW1lbnRzCgkgIHRvIHJlYWxpdHkgYW5kIGVtcGxveSBkZWJ1ZyBzdGF0ZW1lbnQgaW4gcHJvcGVyIG9yZGVyLgoKMjAxMC0xMS0xNyAxNTozMzozNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBtaW5vciBjbGVhbnVwcwoKMjAxMC0xMS0xNyAxNToyNDozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBmaXggcmVncmVzc2lvbiBpbiBBRElGIHNyYyBjYXBzIHNldHRpbmcKCjIwMTAtMTEtMTYgMTI6MTE6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuaDoKCSAgZmxhY3BhcnNlOiBwYXJzZSBzZWVrdGFibGUKCSAgRml4ZXMgIzYzMTM4OSAocGFydGlhbGx5KS4KCjIwMTAtMTEtMTYgMTI6MDg6NTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBtaW5vciByZWZhY3RvciBhbmQgZW5hYmxlIGRlZmF1bHQgYmFzZXBhcnNlIHNlZ21lbnQgY2xpcHBpbmcKCjIwMTAtMTEtMDkgMTk6Mzg6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICBtcGVnYXVkaW9wYXJzZTogZml4IHNpbGx5IGxlYWsgaW4gX3Jlc2V0CgoyMDEwLTEwLTI5IDE0OjA4OjU4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIG9ubHkgdXBzdHJlYW0gZHVyYXRpb24gaWYgaXQgcHJvdmlkZXMgb25lCgoyMDEwLTEwLTI1IDE0OjE1OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmbG93IHVwZGF0ZV9iaXRyYXRlIGNvZGUKCSAgLi4uIHdoaWNoIG1ha2VzIGxvY2FsIHZhcmlhYmxlcyByZXByZXNlbnQgcmVhbCBzdGF0ZSBiZXR0ZXIsIGFuZCBhdm9pZHMKCSAgdHJpZ2dlcmluZyB1bm5lZWRlZCB1cGRhdGVzL2FjdGlvbnMuCgoyMDEwLTEwLTI1IDE0OjEzOjUxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMC0xMC0xOSAyMzoyNTo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmM6CgkgIGRjYXBhcnNlOiBpbml0IHZhcmlhYmxlIHRvIG1ha2Ugb3N4IGJ1aWxkIGJvdCBoYXBweQoJICBnc3RkY2FwYXJzZS5jOiBJbiBmdW5jdGlvbiAnZ3N0X2RjYV9wYXJzZV9jaGVja192YWxpZF9mcmFtZSc6CgkgIGdzdGRjYXBhcnNlLmM6MjQ2OiB3YXJuaW5nOiAnYmVzdF9zeW5jJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KCjIwMTAtMTAtMTkgMDA6MTU6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RkY2FwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGRjYXBhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkgIGF1ZGlvcGFyc2VyczogYWRkIHZlcnkgYmFzaWMgZHRzL2RjYSBwYXJzZXIKCSAgU3RpbGwgc29tZSBpc3N1ZXMsIGUuZy4gd2l0aCBzZWVrYWJsZSBxdWVyaWVzIGluIHRvdGVtLCBidXQgYWxzbwoJICBwcm9jZXNzaW5nIGFscmVhZHktY2h1bmtlZCBpbnB1dCAoY3JlYXRlZCB3aXRoIG1hdHJvc2thZGVtdXggISBnZHBwYXkpLgoKMjAxMC0xMC0xNCAxNjo0ODoyMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkgIGFjM3BhcnNlOiBwcm9wZXJseSBwYXJzZSBlLWFjMyBmcmFtZSBoZWFkZXIKCSAgQWxzbyBhZGQgYSBmZXcgZGVidWcgc3RhdGVtZW50cy4KCjIwMTAtMTAtMTMgMTE6MDA6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiB0d2VhayBzZXR0aW5nIGJ1ZmZlciBtZXRhZGF0YTsgYXZvaWQgdGltZXN0YW1wIGppdHRlcgoJICBGaXhlcyAjNjMxOTkzLgoKMjAxMC0xMC0xMiAxODowNzo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuaDoKCSAgYWFjcGFyc2U6IHN0cmVhbWxpbmUgc3JjIGNhcHMgc2V0dGluZwoJICBJbiBwYXJ0aWN1bGFyLCBhbHNvIHNldCBzcmMgY2FwcyB3aGVuZXZlciBjaGFuZ2VzIGluIHN0cmVhbSB3YXJyYW50IGRvaW5nIHNvLgoKMjAxMC0xMC0xMiAxMDoyODozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBBZGp1c3QgdW5pdCB0ZXN0cyB0byBuZXcgZmxhY3BhcnNlIGJlaGF2aW91cgoJICBHYXJiYWdlIGFmdGVyIGZyYW1lcyBpcyBub3cgaW5jbHVkZWQgaW4gdGhlIGZyYW1lcyBiZWNhdXNlIGZsYWNwYXJzZQoJICBoYXMgbm8gZWFzeSB3YXkgdG8gZGV0ZWN0IHRoZSByZWFsIGVuZCBvZiBhIGZyYW1lLiBEZWNvZGVycyBhcmUKCSAgZXhwZWN0ZWQgdG8gZXZlcnl0aGluZyBhZnRlciB0aGUgZnJhbWUgYmVjYXVzZSBvbmx5IGRlY29kaW5nIHRoZQoJICBiaXRzdHJlYW0gd2lsbCByZXZlYWwgdGhlIHJlYWwgZW5kIG9mIHRoZSBmcmFtZS4KCSAgRml4ZXMgYnVnICM2MzE4MTQuCgoyMDEwLTEwLTEyIDEwOjI3OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogRG9uJ3QgZHJvcCB0aGUgbGFzdCBmcmFtZSBpZiBpdCBpcyBmb2xsb3dlZCBieSBnYXJiYWdlCgkgIFNlZSBidWcgIzYzMTgxNC4KCjIwMTAtMTAtMTEgMTc6NDk6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwZXJmb3JtIGJpdHJhdGUgaGFuZGxpbmcgYW5kIHBvc3RpbmcgYWZ0ZXIgbmV3c2VnbWVudCBzZW5kaW5nCgoyMDEwLTEwLTExIDE3OjM2OjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1tZWRpYXRlbHkgcG9zdCBzdWJjbGFzcyBwcm92aWRlZCBiaXRyYXRlCgoyMDEwLTEwLTExIDE3OjA2OjQ4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogZml4IHBhcnNpbmcgd2l0aCB1bmtub3duIGZyYW1lc2l6ZXMKCSAgRml4ZXMgIzYzMTgxNCAobW9zdGx5KS4KCjIwMTAtMTAtMDcgMjM6Mzc6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBTaW1wbGlmeSBmcmFtZSBoZWFkZXIgcGFyc2luZyBieSB1c2luZyBsb29rdXAgdGFibGVzCgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnkgRmVsaXBlIENvbnRyZXJhcy4KCSAgU2VlIGJ1ZyAjNjMxMjAwLgoKMjAxMC0xMC0wNyAyMzoyODowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5oOgoJICBmbGFjcGFyc2U6IERvbid0IHBhcnNlIHRoZSBjb21wbGV0ZSBGTEFDIGZyYW1lcyBidXQgb25seSBsb29rIGZvciB2YWxpZCBmcmFtZSBoZWFkZXJzCgkgIFRoYW5rcyB0byBGZWxpcGUgQ29udHJlcmFzIGZvciB0aGUgc3VnZ2VzdGlvbi4gVGhpcyBpcyBwYXJ0aWFsbHkKCSAgYmFzZWQgb24gaGlzIHBhdGNoZXMgYW5kIG1ha2VzIGZsYWNwYXJzZSBtb3JlIHRoYW4gMy41IHRpbWVzIGZhc3Rlci4KCSAgTG9va2luZyBmb3IgdmFsaWQgZnJhbWUgaGVhZGVycyBpcyB1bmxpa2VseSB0byBnaXZlIGZhbHNlIHBvc2l0aXZlcwoJICBiZWNhdXNlIGV2ZXJ5IGZyYW1lIGhlYWRlciBpcyBhdCBsZWFzdCA5IGJ5dGVzIGxvbmcsIGNvbnRhaW5zIGEKCSAgMTQgYml0IHN5bmMgY29kZSBhbmQgYSA4IGJpdCBjaGVja3N1bSBvdmVyIHRoZSBmaXJzdCA4IGJ5dGVzLgoJICBGaXhlcyBidWcgIzYzMTIwMC4KCjIwMTAtMTAtMDYgMTg6MzI6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBSZWFsbHkgcG9zdCB0YWdzIG9ubHkgYWZ0ZXIgdGhlIGluaXRpYWwgbmV3c2VnbWVudCBldmVudAoJICBUaGUgZmlyc3QgbmV3c2VnbWVudCBldmVudCB3aWxsIGJlIHNlbmQgYnkgdGhlIGZpcnN0IGNhbGwgdG8KCSAgZ3N0X2Jhc2VfcGFyc2VfcHVzaF9idWZmZXIoKSBpZiBuZWNlc3NhcnksIHBvc3RpbmcgdGhlIHRhZ3MKCSAgYmVmb3JlIHRoYXQgaXMgbm90IGEgZ29vZCBpZGVhLiBJbnN0ZWFkIGRvIGl0IGZyb20gdGhlCgkgIEdzdEJhc2VQYXJzZTo6cHJlX3B1c2hfYnVmZmVyIHZmdW5jLgoKMjAxMC0xMC0wNSAxMToxNzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogYWRkIHNraXAgcHJvcGVydHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjVhM2Q2MDM2M2Q4MzdhMTBmMDUzM2MxNDFlYzkzZDEwYjc0MjMxMi4KCSAgUmV2ZXJ0aW5nIHRoaXMgZm9yIG5vdywgc2luY2Ugbm8gb25lIHJlYWxseSBzZWVtcyB0byByZW1lbWJlciB3aHkgdGhpcwoJICBwcm9wZXJ0eSBleGlzdHMgb3Igd2hhdCBpdCBjb3VsZCBwb3NzaWJseSBiZSBnb29kIGZvci4gSXQgc2VlbXMgdG8gaGF2ZQoJICBiZWVuIGluIHRoZSBvcmlnaW5hbCBtcDNwYXJzZSBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHRpbWUgYW5kIHdhcyBiYWNrLQoJICBwb3J0ZWQgZnJvbSB0aGVyZS4KCjIwMTAtMTAtMDQgMTA6NDE6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoJICBUaGVzZSB3YXJuaW5ncyBhcmUgd3JvbmcsIHRoZSB2YXJpYWJsZXMgYXJlIG9ubHkgdXNlZCBpZiB0aGV5IHdlcmUKCSAgaW5pdGlhbGl6ZWQgYnkgdGhlIGJpdCByZWFkZXIuCgoyMDEwLTA5LTE0IDAyOjQ4OjU4ICswMzAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogZml4IHBpY3R1cmUgcGFyc2luZwoJICBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCjIwMTAtMTAtMDMgMjM6NTQ6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBQdXNoIHRhZ3MgYmVmb3JlIHRoZSBoZWFkZXIgYnVmZmVycyBhcmUgcHVzaGVkCgoyMDEwLTA4LTAyIDIwOjUwOjIxICswMzAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogdHJpdmlhbCBjYXBzIGZpeAoJICBTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCjIwMTAtMTAtMDMgMjM6NTA6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXI6IExldCB0aGUgZm9ybWF0IHN0cmluZyBhZ3JlZSB3aXRoIHRoZSBwYXJhbWV0ZXJzIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTEwLTAzIDE1OjQxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IFVzZSB1bmNoZWNrZWQgdmVyc2lvbnMgb2YgdGhlIGJpdHJlYWRlciBnZXQgZnVuY3Rpb25zCgkgIFdlIGRpZG4ndCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlcyBhbnl3YXkuLi4KCjIwMTAtMDktMjIgMTU6NDQ6NDMgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggZGVidWcgb3V0cHV0CgkgIFdlIGxvc2UgdGhlIHJlZmVyZW5jZSB0byB0aGUgYnVmZmVyIGFmdGVyIGdzdF9wYWRfcHVzaCgpLCBzbyB0aGUgZGVidWcKCSAgcHJpbnQgc2hvdWxkIGhhcHBlbiBiZWZvcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyNzYKCjIwMTAtMTAtMDEgMTI6MzQ6NTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmxhY3BhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3BhcnNlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuaDoKCSAgYXVkaW9wYXJzZXJzOiBhZGQgZmxhY3BhcnNlIHVuaXQgdGVzdAoJICAuLi4gYW5kIHR3ZWFrIHBhcnNlciB0ZXN0IGhlbHBlciBpbiB0aGUgcHJvY2Vzcy4KCjIwMTAtMDktMjkgMTY6MTI6NDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzdXBwb3J0IHJldmVyc2UgcGxheWJhY2sKCSAgLi4uIGluIHB1bGwgbW9kZSBvciB1cHN0cmVhbSBkcml2ZW4uCgoyMDEwLTA5LTI3IDEyOjE2OjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGRvbmUgVE9ET3MgYW5kIHVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDEwLTA5LTI1IDE0OjQwOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGRldGVybWluZWQgc2Vla2FiaWxpdHkgaW4gYW5zd2VyaW5nIFNFRUtJTkcgcXVlcnkKCjIwMTAtMDktMjUgMTQ6MzI6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc2tpcCBwcm9wZXJ0eQoKMjAxMC0wOS0yNSAxMzo1OTozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hYzNwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tcGVnYXVkaW9wYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGFkZCBhYzNwYXJzZSBhbmQgbXBlZ2F1ZGlvcGFyc2UgdW5pdCB0ZXN0CgoyMDEwLTA5LTI1IDEzOjU5OjE4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RtcGVnYXVkaW9wYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBtcGVnYXVkaW9wYXJzZTogaW5pdGlhbCB2ZXJzaW9uCgkgIC4uLiBhZGVxdWF0ZWx5IGVxdWl2YWxlbnQgdG8gbXAzcGFyc2UsIHNvIGxldHMgYm9sZGx5IHNldCBpdAoJICB0byBoaWdoZXIgcmFuay4KCjIwMTAtMDktMjUgMTQ6MDE6MDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogc2V0IG1pbmltdW0gZnJhbWUgc2l6ZSBhdCBfc3RhcnQKCSAgLi4uIHJhdGhlciB0aGFuIG9uZSB0aW1lIGF0IF9pbml0LgoKMjAxMC0wOS0yNSAxMzo1MDo1MSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hYWNwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hbXJwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9wYXJzZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcGFyc2VyLmg6CgkgIGF1ZGlvcGFyc2VyczogcmVmYWN0b3IgZXhpc3RpbmcgdW5pdCB0ZXN0cyB1c2luZyBjb21tb24gaGVscGVyCgoyMDEwLTA5LTIyIDE1OjA3OjA5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXNlIF9zZXRfZnJhbWVfcHJvcHMgdG8gY29uZmlndXJlIGZyYW1lIGxlYWRfaW4gYW5kIGxlYWRfb3V0CgkgIC4uLiBwcm92aWRlZCBhIGNvcnJlc3BvbmRpbmcgZGVjb2RlciB3aXRoIHN1ZmZpY2llbnQgbGVhZGluZyBhbmQgZm9sbG93aW5nCgkgIGZyYW1lcyB0byBjYXJyeSBvdXQgZnVsbCBkZWNvZGluZyBmb3IgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuCgoyMDEwLTA5LTIyIDE0OjEzOjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIF9zZXRfZHVyYXRpb24gdG8gY29uZmlndXJlIGR1cmF0aW9uIHVwZGF0ZSBpbnRlcnZhbAoJICAuLi4gYXMgaXQgbG9naWNhbGx5IGJlbG9uZ3MgdGhlcmUgYXMgb25lIG9yIHRoZSBvdGhlcjsgZWl0aGVyIHN1YmNsYXNzCgkgIGNhbiBwcm92aWRlIGEgZHVyYXRpb24sIG9yIGFuIGVzdGltYXRlIG11c3QgYmUgbWFkZSAocmVndWFybHkgdXBkYXRlZCkuCgoyMDEwLTA5LTIyIDEzOjU1OjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbG9jYWxpemUgdXNlIG9mIHByb3ZpZGVkIGZwcyBpbmZvcm1hdGlvbgoKMjAxMC0wOS0yMiAxMjoxMzoxMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlZWsgdGFibGUgYW5kIGFjY3VyYXRlIHNlZWsgc3VwcG9ydAoKMjAxMC0wOS0yMSAxMzo1NzoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BlciBhbmQgbW9yZSBleHRlbmRlZCBzZWdtZW50IGFuZCBzZWVrIGhhbmRsaW5nCgkgIFRoYXQgaXMsIGxvb3AgcGF1c2UgaGFuZGxpbmcsIHNlZ21lbnQgc2VlayBzdXBwb3J0LCBuZXdzZWdtZW50IGZvciBnYXBzLCBldGMKCjIwMTAtMDktMjEgMTA6NTc6MDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgaW5kZXggc3VwcG9ydAoKMjAxMC0wOS0yMSAwOTo1OTo1NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIHN0YXRlIHJlc2V0CgoyMDEwLTA5LTIwIDE2OjM5OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBpbmRlZmluaXRlIHJlc3luY2luZwoKMjAxMC0wOS0yMCAxMzo1Nzo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNwZWNpZmljIEVPUyBoYW5kbGluZyBpZiBubyBvdXRwdXQgc28gZmFyCgoyMDEwLTA5LTIwIDEzOjMxOjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRqdXN0IF9zZXRfZnJhbWVfcHJvcCBkb2N1bWVudGF0aW9uIGFuZCBzZXQgZGVmYXVsdCBhcyBjbGFpbWVkCgoyMDEwLTA5LTIwIDEzOjMwOjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGJpdHJhdGUgY29weS1hbmQtcGFzdGUgYW5kIHVwZGF0ZSBoZXVyaXN0aWMKCjIwMTAtMDktMTcgMTg6MzM6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwb3N0IGR1cmF0aW9uIG1lc3NhZ2UgaWYgYXZlcmFnZSBiaXRyYXRlcyBpcyB1cGRhdGVkCgoyMDEwLTA5LTE3IDE4OjI0OjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW1vdmUgaXNfc2Vla2FibGUgdm1ldGhvZCBhbmQgdXNlIGEgc2V0X3NlZWsgaW5zdGVhZAoJICBTZWVrYWJpbGl0eSwgbGlrZSBkdXJhdGlvbiwgZXRjIGlzIHVubGlrZWx5IHRvIGNoYW5nZSAoZnJlcXVlbnRseSksIGFuZAoJICB0aGUgZGVmYXVsdCBhc3N1bXB0aW9uIGNvdmVycyBtb3N0IGNhc2VzLCBzbyBsZXQgc3ViY2xhc3Mgc2V0IHdoZW4gbmVlZGVkLgoJICBBdCB0aGUgc2FtZSB0aW1lLCBhbGxvdyBzdWJjbGFzcyB0byBpbmRpY2F0ZSBpZiBpdCBoYXMgc2Vlay1tZXRhZGF0YSAodGFibGUpCgkgIGF2YWlsYWJsZSwgYW5kIHBvc3NpYmx5IGhhdmUgaXQgcHJvdmlkZSBhbiBhdmVyYWdlIGJpdHJhdGUuCgoyMDEwLTA5LTE3IDE3OjM1OjQwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IHJlbW92ZSByZWR1bmRhbnQgZGVmYXVsdCBpc19zZWVrYWJsZQoKMjAxMC0wOS0xNyAxNzoyMTo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBhbm90aGVyIGhvb2sgZm9yIHN1YmNsYXNzIHByaW9yIHRvIHB1c2hpbmcgYnVmZmVyCgkgIC4uLiBhbmQgYWxsb3cgc3ViY2xhc3MgdG8gcGVyZm9ybSBjdXN0b20gc2VnbWVudCBjbGlwcGluZywgb3IgdG8KCSAgZW1pdCB0YWdzIG9yIG1lc3NhZ2VzIGF0IHRoaXMgdGltZS4KCjIwMTAtMDktMTcgMTc6MTk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiAwIGNvbnZlcnRzIHRvIDAgYnkgZGVmYXVsdAoKMjAxMC0wOS0xNiAxODo1Njo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFzZTogcmVmYWN0b3IgY29udmVyc2lvbiB1c2luZyBoZWxwZXIgZnVuY3Rpb24gYW5kIGV4cG9ydCBkZWZhdWx0IGNvbnZlcnQKCjIwMTAtMDktMTYgMTg6MzU6NDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzdHJlYW1saW5lIHF1ZXJ5IGhhbmRsaW5nCgoyMDEwLTA5LTE2IDExOjUxOjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2xlYW51cCBzdHJ1Y3QgYW5kIHJlbW92ZSB1bnVzZWQgbWVtYmVyCgoyMDEwLTA4LTE2IDExOjA0OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkgIGF1ZGlvcGFyc2VyczogaW5jcmVhc2UgcmFua3MgdG8gZW5hYmxlIGF1dG8tcGx1Z2dpbmcKCSAgQmVjYXVzZSB3ZSBjYW4sIGFuZCBzaG91bGQsIGhhdmUgc29tZSBzaGFrZWRvd24gdGVzdGluZyBiZWZvcmUgaGF2aW5nCgkgIHRoZXNlIG1ha2UgaXQgaW50byAtZ29vZCBsYXRlciBvbiAuLi4KCjIwMTAtMDktMjIgMTY6MDc6MjQgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBbGxvdyBjaGFpbmluZyBvZiBzdWJjbGFzcyBldmVudCBoYW5kbGVycwoJICBUaGlzIGFsbG93cyB0aGUgY2hpbGQgY2xhc3MgdG8gY2hhaW4gaXRzIGV2ZW50IGhhbmRsZXIgd2l0aAoJICBHc3RCYXNlUGFyc2UsIHNvIHRoYXQgc3ViY2xhc3NlcyBkb24ndCBoYXZlIHRvIGR1cGxpY2F0ZSBhbGwgdGhlIGRlZmF1bHQKCSAgZXZlbnQgaGFuZGxpbmcgbG9naWMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyNzYKCjIwMTAtMDgtMjcgMTg6MzU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCB1c2UgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbHNvIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBmb3IgVU5FWFBFQ1RFRCBhbmQgZG8gaXQKCSAgZm9yIE5PVF9MSU5LRUQuCgoyMDEwLTA5LTA2IDE0OjEyOjAwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbm9uLVRJTUUgc2VlayBldmVudCBpcyBzaW1wbHkgbm90IGhhbmRsZWQKCjIwMTAtMDYtMTUgMTU6MzQ6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VlayBldmVudCByZWYgaGFuZGxpbmcKCjIwMTAtMDYtMTUgMTU6MzM6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGFyaXRobWV0aWMgb3ZlcmZsb3dzIGluIHB1bGwgbW9kZSBidWZmZXIgY2FjaGUgaGFuZGxpbmcKCjIwMTAtMDYtMTUgMTU6MzI6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc2VlayBoYW5kbGluZwoJICBBbGxvdyBhIGZldyBtb3JlIHNlZWsgZXZlbnQgdHlwZSBjb21iaW5hdGlvbnMsIGFuZCByZWFsbHkgdXNlIHRoZSByZXN1bHQKCSAgb2YgZ3N0X3NlZ21lbnRfc2V0X3NlZWsgdG8gcGVyZm9ybSB0aGUgc2Vlay4gIEFsc28gYWRkIHNvbWUgZGVidWcuCgoyMDEwLTA0LTEyIDE4OjA3OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYWFjcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYW1ycGFyc2UuYzoKCSAgY2hlY2s6IERvbid0IHJlLWRlY2xhcmUgJ0dMaXN0ICpidWZmZXJzJyBpbiB0aGUgdGVzdHMKCSAgSXQncyBhbiBleHRlcm5hbCB3aGljaCBsaXZlcyBpbiBnc3RjaGVjay5jLiBSZWRlY2xhcmluZyBpdCBtYWtlcyBzb21lCgkgIGNvbXBpbGVycy9hcmNoaXRlY3R1cmVzIHRoaW5rIHRoZSAnYnVmZmVycycgaW4gdGhlIGluZGl2aWR1YWwgdGVzdHMgYXJlCgkgIGEgZGlmZmVyZW50IHN5bWJvbC4uLiBhbmQgdGhlcmVmb3JlIHdlIGVuZCB1cCBjb21wYXJpbmcgaG9sb2RlY2tzIHdpdGgKCSAgb3Jhbmdlcy4KCjIwMTAtMDMtMjYgMTg6NTY6NDkgKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBlbWl0IGJpdHJhdGUgdGFncyB0b28gZWFybHkKCSAgV2Ugd2FpdCB0byBwYXJzZSBhIG1pbmltdW0gbnVtYmVyIG9mIGZyYW1lcyAoMTAsIGFyYml0cmFyaWx5KSBiZWZvcmUKCSAgZW1pdGluZyBiaXRyYXRlIHRhZ3Mgc28gdGhhdCBvdXIgZWFybHkgZXN0aW1hdGVzIGFyZSBub3Qgd2lsZGx5CgkgIGluYWNjdXJhdGUgZm9yIHN0cmVhbXMgdGhhdCBzdGFydCB3aXRoIGEgc2lsZW5jZS4gSWYgdGhlIHN0cmVhbSBlbmRzCgkgIGJlZm9yZSB0aGF0LCB3ZSBqdXN0IGVtaXQgdGhlIHRhZ3MgYW55d2F5LgoJICBXaGlsZSBpdCBfd291bGRfIGJlIG5pY2VyIHRvIGJlIHNwZWNpZnkgdGhlIHRocmVzaG9sZCB0byBzdGFydCBwdXNoaW5nCgkgIHRoZSB0YWdzIGluIHRlcm1zIG9mIGR1cmF0aW9uLCB0aGlzIHdvdWxkIGludHJvZHVjZSBtb3JlIGNvbXBsZXhpdHkgdGhhbgoJICB0aGlzIG1lcml0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDk5MQoKMjAxMC0wMy0yNiAxODo1ODozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5oOgoJICBmbGFjcGFyc2U6IE9wdGlvbmFsbHkgY2hlY2sgdGhlIG92ZXJhbGwgZnJhbWUgY2hlY2tzdW1zIHRvbyBiZWZvcmUgYWNjZXB0aW5nIGEgZnJhbWUgYXMgdmFsaWQKCSAgVGhpcyBpcyBvcHRpb25hbCBiZWNhdXNlIGl0J3MgYSBxdWl0ZSBleHBlbnNpdmUgb3BlcmF0aW9uIGFuZCBpdCdzIHZlcnkKCSAgdW5saWtlbHkgdGhhdCBhIG5vbi1mcmFtZSBpcyBkZXRlY3RlZCBhcyBmcmFtZSBhZnRlciB0aGUgaGVhZGVyIENSQyBjaGVjawoJICBhbmQgY2hlY2tpbmcgYWxsIGJpdHMgZm9yIHZhbGlkIHZhbHVlcy4gVGhlIG92ZXJhbGwgZnJhbWUgY2hlY2tzdW1zIGFyZQoJICBtYWlubHkgdXNlZnVsIHRvIGRldGVjdCBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlIGVuY29kZWQgcGF5bG9hZC4KCjIwMTAtMDMtMjYgMTg6NDI6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBDaGVjayB0aGUgQ1JDLTggb2YgdGhlIGhlYWRlcnMgYmVmb3JlIGFjY2VwdGluZyBhIGZyYW1lIGFzIHZhbGlkCgkgIFRoaXMgbWFrZXMgZmFsc2UtcG9zaXRpdmVzIGR1cmluZyBzZWVraW5nIG11Y2ggbGVzcyBsaWtlbHkgYW5kIGRldGVjdGlvbiBvZgoJICB0aGVtIG11Y2ggZmFzdGVyLgoKMjAxMC0wMy0yNiAxODoyMDoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFNldCB0aGUgbGFzdCBzdG9wIHRvIHRoZSBidWZmZXIgc3RhcnR0aW1lIGlmIHRoZSBkdXJhdGlvbiBpcyBpbnZhbGlkCgkgIC4uLmluc3RlYWQgb2Ygbm90IHNldHRpbmcgaXQgYXQgYWxsLgoKMjAxMC0wMy0yNiAxODoxOTowMCArMDEwMCAgSm9zaHVhIE0uIERvZSA8am9zaEBqb3NoZG9lLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU2VuZCBORVdTRUdNRU5UIGV2ZW50IHdpdGggY29ycmVjdCBzdGFydCBhbmQgcG9zaXRpb24KCSAgSW5zdGVhZCBvZiB0YWtpbmcgdGhlIGxhc3Qgc3RvcCAod2hpY2ggY291bGQgYmUgYnVmZmVyIGVuZHRpbWUgaW5zdGVhZAoJICBvZiBzdGFydHRpbWUpIGFsd2F5cyB0YWtlIHRoZSBidWZmZXIgc3RhcnR0aW1lLgoJICBGaXhlcyBidWcgIzYxNDAxNi4KCjIwMTAtMDMtMjYgMTY6NDk6MDEgKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBGaXggYnVmZmVyIHJlZmNvdW50IGlzc3VlCgkgIFdoZW4gY2FsbGVkIGZyb20gdGhlIEdTVF9GTEFDX1BBUlNFX1NUQVRFX0hFQURFUlMgY2FzZSwKCSAgZ3N0X2ZsYWNfcGFyc2VfaGFuZF9oZWFkZXJzKCkgZG9lcyBhIGdzdF9idWZmZXJfc2V0X2NhcHMoKSBvbiBhIGJ1ZmZlcgoJICB3aXRoIHJlZmNvdW50ID4gMS4gVGhpcyBjaGFuZ2UgaGFuZGxlcyB0aGlzIGNhc2UgYnkgbWFraW5nIHRoZSBidWZmZXIKCSAgbWV0YWRhdGFfV3JpdGFibGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTQwMzcKCjIwMTAtMDMtMjUgMTc6MDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYXVkaW9wYXJzZXJzOiByZW1vdmUgdW51c2VkIEdzdEJhc2VQYXJzZUNsYXNzUHJpdmF0ZSBzdHJ1Y3R1cmUKCjIwMTAtMDMtMjUgMTI6NTU6MDIgKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBNYWtlIGJpdHJhdGUgZXN0aW1hdGlvbiBtb3JlIGFjY3VyYXRlCgkgIFRoaXMgaW1wbGVtZW50cyB0aGUgZ2V0X2ZyYW1lX292ZXJoZWFkKCkgdmZ1bmMgc28gdGhhdCBiYXNlcGFyc2UgY2FuCgkgIG1ha2UgbW9yZSBhY2N1cmF0ZSBiaXRyYXRlIGVzdGltYXRlcy4KCjIwMTAtMDMtMjUgMTE6NDg6NDYgKzAwMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogRml4IGJpdHJhdGUgY2FsY3VsYXRpb24KCSAgVGhpcyBwYXRjaCBhZGRzIHRoZSBnZXRfZnJhbWVfb3ZlcmhlYWQoKSB2ZnVuYyBzbyB0aGF0IGJhc2VwYXJzZSBjYW4KCSAgYWNjdXJhdGVseSBjYWxjdWxhdGUgdGhlIG1pbi9hdmcvbWF4IGJpdHJhdGVzIGZvciBhYWNwYXJzZS4KCSAgTm90ZTogVGhlIGJpdHJhdGUgd2FzIGJlaW5nIGluY29ycmVjdGx5IGNhbGN1bGF0ZWQgZm9yIEFEVFMgc3RyZWFtcwoJICAoaXQncyBub3QgaW4gdGhlIGhlYWRlciBhcyB0aGUgY29kZSBzdWdnZXN0cykuCgoyMDEwLTAzLTI1IDExOjIyOjU4ICswMDAwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogQWRkIGJpdHJhdGUgY2FsY3VsYXRpb24gdG8gYmFzZXBhcnNlCgkgIFRoaXMgbWFrZXMgYmFzZXBhcnNlIGtlZXAgYSBydW5uaW5nIGF2ZXJhZ2Ugb2YgdGhlIHN0cmVhbSBiaXRyYXRlLCBhcwoJICB3ZWxsIGFzIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGJpdHJhdGVzLiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSBhCgkgIHZmdW5jIHRvIG1ha2Ugc3VyZSB0aGF0IHBlci1mcmFtZSBvdmVyaGVhZCBmcm9tIHRoZSBjb250YWluZXIgaXMgbm90CgkgIGFjY291bnRlZCBmb3IgaW4gdGhlIGJpdHJhdGUgY2FsY3VsYXRpb24uCgkgIFdlIHRha2UgY2FyZSBub3QgdG8gb3ZlcnJpZGUgdGhlIGJpdHJhdGUsIG1pbmltdW0tYml0cmF0ZSwgYW5kCgkgIG1heGltdW0tYml0cmF0ZSB0YWdzIGlmIHRoZXkgaGF2ZSBiZWVuIHBvc3RlZCB1cHN0cmVhbS4gV2UgYWxzbwoJICByYXRlLWxpbWl0IHRoZSBlbWlzc2lvbiBvZiBiaXRyYXRlIHNvIHRoYXQgaXQgaXMgb25seSB0cmlnZ2VyZWQgYnkgYQoJICBjaGFuZ2Ugb2YgPjEwIGticHMuCgoyMDEwLTAzLTIyIDE2OjU2OjAzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hbXJwYXJzZS5jOgoJICBBZGQgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgoJICBhbmQgZml4IHRoZSB3YXJuaW5ncwoKMjAxMC0wMy0yMSAyMTozOToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYWFjcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYW1ycGFyc2UuYzoKCSAgQWRkIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgdG8gY29uZmlndXJlIGZsYWdzCgkgIEFuZCBmaXggYWxsIHdhcm5pbmdzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgPT4gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlCgoyMDEwLTAxLTE0IDExOjUwOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVuYW1lIGJhc2VwYXJzZSBHVHlwZSBuYW1lIHRvIGF2b2lkIHBvc3NpYmxlIGNvbmZsaWN0cwoKMjAxMC0wMS0xMiAxODo1NTo1MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogSW5pdGlhbGl6ZSB2YXJpYWJsZXMuCgkgIEZpeGVzIGJ1aWxkIG9uICQjQCooIG1hY29zeAoKMjAxMC0wMS0xMSAyMjo0MTo1NyArMDMwMCAg0PPx6+DtIMjm4fPr4PLu4iA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSAgd2luMzI6IEluY2x1ZGUgY29uZmlnLmggYmVmb3JlIGFueXRoaW5nIGVsc2UuIEZpeCBtcGVnZGVtdXggTElCQURECgkgIEJlY2F1c2UgY29uZmlnLmggZGVmaW5lcyBfX01TVkNSVF9WRVJTSU9OX18sIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkCgkgIGJlZm9yZSBpbmNsdXNpb24gb2YgYW55IHN5c3RlbSBoZWFkZXIuCgkgIEFsc28gZml4ZXMgbXBlZ2RlbXV4IE1ha2VmaWxlLmFtIExJQkFERCB0eXBvLgoJICBGaXhlcyAjNjA2NjY1CgoyMDEwLTAxLTExIDEzOjIwOjI2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IEFsc28gYWRkIHN0cmVhbS1mb3JtYXQgdG8gdGVtcGxhdGUgY2FwcwoJICBEbyBub3QgZm9yZ2V0IHRvIGFkZCBzdHJlYW0tZm9ybWF0IHRvIHRlbXBsYXRlIGNhcHMKCSAgb2ZmIGFhY3BhcnNlCgoyMDEwLTAxLTExIDEzOjEzOjQxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYWFjcGFyc2UuYzoKCSAgUmVuYW1lIGFhYydzIHN0cmVhbS1mb3JtYXQgJ25vbmUnIHRvICdyYXcnCgkgIFJlbmFtZXMgYWFjJ3Mgc3RyZWFtLWZvcm1hdCBmcm9tIHByZXZpb3VzIGNvbW1pdHMgZnJvbSBub25lIHRvCgkgIHJhdwoKMjAxMC0wMS0xMSAxMjoxMDowMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogdXBkYXRlIHRlc3RzIHRvIHN0cmVhbS1mb3JtYXQgY2hhbmdlcwoJICBVcGRhdGVzIGFhY3BhcnNlIHVuaXQgdGVzdHMgdG8gY2hlY2sgZm9yIHN0cmVhbS1mb3JtYXQKCSAgY29ycmVjdG5lc3MgYXMgd2VsbC4KCjIwMTAtMDEtMTEgMTA6NTE6MTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogQWRkIHN0cmVhbS1mb3JtYXQgdG8gb3V0cHV0IGNhcHMKCSAgQWRkcyBzdHJlYW0tZm9ybWF0IGZpZWxkIHRvIG91dHB1dCBjYXBzCgoyMDEwLTAxLTA1IDE1OjA1OjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGRvY3VtZW50YXRpb24gZml4ZXMKCjIwMTAtMDEtMDUgMTU6MDQ6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5jOgoJICBhYzNwYXJzZTogYWRkIGRvY3VtZW50YXRpb24KCjIwMTAtMDEtMDUgMTQ6NDg6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuaDoKCSAgZmxhY3BhcnNlOiBhZGQgZG9jdW1lbnRhdGlvbgoKMjAwOS0xMi0yMSAxODoyOTo0MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IHBlcmZvcm0gYWRkaXRpb25hbCBmcmFtZSBjaGVja3Mgd2hlbiByZXN5bmNpbmcKCjIwMTAtMDEtMDUgMTY6MzU6NTIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBmaXggKG11bHRpcGxlIGNoYW5uZWwpIGZyYW1lIHBhcnNpbmcKCjIwMTAtMDEtMDUgMTY6MzU6NDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RmbGFjcGFyc2UuYzoKCSAgZmxhY3BhcnNlOiBkZWNsYXJlIHVucGFyc2VkIGlucHV0IGFuZCBwYXJzZWQgb3V0cHV0CgoyMDA5LTEyLTIxIDE4OjE5OjIzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGZpeCBzY2FubmluZyBmb3IgbmV4dCBzeW5jd29yZAoKMjAwOS0xMi0yMSAxODoxODozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkanVzdCBzZWVrIGhhbmRsaW5nIGFuZCBuZXdzZWdtZW50IHNlbmRpbmcKCSAgUGVyZm9ybSBzYW5pdHkgY2hlY2sgb24gdHlwZSBvZiBzZWVrLCBhbmQgb25seSBwZXJmb3JtIG9uZSB0aGF0IGlzCgkgIGFwcHJvcHJpYXRlbHkgc3VwcG9ydGVkLiAgQWRqdXN0IGRvd25zdHJlYW0gbmV3c2VnbWVudCBldmVudAoJICB0byBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRoYXQgaXMgc2VudCBkb3duc3RyZWFtLgoKMjAwOS0xMi0yMSAxMTo1OTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1pbm9yIHJlZmFjdG9yIGNsZWFudXAKCSAgQWxzbyBhZGQgc29tZSBkZWJ1ZyBsb2dnaW5nLgoKMjAwOS0xMi0xOCAyMTowNToxMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IGxvY2F0ZSBuZXh0IHN5bmMgY29kZSBtb3JlIGVmZmljaWVudGx5CgoyMDA5LTEyLTE4IDIxOjA0OjEyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkgIGZsYWNwYXJzZTogYmFzZXBhcnNlIHRha2VzIGNhcmUgb2YgaGFuZGxpbmcgbGVmdG92ZXIgcGllY2VzCgoyMDA5LTEyLTE4IDIxOjAyOjQwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wbGVtZW50IGxlZnRvdmVyIGRyYWluaW5nIGluIHB1bGwgbW9kZQoKMjAwOS0xMi0xNyAxMjo0NTozNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGZsYWNwYXJzZS5jOgoJICBmbGFjcGFyc2U6IHNldCBfT0ZGU0VUIGFuZCBfT0ZGU0VUX0VORCBvbiBvdXRnb2luZyBidWZmZXJzCgoyMDA5LTEyLTE3IDEyOjQ0OjIwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0ZmxhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkgIGF1ZGlvcGFyc2VyczogbW92ZSAnZmxhY3BhcnNlJyBpbnRvIGl0CgoyMDA5LTEyLTE2IDE4OjM4OjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvdmlkZSBkZWZhdWx0IGNvbnZlcnNpb24gdXNpbmcgYnBzIGlmIG5vIGZwcyBhdmFpbGFibGUKCSAgQWxzbyBzdG9yZSBlc3RpbWF0ZWQgZHVyYXRpb24gYXMgc3VjaCwgcmF0aGVyIHRoYW4gcHJldGVuZGluZyBvdGhlcndpc2UKCSAgKGUuZy4gc2V0IGJ5IHN1YmNsYXNzKS4KCjIwMDktMTItMTggMTM6MzA6MjkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjaGVjayBmb3IgcmVtYWluaW5nIGRhdGEgd2hlbiBkcmFpbmluZyBpbiBwdXNoIG1vZGUKCjIwMDktMTItMTggMTM6MzA6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggcHVsbCBtb2RlIGNhY2hlIHNpemUgY29tcGFyaXNvbgoKMjAwOS0xMi0xOCAxMzowMToxNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZS4KCjIwMDktMTItMTcgMTQ6NDY6MDEgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkgIFVwZGF0ZSBzcGVjIGZpbGUgYW5kIGZpeCBhYzNwYXJzZXIgaGVhZGVyIGxpc3RpbmcgaW4gTWFrZWZpbGUuYW0KCjIwMDktMTItMTEgMTA6MjU6MTYgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZTogZml4IGEgZm9ybWF0IHN0cmluZyBhcyByZXBvcnRlZCBvbiBpcmMuCgoyMDA5LTExLTIzIDE2OjM0OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGVuc3VyZSBzdWZmaWNpZW50IGRhdGEgYXZhaWxhYmxlIGZvciBwYXJzaW5nCgoyMDA5LTEwLTI5IDE1OjE5OjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGV4dHJhY3QgYW5kIHVzZSBzb21lIG1vcmUgZGV0YWlscyBmb3IgRW5oYW5jZWQgQWMtMyBzdHJlYW1zCgoyMDA5LTEwLTI5IDE1OjE4OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY3VzdG9tIGJ1ZmZlcmZsYWcgaW5kaWNhdGVzIG5vdCB0byBjb3VudCBmcmFtZSBpbiBzdGF0cwoKMjAwOS0xMC0yOCAxNDowODo0MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkgIGFjM3BhcnNlOiBwZXJmb3JtIGFkZGl0aW9uYWwgZnJhbWUgY2hlY2tzIHdoZW4gcmVzeW5jaW5nCgoyMDA5LTEwLTI4IDE0OjA3OjE3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSAgYWMzcGFyc2U6IGluZm9ybSBiYXNlIHBhcnNlciBvZiBmcmFtZSBkdXJhdGlvbgoKMjAwOS0xMC0yNyAxNjoxNjo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFjM3BhcnNlLmM6CgkgIGFjM3BhcnNlOiBpbXByb3ZlIHNyYyBjYXBzIHNldHRpbmdzCgoyMDA5LTExLTI3IDE3OjU5OjAzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YWMzcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYzNwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBhYzNwYXJzZTogaW5pdGlhbCB2ZXJzaW9uCgkgIE1BUkdJTkFMIHJhbmsgZm9yIG5vdzsgbWlnaHQgdGFrZSBzb21lIHRpbWUgZm9yIHNvbWUgKHVzZWZ1bCkKCSAgZnJhbWVkPXRydWUvZmFsc2UgdG8gYXBwZWFyIGhlcmUgYW5kIHRoZXJlLgoKMjAwOS0xMS0yNiAxODozNDo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFtcnBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuaDoKCSAgYW1ycGFyc2U6IHVzZSAoZGVmYXVsdCkgdGltZSBoYW5kbGluZyBvZiBiYXNlcGFyc2VyIGNsYXNzCgoyMDA5LTExLTI2IDE4OjE1OjIxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YW1ycGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhbXJwYXJzZS5oOgoJKiBnc3QvYXVkaW9wYXJzZXJzL3BsdWdpbi5jOgoJICBhdWRpb3BhcnNlcnM6IG1vdmUgJ2FtcnBhcnNlJyBpbnRvIGl0CgoyMDA5LTExLTI3IDE3OjI3OjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVmZXJlbmNlIEdzdEJhc2VQYXJzZSBub3cgbGl2ZXMgaGVyZQoKMjAwOS0xMS0yOCAxODoxMzozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvTWFrZWZpbGUuYW06CgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuaDoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGdzdC9hYWNwYXJzZS9wbHVnaW4uYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGFhY3BhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvcGx1Z2luLmM6CgkgIGF1ZGlvcGFyc2VyczogcmVuYW1lICdhYWNwYXJzZScgcGx1Z2luIHRvIGdlbmVyaWMgJ2F1ZGlvcGFyc2VycycgcGx1Z2luCgoyMDA5LTExLTI2IDE3OjA0OjQzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9wbHVnaW4uYzoKCSAgYWFjcGFyc2U6IHNlcGFyYXRlIHBsdWdpbiByZWdpc3RyYXRpb24gYW5kIHJlbmFtZSBwbHVnaW4KCjIwMDktMTEtMjYgMTc6MDQ6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBlbnN1cmUgc3VmZmljaWVudCBkYXRhIGF2YWlsYWJsZSBiZWZvcmUgYWNjZXNzaW5nCgoyMDA5LTExLTA1IDE0OjMxOjQwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuaDoKCSAgYWFjcGFyc2U6IHVzZSAoZGVmYXVsdCkgdGltZSBoYW5kbGluZyBvZiBiYXNlcGFyc2VyIGNsYXNzCgoyMDA5LTEwLTI5IDE1OjE5OjM1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogZml4dXAgY29tbWVudHMgdG8gQy1zdHlsZQoKMjAwOS0xMC0yOSAxNjowNTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgcGFzc3Rocm91Z2ggbW9kZSB0byBkZWZhdWx0IChkaXNhYmxlZCkgb24gYWN0aXZhdGlvbgoKMjAwOS0xMC0yOSAxNToxNjo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0YWJsZQoKMjAwOS0xMC0yOCAxNDowNjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBmaXgvZW5oYW5jZSBESVNDT05UIG1hcmtpbmcKCSAgSW4gcGFydGljdWxhciwgY29uc2lkZXIgRElTQ09OVCA9PSAhc3luYywgYW5kIGFsbG93IHN1YmNsYXNzIHRvIHF1ZXJ5CgkgIHN5bmMgc3RhdGUsIGFzIGl0IG1heSB3YW50IHRvIHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3MgZGVwZW5kaW5nCgkgIG9uIHdoZXRoZXIgc3luYyB3YXMgYWNoaWV2ZWQgZWFybGllciBvbi4KCSAgQWxzbyBhcnJhbmdlIGZvciBzdWJjbGFzcyB0byBxdWVyeSB3aGV0aGVyIGxlZnRvdmVyIGRhdGEgaXMgYmVpbmcgZHJhaW5lZC4KCjIwMDktMTEtMjMgMTU6NDg6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHRpbWVzdGFtcCBoYW5kbGluZywgYW5kIGRlZmF1bHQgY29udmVyc2lvbgoJICBJbiBwYXJ0aWN1bGFyLCAob3B0aW9uYWxseSkgcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBhIG5vdGlvbiBvZiBmcmFtZXMgcGVyIHNlY29uZAoJICAoYW5kIHRoZXJlZm9yZSBhbHNvIGZyYW1lIGR1cmF0aW9uKSBhbmQgaGF2ZSBpdCB0cmFjayBmcmFtZSBhbmQgYnl0ZSBjb3VudHMuCgkgIFRoaXMgd2F5LCBzdWJjbGFzcyBjYW4gcHJvdmlkZSBiYXNlcGFyc2Ugd2l0aCBmcHMgYW5kIGhhdmUgaXQgcHJvdmlkZSBkZWZhdWx0CgkgIGJ1ZmZlciB0aW1lIG1ldGFkYXRhIGFuZCBjb252ZXJzaW9ucywgdGhvdWdoIHN1YmNsYXNzIGNhbiBzdGlsbCBpbnN0YWxsCgkgIGNhbGxiYWNrcyB0byBoYW5kbGUgc3VjaCBpdHNlbGYuCgoyMDA5LTEwLTI4IDEyOjAyOjAzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb2N1bWVudGF0aW9uIGZpeGVzCgoyMDA5LTEwLTI4IDEyOjAwOjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2VfZml4ZWRfY2FwcyBmb3Igc3JjIHBhZAoJICBBZnRlciBhbGwsIHN0cmVhbSBpcyBhcy1pcywgYW5kIHRoZXJlIGlzIGxpdHRsZSBtb2xkaW5nIHRvIGRvd25zdHJlYW0ncwoJICB0YXN0ZSB0aGF0IGNhbiBiZSBkb25lLiAgSWYgc3ViY2xhc3MgY2FuIGFuZCB3YW50cyB0byBkbyBzbywgaXQgY2FuCgkgIHN0aWxsIG92ZXJyaWRlIGFzIHN1Y2guCgoyMDA5LTExLTIwIDE3OjMyOjEzICswMTAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AZmx1ZW5kby5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBGaXggY29tcGlsYXRpb24gd2FybmluZ3MKCjIwMDktMTAtMTEgMTE6MjI6MTEgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGFhY3BhcnNlOiBmaXggd2FybmluZ3MgaW4gbWFjb3N4IHNub3cgbGVvcGFyZAoKMjAwOS0wOS0yNSAxNzowMjo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGFhY3BhcnNlOiBmb3JlZ28gKGJvZ3VzKSBwYXJzaW5nIG9mIGFscmVhZHkgcGFyc2VkIChyYXcpIGlucHV0CgoyMDA5LTA4LTA3IDEzOjA3OjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGluZmluaXRlIGxvb3Agd2hlbiBkcmFpbmluZwoKMjAwOS0wOC0wNyAxMzowNjoyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDA5LTA3LTE0IDE0OjA4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBhYWNwYXJzZTogQWRkIGZ1bmN0aW9uIGZvciB0aGUgYmFzZXBhcnNlIHN1YmNsYXNzIHRvIHB1c2ggYnVmZmVycyBkb3duc3RyZWFtCgkgIEFsc28gaGFuZGxlIHRoZSBjYXNlIGdyYWNlZnVsbHkgd2hlcmUgdGhlIHN1YmNsYXNzIGRlY2lkZXMgdG8gZHJvcAoJICB0aGUgZmlyc3QgYnVmZmVycyBhbmQgaGFzIG5vIGNhcHMgc2V0IHlldC4gSXQncyBzdGlsbCByZXF1aXJlZCB0bwoJICBoYXZlIHZhbGlkIGNhcHMgc2V0IHdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBzaG91bGQgYmUgcGFzc2VkIGRvd25zdHJlYW0uCgoyMDA5LTA3LTE0IDE0OjA3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc2VlayBldmVudCBsZWFraW5nCgoyMDA5LTA2LTE4IDEyOjEzOjI4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogQURJRjogZG8gbm90IHNlbmQgYm9ndXMgdGltZXN0YW1wcywgbGVhdmUgdG8gZG93bnN0cmVhbSAoZGVjb2RlcikKCjIwMDktMDYtMDEgMTU6NTM6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBmaXggc2FtcGxlIHJhdGUgZXh0cmFjdGlvbiBmcm9tIGNvZGVjIGRhdGEKCSAgSW4gb25lIGNhc2Ugd2UgZXh0cmFjdGVkIHRoZSBzYW1wbGUgcmF0ZSBpbmRleCBmcm9tIHRoZSBjb2RlYyBkYXRhCgkgIGFuZCBzYXZlZCBpdCBhcyBzYW1wbGUgcmF0ZSByYXRoZXIgdGhhbiBnZXR0aW5nIHRoZSByZWFsIHNhbXBsZQoJICByYXRlIGZyb20gdGhlIHRhYmxlLiBGaXggdGhhdCwgYW5kIGFsc28gbWFrZSBzdXJlIHdlIGRvbid0IGFjY2VzcwoJICBub24tZXhpc3RhbnQgdGFibGUgZW50cmllcyBieSBhZGRpbmcgYSBzbWFsbCBoZWxwZXIgZnVuY3Rpb24gdGhhdAoJICBndWFyZHMgYWdhaW5zdCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBjYXNlIG9mIGludmFsaWQgaW5wdXQgZGF0YS4KCjIwMDktMDYtMDEgMTQ6MDI6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlLCBhbXJwYXJzZTogcmVtb3ZlIGJvZ3VzIGdzdF9wYWRfZml4YXRlX2NhcHMoKSBjYWxscwoKMjAwOS0wNi0wMSAxMzo1NjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGFnYXRlIHJldHVybiB2YWx1ZSBvZiBHc3RCYXNlUGFyc2U6OnNldF9zaW5rX2NhcHMoKQoJICBnc3RfYmFzZV9wYXJzZV9zaW5rX3NldGNhcHMoKSBwcmVzdW1hYmx5IHNob3VsZCBmYWlsIGlmIHRoZSBzdWJjbGFzcwoJICByZXR1cm5zIEZBTFNFIGZyb20gaXRzIDo6c2V0X3NpbmtfY2FwcygpIGZ1bmN0aW9uLgoKMjAwOS0wNi0wMSAxMzo0NzowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdHJ5IHRvIEdTVF9MT0cgYW4gYWxyZWFkeS1mcmVlZCBjYXBzIHN0cmluZwoJICBUaGUgcHJvcGVyIHdheSB0byBsb2cgY2FwcyBpcyB2aWEgR1NUX1BUUl9GT1JNQVQgYW55d2F5LgoKMjAwOS0wNi0wMSAxMzowNTozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IHNldCBjaGFubmVscyBhbmQgcmF0ZSBvbiBvdXRwdXQgY2FwcywgYW5kIGtlZXAgY29kZWNfZGF0YQoJICBDcmVhdGUgb3V0cHV0IGNhcHMgZnJvbSBpbnB1dCBjYXBzLCBzbyB3ZSBtYWludGFpbiBhbnkgZmllbGRzIHdlCgkgIG1pZ2h0IGdldCBvbiB0aGUgaW5wdXQgY2Fwcywgc3VjaCBhcyBjb2RlY19kYXRhIG9yIHJhdGUgYW5kIGNoYW5uZWxzLgoJICBTZXQgY2hhbm5lbHMgYW5kIHJhdGUgb24gdGhlIG91dHB1dCBjYXBzIGlmIHdlIGRvbid0IGhhdmUgaW5wdXQgY2FwcwoJICBvciB0aGV5IGRvbid0IGNvbnRhaW4gc3VjaCBmaWVsZHMuIFdlIGRvIHRoaXMgcGFydGx5IGJlY2F1c2Ugd2UgY2FuLAoJICBidXQgYWxzbyBiZWNhdXNlIHNvbWUgbXV4ZXJzIG5lZWQgdGhpcyBpbmZvcm1hdGlvbi4gVGFncmVhZGJpbiB3aWxsCgkgIGFsc28gYmUgaGFwcHkgYWJvdXQgdGhpcy4KCjIwMDktMDUtMjYgMTk6NDM6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBkZWJ1ZyBjYXRlZ29yeQoKMjAwOS0wNC0yNyAyMjozOToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IChyZWdyZXNzaW9uIGluKSBuZXdzZWdtZW50IGhhbmRsaW5nCgkgIChhYWNwYXJzZSwgYW1ycGFyc2UsIGZsYWNwYXJzZSkuICBGaXhlcyAjNTgwMTMzLgoKMjAwOS0wNC0wNyAwNDo1MzowMiArMDMwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc2xpZ2h0bHkgYnJva2VuIGJ1ZmZlci1pbi1zZWdtZW50IGNoZWNrIChhYWNwYXJzZSwgYW1ycGFyc2UsIGZsYWNwYXJzZSkKCjIwMDktMDQtMDUgMDM6NTA6MTkgKzAzMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHB1c2ggbW9kZSBzZWVraW5nIChhYWNwYXJzZSwgYW1ycGFyc2UpCgkgIFNlbmRpbmcgdGhlIGZsdXNoLXN0YXJ0IGV2ZW50IGZvcndhcmQgYmVmb3JlIHRha2luZyB0aGUgc3RyZWFtIGxvY2sgYWN0dWFsbHkKCSAgd29ya3MsIGluIGNvbnRyYXN0IHRvIGRlYWRsb2NraW5nIGluIGRvd25zdHJlYW0gcHJlcm9sbF93YWl0IChodW5rIDEpLgoJICBBZnRlciB0aGF0IHdlIGdldCB0aGUgY2hhaW4gZnVuY3Rpb24gYmVpbmcgc3R1Y2sgaW4gYSBidXN5IGxvb3AuIFRoaXMgaXMgZml4ZWQKCSAgYnkgdXBkYXRpbmcgdGhlIG1pbmltdW0gZnJhbWUgc2l6ZSBpbnNpZGUgdGhlIHN5bmNocm9uaXphdGlvbiBsb29wIGJlY2F1c2UgdGhlCgkgIHN1YmNsYXNzIGFza3MgZm9yIG1vcmUgZGF0YSBpbiB0aGlzIHdheSAoaHVuayAyKS4KCSAgRmluYWxseSwgdGhpcyBsZWFkcyB0byBhIHZlcnkgcHJvYmFibGUgY3Jhc2ggYmVjYXVzZSB0aGUgc3ViY2xhc3MgY2FuIGZpbmQgYQoJICB2YWxpZCBmcmFtZSB3aXRoIGEgc2l6ZSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgZGF0YSBpbiB0aGUKCSAgYWRhcHRlci4gVGhpcyBtYWtlcyB0aGUgc3Vic2VxdWVudCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlciBjYWxsIHJldHVybiBOVUxMLAoJICB3aGljaCBpcyBub3QgZXhwZWN0ZWQgKGh1bmsgMykuCgoyMDA5LTAzLTMxIDE2OjA3OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEZWxheSBuZXdzZWdtZW50IGFzIGxvbmcgYXMgcG9zc2libGUuCgkgIElmIG5ld3NlZ21lbnQgaXMgc2VudCAodG9vKSBlYXJseSwgY2FwcyBtYXkgbm90IHlldCBiZSBmaXhlZC9zZXQsCgkgIGFuZCBkb3duc3RyZWFtIG1heSBub3QgaGF2ZSBiZWVuIGxpbmtlZC4KCjIwMDktMDMtMTkgMDE6MTc6MjUgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzoKCSAgYWFjcGFyc2U6IEZpeCBidXN5bG9vcCB3aGVuIHNlZWtpbmcuIEZpeGVzICM1NzUzODgKCSAgVGhlIHByb2JsZW0gaXMgdGhhdCBhZnRlciBhIGRpc2NvbnQsIHNldF9taW5fZnJhbWVfc2l6ZSgxMDI0KSBpcyBjYWxsZWQgd2hlbgoJICBkZXRlY3Rfc3RyZWFtIHJldHVybnMgRkFMU0UuIEhvd2V2ZXIsIGRldGVjdF9zdHJlYW0gY2FsbHMgY2hlY2tfYWR0c19mcmFtZQoJICB3aGljaCBzZXRzIHRoZSBmcmFtZSBzaXplIG9uIGl0cyBvd24gdG8gc29tZXRoaW5nIGxhcmdlciB0aGFuIDEwMjQuIFRoaXMgaXMgdGhlCgkgIHNhbWUgc2l0dWF0aW9uIGFzIGluIHRoZSBiZWdpbm5pbmcsIHNvIHRoZSBiYXNlIGNsYXNzIGVuZHMgdXAgY2FsbGluZwoJICBjaGVja192YWxpZF9mcmFtZSBpbiBhbiBlbmRsZXNzIGxvb3AuCgoyMDA5LTAzLTE5IDAwOjMyOjQwICswMjAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGFhY3BhcnNlLmM6CgkgIGFhY3BhcnNlOiBSZWZhY3RvciBjaGVja192YWxpZF9mcmFtZSB0byBleHBvc2UgYnJva2VuIGNvZGUKCSAgSnVzdCBtb3ZpbmcgY29kZSBhcm91bmQgYW5kIHJlbW92aW5nIGFuIHVuaGVscGZ1bC9taXNsZWFkaW5nIGNvbW1lbnQuCgoyMDA5LTAyLTI3IDExOjI0OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJ0IGxhc3QgY2hhbmdlIGFuZCBwcm9wZXJseSBmaXgKCSAgQmFzZXBhcnNlIGludGVybmFseSBicmVha3MgdGhlIHNlbWFudGljcyBvZiBhIF9jaGFpbiBmdW5jdGlvbiBieSBjYWxsaW5nIGl0IHdpdGgKCSAgYnVmZmVyPT1OVUxMLiBUaGUgcmVzb24gSSBiZWxpdmVkIGl0IHdhcyBva2F5IHRvIHJlbW92ZSBpdCB3YXMgdGhhdCB0aGVyZSBpcwoJICBhbHNvIGFuIHVuY2hlY2tlZCBhY2Nlc3MgdG8gYnVmZmVyIGxhdGVyIGluIF9jaGFpbi4gQWN0dWFsbHkgdGhhdCBjb2RlIGlzIHdyb25nLAoJICBhcyBpdCBtb3N0IHByb2JhYmx5IHdhbnRzIHRvIHNldCBkaXNjb250IG9uIHRoZSBvdXRnb2luZyBidWZmZXIuCgoyMDA5LTAyLTI2IDExOjAyOjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGNoZWNrcyBmb3IgYnVmZmVyPT1OVUxMCgkgIEFjY29yZGlmbiB0byBkb2NzIGZvciBHc3RQYWRDaGFpbkZ1bmN0aW9uIGJ1ZmZlciBjYW5ub3QgYmUgTlVMTC4gSWYgd2Ugd291bGQKCSAgbGVhdmUgdGhlIGNoZWNrLCB3ZSB3b3VsZCBhbHNvIG5lZWQgbW9yZSBzdWNoIGNoZWNrIGJlbG93LgoKMjAwOS0wMi0xMSAwMDoxNTo0MyArMDIwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJICBhYWNwYXJzZTogRml4IGxpY2Vuc2Ugc3BlY2lmaWVkIGluIHBsdWdpbiBkZXRhaWxzLgoKMjAwOS0wMS0zMCAxODoxODoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIEZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHBhcnNlX2ZyYW1lIGZ1bmN0aW9uLgoJICBGaXggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwYXJzZV9mcmFtZSBmdW5jdGlvbiBpbiBib3RoCgkgIGNvcGllcyBvZiBHc3RCYXNlUGFyc2UKCjIwMDktMDEtMjMgMTY6MDA6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOgoJICBMb2cgYWFjIGRldGFpbHMgZm91bmQgaW4gY29kZWNfZGF0YS4KCjIwMDgtMTEtMTMgMTc6MjQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzogRG9uJ3QgYXV0b3BsdWcgYWFjcGFyc2UgdW50aWwgaXQgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hYWNwYXJzZS9nc3RhYWNwYXJzZS5jOiAocGx1Z2luX2luaXQpOgoJICBEb24ndCBhdXRvcGx1ZyBhYWNwYXJzZSB1bnRpbCBpdCB3b3Jrcy4KCjIwMDgtMTEtMTMgMTU6MjA6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHVuaXQgdGVzdHMgZm9yIG5ldyBwYXJzZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hYWNwYXJzZS5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FtcnBhcnNlLmM6CgkgIEFkZCB1bml0IHRlc3RzIGZvciBuZXcgcGFyc2Vycy4KCjIwMDgtMTEtMTMgMTQ6MjE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCBiYXNlcGFyc2UgdHlwZSBuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBGaXggYmFzZXBhcnNlIHR5cGUgbmFtZS4KCjIwMDgtMTEtMTMgMTI6NTk6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCB0d28gbmV3IGJhc2VwYXJzZSBiYXNlZCBwYXJzZXJzIChhYWMgYW5kIGFtcikgZnJvbSBCdWcgIzUxODg1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9hYWNwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuaDoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICAqIGdzdC9hbXJwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YW1ycGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YW1ycGFyc2UuaDoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBBZGQgdHdvIG5ldyBiYXNlcGFyc2UgYmFzZWQgcGFyc2VycyAoYWFjIGFuZCBhbXIpIGZyb20gQnVnICM1MTg4NTcuCgoyMDExLTAzLTIwIDAxOjA4OjM4ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBNYWtlIHNyY19xdWVyeSBNVC1zYWZlCgkgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGVsZW1lbnQgbWlnaHQgYmUgZ29pbmcgZG93biB3aGlsZSB0aGUgZXZlbnQgYXJyaXZlcwoKMjAxMS0wNC0wOCAxNToyMjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IFVucmVmIGV2ZW50IGlmIHRoZSBwYXJlbnQgZWxlbWVudCBkaXNhcHBlYXJlZAoKMjAxMS0wNC0wOCAxNToyMjoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBVbnJlZiBldmVudCBpZiB0aGUgcGFyZW50IGVsZW1lbnQgZGlzYXBwZWFyZWQKCjIwMTEtMDMtMjEgMTY6MDQ6MzQgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wMy0yMSAxNjowNDozNCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogTWFrZSB1cHN0cmVhbSBldmVudHMgTVQtc2FmZQoKMjAxMS0wNC0wOCAxNToyMDo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHA6IFVucmVmIGV2ZW50cyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgZGlzYXBwZWFyZWQKCjIwMTEtMDEtMDYgMTg6MjQ6MzYgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHBtYW5hZ2VyOiBmaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDEwLTExLTI2IDE1OjIwOjA0ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IG1ha2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBNVC1zYWZlCgoyMDExLTA0LTA4IDE0OjM1OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgUmV2ZXJ0ICJQdWxzZXNpbms6IEFsbG93IGNodW5rcyB1cCB0byBidWZzaXplIGluc3RlYWQgb2Ygc2Vnc2l6ZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxZTJjMTQ2N2FlMDQyYTNjNmJiMWE2YmMwYzA3YWVmZjEzZWM1ZWRiLgoJICBUaGUgY29tbWl0IGNhdXNlcyBwdWxzZXNpbmsgdG8gaWdub3JlIHRoZSBsYXRlbmN5LXRpbWUgYmFzZWF1ZGlvc2luayBwcm9wZXJ0eS4KCjIwMTEtMDQtMDggMTE6MTM6MDcgKzAyMDAgIEFsZXhleSBGaXNoZXIgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuYzoKCSAgcnRwc3BlZXhwYXk6IERvIG5vdCB0cmFuc21pdHQgc2FtcGxlcyB3aXRoIEdBUCBmbGFnCgkgIElmIHdlIGdldCBHQVAgc2FtcGxlcywgdGhlcmUgaXMgbm8gbmVlZCB0byB0cmFuc21pdHQgaXQuCgkgIEluIHNvbWUgc2l0dWF0aW9ucywgbWljcm9waG9uZSBpcyBtdXRlZCwgd2UgY2FuIGRyb3AgbmV0IHRyYWZmaWNrCgkgIHVzYWdlIHRvIH4xIGtiaXQvcy4gV2l0aG91dCBwYXRjaCBpdCB3aWxsIHN0YXkgfjIwIGtiaXQvcwoKMjAxMS0wNC0wOCAxMToxMTo1OCArMDIwMCAgQWxleGV5IEZpc2hlciA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4ZW5jOiBVc2Ugc3BlZXggaW50ZXJuIHNpbGVuY2UgZGV0ZWN0aW9uCgkgIFNwZWV4IGhhcyBidWlsZCBpbiBzaWxlbmNlIGRldGVjdGlvbi4gSWYgc3BlZXhfZW5jb2RlX2ludCByZXR1cm5zIDAsCgkgIHRoYW4gdGhlcmUgaXMgc2lsZW5jZSBhbmQgc2FtcGxlIGRvIG5vdCBuZWVkIHRvIGJlIHRyYW5zbWl0dGVkLgoJICBUaGlzIHdvcmsgb25seSBpZiB2YnI9MSBhbmQgZHR4PTEgb3B0aW9uYXMgYXJlIGVuYWJsZWQuCgkgIFNvIGlmIHdlIGdldCAwLCB3ZSBhZGQgR0FQIGZsYWcgdG8gdGhlIHNhbXBsZS4KCjIwMTEtMDQtMDcgMTk6MDQ6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuYzoKCSAgcnRwOiBwb3J0IHNvbWUgcGF5L2RlcGF5bG9hZGVycwoKMjAxMS0wNC0wNSAxOToxNToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIHVkcHNpbms6IGhhbmRsZSBzY2F0aGVyIGdhdGhlciBmcm9tIGJ1ZmZlcnMKCSAgSXRlcmF0ZSB0aGUgbWVtb3J5IGJsb2NrcyBvbiB0aGUgYnVmZmVyIGFuZCBzZW5kIHRoZW0gdXNpbmcgc2VuZG1zZy4KCjIwMTEtMDQtMDUgMTc6MjY6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHBkZWMuYzoKCSAgcnRwZGVjOiByZXNldCBzdHJ1Y3R1cmUgYmVmb3JlIHVzZQoKMjAxMS0wNC0wNSAxNzoyMDowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmMKCjIwMTEtMDQtMDUgMTc6MTI6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGhhbmRsZSAqIGNvbnRyb2wgY29ycmVjdGx5CgkgIFBhcnNlIHNlc3Npb24gY29udHJvbCBhdHRyaWJ1dGVzIHdoZW4gbm8gbWVkaWEgY29udHJvbCBhdHRyaWJ1dGUgaXMKCSAgcHJlc2VudC4gVGhyZWF0ICogY29udHJvbCBhdHRyaWJ1dGVzIGFzIGFuIGVtcHR5IHN0cmluZywganVzdCBsaWtlIHRoZQoJICBzcGVjIHNheXMuCgkgIEZpeGVzICM2NDY4MDAKCjIwMTEtMDQtMDUgMTc6MDY6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHBkZWMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgcnRzcC91ZHA6IHBvcnQgdG8gMC4xMQoKMjAxMS0wNC0wNSAxNDoyODo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBBZGQgc3VwcG9ydCBmb3IgQS1MYXcgYW5kIMK1LUxhdwoJICBGaXhlcyBidWcgIzY0NjU2Ny4KCjIwMTEtMDQtMDUgMDk6NDQ6MDEgKzAyMDAgIEpvbiBOb3JkYnkgPGpvbm9ub3JAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICBqYWNrOiBGaXggYnVpbGQgd2l0aCBqYWNrIDAuMTIwLjEKCSAgOTU0NDYyMjY3NGMwZDBhMzE0N2E5YjUxMTQ1MTU5YjAyZWVjNjhlOSBjaGVja2VkCgkgIGZvciAwLjEyMC4yIGFuZCBsYXRlciwgYnV0IHRoZSBkZXByZWNhdGlvbiB3YXMgaW50cm9kdWNlZCBpbgoJICAwLjEyMC4xCgoyMDExLTA0LTA1IDExOjEzOjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOgoJICBhdmk6IG1vcmUgcG9ydGluZyB0byAwLjExCgoyMDExLTA0LTA1IDEyOjA1OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwycmFkaW8uaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuYzoKCSAgZG9jczogZml4IGRvY3VlbW50YXRpb24gd2FybmluZ3MgKGFuZCByZWluZGVudCkKCjIwMTEtMDQtMDQgMTk6MTc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aTogcG9ydCB0byAwLjExIEFQSQoKMjAxMS0wNC0wNCAxNzozNDoxNyArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0LmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuaDoKCSAgdmlkZW9taXhlcjogdXBkYXRlIG9yYyBkaXN0IGZpbGVzCgoyMDExLTA0LTA0IDE1OjU3OjEwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFjY2JlMDkgdG8gYzNjYWZlMQoKMjAxMS0wMy0wMSAxNDowODoxMiArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogQWx3YXlzIGNhbGwgcGFfc3RyZWFtX25ld193aXRoX3Byb3BsaXN0KCkKCSAgcGFfc3RyZWFtX25ld193aXRoX3Byb3BsaXN0KCkgY2FuIHRha2UgYSBOVUxMIHByb3BsaXN0LCBzbyB3ZSBkb24ndCBuZWVkCgkgIHRvIGNvbmNlcm4gb3Vyc2VsdmVzIHdpdGggd2hldGhlciBpdCdzIE5VTEwgb3Igbm90LgoKMjAxMS0wNC0wNCAxMTozMzoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHBlcmZvcm0gcG9zdC1mbHVzaCBzdGF0ZSB0cmlja3MgZG93bnN0cmVhbSB0byB1cHN0cmVhbQoJICAuLi4gc28gZG93bnN0cmVhbSBpcyBzZXQgd2hlbiB1cHN0cmVhbSByZXN1bWVzIGRhdGEgZmxvdy4KCjIwMTEtMDQtMDQgMTE6Mjc6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBkaXN0cmlidXRlIG5ldyBiYXNlX3RpbWUgdG8gbWFuYWdlciBjaGlsZHJlbiBmb2xsb3dpbmcgZmx1c2ggc2VlawoJICAuLi4gYnkgZm9yY2luZyBhIHN0YXRlIGNoYW5nZWQgdG8gUExBWUlORywgd2hpY2ggc2hvdWxkIG90aGVyd2lzZSBiZSBhCgkgIG5vLW9wIGFzIGVsZW1lbnRzIHNob3VsZCBhbHJlYWR5IGJlIGluIHRoYXQgc3RhdGUuCgkgIEluIHBhcnRpY3VsYXIsIGppdHRlcmJ1ZmZlciBuZWVkcyBuZXcgYmFzZV90aW1lIGFzIHNvb24gYXMgcG9zc2libGUgdG8gcGVyZm9ybQoJICBwcm9wZXIgdGltaW5nIChlLmcuIGVvcyB0aW1lb3V0IGhhbmRsaW5nKSBhbmQgY2FuJ3Qgd2FpdCBmb3IgdGhlIG5ldyBiYXNlX3RpbWUKCSAgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkIHdoZW4gdGhlIHdob2xlIHBpcGVsaW5lIHJldHVybnMgdG8gUExBWUlORy4KCSAgU2VlIGJ1ZyAjNjQ2Mzk3LgoKMjAxMS0wNC0wNCAxMTozNTo1OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgUmV2ZXJ0ICJqaXR0ZXJidWZmZXI6IHJlc2V0IGVsZW1lbnQgYmFzZV90aW1lIHVwb24gZmx1c2giCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjg0YjhhNjljYmE5YzUzOGY1NTQ2ODY5Y2I0ZWY0NTRhZDVlZmI5ZC4KCSAgRml4ZXMgYnVnICM2NDYzOTcuCgoyMDExLTA0LTA0IDEwOjMxOjQ0ICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHY6IFNwZWNpZnkgdGhlIG9ubHkgcG9zc2libGUgc3RyZWFtLWZvcm1hdCBmb3IgaDI2NCBpbiB0aGUgcGFkIHRlbXBsYXRlcy4KCjIwMTEtMDQtMDQgMTA6MDc6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBDaGVjayBmb3IgaW52YWxpZCAoZW1wdHkpIGNsYXNzaWZpY2F0aW9uIGluZm8gZW50aXR5IHN0cmluZ3MKCSAgT3RoZXJ3aXNlIHRoZSBjbGFzc2lmaWNhdGlvbiBzdHJpbmcgY2FuIGJlIGVtcHR5IGFuZCBnc3RfdGFnX2xpc3RfYWRkKCkgd2lsbAoJICBjb21wbGFpbiBvciBoYXZlIGEgXDAgaW4gdGhlIGZpcnN0IGZvdXIgYnl0ZXMsIHdoaWNoIGlzIHdyb25nIHRvby4KCjIwMTEtMDQtMDQgMTA6MDE6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBZZWFyIDAgaXMgbm90IGEgdmFsaWQgeWVhciBmb3IgR0RhdGUgYW5kIHRoZSBwcm9sZXB0aWMgZ3JlZ29yaWFuIGNhbGVuZGFyCgoyMDExLTA0LTAxIDEzOjE4OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogQWRkIHN1cHBvcnQgZm9yIHdyaXRpbmcgTUVUQURBVEFfQkxPQ0tfUElDVFVSRSBibG9ja3MgZm9yIEdTVF9UQUdfSU1BR0UgYW5kIEdTVF9UQUdfUFJFVklFV19JTUFHRQoKMjAxMS0wNC0wMSAxMTozMzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXJbMl06IFVzZSBvcmNfbWVtc2V0KCkgaW5zdGVhZCBvZiBtZW1zZXQoKQoKMjAxMS0wMS0xOSAxODowNjo0NSAtMDcwMCAgTGFuZSBCcm9va3MgPGRpcmp1ZEBnbWFpbC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuaDoKCSAgdmlkZW9taXhlcjogQWRkIHRyYW5zcGFyZW50IGJhY2tncm91bmQgb3B0aW9uIGZvciBhbHBoYSBjaGFubmVsIGZvcm1hdHMKCjIwMTEtMDEtMTkgMTI6MDc6MTcgLTA3MDAgIExhbmUgQnJvb2tzIDxkaXJqdWRAZ21haWwuY29tPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMub3JjOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5oOgoJICB2aWRlb21peGVyMjogQWRkIHRyYW5zcGFyZW50IGJhY2tncm91bmQgb3B0aW9uIGZvciBhbHBoYSBjaGFubmVsIGZvcm1hdHMKCSAgVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB2aWRlb21peGVyMiBlbGVtZW50IHRvIG91dHB1dCBhIHZhbGlkIGFscGhhCgkgIGNoYW5uZWwgd2hlbiB0aGUgaW5wdXRzIGNvbnRhaW4gYSB2YWxpZCBhbHBoYSBjaGFubmVsLiBUaGlzIGFsbG93cwoJICBtaXhpbmcgdG8gb2NjdXIgaW4gbXVsdGlwbGUgc3RhZ2VzIHNlcmlhbGx5LgoJICBUaGUgZm9sbG93aW5nIHBpcGVsaW5lIHNob3dzIGFuIGV4YW1wbGUgb2Ygc3VjaCBhIHBpcGVsaW5lOgoJICBnc3QtbGF1bmNoIHZpZGVvdGVzdHNyYyBiYWNrZ3JvdW5kLWNvbG9yPTB4MDAwMDAwIHBhdHRlcm49YmFsbCAhIHZpZGVvL3gtcmF3LXl1dixmb3JtYXQ9XChmb3VyY2NcKUFZVVYgISB2aWRlb21peGVyMiBiYWNrZ3JvdW5kPXRyYW5zcGFyZW50IG5hbWU9bWl4MSAhIHZpZGVvbWl4ZXIyIG5hbWU9bWl4MiAhIGZmbXBlZ2NvbG9yc3BhY2UgISBhdXRvdmlkZW9zaW5rICB2aWRlb3Rlc3RzcmMgISB2aWRlby94LXJhdy15dXYsZm9ybWF0PVwoZm91cmNjXClBWVVWICEgbWl4Mi4KCSAgVGhlIGZpcnN0IHZpZGVvdGVzdHNyYyBpbiB0aGlzIHBpcGVsaW5lIGNyZWF0ZXMgYSBtb3ZpbmcgYmFsbCBvbiBhCgkgIHRyYW5zcGFyZW50IGJhY2tncm91bmQuIEl0IGlzIHRoZW4gcGFzc2VkIHRvIHRoZSBmaXJzdCB2aWRlb21peGVyMi4KCSAgUHJldmlvdXNseSwgdGhpcyB2aWRlb21peGVyMiB3b3VsZCBoYXZlIGZvcmNlZCB0aGUgYWxwaGEgY2hhbm5lbCB0bwoJICAxLjAgYW5kIGdpdmVuIGEgYmFja2dyb3VuZCBvZiBjaGVja2VyLCBibGFjaywgb3Igd2hpdGUgdG8gdGhlCgkgIHN0cmVhbS4gV2l0aCB0aGlzIHBhdGNoLCBob3dldmVyLCB5b3UgY2FuIG5vdyBzcGVjaWZ5IHRoZSBiYWNrZ3JvdW5kCgkgIGFzIHRyYW5zcGFyZW50LCBhbmQgdGhlIGFscGhhIGNoYW5uZWwgb2YgdGhlIGlucHV0IHdpbGwgYmUKCSAgcHJlc2VydmVkLiBUaGlzIGFsbG93cyBmb3IgZnVydGhlciBtaXhpbmcgZG93bnN0cmVhbSwgYXMgaXMgc2hvd24gaW4KCSAgdGhlIGFib3ZlIHBpcGVsaW5lIHdoZXJlIHRoZSBhIHNlY29uZCB2aWRlb21peGVyMiBpcyB1c2VkIHRvIG1peCBpbiBhCgkgIGJhY2tncm91bmQgb2YgYW4gc21wdGUgdmlkZW90ZXN0c3JjLiBTbyB0aGUgcmVzdWx0IGlzIGEgYmFsbCBob3ZlcmluZwoJICBvdmVyIHRoZSBzbXB0ZSB0ZXN0IHNvdXJjZS4gVGhpcyBjb3VsZCwgb2YgY291cnNlLCBoYXZlIGJlZW4KCSAgYWNjb21wbGlzaGVkIHdpdGggYSBzaW5nbGUgbWl4ZXIgZWxlbWVudCwgYnV0IHN0YWdlZCBtaXhpbmcgaXMgdXNlZnVsCgkgIHdoZW4gaXQgaXMgbm90IGNvbnZlbmllbnQgdG8gbWl4IGFsbCB2aWRlbyBhdCBvbmNlIChlLmcuIGEgcGlwZWxpbmUKCSAgd2hlcmUgYSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGJpbiBleGlzdCBhbmQgYXJlIG1peGVkIGF0IHRoZSBmaW5hbAoJICBvdXRwdXQsIGJ1dCB0aGUgZm9yZWdyb3VuZCBiaW4gbmVlZHMgYW4gaW50ZXJuYWwgbWl4ZXIgdG8gY3JlYXRlCgkgIHRyYW5zaXRpb25zIGJldHdlZW4gY2xpcHMpLgoJICBGaXhlcyBidWcgIzYzOTk5NC4KCjIwMTEtMDMtMzEgMTM6MjU6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGFsc28gdW5jb3JrIGR1cmluZyBFT1Mgd2FpdGluZyAoYW5kIGFmdGVyIEVPUyBpcyByZW5kZXJlZCkKCSAgUHVsc2VzaW5rIHdhcyByZWNlbnRseSBjaGFuZ2VkIHRvIGRlZmVyIHVuY29ya2luZyB1bnRpbCB0aGVyZSBpcyBkYXRhCgkgIHRvIHdyaXRlLiBUaGlzIGNvbmRpdGlvbiB3aWxsIGhvd2V2ZXIgbmV2ZXIgb2NjdXIgd2hlbiBFT1MgaW4gYmVpbmcKCSAgcmVuZGVyZWQgKHNpbmNlIHRoYXQgbWFya3MgdGhlIGVuZCBvZiBkYXRhKS4gQ2hhbmdpbmcgdG8gUEFVU0VEIHN0YXRlCgkgIHdoaWxlIEVPUyBpcyBiZWluZyB3YWl0ZWQgb24gcmVzdWx0cyBpbiBhIGhhbmc6IHBhdXNpbmcgY29ya3MgdGhlCgkgIHN0cmVhbSwgd2hpY2ggd2lsbCBuZXZlciBiZSB1bmRvbmUgc2luY2UgdGhlcmUgaXMgbm8gbW9yZSBkYXRhIHdoZW4KCSAgZ29pbmcgYmFjayB0byBQTEFZSU5HLiBJZiBwdWxzZXNpbmsgaXMgdGhlIGNsb2NrIHByb3ZpZGVyLCBkZWFkbG9jawoJICBlbnN1ZXMgc2luY2UgdGltZSBkb2Vzbid0IGNvbnRpbnVlIGluIGNvcmtlZCBzdGF0ZSBhbmQgdGhlIGNsb2NrIGlkCgkgIGZvciBFT1Mgd2FpdCBuZXZlciBmaXJlcy4KCSAgRml4ZXMgIzY0NTk2MS4KCjIwMTEtMDMtMjkgMTY6MzM6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwYmluLmM6CgkgIHJ0cGJpbjogRG9uJ3QgdHJ5IHRvIHJlcXVlc3QgdGhlIHNhbWUgcmVxdWVzdCBwYWQgdHdpY2UKCjIwMTEtMDMtMjggMjM6NDY6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIGZsYWNkZWM6IGZpeCBpc3N1ZXMgd2l0aCBsYXJnZSBtZXRhZGF0YSBibG9ja3Mgd2hlbiBzdHJlYW1pbmcgdW5mcmFtZWQgZmxhYwoJICBQYXJzZSBtZXRhZGF0YSBibG9ja3Mgd2hlbiBoYW5kbGluZyB1bnBhcnNlZCBmbGFjIGluIHB1c2ggbW9kZS4gVGhpcwoJICB3b3JrcyBhcm91bmQgYSBidW5jaCBvZiBpc3N1ZXMgd2l0aCB0aGUgZmxhYyBkZWNvZGVyIHdoZW4gaGFuZGxpbmcKCSAgbWV0YWRhdGEgYmxvY2tzIHRoYXQgYXJlIGxhcmdlciB0aGFuIHRoZSBtYXguIGZsYWMgZnJhbWVzaXplLCB3aGljaAoJICBjb3ZlcmFydCBibG9ja3Mgb2Z0ZW4gYXJlLiBXZSBuZWVkIHRvIGhhdmUgYWxsIHRoZSBkYXRhIGZvciB0aGVzZQoJICBibG9ja3MgYXZhaWxhYmxlIHdoZW4gd2UgcGFzcyBkYXRhIHRvIGxpYmZsYWMuCgkgIGh0dHA6Ly9nc3RyZWFtZXItZGV2ZWwuOTY2MTI1Lm40Lm5hYmJsZS5jb20vRmxhYy1maWxlcy10aGF0LXdpbGwtcGxheWJhY2stYnV0LW5vdC1zdHJlYW0tdGQzMzM4MTk4Lmh0bWwjYTMzOTUyNzYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU2Njc2OQoKMjAxMS0wMy0yOCAyMTowNTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4LmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgcGx1Z2luczogcG9ydCB0byBuZXcgbWVtb3J5IEFQSQoKMjAxMS0wMy0yOCAyMDo1MDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEtZmRvCgoyMDExLTAzLTI3IDIxOjM5OjUwICswMjAwICBKYW4gVXJiYcWEc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkgIGZsdmRlbXV4OiBEbyBub3QgYnVpbGQgYW4gaW5kZXggaWYgdXBzdHJlYW0gaXMgbm90IHNlZWthYmxlCgkgIEFuIGluZGV4IGlzIG5vdCB1c2VmdWwgaWYgdXBzdHJlYW0gY2Fubm90IGhhbmRsZSBzZWVrcyBhbmQgYnVpbGRpbmcgaXQKCSAgZm9yIGluZmluaXRlIGZpbGVzLCBmb3IgaW5zdGFuY2UgRkxWIHN0cmVhbXMsIHJlc3VsdHMgaW4gYSBtZW1vcnkgbGVhay4KCjIwMTEtMDMtMjcgMDE6MTk6NTggKzAzMDAgIEFsZXhleSBDaGVybm92IDw0ZXJub3ZAZ21haWwuY29tPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3Y0bDIvZ3N0djRsMi5jOgoJKiBzeXMvdjRsMi9nc3R2NGwycmFkaW8uYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnJhZGlvLmg6CgkgIHY0bDI6IG5ldyB2NGwycmFkaW8gZWxlbWVudCB0byBjb250cm9sIGFuYWxvZyByYWRpbyBkZXZpY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDAxMTgKCjIwMTEtMDMtMjUgMjI6MjI6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxOTNiNzE3IHRvIDFjY2JlMDkKCjIwMTEtMDMtMjUgMTQ6NTY6MDYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjc3ZTJiZiB0byAxOTNiNzE3CgoyMDExLTAzLTI1IDEyOjUzOjQzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvY2Fpcm8vTWFrZWZpbGUuYW06CgkgIGNhaXJvOiBmaXggdGhlIG5hbWUgb2YgdGhlICotbWFyc2hhbGwubGlzdCBmaWxlIHRvIHVuYnJlYWsgbWFrZSBkaXN0Y2hlY2sKCjIwMTEtMDMtMjUgMDk6MzE6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkODgxNGI2IHRvIGI3N2UyYmYKCjIwMTEtMDMtMjUgMDk6MDY6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YWFhMjg2IHRvIGQ4ODE0YjYKCjIwMTEtMDMtMjUgMDA6MTA6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgc3BlY3RydW06IHJlZmFjdG9yIHByb2Nlc3NpbmcgbG9vcCBmb3IgYmxvY2sgYmFzZWQgb3BlcmF0aW9uCgkgIFByZXZpb3VzbHkgdGhlIGNoYWluIGZ1bmN0aW9uIHdhcyB3b3JraW5nIHNhbXBsZSBmcmFtZSBiYXNlZC4gSW4gZWFjaCBjeWNsZSBpdAoJICB3YXMgY2hlY2tpbmcgaWYgaXQgaXMgdGltZSB0byBydW4gYSBmZnQgb3IgaWYgaXQgaXMgdGltZSB0byBzZW5kIGEgbWVzc2FnZS4KCSAgTm93IHdlIGNoYW5nZWQgdGhlIGRhdGEgdHJhbnNmb3JtIGZ1bmN0aW9ucyB0byB3b3JrIG9uIGEgYmxvY2sgb2YgZGF0YSBhbmQKCSAgY2FsY3VsYXRlIHRoZSBtYXggbGVuZ3RoIHVudGlsIGVpdGhlciB7ZW5kLW9mLWRhdGEsIGRvLWZmdCwgZG8tbXNnfS4gVGhpcyBhbGxvd3MKCSAgdXMgYWxzbyB0byBhdm9pZCB0aGUgZHVwbGljYXRlZCBjb2RlIGZvciB0aGUgc2luZ2xlIGFuZCBtdWx0aS1jaGFubmVsIGNhc2UgKGFzCgkgIHRoZSB0cmFuc2Zvcm1lcnMgaGF2ZSB0aGUgc2FtZSBzaWduYXR1cmUgbm93KS4KCjIwMTEtMDMtMjQgMjM6NDc6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgamFjazogdW5icmVhayB0aGUgYnVpbGQgZm9yIGphY2syIHVzZXJzCgkgIEphY2syICh2ZXJzaW9ucyAxLlguWCkgZG9lcyBvbmx5IGhhdmUgdGhhdCBBUEkgaW4gc3ZuLiBMaW1taXQgdGhlIHVzZSBvZiB0aGUgbmV3CgkgIEFQSSBmb3IgamFjazEgdmVyc2lvbnMuCgoyMDExLTAzLTI0IDE4OjQ5OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZhZWM2YjkgdG8gNmFhYTI4NgoKMjAxMS0wMy0yNCAxNDoxNDowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiBmaXggdGhlIGVycm9yIGFjY3VtdWxhdGlvbiBhbmQgZnJhbWVzX3RvZG8gaGFuZGxpbmcKCSAgRXZlbiB0aG91Z2ggd2Ugd3JhcCBhcm91bmQgdGhlIGFjY3VtdWxhdGVkIHNlY29uZCwgd2Ugc3RpbGwgbmVlZCB0byBhZGQgdGhlCgkgIGVycm9yIGluIHRoZSBzYW1lIGN5Y2xlLiBJbmNyZWFzZSB0aGUgdG9kbyBpbiB0aGUgc2FtZSBjb25kaXRpb25hbCBhcyBhZnRlcndhcmRzCgkgIHRoZSBhY2N1bXVsYXRlZCBlcnJvciB3aWxsIGJlIGJlbG93IG9uZSBzZWNvbmQuCgoyMDExLTAzLTI0IDEzOjUzOjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IGZpeCBicm9rZW4gY29kZSByZXN1bHRpbmcgZm9yIGEgd3Jvbmcgc3BsaXR1cCBvZiBjaGFuZ2VzCgoyMDExLTAzLTIyIDE2OjI5OjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmg6CgkgIHNwZWN0cnVtOiBzaW1wbGlmeSB0aGUgaGF2ZV9pbnRlcnZhbCBjYWxjdWxhdGlvbgoJICBNb3ZlIHNvbWUgb2YgdGhlIGNvbmRpdGlvbnMgdG8gdGhlIHBsYWNlcyB3aGVyZSB0aGUgZGVwZW5kZW50IHZhcmlhYmxlcyBjaGFuZ2UuCgoyMDExLTAzLTIyIDE2OjI2OjQ1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IHVzZSBsb2NhbCB2YXIgZm9yIGlucHV0X2RhdGEgZnVuY3Rpb24KCSAgQXZvaWQgZGVyZWZlcmVuY2luZyB0aGUgaW5wdXRfZGF0YSBmcm9tIHRoZSBpbnN0YW5jZSBmcm9tIHdpdGhpbiBhbiBpbm5lciBsb29wLgoKMjAxMS0wMy0yMyAxNjozNDoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmg6CgkgIHNwZWV4ZGVjOiBHZXQgYW5kIHVzZSBzdHJlYW1oZWFkZXIgZnJvbSB0aGUgY2FwcyBpZiBwb3NzaWJsZQoJICBUaGlzIGFsbG93cyBwbGF5YmFjayBvZiBzdHJlYW1zIHdoZXJlIHRoZSBzdHJlYW1oZWFkZXIgYnVmZmVycwoJICB3ZXJlIGRyb3BwZWQgZnJvbSB0aGUgc3RyZWFtIGZvciBzb21lIHJlYXNvbi4KCjIwMTEtMDMtMjIgMTk6MzY6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiB1c2UgcnVubmluZyB0aW1lIGZvciBzeW5jaHJvbml6YXRpb24KCSAgRml4ZXMgIzQzMjYxMi4KCjIwMTEtMDMtMjIgMTk6MzY6MjEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogdXNlIHJ1bm5pbmcgdGltZSBmb3Igc3luY2hyb25pemF0aW9uCgkgIEZpeGVzICM0MzI2MTIuCgoyMDExLTAzLTIyIDE5OjM1OjU4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogdXNlIHJ1bm5pbmcgdGltZSBmb3Igc3luY2hyb25pemF0aW9uCgkgIFNlZSBidWcgIzQzMjYxMi4KCjIwMTEtMDMtMjIgMTI6NTM6MjIgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogcmVkdW5kYW50IHVzZXMgb2YgQUNfTVNHX1JFU1VMVCgpCgkgIGNsZWFuZWQgdGhlIHJlZHVuZGFudCB1c2VzIG9mIEFDX01TR19SRVNVTFQoKSBpbiBjb25maWd1cmUuYWMKCjIwMTEtMDMtMTggMTk6MzQ6NTcgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuOiB3aW5nbyBzaWduZWQgY29tbWVudAoKMjAxMS0wMy0xNiAxMDo0Mzo0NyArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICBqYWNrYXVkaW9zaW5rOiBGaXggdHlwbyBmcm9tIDk1NDQ2MjI2NzRjMGQwYTMxNDdhOWI1MTE0NTE1OWIwMmVlYzY4ZTkKCjIwMTEtMDMtMTYgMDk6Mzg6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2E6IE1hcmsgdGFnIG1hcHBpbmcgdGFibGVzIGFzIHN0YXRpYyBjb25zdAoKMjAxMS0wMy0xNiAwOTozNzo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBVc2UgQVJUSVNUIGluc3RlYWQgb2YgQVVUSE9SIGZvciBHU1RfVEFHX0FSVElTVAoKMjAxMS0wMy0xNiAwOTozNTo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBtYXRyb3NrYWRlbXV4OiBVc2UgQVJUSVNUIE1hdHJvc2thIHRhZyBpbnN0ZWFkIG9mIEFVVEhPUiBmb3IgR1NUX1RBR19BUlRJU1QKCSAgQVVUSE9SIG9ubHkgZXhpc3RlZCBpbiBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgc3BlYyBhbmQgQVJUSVNUIGlzCgkgIHRoZSBuZXcgcmVwbGFjZW1lbnQgZm9yIHRoaXMuIFdlIGFyZSBzdGlsbCByZWFkaW5nIGJvdGggdG8gc3RpbGwKCSAgYmUgY29tcGF0aWJsZSB3aXRoIG9sZCBmaWxlcy4KCSAgRml4ZXMgYnVnICM2NDQ4NzUuCgoyMDExLTAzLTE1IDIwOjE5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgIHRlc3RzOiBlbmFibGUgbW9yZSBmb3JtYXRzIGluIHZpZGVvZmlsdGVyIHVuaXQgdGVzdCwgY2hlY2sgbW9yZSByZXNvbHV0aW9ucwoKMjAxMS0wMy0xNCAxOToxNDowNyAtMDQwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgdmlkZW9mbGlwOiBGaXggYnVmZmVyIG92ZXJmbG93IGJ1ZyBmb3Igb2RkIHJlc29sdXRpb25zIGFuZCBZNDIyIGNvbG9yc3BhY2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ3NzMKCjIwMTEtMDMtMTUgMTk6MzY6MDEgKzAyMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkgIHNwZWV4ZGVjOiBzaWxlbmNlIHdhcm5pbmcgbWVzc2FnZSB3aGVuIGFwcHJvcHJpYXRlCgkgIElmIHdlIGRpZCBub3Qga25vdyBob3cgbWFueSBmcmFtZXMgdG8gZXhwZWN0LCB0aGVuIHdlIGdldCBhbiB1bmV4cGVjdGVkCgkgIGVuZCBvZiBzdHJlYW0gd2hlbiB0cnlpbmcgdG8gZGVjb2RlIG1vcmUgZnJhbWVzIHRoYXQgYXJlIHRoZXJlLCBpZiB0aGVyZQoJICBhcmUgbGVmdG92ZXIgYml0cyB0byBwYWQgdG8gdGhlIG5leHQgYnl0ZQoKMjAxMS0wMy0xNCAxOToxNDowNyAtMDQwMCAgWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgdmlkZW9mbGlwOiBBZGQgc3VwcG9ydCBmb3IgWVVZMiwgVVZZViBhbmQgWVZZVSBjb2xvcnNwYWNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0NzczCgoyMDExLTAzLTE1IDA5OjQzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgIHRlc3RzOiBpbiB2aWRlb2ZpbHRlciB1bml0IHRlc3QgYWxzbyBjaGVjayB3aXRoICdvZGQnIHdpZHRocyBhbmQgaGVpZ2h0cwoJICBBbmQgb25seSB1c2Ugb25lIHRlc3Qgc3VpdGUuCgoyMDExLTAzLTE0IDE5OjI4OjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJICBzcGVleGRlYzogQWx3YXlzIHByb2Nlc3MgdGhlIG51bWJlciBvZiBmcmFtZXMgcGVyIHBhY2tldCBhcyBzcGVjaWZpZWQgaW4gdGhlIGhlYWRlcgoJICBMb29raW5nIGF0IHRoZSByZW1haW5pbmcgYml0cyBpbiB0aGUgYml0c3RyZWFtIGFmdGVyIGRlY29kaW5nIGEKCSAgc2luZ2xlIGZyYW1lIGNhbid0IGJlIHVzZWQgYXMgbG9vcCBjb25kaXRpb24uIFRoZSByZW1haW5pbmcKCSAgYml0cyBtaWdodCBub3QgZ2l2ZSBhIGNvbXBsZXRlIGZyYW1lIGFuZCB0aGUgc3BlZXggZGVjb2RlciB3aWxsCgkgIHRoZW4gb3V0cHV0IG5vdGhpbmcgYnV0IGFjY2VzcyB1bmluaXRpYWxpemVkIG1lbW9yeSwgd2hpY2ggbGVhZHMKCSAgdG8gdmFsZ3JpbmQgd2FybmluZ3MuCgkgIEZpeGVzIGJ1ZyAjNjQ0NjY5LgoKMjAxMS0wMy0xNCAxNTo0Njo1MCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogcmV0dXJuIFRSVUUgZnJvbSBzaW5rIHBhZCBldmVudCBmdW5jdGlvbiBmb3IgdGFnIGV2ZW50cywgd2hpY2ggYXJlIGhhbmRsZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDczMAoKMjAxMS0wMy0xMiAwMDo0NDozMSArMDUzMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBCZXR0ZXIgZml4IGZvciBkZWFkbG9jayBvbiBmYWlsZWQgY29ubmVjdAoJICBUaGlzIHJldmVydHMgdGhlIHByZXZpb3VzIGZpeCB0aGF0IHdvdWxkIGNhdXNlIGEgZG91YmxlLXVubG9jayB3aGVuIHRoZQoJICBzdHJlYW0gY29ubmVjdCBmYWlsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ1MTAKCjIwMTEtMDMtMTEgMjM6MDY6MzEgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IEZpeCBkZWFkbG9jayBpZiBjb25uZWN0aW5nIHRvIFBBIGZhaWxzCgkgIENvbW1pdCBkZDRlYzIyZSBpbnRyb2R1Y2VkIGEgZGVhZGxvY2sgaW4gdGhlIGZhaWx1cmUgcGF0aCB3aGlsZSB0cnlpbmcKCSAgdG8gY29ubmVjdCB0byBQdWxzZUF1ZGlvLiBUaGlzIG1ha2VzIHN1cmUgd2UgZHJvcCB0aGUgbG9jayBvbiB0aGUKCSAgcmVzb3VyY2UgbXV0ZXggdG8gYXZvaWQgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDUxMAoKMjAxMS0wMy0xMSAxNjo1OToxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBvcmRlciBzdGF0ZS10ZXN0IGJsYWNrbGlzdCBhbmQgYWRkIGphY2sgZWxlbWVudHMKCSAgSmFjayBhdWRpbyBzcmMvc2luayBlbGVtZW50cyByZWNlbnRseSBnb3QgbW92ZWQgZnJvbSBiYWQgYW5kIHNob3VsZCBiZSBleGNsdWRlZAoJICBmcm9tIHRoZSB0ZXN0IChsaWtlIHRoZSBvdGhlciBkZXZpY2Ugc3BlY2lmaWMgc291cmNlIGFuZCBzaW5rcykuCgkgIEZpeGVzICM2NDQyODgKCjIwMTEtMDMtMTEgMTM6NDc6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSAgZHZkZW11eDogQ2hhaW4gdXAgdG8gdGhlIHBhcmVudCBjbGFzcycgOjpzZW5kX2V2ZW50IGZvciBub24tc2VlayBldmVudHMKCjIwMTEtMDMtMTEgMTM6NDY6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSAgZHZkZW11eDogRml4IHJlZmNvdW50IGlzc3VlcyB3aXRoIHRoZSBzZWVrIGV2ZW50CgkgIEZpeGVzIGJ1ZyAjNjQyOTYzLgoKMjAxMS0wMy0xMSAwOTo1NDowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIGRvY3M6IGZpeCBwdWxzZXNpbmsgZ3RrLWRvYyBtYXJrdXAKCjIwMTEtMDMtMTEgMTA6Mjk6MDggKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IGZpeCBidWlsZCBhZ2FpbnN0IGphY2sgMC4xMjAuMgoJICBqYWNrX3BvcnRfZ2V0X3RvdGFsX2xhdGVuY3koKSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mCgkgIGphY2tfcG9ydF9nZXRfbGF0ZW5jeV9yYW5nZSgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0NDc3CgoyMDExLTAzLTEwIDE0OjI5OjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IG1vcmUgY29tbWVudHMgYW5kIHR1bmUgYW5kIGxvZ2dpbmcKCjIwMTEtMDMtMTAgMTQ6MTU6NDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICBzcGVjdHJ1bTogYXZvaWQgdW5uZWNjZXNhcnkgZXh0cmEgZmZ0IHJ1bnMKCSAgQmVmb3JlIGl0IHdhcyBwb3NzaWJsZSB0aGF0IHdlIHJ1biBhbiBleHRyYSBmZnQgd2hlbiB0aGUgdGltZSBmb3Igc2VuZGluZyBhIG5ldwoJICBtZXNzYWdlIGlzIGR1ZS4gT25seSBkbyB0aGlzIGlmIHdlIGhhdmUgbm90IHJ1biB0aGUgZmZ0IGZvciB0aGUgaW50ZXJ2YWwgYXQgYWxsLgoKMjAxMS0wMy0xMCAxNDoxMjowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiBvbmx5IHNjYWxlIHRoZSB2ZWN0b3JzIHRoYXQgd2UgYXJlIHByb2Nlc3NpbmcKCSAgUGhhc2UgaXMgbm90IHByb2R1Y2VkIGJ5IGRlZmF1bHQsIHNvIGxldHMgbm90IHNjYWxlIGl0IHVuY29uZGl0aW9uYWxseSB0byBzYXZlIGEKCSAgZmV3IGN5Y2xlcy4KCjIwMTEtMDMtMTAgMTQ6MTA6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgc3BlY3RydW06IHB1dCBudW1iZXIgb2YgY2hhbm5lbHMgdG8gaW5zdGFuY2UgdmFyaWFibGUKCSAgV2hlbiBmcmVlaW5nIGRhdGEgdGhlIGZvcm1hdCBtaWdodCBoYXZlIGNoYW5nZWQuIFRodXMgd2UgbmVlZCB0byByZW1lbWJlciBmb3IKCSAgd2hpY2ggZm9ybWF0IHdlIGFsbG9jYXRlZCBtZW1vcnkuCgoyMDExLTAzLTEwIDEwOjI3OjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IHVwZGF0ZSBkb2MgcmV2aWV3IHN0YW1wCgoyMDExLTAzLTEwIDEwOjIyOjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmg6CgkgIHNwZWN0cnVtOiB1c2UgZnVuY3Rpb24gcG9pbnRlcnMgZm9yIGRhdGEgcmVhZGVycwoJICBEb24ndCBjaGVjayB0aGUgZm9ybWF0IGZvciBlYWNoIHNhbXBsZSBmcmFtZSB0byByZWFkLiBXZSBjYW4gbWFrZSB0aGF0IGRlY2lzc2lvbgoJICBpbiBfc2V0dXAgYWxyZWFkeS4gVGhpcyBpcyBzdGlsbCBub3QgaWRlYWwgYXMgd2UgY2FsbCB0aGUgZnVuY3Rpb24gcGVyIGZyYW1lLgoJICBJZGVhbGx5IHdlIGRldGVybWluZSBob3cgbWFueSBzYW1wbGVzIHdlIGNhbiBjb3B5IGFuZCBoYXZlIGEgbG9vcCBpbiB0aGUgaW5wdXQKCSAgcmVhZGVyLiBBcyBhbiBhbHRlcm5hdGl2ZSB3ZSBtaWdodCBhbHNvIGNvbnNpZGVyIHRvIHVzZSB0aGUgZmZ0IHZhcmlhbnRzIGZvciB0aGUKCSAgdmFyaW91cyBmb3JtYXRzIGFuZCBub3QgY29udmVydCB0byBmbG9hdCBmb3IgYWxsIGNhc2VzIC0gd2Ugd291bGQgc3RpbGwgbmVlZCB0bwoJICBtaXggb3IgZGVpbnRlcmxlYXZlIHRob3VnaC4KCjIwMTEtMDMtMDkgMTc6MDc6NDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IGltcHJvdmUgcmVjb3ZlcnkgZnJvbSBmYWlsZWQgc2VlawoJICBJbiBjYXNlIHNlcnZlci1zaWRlIGZhaWxzIHRvIHBlcmZvcm0gc2VlaywgaS5lLiBQTEFZIGF0IG5vbi16ZXJvIHJlcXVlc3RlZAoJICBwb3NpdGlvbiwgcmVjb3Zlcnkgc28gZmFyIHdvdWxkIGFycmFuZ2UgZm9yIHN0cmVhbWluZyB0byBjb250aW51ZSwgYWxiZWl0CgkgIGhhdmluZyBsb3N0IHBvc2l0aW9uIHRyYWNraW5nIGluIHRoZSBwcm9jZXNzLiAgU28sIHF1ZXJ5IHBvc2l0aW9uIHByaW9yCgkgIHRvIHNlZWsgYW5kIHVzZSB1cG9uIGZhaWxlZCBzZWVrLgoKMjAxMS0wMy0wOSAxNjo1MTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBoYW5kbGUgcG9zaXRpb24gcXVlcnkKCjIwMTEtMDMtMDkgMTY6NTc6MjggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgc3BlY3RydW06ICBtdWx0aS1jaGFubmVsIHN1cHBvcnQKCSAgQWRkIGEgYm9vbGVhbiBtdWx0aS1jaGFubmVsIHByb3BlcnR5IHdpdGggYSBkZWZhdWx0IG9mIEZBTFNFLiBXaGVuIHNldCB0byBUUlVFCgkgIHRoZSBlbGVtZW50IHdvbid0IG1peCBhbGwgaW5wdXQgY2hhbm5lbHMgdG8gbW9ubywgYnV0IGluc3RlYWQgcnVuIGEgRkZUIG9uIGVhY2gKCSAgY2hhbm5lbC4gSW4gdGhhdCBjYXNlIHRoZSByZXN1bHQgbWVzc2FnZSB3b3VsZCBjb250YWluIGEgMiBkaW1lbnNpb25hbCBhcnJheQoJICBvZiBjaGFubmVsIHggZGF0YSBmb3IgbWFnbml0dWRlIGFuZCBwaGFzZS4KCSAgQVBJOiBHc3RTcGVjdHJ1bTptdWx0aS1jaGFubmVsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTM0ODIKCjIwMTEtMDMtMDkgMTY6NTU6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICBzcGVjdHJ1bTogbW9yZSB4cmVmcyBpbiB0aGUgZG9jcwoKMjAxMS0wMy0wOSAxMjo0MToxNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiBmYWN0b3Igb3V0IHRoZSBjb2RlIHRoYXQgYWNjdW11bGF0ZWQgc2FtcGxlcyBpbnRvIHRoZSByaW5nLWJ1ZmZlcgoJICBVc2UgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0byByZWFkIGEgc2FtcGxlIGZyYW1lIGludG8gYSByaW5nYnVmZmVyIHNsb3QuIEluIHRoZQoJICBmdXR1cmUgd2UgY2FuIHVzZSBmb3JtYXQtc3BlY2lmaWMgZnVuY3Rpb24gcG9pbnRlciB0byBhdm9pZCB0aGUgcmVvY2N1cmluZwoJICBmb3JtYXQgY2hlY2tzLgoKMjAxMS0wMy0wOSAxMjozODo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtOiBwdWxsIGZvcm1hdCB0byB0ZW1wIHZhciB0byBpbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGxpbmVzIHVzaW5nIGl0CgoyMDExLTAzLTA5IDEyOjIwOjExICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IGNvZGUgY2xlYW51cCBmb3IgY29weWluZyBkYXRhIHRvIHJpbmctYnVmZmVyCgkgIFJlbmFtZSBmcCB0byBpc19mbG9hdCBhbmQgcmVzdHJ1Y3R1cmUgaWYtZWxzZSBwYXJ0IGZvciBoYW5kbGluZyB0aGUgZGlmZmVyZW50IGZvcm1hdHMuCgoyMDExLTAzLTA5IDExOjQwOjQ4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmg6CgkgIHNwZWN0cnVtOiBhZGQgYSBHc3RTcGVjcnR1bUNoYW5uZWwgY29udGV4dCBzdHJ1Y3R1cmUKCSAgV2Ugbm93IGtlZXAgdGhlIGZmdCBkYXRhIHRoYXQgaXMgcmVsYXRlZCB0byBvbmUgY2hhbm5lbCBpbiBhIHNlcGFyYXRlIHN0cnVjdHVyZQoJICB0byBwcmVwYXJlIGZvciBtdWx0aWNoYW5uZWwgc3VwcG9ydC4gV2UgYWxzbyByZWZhY3RvciB0aGUgY29kZSB0byBvcGVyYXRlIG1vcmUKCSAgb2Z0ZW4gb24gdGhlIGNoYW5uZWwgY29udGV4dC4KCjIwMTEtMDMtMDkgMTE6MTg6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICBzcGVjdHJ1bTogY2FsbCB0aGUgaW5zdGFuY2UgdmFyIHNwZWN0cnVtIGluc3RlYWQgb2YgZmlsdGVyCgoyMDExLTAzLTA5IDExOjE0OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IGRvbid0IHZhbHVlIHdlIGFscmVhZHkgdG9vayBmcm9tIHRoZSBndmFsdWUKCjIwMTEtMDMtMDggMTc6MjY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgoyMDExLTAzLTA4IDE3OjAyOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvZWZlbmNlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy94aW1hZ2UveGltYWdldXRpbC5jOgoJICBtZXRhOiB1cGRhdGUgZm9yIG5ldyBBUEkKCjIwMTEtMDMtMDggMTY6Mjg6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYWQtaG9jIHJlbGVhc2UgYnJhbmNoICcwLjEwLjI4JwoKPT09IHJlbGVhc2UgMC4xMC4yOCA9PT0KCjIwMTEtMDMtMDggMTU6NDc6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjgKCSAgQWQtaG9jIHJlbGVhc2UgdG8gZml4IGJ1aWxkIGlzc3VlIHdpdGggbmV3ZXIga2VybmVscy4KCjIwMTEtMDMtMDMgMDA6MTY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5oOgoJICB2NGwyOiByZW1vdmUgdW5uZWNlc3NhcnkgbGludXgvdmlkZW9kZXYuaCBpbmNsdWRlCgkgIENhdXNlcyBjb21waWxhdGlvbiBpc3N1ZXMgd2l0aCBuZXdlciBrZXJuZWwgaGVhZGVycyB3aGVyZSB0aGUgb2xkCgkgIHY0bCBpbnRlcmZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzcxNgoKMjAxMS0wMy0wOCAxMDoxNDoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0ZXN0cy9leGFtcGxlcy9jYWlyby9NYWtlZmlsZS5hbQoKMjAxMS0wMy0wNyAxNjo1Njo0MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBhbHNvIGVzdGltYXRlIGVvcyBpZiB2ZXJ5IG5lYXIgZW9zCgoyMDExLTAzLTA3IDE2OjU2OjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IGF2b2lkIHRyeWluZyB0byBidWZmZXIgbW9yZSB0aGFuIGlzIGF2YWlsYWJsZS4KCSAgVGhhdCBpcywgaW4gY2FzZSBvZiBzaG9ydCAob3IgbmVhciBlb3Mgb2YpIHN0cmVhbSwgZGVhZGxvY2sgKHVudGlsIHRpbWVvdXQpCgkgIHdvdWxkIG9jY3VyIHRyeWluZyB0byBidWZmZXIgbW9yZSB0aGFuIGlzIHlldCBmb3J0aGNvbWluZy4KCjIwMTEtMDMtMDcgMTE6MDE6MDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogcmVzZXQgZWxlbWVudCBiYXNlX3RpbWUgdXBvbiBmbHVzaAoJICAuLi4gdG8gYXJyYW5nZSBmb3IgcHJvcGVybHkgc2NoZWR1bGVkIHRpbWVvdXQgKGZvbGxvd2luZyBzZWVrKS4KCjIwMTEtMDMtMDcgMTA6NTQ6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vY2Fpcm9fb3ZlcmxheS5jOgoJICBjYWlyb292ZXJsYXk6IEFkZCBhIGJ1cyBoYW5kbGVyIHRvIHRoZSBleGFtcGxlIHRvIGhhbmRsZSBFT1MvRVJST1IvV0FSTklORwoJICBBbHNvIGNsZWFuIHVwIHRoZSBwaXBlbGluZSBwcm9wZXJseS4KCjIwMTEtMDMtMDcgMTA6NDc6MjMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBBbHdheXMgZGlzdCB0aGUgY2Fpcm8gZXhhbXBsZQoKMjAxMS0wMy0wNyAxMDo0NjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9jYWlyby9NYWtlZmlsZS5hbToKCSAgY2Fpcm9vdmVybGF5OiBVc2UgTERBREQgaW5zdGVhZCBvZiBMREZMQUdTIGZvciBsaWJzIGFuZCBhZGQgJChHU1RfTElCUykKCjIwMTEtMDMtMDUgMjM6MjI6NTggKzAwMDAgIEpvbiBOb3JkYnkgPGpvbm9ub3JAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NhaXJvL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jYWlyby9jYWlyb19vdmVybGF5LmM6CgkgIGNhaXJvb3ZlcmxheTogUmVtb3ZlIHVubmVjZXNzYXJ5IGd0ay9ndGsteDExIHVzZSBpbiBleGFtcGxlLgoJICBUaGlzIHJlbW92ZXMgY29kZSwgYW5kIGFsbG93cyB0aGUgZXhhbXBsZSB0byBiZSB1c2VkIG9uIGFueSBwbGF0Zm9ybS4KCSAgRml4ZXMgYnVnICM2NDM5ODEuCgoyMDExLTAzLTA0IDE4OjM3OjM4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogVXNlICNpZmRlZnMgZm9yIFY0TDJfUElYX0ZNVF9QSlBHCgkgIEl0J3Mgb25seSByZWNlbnRseSBhZGRlZCB0byBrZXJuZWwgaGVhZGVycy4KCjIwMTEtMDItMjMgMTY6NTA6NDMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICB3YXZwYXJzZTogdHVuZSBvdXRwdXQgbWF4IGJ1ZmZlciBzaXplIHRvIG1hdGVyaWFsCgkgIC4uLiB0byBhdm9pZCBlbmRpbmcgdXAgd2l0aCB0b25zIG9mIHNob3J0IHRpbWUgYnVmZmVycyBmb3IgZS5nLiBoaWdoIHNhbXBsZQoJICByYXRlIGF1ZGlvLgoKMjAxMS0wMy0wNCAxNzowNDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2NhaXJvL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogZG9uJ3QgdXNlIGhhcmRjb2RlYyAwLjEwCgoyMDExLTAzLTA0IDE2OjMwOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMy0wNCAxNTo1MDowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGFkZCBhIGRvYyBleGFtcGxlIGZvciBzZXR0aW5nIHN0cmVhbS1wcm9wZXJ0aWVzCgoyMDExLTAzLTA0IDE1OjQyOjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZml4IHRoZSB4bWwgaW4gdGhlIGRvY3MKCjIwMTEtMDMtMDMgMDA6MTY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5oOgoJICB2NGwyOiByZW1vdmUgdW5uZWNlc3NhcnkgbGludXgvdmlkZW9kZXYuaCBpbmNsdWRlCgkgIENhdXNlcyBjb21waWxhdGlvbiBpc3N1ZXMgd2l0aCBuZXdlciBrZXJuZWwgaGVhZGVycyB3aGVyZSB0aGUgb2xkCgkgIHY0bCBpbnRlcmZhY2UgaGFzIGJlZW4gcmVtb3ZlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzcxNgoKMjAxMS0wMy0wMiAyMzoyMToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jYWlyby9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vY2Fpcm9fb3ZlcmxheS5jOgoJICBjYWlyb292ZXJsYXk6IFRoZSBleGFtcGxlIGFsd2F5cyByZXF1aXJlcyBndGsteDExCgkgIENoZWNrIGZvciBndGsteDExIGFuZCBvbmx5IGJ1aWxkIHRoZSBleGFtcGxlIGlmIGl0J3MgYXZhaWxhYmxlLgoKMjAxMS0wMy0wMiAyMzoxNDozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9vdmVybGF5LmM6CgkqIGV4dC9jYWlyby9nc3RjYWlyb292ZXJsYXkuaDoKCSAgY2Fpcm9vdmVybGF5OiBTb21lIG1pbm9yIGNsZWFudXAKCjIwMTEtMDMtMDIgMjM6MDk6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkgIGRvY3M6IFVwZGF0ZSBpbnNwZWN0ZWQgcGx1Z2luIGRhdGEKCjIwMTEtMDEtMjggMDI6MTQ6MDQgKzAyMDAgIEpvbiBOb3JkYnkgPGpvbm9ub3JAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZXh0L2NhaXJvLy5naXRpZ25vcmU6CgkqIGV4dC9jYWlyby9NYWtlZmlsZS5hbToKCSogZXh0L2NhaXJvL2dzdGNhaXJvLW1hcnNoYWwubGlzdDoKCSogZXh0L2NhaXJvL2dzdGNhaXJvLmM6CgkqIGV4dC9jYWlyby9nc3RjYWlyb292ZXJsYXkuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvb3ZlcmxheS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY2Fpcm8vTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NhaXJvL2NhaXJvX292ZXJsYXkuYzoKCSAgY2Fpcm9vdmVybGF5OiBBZGQgZ2VuZXJpYyBDYWlybyBvdmVybGF5IHZpZGVvIGVsZW1lbnQuCgkgIEFsbG93cyBhcHBsaWNhdGlvbnMgdG8gY29ubmVjdCB0byB0aGUgImRyYXciIHNpZ25hbCBvZgoJICB0aGUgZWxlbWVudCBhbmQgZG8gdGhlaXIgY3VzdG9tIGRyYXdpbmcgdGhlcmUuCgkgIEluY2x1ZGVzIGFuIGV4YW1wbGUgYXBwbGljYXRpb24gZGVtb25zdHJhdGluZyB1c2FnZS4KCSAgRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTU1MjAKCjIwMTEtMDMtMDIgMTM6MDA6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tb25vc2NvcGUvbW9ub3Njb3BlLmM6CgkgIG1vbm9zY29wZTogZG9uJ3QgbGVhayB0aGUgbW9ub3Njb3BlX3N0YXRlIGRhdGEKCSAgVGhlIG1vbm9zY29wZV9jbG9zZSgpIGltcGxlbWVudGF0aW9uIHdhcyBlbXB0eS4KCjIwMTEtMDMtMDIgMTI6NTk6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tb25vc2NvcGUvbW9ub3Njb3BlLmM6CgkgIG1vbm9zY29wZTogd2UgaGF2ZSA2NCBjb2xvcnMsIGRvbid0IGFjY2VzcyBjb2xvcnNbNjRdCgkgIEZpeGVzIHJlbWFpbmluZyBpbnZhbGlkIHJlYWQuCgoyMDExLTAzLTAyIDEwOjI1OjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYXJyYW5nZSBmb3Igbm9uLWZhdGFsIGVycm9yIHdoZW4gcGFyc2luZyBub24tdml0YWwgcGFydHMKCjIwMTEtMDMtMDIgMTA6NTY6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tb25vc2NvcGUvY29udm9sdmUuYzoKCSAgbW9ub3Njb3BlOiBzdGFjayBuZWVkcyB0byBiZSBzaXplKzEgYXMgd2UgcHV0IGEgZW5kLW1hcmtlciBpbnRvIGl0CgkgIFZhbGdyaW5kIGlzIHN0aWxsIGNvbXBsYWluaW5nIGFib3V0IG9uZSBiYWQgcmVhZCwgYnV0IHRoaXMgdGFrZXMgY2FyZSBvZiB0aGUKCSAgY3Jhc2ggbWVudGlvbmVkIGluIHRoZSBjb21tZW50IGFuZCBpbiBidWcgIzU2NDEyMi4KCjIwMTEtMDMtMDEgMjI6NDA6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjYzcC1hbHNhc3JjLUFNUi5zaDoKCSAgZXhhbXBsZTogZml4IHRoZSB2YXJpYWJsZSBuYW1lIGZvciB0aGUgaXAtYWRkcmVzcwoJICBGaXggdGhlIG5hbWUgaW4gdGhlIGxhdW5jaCBwaXBlbGluZSBhbmQgdXNlIGEgdmFsdWUgb2YgImxvY2FsaG9zdCIgYnkgZGVmYXVsdC4KCjIwMTEtMDItMjggMTk6MTY6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGN5Z3dpbi9taW5ndzsgZW5hYmxlIHBsdWdpbiBsaW5raW5nIHRvIHN0YXRpYyBsaWIKCSAgVXNlZnVsIGZvciBEaXJlY3RYIHBsdWdpbihzKS4KCSAgRml4ZXMgIzY0MjUwNy4KCjIwMTEtMDItMjggMTk6MTM6NDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGV4cG9ydCBwbHVnaW4gZGVzY3JpcHRpb24gbW9yZSBwbGF0Zm9ybSBpbmRlcGVuZGVudAoJICBGaXhlcyAjNjQyNTA0LgoKMjAxMS0wMi0yOCAxODozMjo1NCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFkZTdmNmEgdG8gNmFlYzZiOQoKMjAxMS0wMi0yOCAxMzoyOTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDItMjggMTM6Mjg6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IHVzZSBOZXRBZGRyZXNzIG1ldGFkYXRhCgoyMDExLTAyLTI4IDEzOjE0OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcDogaW1wbGVtZW50IE5ldEFkZHJlc3Mgd2l0aCBtZXRhZGF0YQoKMjAxMS0wMi0yOCAxMDoxNjo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDI6IHJlZ2lzdGVyIG1ldGFkYXRhCgoyMDExLTAyLTI3IDE5OjQzOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvZWZlbmNlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6CgkqIHN5cy94aW1hZ2UveGltYWdldXRpbC5oOgoJICBtZXRhOiBmaXggZm9yIG5ldyBBUEkKCjIwMTEtMDItMjUgMTY6Mjk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmg6CgkgIG1ldGFkYXRhOiB1c2UgbWV0YWRhdGEgZm9yIHByaXZhdGUgYnVmZmVyIGRhdGEKCSAgVXNlIGJ1ZmZlciBtZXRhZGF0YSB0byBzdG9yZSBlbGVtZW50IHByaXZhdGUgZGF0YS4KCjIwMTEtMDItMjQgMTM6NTE6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5oOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmg6CgkqIHN5cy94aW1hZ2UveGltYWdldXRpbC5jOgoJKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuaDoKCSAgbWluaW9iamVjdDogcG9ydCB0byAwLjExCgkgIFVzZSBidWZmZXIgcHJpdmF0ZSBkYXRhIGluc3RlYWQgb2Ygc3ViY2xhc3NpbmcuCgoyMDExLTAyLTI0IDEzOjUwOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvcHVsc2UvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICBidWlsZDogZG9uJ3QgaGFyZGNvZGUgdmVyc2lvbiBudW1iZXIKCjIwMTEtMDItMjQgMTM6MDM6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICBpZDM6IHVzZSBib3hlZCB0eXBlIGluc3RlYWQgb2YgbWluaW9iamVjdAoKMjAxMS0wMi0yNCAxMzowMDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2VmZW5jZS5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHAuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgbWluaW9iamVjdDogdXNlIGJ1ZmZlciBwcml2YXRlIGZpZWxkIGZvciBleHRyYSBkYXRhCgkgIFVzZSB0aGUgb3duZXIgcHJpdmF0ZSBmaWVsZCB0byBzdG9yZSBleHRyYSBidWZmZXIgZGF0YSBpbnN0ZWFkIG9mIHVzaW5nCgkgIHN1YmNsYXNzaW5nLgoKMjAxMS0wMi0yNCAxMjoyMzo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogYWRkIGR1cmF0aW9uIHdoZW4gZXh0aW1hdGluZyBRb1MgdGltZQoJICBXaGVuIHdlIG5lZWQgdG8gZGVjaWRlIG9uIHRoZSBuZXh0IFFvUyB0aW1lLCB0YWtlIGludG8gYWNjb3VudCB0aGUgZHVyYXRpb24gb2YKCSAgdGhlIGJ1ZmZlcnMuCgoyMDExLTAyLTI4IDExOjU4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoKMjAxMS0wMi0yMyAxNzo0MToyMiArMDEwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiByZWxlYXNlIHBhX3NoYXJlZF9yZXNvdXJjZV9tdXRleCBiZWZvcmUgcGFfdGhyZWFkZWRfbWFpbmxvb3Bfd2FpdAoJICBOb3QgZG9pbmcgc28gY2FuIHJlc3VsdCBpbiBhIGRlYWRsb2NrIHdoZW4gdHdvIHRocmVhZHMgZW50ZXIKCSAgZ3N0X3B1bHNlcmluZ2J1ZmZlcl9vcGVuX2RldmljZSBhdCB0aGUgc2FtZSB0aW1lLCBhcwoJICBwYV90aHJlYWRlZF9tYWlubG9vcF93YWl0IHJlbGVhc2VzIHRoZSBtYWlubG9vcCBsb2NrIHdoaWxlIHdhaXRpbmcsCgkgIGFsbG93aW5nIGFub3RoZXIgdGhyZWFkIHRvIHRha2UgaXQsIHJlc3VsdGluZyBpbiBhIGRlYWRsb2NrIGFzIHR3bwoJICB0aHJlYWRzIHdhaXRzIGZvciB0aGUgbG9jayB0aGUgb3RoZXIgaXMgaG9sZGluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzA4NwoKMjAxMS0wMi0yMyAxNzoxODoxOSArMDEwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBzL3Jlc3NvdXJjZS9yZXNvdXJjZS8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzA4NwoKMjAxMS0wMi0yNSAyMDoxMjozNSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHJlbW92ZSBhY2NpZGVudGFsIGRlYnVnIG1lc3NhZ2UKCSAgaW4gcHJldmlvdXMgY29tbWl0CgoyMDExLTAyLTI1IDE5OjM1OjUxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQWRkIHN1cHBvcnQgZm9yIDJWdXkgYW5kIHIyMTAKCjIwMTEtMDItMjQgMTQ6MDg6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3ZmaXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlYmZmLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmV0ZmYuYzoKCSAgZGVpbnRlcmxhY2U6IEFkZCBzdXBwb3J0IGZvciBOVjIxIGNvbG9yc3BhY2UKCjIwMTEtMDItMjQgMTQ6MDA6MzcgKzAxMDAgIENhcnN0ZW4gS3JvbGwgPGNhckB4aW1pZGkuY29tPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3ZmaXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlYmZmLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmV0ZmYuYzoKCSAgZGVpbnRlcmxhY2U6IEFkZCBzdXBwb3J0IGZvciBOVjEyIGNvbG9yc3BhY2UKCSAgRml4ZXMgYnVnICM2NDI5NjEuCgoyMDExLTAyLTI0IDEzOjU2OjA0ICswMTAwICBDYXJzdGVuIEtyb2xsIDxjYXJAeGltaWRpLmNvbT4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkgIGR2ZGVtdXg6IEZpcnN0IHRyeSBpZiB1cHN0cmVhbSBoYW5kbGVzIFRJTUUgc2Vla3MgYmVmb3JlIGhhbmRsaW5nIHRoZW0gaGVyZQoJICBGaXhlcyBidWcgIzY0Mjk2My4KCjIwMTAtMTEtMDggMTQ6MjU6NTkgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuaDoKCSAgZGVpbnRlcmxhY2U6IFNpbXBsaWZ5IHNldGNhcHMKCSAgVGhlIGN1cnJlbnQgY29kZSBuZXZlciB1c2VzIHVwc3RyZWFtIG5lZ290aWF0aW9uIHNvIHRoZSBjb2RlIGNhbiBiZQoJICBzaWduaWZpY2FudGx5IHNpbXBsaWZpZWQuCgoyMDExLTAxLTI0IDEyOjQ4OjE4ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJICBkZWludGVybGFjZTogUG9ydCBncmVlZHlsIHRvIEdzdERlaW50ZXJsYWNlU2ltcGxlTWV0aG9kCgkgIFRoZSBtYWluIGdvYWwgb2YgdGhpcyBjaGFuZ2UgaXMgdG8gcmV1c2UgdGhlIGNvbXBsZXggYnV0IG5vdyBuZWF0bHkKCSAgd3JpdHRlbiBzY2FubGluZSBwb2ludGVyIGNhbGN1bGF0aW9uIGNvZGUgZnJvbSB0aGUgc2ltcGxlIG1ldGhvZHMuCgoyMDExLTAyLTIyIDE1OjIwOjExICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSAgUmV2ZXJ0ICJpZDNkZW11eDogZW5zdXJlIGEgdGFnbGlzdCBiZWZvcmUgYWRkaW5nIHRoZSBjb250YWluZXIgdGFnIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGE4NmJhYjY2ODkzYmIxYTMzMjNhNzU2NDEwNTczYzExN2I4MjE5ZWYuIFRoZSBpc3N1ZSBpcwoJICBmaXhlZCB3aXRoIGNvbW1pdCBmZjVlNWE4ZjBkYWExZmRmODk3OTJkMDcyNmVhMDYzYmJkOTlkYjE4IGluc3RlYWQuCgoyMDExLTAyLTIyIDE1OjE5OjAwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOgoJICBpZDNkZW11eDogcmV0dXJuIElEM1RBR1NfQlJPS0VOX1RBRyBmb3IgdW5zdXBwb3J0ZWQgdmVyc2lvbnMKCSAgVGhpcyBwcmV2ZW50cyB1cyBmb3IgdHJ5aW5nIHRvIHdvcmsgd2l0aCBhIE5VTEwgdGFnbGlzdC4KCjIwMTEtMDItMjIgMTQ6MTU6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUuCgoyMDExLTAyLTIyIDE0OjAxOjI3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGVuc3VyZSBzYW5lIHBhcmFtZXRlcnMgd2hlbiBwYXJzaW5nIHN1cGVyaW5kZXgKCjIwMTEtMDItMjIgMTQ6MDA6MTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogY2hlY2sgZm9yIE5VTEwgYXVkaW8gc3RyZWFtIGZvcm1hdCBoZWFkZXIgd2hlbiBwYXJzaW5nIHN0cmVhbQoKMjAxMS0wMi0yMiAxNDo1MjoxOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjNwLWFsc2FzcmMtQU1SLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLXY0bDItSDI2NC1hbHNhc3JjLVBDTUEuc2g6CgkgIHJ0cC1leGFtcGxlczogbW92ZSBjYXBzZmlsdGVyIGJlaGluZCBjb252ZXJ0ZXJzCgkgIFdlIG5lZWQgdG8gaGF2ZSB0aGUgY2Fwc2ZpbHRlciBiZWhpbiB0aGUgY29udmVydGVycyB0byBtYWtlIHRoZSBjb252ZXJ0ZXJzCgkgIGNvbnZlcnQgZnJvbSB0aGUgZm9ybWF0cyB2NGwyc3JjIGNhbiBkbyB0byB3aGF0IHdlIHJlcXVlc3Qgd2l0aCB0aGUKCSAgY2Fwc2ZpbHRlci4KCjIwMTEtMDItMjIgMTQ6NTA6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItYWxzYXNyYy1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLXY0bDItSDI2M3AtYWxzYXNyYy1BTVIuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjY0LWFsc2FzcmMtUENNQS5zaDoKCSAgcnRwLWV4YW1wbGVzOiBmaXggYXNjaWktYXJ0CgkgIFNvbWUgYm94ZXMgd2hlcmUgbWlzYWxpZ25lZCBkdWUgdG8gbG9uZyAiYXVkaW90ZXRzc3JjIiBuYW1lLiBUcmltIHRyYWlsaW5nCgkgIHdoaXRlc3BhY2UuCgoyMDExLTAyLTIyIDEzOjI5OjI2ICswMTAwICBCbGFpc2UgR2Fzc2VuZCA8YmxhaXNlIGF0IHdpbGxvd2dhcmFnZSBkb3QgY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogaGFuZGxlIE5VTEwgZGVtdXggZWxlbWVudHMKCSAgV2hlbiB1c2luZyBnc3RydHBiaW4gd2l0aCBpZ25vcmUtcHQ9dHJ1ZSwgdGhlIGZyZWVfc3RyZWFtIGZ1bmN0aW9uIHRyaWVzIHRvCgkgIGNhbGwgZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSBhbmQgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlIG9uIGEgc3RyZWFtLT5kZW11eAoJICB3aGljaCBpcyBOVUxMLgoJICBmaXhlcyAjNjQyNDEyCgoyMDExLTAxLTI0IDEyOjE4OjM5ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmM6CgkgIGRlaW50ZXJsYWNlOiBzbWFsbCBjbGVhbi11cHMKCSAgSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgYnkgcHJpbnRpbmcgdGhlIGJ1ZmZlciBwb2ludGVyIHdoZW4KCSAgcG9wcGluZyBhIGJ1ZmZlciBhbmQgc2ltcGxpZnkgY29kZSB0byB1c2Ugc2NhbmxpbmVzLmJvdHRvbV9maWVsZAoJICBhcyBhcHByb3ByaWF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjY5MQoKMjAxMS0wMS0yNCAxMjoxODozOSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBmaXggYXNzaWduZWQgbWV0aG9kX2lkIHdoZW4gdXNpbmcgZmFsbGJhY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjY5MQoKMjAxMS0wMi0yMSAxNzoxNzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGZpeCBzZXR0aW5nIHRoZSBTREVTIHByb3BlcnR5CgkgIE9ubHkgdGhlIHNkZXMgdmVyaWFibGUgaXMgcHJvdGVjdGVkIHdpdGggdGhlIG9iamVjdCBsb2NrLgoJICBVc2UgdGhlIHJpZ2h0IG9iamVjdCB3aGVuIHNldHRpbmcgdGhlIHNkZXMgcHJvcGVydHkuCgoyMDExLTAyLTIxIDEyOjA5OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICBSZXZlcnQgIkNoZWNrIHRoYXQgY29sbGVjdHBhZHMgZXhpc3RzIGJlZm9yZSByZW1vdmluZyBwYWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGU2Yjg3NmU3NmM5NDQxMGRiMTYwYWZlNWViMzBmMjE0NTJlNDE5Zi4KCSAgRGVwZW5kcyBvbiBhIGNvcmUgY29tbWl0IHRoYXQgd2FzIHJldmVydGVkCgoyMDExLTAyLTIxIDAwOjU1OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJICBpY3lkZW11eDogZml4IHRhZyBsaXN0IGhhbmRsaW5nIGlzc3VlcyB0aGF0IG1pZ2h0IGhhdmUgY2F1c2VkIGNyYXNoZXMKCSAgRml4IHNsaWdodGx5IGNvbmZ1c2VkIHRhZyBoYW5kbGluZyBpbiBzb21lIHBsYWNlczogbWFrZSBpdCBjbGVhciB3aGVuCgkgIHdlJ3JlIHRha2luZyBvd25lcnNoaXAgb2YgYSB0YWcgbGlzdCBhbmQgd2hlbiBub3QuIEZvciBleGFtcGxlLAoJICBnc3RfaWN5ZGVtdXhfdGFnX2ZvdW5kKCkgd2FzIHRha2luZyBvd25lcnNoaXAgd2hlbiB0aGUgc291cmNlIHBhZAoJICBleGlzdGVkLCBidXQgb3RoZXJ3aXNlIG5vdCAobGVhaykuIEFsc28sIGdzdF9ldmVudF9wYXJzZV90YWcoKSBkb2VzCgkgIG5vdCByZXR1cm4gYSBuZXdseS1hbGxvY2F0ZWQgdGFnbGlzdCwgYnV0IGEgdGFnIGxpc3QgdGhhdCBiZWxvbmdzIHRvCgkgIHRoZSB0YWcgZXZlbnQsIHNvIGRvbid0IGdpdmUgb3duZXJzaGlwIG9mIGl0IGF3YXkuCgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBzb21lIG1pbm9yIGNsZWFuLXVwczogZG9uJ3QgcmUtaW52ZW50IGdfc3RybmR1cCgpCgkgIGFuZCBzaW1wbGlmeSBnc3RfaWN5ZGVtdXhfcGFyc2VfYW5kX3NlbmRfdGFncygpIGEgYml0LCBhbmQgZG9uJ3QKCSAgbGVhayB0aGUgdGFnIGxpc3QgaW4gY2FzZSBubyB2YWxpZCB0YWdzIHdoZXJlIGZvdW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMzMwCgoyMDExLTAyLTIwIDIzOjM5OjQxIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICBDaGVjayB0aGF0IGNvbGxlY3RwYWRzIGV4aXN0cyBiZWZvcmUgcmVtb3ZpbmcgcGFkCgkgIFRoZSBjb3JlIG5vdyBjYWxscyByZWxlYXNlIHBhZCBmcm9tIGZpbmFsaXplLCBhdCB3aGljaCBwb2ludAoJICB0aGUgY29sbGVjdHBhZHMgbWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gZnJlZWQuCgoyMDExLTAyLTE5IDE1OjQ4OjIyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkgIHBuZ2RlYzogSGFuZGxlIDE2LWJpdC1wZXItY2hhbm5lbCBpbWFnZXMKCjIwMTEtMDItMTggMTA6MTI6NDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHN0cmVhbS0+Y3VycmVudF90b3RhbCBpcyBhY2N1bXVsYXRlZCBieXRlIHNpemUgYW5kIG5vdCB0aW1lCgkgIFVzZSB0aW1lc3RhbXAgZm9yIHRoZSBzdHJlYW0gaW5kZXggYXMgd2VsbC4KCjIwMTEtMDItMTUgMTk6MzM6NDUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgdWRwc2luazogd2FybiB3aGVuIHBhY2tldCBpcyB0b28gbGFyZ2UKCjIwMTEtMDItMTcgMTc6NTk6MjUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtcGFyc2UuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLXBhcnNlLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS5jOgoJICBtYXRyb3NrYXBhcnNlOiBOZXcgZWxlbWVudAoJICBDb3BpZWQgZnJvbSBkZW11eC4gIER1cGxpY2F0ZXMgbXVjaCBjb2RlLCBhbHNvIHNvbWUgZGVhZCBjb2RlCgkgIHJlbWFpbmluZy4KCjIwMTEtMDItMTcgMTc6NTc6NTUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IEVhcmxpZXIgZGVidWcgY2F0ZWdvcnkgaW5pdGlhbGl6YXRpb24KCjIwMTEtMDEtMjIgMDA6MTM6MTYgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBkb24ndCBzZXQgZHVyYXRpb24gZm9yIGxpdmUgc3RyZWFtCgoyMDExLTAxLTA2IDE1OjQ0OjI0IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWJ1Z3V0aWxzL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVidWd1dGlscy9uZWdvdGlhdGlvbi5jOgoJICBkZWJ1Z3V0aWxzOiByZW1vdmUgYml0cm90dGVuIG5lZ290aWF0aW9uIGVsZW1lbnQKCSAgV2Fzbid0IGVuYWJsZWQsIGRpZG4ndCB3b3JrLCBhbmQgcGxhbm5lZCBmZWF0dXJlcyBoYXZlIGJlZW4KCSAgc3VwZXJjZWRlZCBieSBjYXBzZmlsdGVyIGFuZCBjYXBzZGVidWcuCgoyMDEwLTA5LTE3IDEyOjEwOjM4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuaDoKCSAgcnRwdnJhd3BheTogSW1wbGVtZW50IGludGVybGFjaW5nCgoyMDExLTAyLTE3IDE3OjU3OjQyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBhbHNvIGFkZCB0aGUgZnJhbWUtdHlwZSBmb3IgdGhlIHN0cmVhbSBpbmRleAoKMjAxMS0wMi0xNyAxNzo1NjoyOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZ2V0IHRoZSBpbmRleCB3cml0ZXIgaWQgd2hlbiB0aGUgcGFkIGhhcyBhIHBhcmVudAoJICBPdGhlcndpc2UgdGhlIGluZGV4IHdyaXRlciBoYXMgYSB3ZWlyZWQgbmFtZSwgYXMgdGhlIHBhZCBoYXMgbm8gcGFyZW50IHlldC4KCjIwMTEtMDItMTcgMTQ6MDA6NDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBhdmlkZW11eCwgZmx2ZGVtdXg6IGZvcm1hdHRpbmcgY2xlYW51cAoJICBUcmltIHRyYWlsaW5nIHdoaXRlc3BhY2VzIGFuZCBmaXggdGhlIGZvcm1hdHRpbmcgb2YgZG91YmxlIG5lZ2F0aW9uLgoKMjAxMS0wMi0xNyAxMzo1NzozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGF2aWRlbXV4LCBmbHZkZW11eDogbWFyayBkZWx0YS11bml0cyBpbiB0aGUgaW5kZXgKCSAgV2UgbmVlZCB0byB1c2UgdGhlICdkZWx0YScgZmxhZyBmb3IgZGVsdGEgdW5pdHMgYW5kIG5vdCB0aGUgJ25vbmUnIGZsYWcuCgoyMDExLTAyLTE3IDExOjU4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzLy5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSBtb3ZlZCBlcXVhbGl6ZXIgdGVzdCBiaW5hcnkKCjIwMTEtMDItMTcgMTI6NDY6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbWFyayBkZWx0YS11bml0IGluIHRoZSBpbmRleAoJICBXZSBuZWVkIHRvIHVzZSB0aGUgZGVsdGEgZmxhZyBmcm8gZGVsdGEgdW5pdHMgYW5kIG5vdCBub25lLiBQcmludCBtb3JlIGRldGFpbHMKCSAgdG8gdGhlIGRlYnVnIGxvZy4KCjIwMTEtMDItMTcgMTI6NDQ6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZm9ybWF0dGluZyBjbGVhbnVwCgkgIFRyaW0gdHJhaWxpbmcgd2hpdGVzcGFjZXMgYW5kIGZpeCB0aGUgZm9ybWF0dGluZyBvZiBkb3VibGUgbmVnYXRpb24uCgoyMDExLTAyLTE2IDE3OjA5OjIwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiByZXdvcmsgX3JlcXVlc3RfbmV3X3BhZCB0byBoYW5kbGUgZXhwbGljdCByZXEtcGFkLW5hbWVzCgkgIERvbid0IGlnbm9yZSBleHBsaWNpdCBwYWQtbmFtZXMuCgoyMDExLTAyLTE2IDE3OjA2OjUxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IHJld29yayBfcmVxdWVzdF9uZXdfcGFkIHRvIGhhbmRsZSBleHBsaWN0IHJlcS1wYWQtbmFtZXMKCSAgRG9uJ3QgaWdub3JlIGV4cGxpY2l0IHBhZC1uYW1lcy4gUmVhcnJhbmdlIHRoZSBjb2RlIGFuZCB0aGUgZXJyb3IgaGFuZGxpbmcgYQoJICBiaXQuIEFkZCBhIEZJWE1FLTAuMTEgZm9yIHRoZSBiYWQgcGFkLW5hbWVzLgoKMjAxMS0wMi0xNiAxNToyODo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgaWNsZXM6IEFkZCBlcXVhbGl6ZXItdGVzdCB0byB0aGUgYnVpbGQgc3lzdGVtCgoyMDExLTAyLTE2IDE1OjIzOjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzL2VxdWFsaXplci10ZXN0LmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1LzVdIGVxdWFsaXplci10ZXN0OiBJbml0aWFsaXplIGRlYnVnIGNhdGVnb3J5IGFmdGVyIGdzdF9pbml0KCkgdG8gZml4IHNlZ2ZhdWx0CgoyMDA3LTExLTA3IDE1OjM2OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgNC81XSB0ZXN0cy9pY2xlcy9lcXVhbGl6ZXItdGVzdC5jOiBGaXggZ2FpbiByYW5nZXMgZm9yIHRoZSBsYXRlc3QgZXF1YWxpemVyIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2ljbGVzL2VxdWFsaXplci10ZXN0LmM6IChkb19zbGlkZXJfZmlkZGxpbmcpOgoJICBGaXggZ2FpbiByYW5nZXMgZm9yIHRoZSBsYXRlc3QgZXF1YWxpemVyIGNoYW5nZXMuCgoyMDA3LTA1LTIxIDE0OjAxOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMy81XSBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5LiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jIChBUkdfQkFORF9XSURUSCwgX2RvX2luaXQsIEFSR19HQUlOLCBfR3N0SWlyRXF1YWxpemVyQmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeS4KCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jIChBUkdfQkFORF9XSURUSCwgX2RvX2luaXQsIEFSR19HQUlOLAoJICBfR3N0SWlyRXF1YWxpemVyQmFuZCwgb2JqZWN0LCBfR3N0SWlyRXF1YWxpemVyQmFuZENsYXNzLAoJICBwYXJlbnRfY2xhc3MsIGdzdF9paXJfZXF1YWxpemVyX2JhbmRfc2V0X3Byb3BlcnR5LAoJICBnc3RfaWlyX2VxdWFsaXplcl9iYW5kX2NsYXNzX2luaXQsIGdzdF9paXJfZXF1YWxpemVyX2JhbmRfZ2V0X3R5cGUsCgkgIGdzdF9paXJfZXF1YWxpemVyX2NoaWxkX3Byb3h5X2dldF9jaGlsZF9ieV9pbmRleCwKCSAgZ3N0X2lpcl9lcXVhbGl6ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50LAoJICBnc3RfaWlyX2VxdWFsaXplcl9jaGlsZF9wcm94eV9pbnRlcmZhY2VfaW5pdCwgc2V0dXBfZmlsdGVyLAoJICBnc3RfaWlyX2VxdWFsaXplcl9jb21wdXRlX2ZyZXF1ZW5jaWVzLCBwbHVnaW5faW5pdCk6CgkgICogdGVzdHMvaWNsZXMvZXF1YWxpemVyLXRlc3QuYzoKCSAgQWRkIGZpeG1lIGFuZCBjb21tZW50IGZvciBleGFtcGxlLgoKMjAwNy0wMy0xNCAxNjozMzowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDIvNV0gdGVzdHMvaWNsZXMvZXF1YWxpemVyLXRlc3QuYzogUG9ydCB0aGUgZXhhbXBsZSB0byBuZXcgZXF1YWxpemVyIGFwaS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvaWNsZXMvZXF1YWxpemVyLXRlc3QuYzogKGVxdWFsaXplcl9zZXRfYmFuZF92YWx1ZSksCgkgIChlcXVhbGl6ZXJfc2V0X2FsbF9iYW5kX3ZhbHVlcyksCgkgIChlcXVhbGl6ZXJfc2V0X2JhbmRfdmFsdWVfYW5kX3dhaXQpLAoJICAoZXF1YWxpemVyX3NldF9hbGxfYmFuZF92YWx1ZXNfYW5kX3dhaXQpLCAoZG9fc2xpZGVyX2ZpZGRsaW5nKSwKCSAgKG1haW4pOgoJICBQb3J0IHRoZSBleGFtcGxlIHRvIG5ldyBlcXVhbGl6ZXIgYXBpLgoKMjAwNy0wMi0wMyAyMzozNToyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAxLzVdIEZpeCB1cCB0byB1c2UgdGhlIG5ld2x5IHBvcnRlZCAoYWN0dWFsbHkgd29ya2luZykgR3N0QXVkaW9GaWx0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZXF1YWxpemVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6IChnc3RfaWlyX2VxdWFsaXplcl9iYXNlX2luaXQpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2xhc3NfaW5pdCksIChnc3RfaWlyX2VxdWFsaXplcl9pbml0KSwKCSAgKHNldHVwX2ZpbHRlciksIChnc3RfaWlyX2VxdWFsaXplcl9jb21wdXRlX2ZyZXF1ZW5jaWVzKSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX3NldF9wcm9wZXJ0eSksIChnc3RfaWlyX2VxdWFsaXplcl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfdHJhbnNmb3JtX2lwKSwgKGdzdF9paXJfZXF1YWxpemVyX3NldHVwKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5oOgoJICBGaXggdXAgdG8gdXNlIHRoZSBuZXdseSBwb3J0ZWQgKGFjdHVhbGx5IHdvcmtpbmcpIEdzdEF1ZGlvRmlsdGVyLgoJICBCdW1wIGNvcmUvYmFzZSByZXF1aXJlbWVudHMgdG8gQ1ZTIGZvciB0aGlzLgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMvZXF1YWxpemVyLXRlc3QuYzogKGNoZWNrX2J1cyksCgkgIChlcXVhbGl6ZXJfc2V0X2JhbmRfdmFsdWUpLCAoZXF1YWxpemVyX3NldF9hbGxfYmFuZF92YWx1ZXMpLAoJICAoZXF1YWxpemVyX3NldF9iYW5kX3ZhbHVlX2FuZF93YWl0KSwKCSAgKGVxdWFsaXplcl9zZXRfYWxsX2JhbmRfdmFsdWVzX2FuZF93YWl0KSwgKGRvX3NsaWRlcl9maWRkbGluZyksCgkgIChtYWluKToKCSAgQWRkIGJyYWluLWRlYWQgaW50ZXJhY3RpdmUgdGVzdCBmb3IgZXF1YWxpemVyLgoKMjAxMS0wMi0xNSAxNTo1OTozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDI6IEFkZCBQSlBHIG1hcHBpbmcKCSAgQWRkcyBtYXBwaW5nIG9mIHByb2dyZXNzaXZlIGpwZWcgZm9ybWF0CgoyMDExLTAyLTE1IDE2OjMwOjIwICswMTAwICBBbmR5IFdpbmdvIDx3aW5nb0BvYmxvbmcuY29tPgoKCSAgcGx1ZyBxdGRlbXV4IHJlZmNvdW50IGxlYWtzCgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jIChnc3RfcXRkZW11eF9zcmNfY29udmVydCk6IFVucmVmIHRoZSBxdGRlbXV4OyB3ZQoJICB3ZXJlbid0IGRvaW5nIHNvIGJlZm9yZS4KCSAgKGdzdF9xdGRlbXV4X2hhbmRsZV9zcmNfZXZlbnQsIGdzdF9xdGRlbXV4X2NoYWluKTogRml4IHNvbWUgZXJyb3IKCSAgY2FzZXMgd2hpY2ggd291bGQgbGVhayBhIHJlZiB0byB0aGUgcXRkZW11eC4KCjIwMTEtMDItMTQgMjA6MjA6MDggKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBBZGQgVVJJIHF1ZXJ5IGhhbmRsZXIKCSAgRml4ZXMgYnVnICM2NDIzMzcuCgoyMDExLTAyLTE0IDE3OjQ5OjU0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBhdm9pZCBzb3J0aW5nIE5VTEwgYXJyYXkgb2YgY2x1c3RlciBwb3NpdGlvbnMKCjIwMTEtMDItMTQgMTY6NDY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgIHRoZW9yYXBheTogaGFuZGxlIDAgc2l6ZWQgcGFja2V0cwoJICBIYW5kbGUgMCBzaXplZCBwYWNrZXRzIChyZXBlYXQgZnJhbWUpIGluIHRoZSBwYXlsb2FkZXIgYW5kIGRlcGF5bG9hZGVyLgoJICBGaXhlcyAjNjQxODI3CgoyMDExLTAyLTE0IDE1OjIxOjI5ICswMjAwICBUdXVra2EgUGFzYW5lbiA8dHV1a2thLnBhc2FuZW5AaWxtaS5maT4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJICB0YWdpbmplY3Q6IHJlc2VuZCB0YWdzIHdoZW4gdGhleSBhcmUgY2hhbmdlZAoJICBBbGxvdyBzZXR0aW5nIG5ldyB0YWdzIG9uIHRoZSBwcm9wZXJ0eSB3aGlsZSBydW5uaW5nIGFuZCBzZW5kIHRoZW0uCgkgIEZpeGVzICM2NDAyNDkKCjIwMTEtMDItMTQgMTI6NTM6MjcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjk0ZDczOSB0byAxZGU3ZjZhCgoyMDExLTAyLTA3IDIzOjMyOjUzICswMTAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IG1pbm9yIGxlYWtzIHdoZW4gaGFuZGxpbmcgc2VydmVyIHJlcXVlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMTYzCgoyMDExLTAyLTE0IDAwOjQ5OjAwICswMDAwICBIZWF0aCBOaWVsc29uIDxoZWF0aG5AZ21haWwuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBleHRyYWN0IE11c2ljQnJhaW56IHRhZ3MKCSAgRXh0cmFjdCBNdXNpY0JyYWlueiB0YWdzIGFkZGVkIGJ5IE11c2ljQnJhaW56J3MgUGljYXJkCgkgIHRhZ2dlciBhcHBsaWNhdGlvbi4gVGhlc2UgdGFncyAoZXNwLiB0aGUgYWxidW0gaWQpIGFyZQoJICBoZWxwZnVsIGZvciByaHl0aG1ib3ggZXQuYWwuIHRvIGF1dG9tYXRpY2FsbHkgZG93bmxvYWRzCgkgIGNvdmVyIGFydC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjIwNQoKMjAxMS0wMi0xNCAwMDozODo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHJlZmFjdG9yIGlUdW5lcyB0YWcgcGFyc2luZyBhIGJpdAoKMjAxMS0wMi0xMCAyMzo1Mjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkgIGRvYXA6IHVwZGF0ZSBtYWlsaW5nIGxpc3QgbG9jYXRpb24KCjIwMTEtMDItMTAgMTg6MTE6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBwcm9wYWdhdGUgZXJyb3IgZHVyaW5nIGV4cG9zZV9zdHJlYW1zCgkgIC4uLiBhcyBpdCBtYXkgb2NjdXIgZHVyaW5nIGluaXRpYWwgcGFyc2luZyBvZiBmcmFnbWVudGVkIGZpbGUuCgoyMDExLTAyLTEwIDE4OjAwOjExICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYXZvaWQgc2tpcHBpbmcgZXhwb3NpbmcgYSBzdHJlYW0gZm9sbG93aW5nIGEgcmVtb3ZlZCBzdHJlYW0KCjIwMTEtMDItMTAgMTE6NTY6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICBtYXRyb3NrYWRlbXV4OiBzdG9yZSBjbHVzdGVyIHBvc2l0aW9ucyBwcm92aWRlZCBieSBTZWVrSGVhZAoJICAuLi4gYW5kIHVzZSB0aG9zZSwgaWYgYXZhaWxhYmxlLCB0byBsb2NhdGUgYSBjbHVzdGVyIHJhdGhlciB0aGFuIHNjYW5uaW5nLgoKMjAxMS0wMi0wOSAxNjoyMjo0NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogcHJvcGVybHkgcmVzdW1lIGNsdXN0ZXIgc2Nhbm5pbmcKCSAgLi4uIHJhdGhlciB0aGFuIGdldHRpbmcgb2Zmc2V0IHRyYWNraW5nIG1lc3NlZCB1cCwgYW5kIHRoZW4gbGlrZWx5CgkgIGZhaWxpbmcgYSBzdWJzZXF1ZW50IGFzc2VydC4KCjIwMTEtMDItMDggMTA6MDc6NDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOgoJICBpZDNkZW11eDogZW5zdXJlIGEgdGFnbGlzdCBiZWZvcmUgYWRkaW5nIHRoZSBjb250YWluZXIgdGFnCgkgIEluIHRoZSBjYXNlIG9mIGlkM3YxIGFsc28gZG9uJ3QgcmV0dXJuIE5VTEwgb24gZW1wdHkgdGFncywgYnV0IGFsc28gY3JlYXRlIGEgbmV3CgkgIHRhZ2xpc3QgYW5kIGFkZCB0aGUgY29udGFpbmVyIHRhZyBmb3IgY29uc2lzdGVuY3kuCgoyMDExLTAyLTA3IDE3OjA4OjQ3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHN0cmlwIHRyYWlsaW5nIHNwYWNlcwoKMjAxMS0wMi0wNyAxNzowNzo0MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHBzcmM6IHNldCBtdWx0aXBsZSBwcm9wZXJ0aWVzIGluIG9uZSBnbwoJICBUaGVyZSBpcyBubyBuZWVkIGZvciBzZXBhcmF0ZSBnX29iamVjdF9zZXQoKSBjYWxscyBoZXJlLgoKMjAxMS0wMi0wMyAxNjoxMDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IEhhbmRsZSBpbWFnZSBjYXBzIHdpdGhvdXQgYXNzZXJ0aW5nCgkgIEltYWdlcyBtaWdodCBoYXZlIGZyYW1lcmF0ZT0wLzEgaW4gdGhlIGNhcHMsIHdoaWNoIGNhdXNlZCBhbgoJICBhc3NlcnRpb24gb24gZGVpbnRlcmxhY2UuIEkgZG9uJ3Qga25vdyBvZiBpbnRlcmxhY2VkIGltYWdlIGZvcm1hdHMKCSAgYnV0IGRlaW50ZXJsYWNlIG1pZ2h0IGJlIGhhcmRjb2RlZCBvbiBzb21lIGdlbmVyaWMgcGlwZWxpbmVzIGFuZAoJICBpdCBzaG91bGRuJ3QgYXNzZXJ0LgoJICBUaGUgZml4IHdhcyB0byBzZXQgZmllbGRfZHVyYXRpb24gdG8gMCBpZiB0aGUgaW5wdXQgaGFzIGEgZnJhbWVyYXRlCgkgIHdpdGggYSAwIG51bWVyYXRvci4KCSAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgY2hlY2tzIGZvciB0aGlzIHNpdHVhdGlvbiBvbiB0aGUgdW5pdCB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTQwMAoKMjAxMS0wMi0wNCAxMjozMzowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgZG9jczogZml4IHBhcmFtZXRlciBuYW1lIGluIHVkcHNyYyBkb2NzCgkgIEl0IGlzICJidWZmZXItc2l6ZSIgYW5kIG5vdCAiYnVmZmVyIi4gQWxzbyB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2UuCgoyMDExLTAyLTAzIDIzOjQyOjU5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogZml4IGludGVybGFjZWQgc2V0X2Zvcm1hdCBjb25maWd1cmF0aW9uCgkgIENvbW1pdCA2YzgyNjhkYmZkNWM4OGZhYzI4Yzg4MmVmMmU0NTk4YTY1MjJlMmQ2IGJyb2tlIHJlY29yZGluZwoJICBmcm9tIGludGVybGFjZWQgdjRsMiBzb3VyY2UgKGUuZy4gdHlwaWNhbCB0diBjYXB0dXJlIGNhcmQpIHNpbmNlCgkgIFY0TDJfRklFTERfU0VRX1RCICh3aXRoIGZpZWxkcyBzdG9yZWQgc2VwYXJhdGVseSkgZG9lcyBub3QgbWFwCgkgIHRvIGN1cnJlbnRseSBkZWZpbmVkIGludGVybGFjZWQgZm9ybWF0IChmaWVsZHMgc3RvcmVkIGludGVybGVhdmVkKS4KCSAgQmVzaWRlcyB0aGlzIG1pc21hdGNoLCBoYXJkd2FyZSBtaWdodCBxdWl0ZSBsaWtlbHkgbm90IHN1cHBvcnQgb3IKCSAgYXBwcmVjaWF0ZSB0aGlzIGZpZWxkIHZhbHVlLCBzaW5jZSBxdWVyeWluZyBzdXBwb3J0ZWQgZm9ybWF0cyBtYXBwZWQKCSAgX0lOVEVSTEFDRUQgZmllbGQgZm9ybWF0cyB0byBpbnRlcmxhY2VkPXRydWUgY2FwcyAoc28gdGhlIGxhdHRlciBzaG91bGQKCSAgbm90IGJlIG1hcHBlZCB0byBmaWVsZCB2YWx1ZSB0aGF0IGlzIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQpLgoKMjAxMS0wMi0wMiAxODoyNzo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBzb3VyY2U6IGZpeCB0eXBlIG9mIG50cG5zdGltZQoKMjAxMS0wMi0wMiAxODoyMToyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuaDoKCSAgcnRwYmluOiBHZXQgYW5kIHVzZSB0aGUgTlRQIHRpbWUgd2hlbiByZWNlaXZpbmcgUlRDUAoJICBXaGVuIHdlIHJlY2VpdmUgYW4gUlRDUCBwYWNrZXQsIGdldCB0aGUgY3VycmVudCBOVFAgdGltZSBpbiBuYW5zZWNvbmRzIHNvIHRoYXQKCSAgd2UgY2FuIGNvcnJlY3RseSBjYWxjdWxhdGUgdGhlIHJvdW5kLXRyaXAgdGltZS4KCjIwMTEtMDItMDEgMTk6NDA6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZDogYXJyYW5nZSBmb3IgZGVmaW5pdGlvbiBvZiBfc3dhYiBvbiBDeWd3aW4KCSAgZ3N0ZGlyZWN0c291bmRzaW5rLmM6IEluIGZ1bmN0aW9uICdnc3RfZGlyZWN0c291bmRfc2lua193cml0ZSc6CgkgIGdzdGRpcmVjdHNvdW5kc2luay5jOjU1NzogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdfc3dhYicKCSAgZ3N0ZGlyZWN0c291bmRzaW5rLmM6NTU3OiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiAnX3N3YWInCgoyMDEwLTEwLTA2IDIxOjE3OjI4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuaDoKCSAgcnRwdGhlb3JhZGVwYXk6IFJlcXVlc3QgbmV3IGtleWZyYW1lIG9uIGxvc3QgcGFja2V0cwoJICBUaGVvcmEgY2FuIG9ubHkgdXNlIHRoZSBsYXN0IGZyYW1lIChvciB0aGUga2V5ZnJhbWUpIGFzIGEgcmVmZXJlbmNlLCBzbyBpbgoJICBwcmFjdGljZS4gSWYgd2UgcmVjZWl2ZSBhIGJ1ZmZlciB0aGF0IHJlZmVyZW5jZXMgYW4gdW5rbm93biBjb2RlYm9vaywgcmVxdWVzdAoJICBuZXcgaGVhZGVycy4gSXQgcHJvYmFibHkgbWVhbnMgdGhhdCBoZWFkZXJzIHdlcmUgbG9zdC4KCjIwMTAtMDgtMjcgMTQ6MTE6NTMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmxpc3Q6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBydHBzZXNzaW9uOiBBZGQgYWN0aW9uIHNpZ25hbCB0byByZXF1ZXN0IGVhcmx5IFJUQ1AKCjIwMTAtMDgtMjcgMTY6MTE6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIHJ0cHNlc3Npb246IEFkZCBjYWxsYmFjayB0byBnZXQgdGhlIGN1cnJlbnQgdGltZQoKMjAxMC0xMC0xOSAyMjoyMTo1NCArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIHJ0cHNlc3Npb246IERvbid0IHJlbGF5IG1vcmUgdGhhbiBvbmUgUExJIHJlcXVlc3QgcGVyIFJUVAoJICBEcm9wIFBMSSByZXF1ZXN0cyBpZiBvbmUgd2FzIHJlbGF5IGluIHRoZSBsYXN0IFJUVCwgdGhlIG90aGVyIHNpZGUgbWF5CgkgIGp1c3Qgbm90IGhhdmUgcmVjZWl2ZWQgdGhlIGtleWZyYW1lIHlldC4KCjIwMTAtMDYtMjMgMTY6NDM6MjQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIHJ0cHNlc3Npb246IFNlbmQgR3N0Rm9yY2VLZXlVbml0IGV2ZW50IGluIHJlc3BvbnNlIHRvIHJlY2VpdmVkIFJUQ1AgUExJCgoyMDEwLTExLTI0IDE1OjI3OjQ2IC0wNTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgZ3N0cnRwc2Vzc2lvbjogRmFsbGJhY2sgZm9yIEZJUiB0byBQTEkgaWYgUExJIGlzbid0IGF2YWlsYWJsZQoKMjAxMC0wNi0yMiAxOTo1Njo1MCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgcnRwc2Vzc2lvbjogSW1wbGVtZW50IHNlbmRpbmcgUExJIHBhY2tldHMgaW4gcmVzcG9uc2UgdG8gR3N0Rm9yY2VLZXlVbml0CgoyMDEwLTA2LTIyIDEzOjMzOjMyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBydHBzb3VyY2U6IFJldGFpbiBSVENQIEZlZWRiYWNrIHBhY2tldHMgZm9yIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lCgoyMDEwLTA5LTA3IDEzOjM1OjE2ICswMzAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IE1ha2UgcnRjcCBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUgYWZ0ZXIgcHJvY2Vzc2luZyBpdAoJICBGdW5jdGlvbnMgdGhhdCBwcm9jZXNzIHRoZSBydGNwIGJ1ZmZlciBjb3VsZCBkZWNpZGUgdG8ga2VlcCBhIHJlZgoJICBvbiB0aGUgYnVmZmVyIGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcuIFNvIG1ha2UgdGhlIG1ldGFkYXRhIHdyaXRhYmxlCgkgIG9ubHkgYWZ0ZXIgdGhleSBhcmUgZG9uZS4KCjIwMTAtMDYtMTcgMTc6MzQ6MTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmxpc3Q6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBydHBzZXNzaW9uOiBFbWl0IHNpZ25hbCBvbiBpbmNvbWluZyBSVENQIEZCIHBhY2tldAoKMjAxMS0wMi0wMSAxODoxNzoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogZml4IGNvbXBpbGF0aW9uCgoyMDEwLTA2LTE1IDE4OjM5OjQ3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgcnRwc2Vzc2lvbjogQWRkIG1ldGhvZCB0byByZXF1ZXN0IGVhcmx5IFJUQ1AgcGFja2V0CgkgIEltcGxlbWVudCB0aGUgZWFybHkgbW9kZSBkZWZpbmVkIGluIFJGQyA0NTg1LiBJbiB0aGlzIG1vZGUsIFJUQ1AgZmVlZGJhY2sKCSAgcGFja2V0cyBhcmUgc2VudCBlYXJseSB0byBub3RpZmllci4KCjIwMTAtMDYtMDEgMTk6Mjg6MDEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBydHBzZXNzaW9uOiBBZGQgcHJvcGVydHkgZm9yIG1pbmltdW0gaW50ZXJ2YWwgYmV0d2VlbiBSZWd1bGFyIFJUQ1AgbWVzc2FnZXMKCSAgVGhpcyBjYW4gYmUgY2hhbmdlZCBhY2NvcmRpbmcgdG8gUkZDIDQ1ODUKCjIwMTAtMDYtMTQgMTg6NDA6MzMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmxpc3Q6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBydHBzZXNzaW9uOiBFbWl0IHNpZ25hbCB3aGVuIHNlbmRpbmcgYSBjb21wb3VuZCBSVENQIHBhY2tldAoJICBUaGlzIGFsbG93cyB1c2VycyB0byBhZGQgZXh0cmEgUlRDUCBwYWNrZXRzIHRvIHRoZSBjb21wb3VuZAoJICBSVENQIHBhY2tldC4KCjIwMTAtMDYtMTkgMTk6MTE6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgcnRwcHRkZW11eDogVGFnIHVwc3RyZWFtIGN1c3RvbSBldmVudHMgd2l0aCBwYXlsb2FkIHR5cGUKCjIwMTAtMDYtMTggMTk6MTI6NDAgLTA0MDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgIHJ0cHNzcmNkZW11eDogVGFnIHVwc3RyZWFtIGN1c3RvbSBldmVudHMgd2l0aCBTU1JDCgoyMDEwLTEwLTAxIDE3OjE5OjE2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IEVtaXQgIm9uLXNzcmMtdmFsaWRhdGVkIiB3aGVuIHZhbGlkYXRpbmcgYnkgUlRDUAoJICBFbWl0ICJvbi1zc3JjLXZhbGlkYXRlZCIgaWYgdGhlIFNTUkMgaXMgdmFsaWRhdGVkIGJ5IHJlY2VpdmluZwoJICBhIFJUQ1AgU0RFUyBwYWNrZXQuCgoyMDExLTAyLTAxIDE2OjM4OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSAgajJrcGF5OiBza2lwIEVQSCBwYWNrZXRzCgkgIEluY2x1ZGUgRVBIIG1hcmtlcnMgaW50byB0aGUgcHJldmlvdXMgY2h1bmsgb2YgcGFja2V0cy4KCjIwMTEtMDEtMzEgMTc6NTY6MTggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuaDoKCSAgcnRwcGNtYXBheTogUmVuYW1lIHRoZSBjbGFzcyB0byBoYXZlIHRoZSByaWdodCBuYW1lCgkgIEl0IHdhcyBuYW1lIHBtY2EgaW5zdGVhZCBvZiBwY21hIGFuZCBtYWRlIGRlYnVnIGxvZ3MgaGFyZCB0byBzZWFyY2guCgoyMDExLTAxLTMxIDA1OjU4OjM2ICswMTAwICBEYXZpZCBIZW5uaW5nc3NvbiA8ZGF2aWQuaGVubmluZ3Nzb25AY2Fub25pY2FsLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgUHVsc2VzaW5rOiBBbGxvdyBjaHVua3MgdXAgdG8gYnVmc2l6ZSBpbnN0ZWFkIG9mIHNlZ3NpemUKCSAgQnkgYWxsb3dpbmcgbGFyZ2VyIGNodW5rcyB0byBiZSBzZW50LCBQdWxzZUF1ZGlvIHdpbGwgaGF2ZSBhCgkgIGxvd2VyIENQVSB1c2FnZS4gVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBvbiBsb3ctZW5kIG1hY2hpbmVzLAoJICB3aGVyZSBQdWxzZUF1ZGlvIGNhbiBjcmFzaCBpZiBwYWNrZXRzIGFyZSBjb21pbmcgaW4gYXQgYSBoaWdoZXIKCSAgcmF0ZSB0aGFuIFB1bHNlQXVkaW8gY2FuIHByb2Nlc3MgdGhlbS4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgSGVubmluZ3Nzb24gPGRhdmlkLmhlbm5pbmdzc29uQGNhbm9uaWNhbC5jb20+CgoyMDExLTAxLTMxIDEzOjQ0OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogc2ltcGxpZnkgdGVtcGxhdGUgY2FwcwoJICBXZSBjYW4gbWVyZ2UgYWxsIHRoZSBZVVYgdmFyaWFudHMgaW50byBvbmUgc2luZ2xlIHN0cnVjdHVyZS4KCjIwMTEtMDEtMjcgMTU6MzU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHdpbjMyOiBmaXggREVGQVVMVF9BVURJT1NJTkssIHNob3VsZCBiZSBkaXJlY3Qqc291bmQqc2luawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNzA1CgoyMDExLTAxLTI3IDE2OjAyOjQ2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGluaXRpYWxpemUgbG9jYWwgdmFyaWFibGUgdG8gcGxlYXNlIG1pbmd3MzIgY29tcGlsZXIKCjIwMTEtMDEtMjYgMjI6MjE6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1ZHA6IHVzZSBzb2NrbGVuX3Qgd2hlcmUgYXBwcm9wcmlhdGUgcmF0aGVyIHRoYW4gY3VzdG9tIHR5cGUKCSAgSW4gcGFydGljdWxhciwgZml4ZXMgQ3lnd2luIGJ1aWxkIHdoZXJlIHNvY2tsZW5fdCBpcyBkZWZpbmVkIGFzIGludAoJICBpbiBsaW5lIHdpdGggbmF0aXZlIHdpbjMyIGFwaSBkZWZpbml0aW9uLgoKMjAxMS0wMS0yNyAxMjoxNjo0NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IG1pbmQgcm91bmRpbmcgaXNzdWVzIHdoZW4gY29udmVydGluZyBmcm9tIGdsb2JhbCB0aW1lIHRvIG1vdiB0aW1lCgkgIEluIHBhcnRpY3VsYXIsIHRoaXMgYXZvaWRzIG1pc3NpbmcgdGhlIGludGVuZGVkIGtleWZyYW1lIHdoZW4gZmlyc3QgY29udmVydGluZwoJICBmcm9tIHRoZSBmcmFtZSdzIG1vdiB0aW1lIHRvIGdsb2JhbCBzZWdtZW50IHRpbWUsIGFuZCB0aGVuIGJhY2sgZnJvbSBnbG9iYWwKCSAgdGltZSB0byBtb3YgdGltZSB3aGVuIGFjdGl2YXRpbmcgdGhlIHNlZ21lbnQuCgoyMDExLTAxLTI2IDA4OjQ4OjQzICswMDAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuLnRvbmNoZXZAYXhpcy5jb20+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOgoJICBtYXRyb3NrYW11eDogZG9uJ3QgbGVhayBlYm1sIHdyaXRlciBjYXBzIHdoZW4gcmUtdXNpbmcgbWF0cm9za2FtdXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDU0MgoKMjAxMS0wMS0yNSAyMTo1NjoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogZG9uJ3QgZGl2aWRlIGJ5IDAKCjIwMTEtMDEtMTggMTQ6NDg6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IHB1bGwgbW9kZSBzaG91bGQgYWx3YXlzIHJlcG9ydCBzZWVrYWJsZQoJICAuLi4gYXMgaXQgbm8gbG9uZ2VyIHJlcXVpcmVzIGFuIGluZGV4LCBidXQgY2FuIHNlZWsgYnkgc2Nhbm5pbmcgYXMgd2VsbC4KCjIwMTEtMDEtMTAgMTI6MzQ6MjIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBzdXBwb3J0IHNvbWUgbW9yZSBtcGVnLTQgZm91cmNjIHZhcmlhbnRzCgoyMDExLTAxLTEwIDEyOjM0OjAzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogc2ltcGxpZnkgcmV0cmlldmluZyBzdHNkIGNoaWxkIGVudHJ5IGF0b20KCjIwMTEtMDEtMjQgMTg6Mjc6NTIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogRG9uJ3QgY29uc2lkZXIgMCBmY2NfaGFuZGxlciBhcyB1bmNvbXByZXNzZWQuCgkgIEp1c3QgYXZvaWRzIGEgd2FybmluZwoKMjAxMS0wMS0yMCAxMjoxNDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogdGFrZSBjb25maWd1cmVkIHN0YXJ0IHRpbWUgaW50byBhY2NvdW50CgkgIHdoZW4gY3JlYXRpbmcgdGhlIG5ld3NlZ21lbnQgZXZlbnQsIHRha2UgdGhlIGNvbmZpZ3VyZWQgc3RhcnQgdGltZQoJICBpbnRvIGFjY291bnQuCgoyMDExLTAxLTI0IDE1OjExOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IHByaW50ZiBmb3JtYXQgd2FybmluZyBvbiBtaW5ndzMyCgkgIE1ha2Ugd2luMzIgYnVpbGQgYm90IGhhcHB5IGFnYWluLCBhbmQgbmljZWZ5IG91dHB1dCB3aGlsZSB3ZSdyZSBhdCBpdC4KCSAgcXRkZW11eC5jOiBJbiBmdW5jdGlvbiAncXRkZW11eF9wYXJzZV90cnVuJzoKCSAgcXRkZW11eC5jOjIxNjI6MzogZXJyb3I6IGZvcm1hdCAnJWx1JyBleHBlY3RzIHR5cGUgJ2xvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDkgaGFzIHR5cGUgJ2d1aW50MzInCgoyMDExLTAxLTI0IDEzOjM5OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtQU1SLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuc2g6CgkgIGV4YW1wbGVzOiBhdXRvYXVkaXNpbmsgLT4gYXV0b2F1ZGlvc2luayBpbiBSVFAgZXhhbXBsZXMKCjIwMTEtMDEtMjQgMDA6MzI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMjcgPT09CgoyMDExLTAxLTIxIDEyOjU0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjI3CgoyMDExLTAxLTIwIDE0OjEwOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIGgyNjRkZXBheTogZG9uJ3QgbGVhayBjb2RlYyBkYXRhIGJ1ZmZlciBpbiBieXRlLXN0cmVhbT10cnVlIG1vZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDA2MwoKMjAxMS0wMS0yMCAxMzo0MTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGRvbid0IGxlYWsgdXJsIHN0cmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMDY0CgoyMDExLTAxLTIwIDExOjQ1OjQ3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogR3JhY2VmdWxseSBoYW5kbGUgbW92IGZpbGVzIG1pc3VzaW5nIHRoZSBXQVZFIGF0b21zCgkgIENoZWNrIHRoYXQgdGhlIFdBVkVIRUFERVIgbm9kZSBpcyBwcmVzZW50IGluc3RlYWQgb2YgYmxpbmRseSB1c2luZyBpdC4KCSAgSWYgbm90IHByZXNlbnQgd2Ugd29uJ3QgYmUgYWJsZSB0byBwcm92aWRlIGEgbW9yZSByZWZpbmVkIGNhcHMsIGJ1dCBhdAoJICBsZWFzdCB3ZSB3b24ndCBjcmFzaC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDAyOAoKMjAxMS0wMS0yMCAwMDowNzozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB2NGwyc2luazogZml4IGFjY2lkZW50YWwgYnJlYWthZ2Ugb2YgbmF2aWdhdGlvbiBpbnRlcmZhY2Ugc3VwcG9ydAoKMjAxMS0wMS0xOCAxMjo1ODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4yNi40IHByZS1yZWxlYXNlCgoyMDExLTAxLTEyIDE0OjAzOjU3IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5jOgoJICBkZWludGVybGFjZTogcmV3cml0ZSBob3cgbmVpZ2hib3Jpbmcgc2NhbiBsaW5lcyBhcmUgY2FsY3VsYXRlZAoJICBPbGQgY29kZSB3YXMgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgZXhhY3RseSBob3cgdGhlIG5laWdoYm9yaW5nCgkgIHNjYW4gbGluZXMgYXJlIGNhbGN1bGF0ZWQsIGFuZCBpdCBhcHBlYXJlZCB0aGF0IHNvbWUgd2VyZSBvZmYgYnkKCSAgKzIgb3IgLTIsIGRlcGVuZGluZyBvbiB0aGUgZmllbGQgZmxhZy4gIEZpeGVzICM2MzkzMjEuCgoyMDExLTAxLTE4IDA5OjMzOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSAgYXZpc3VidGl0bGU6IHNldCBjYXBzIG9uIHNyY3BhZCB0byBmaXggaXNzdWUgd2l0aCBkaXNjb3ZlcmVyCgkgIFNldCBjYXBzIGZyb20gdGhlIHN0YXJ0IHNvIGRpc2NvdmVyZXIgZG9lc24ndCBibG93IHVwIG9uCgkgIHNlZWluZyBubyBuZWdvdGlhdGVkIGNhcHMgYmV0d2VlbiBlbGVtZW50cyBvbiBwcmVyb2xsLAoJICB3aGljaCBtaWdodCBoYXBwZW4gaWYgbm8gc3VidGl0bGUgYnVmZmVycyBoYXZlIGJlZW4KCSAgcHVzaGVkIHlldCBhdCB0aGUgdGltZS4gU2VlIGZpbGUgZnJvbSBidWcgIzYwMzMwOC4KCjIwMTEtMDEtMTcgMjA6MDk6MTYgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IFVuY29yayBzdHJlYW0gd2hpbGUgZmx1c2hpbmcgdGhlIHJpbmdidWZmZXIKCSAgQWZ0ZXIgc3RhcnRpbmcgdGhlIHJpbmdidWZmZXIsIHdlIHdhaXQgZm9yIGVub3VnaCBkYXRhIHRvIGFycml2ZSBiZWZvcmUKCSAgdW5jb3JraW5nIHRoZSBzdHJlYW0uIFRoaXMgd2lsbCBjYXVzZSB0aGUgcGlwZWxpbmUgdG8gc3RhbGwgaWYgd2UgZ2V0IGFuCgkgIEVPUyAob3Igb3RoZXJ3aXNlIG5lZWQgdG8gZmx1c2ggdGhlIHN0cmVhbSkgYmVmb3JlIHN1ZmZpY2llbnQgZGF0YQoJICBiZWNvbWVzIGF2YWlsYWJsZS4gVGhpcyBwYXRjaCBtYWtlcyBzdXJlIHRoYXQgdGhlIHN0cmVhbSBpcyB1bmNvcmtlZAoJICB3aGlsZSBmbHVzaGluZyB0byBhdm9pZCB0aGlzIHByb2JsZW0uCgkgIEZpeGVzIGlzc3VlIHdpdGggYSB3ZWJraXQgdW5pdCB0ZXN0IHRlc3RpbmcgcmV2ZXJzZSBwbGF5YmFjayBvZgoJICBhbiBNUDQgSC4yNjQvQUFDIGZpbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk3NDAKCjIwMTEtMDEtMTQgMTQ6NTE6NTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogYXZvaWQgY3JlYXRpbmcgY2FwcyBmcm9tIHN0cmluZyB3aGVuIHBvc3NpYmxlCgkgIEZpeGVzICM2Mzk1MTYuCgoyMDExLTAxLTE0IDE0OjQ4OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogc2V0IHNyYyBwYWQgY2FwcyB3aGVuIHN0YXJ0aW5nIGZpbGUKCSAgRml4ZXMgIzYzOTUxNi4KCjIwMTEtMDEtMTIgMjA6Mzg6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBkZWZpbmUgVjRMMl9GSUVMRF9JTlRFUkxBQ0VEX3tUQixCVH0gaWYgbm90IGF2YWlsYWJsZSBpbiBoZWFkZXIKCSAgT2xkZXIga2VybmVscyBkb24ndCBoYXZlIHRoZXNlLCBhbmQgdGhlcmUncyBubyBlYXN5IHdheSB0byBjaGVjayBmb3IgdGhlCgkgIGV4aXN0YW5jZSBvZiBlbnVtcyB0aGF0IGRvZXNuJ3QgaW52b2x2ZSBhIGNvbmZpZ3VyZSBjaGVjaywgc28ganVzdCBkZWZpbmUKCSAgdGhlc2UgaWYgdGhlIFY0TDJfQ0FQX1ZJREVPX09VVFBVVF9PVkVSTEFZIGRlZmluZSBpcyBub3QgdGhlcmUsIHdoaWNoIHdhcwoJICBhZGRlZCBpbiB0aGUgc2FtZSBjb21taXQgYXMgdGhlIFRCL0JUIGVudW0uIEZpeGVzIGNvbXBpbGF0aW9uIG9uIENlbnRPUyA1LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MzM5CgoyMDExLTAxLTExIDIzOjE4OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjI2LjMgcHJlLXJlbGVhc2UKCjIwMTEtMDEtMTEgMjI6NDI6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDExLTAxLTExIDIzOjM5OjEyICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBNYWtlIGNvcmtpbmcgZHVyaW5nIHBhdXNlIHN5bmNocm9ub3VzCgkgIFRoaXMgbWFrZXMgdGhlIGNhbGwgdG8gcGFfc3RyZWFtX2NvcmsoKSBkdXJpbmcgcmluZ2J1ZmZlciBwYXVzZSgpCgkgIHN5bmNocm9ub3VzLCB3aGljaCBtYWtlcyBzdXJlIHRoYXQgdGhlIGNsb2NrIGRvZXMgbm90IGFkdmFuY2UgYWZ0ZXIgd2UKCSAgdGFrZSBhIHNuYXBzaG90IGZvciBzdGFydF90aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5MjQwCgoyMDExLTAxLTExIDE5OjMzOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2RhLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0wMS0xMSAxNTo1MDoyOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlNTcyYzg3IHRvIGY5NGQ3MzkKCjIwMTEtMDEtMTAgMTY6MzY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjY2JhYTg1IHRvIGU1NzJjODcKCjIwMTEtMDEtMTAgMTQ6NTM6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NjQ0NWFkIHRvIGNjYmFhODUKCjIwMTEtMDEtMDcgMTM6MjQ6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMjYuMiBwcmUtcmVsZWFzZQoKMjAxMS0wMS0wNyAxMzowNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0wMS0wNyAwMjozMjoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IGZpeCBjb21waWxlciB3YXJuaW5ncyBjYXVzZWQgYnkgLURHX0RJU0FCTEVfQVNTRVJUCgoyMDExLTAxLTA3IDAyOjA2OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSAgbWF0cm9za2E6IGRvbid0IHB1dCBlc3NlbnRpYWwgZnVuY3Rpb24gY2FsbHMgaW50byBnX2Fzc2VydCgpCgkgIGdfYXNzZXJ0KCkgd2lsbCBleHBhbmQgdG8gTk9PUHMgaWYgLURHX0RJU0FCTEVfQVNTRVJUIGlzIHBhc3NlZC4KCjIwMTEtMDEtMDcgMDE6MzU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IGRvbid0IHB1dCBmdW5jdGlvbmFsIGNvZGUgbGlrZSBpb2N0bCBjYWxscyBpbnRvIGdfcmV0dXJuX2lmX2ZhaWwoKQoJICBUaGVzZSBtYWNyb3Mgd2lsbCBleHBhbmQgdG8gTk9PUHMgZ2l2ZW4gdGhlIHJpZ2h0IGRlZmluZXMuIEFsc28sCgkgIGdfcmV0dXJuX2lmX2ZhaWwoKSBhbmQgZnJpZW5kcyBhcmUgbWVhbnQgdG8gYmUgdXNlZCB0byBjYXRjaCBwcm9ncmFtbWluZwoJICBlcnJvcnMgKGxpa2UgaW52YWxpZCBpbnB1dCB0byBmdW5jdGlvbnMpLCBub3QgcnVudGltZSBlcnJvciBoYW5kbGluZy4KCjIwMTEtMDEtMDcgMDE6MTE6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBuZXZlciBkaXNhYmxlIGdfYXNzZXJ0KCkgYW5kIGNhc3QgY2hlY2tzIGZvciB0aGUgdW5pdCB0ZXN0cwoJICBUaGUgdW5pdCB0ZXN0cyBhcmUgcmlkZGxlZCB3aXRoIGdfYXNzZXJ0KCkgYW5kIGZyaWVuZHMsIG1ha2Ugc3VyZSB3ZQoJICBkb24ndCBkaXNhYmxlIGFzc2VydCBhbmQgY2FzdCBjaGVja3MgZm9yIHRoZSB1bml0IHRlc3RzIGV2ZW4gaWYKCSAgdGhpcyBoYXMgYmVlbiBzcGVjaWZpZWQgZm9yIHRoZSByZXN0IG9mIHRoZSBjb2RlIGJhc2UsIGUuZy4gdmlhCgkgIC0tZGlzYWJsZS1nbGliLWFzc2VydHMuCgoyMDExLTAxLTA2IDEyOjI5OjIxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkgIHJ0cDogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlcyBvbiBtYWNvc3gKCjIwMTEtMDEtMDYgMTI6Mjg6NTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmM6CgkgIHF0ZGVtdXg6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZXMgb24gbWFjb3N4CgoyMDExLTAxLTA1IDE3OjQ5OjE2IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGNhcHNkZWJ1Zy5jOgoJICBjYXBzZGVidWc6IEFkZCBjYXBkZWJ1ZyBkZWJ1ZyBjYXRlZ29yeQoKMjAxMC0xMi0xMSAxMjo0MjoxMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IENoYW5nZSB0aGUgZGVmYXVsdCB0byBsaW5lYXIKCSAgVGhlIHByZXZpb3VzIGRlZmF1bHQsIGdyZWVkeWgsIHRha2VzIDQgdGltZXMgYXMgbG9uZyBhcyBNUEVHLTIKCSAgdmlkZW8gZGVjb2RpbmcsIGFuZCBpcyB1bmxpa2VseSBmYXN0IGVub3VnaCBvbiBhbnkgY3VycmVudCBDUFUKCSAgdG8gcGxheSAxMDgwaSB2aWRlbyBpbiByZWFsLXRpbWUuICBncmVlZHlsIGlzbid0IG11Y2ggZmFzdGVyLgoJICBsaW5lYXIgd2FzIGNob3NlbiBvdmVyIHZmaXIsIHNpbmNlIHRoZSBxdWFsaXR5IGFkdmFudGFnZSBvZiB2ZmlyCgkgIGlzIG1pbmltYWwgY29tcGFyZWQgdG8gdGhlIG9jY2FzaW9uYWwgdmlzdWFsIGFydGlmYWN0cyBhbmQgc2xvd2VyCgkgIHByb2Nlc3NpbmcuCgoyMDExLTAxLTA1IDE4OjMyOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBkb24ndCBjb25mdXNlIHJldHVybiB2YWx1ZXMKCSAgUmV0dXJuIGEgcmV0dXJuIHZhbHVlIG9mIHRoZSByaWdodCB0eXBlLgoKMjAxMS0wMS0wNSAxNjoyNDoxMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5jOgoJICBxdGRlbXV4OiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGVzIG9uIG1hY29zeAoKMjAxMS0wMS0wNSAxNTowMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkgIHZyYXdkZXBheTogZml4IGxlbmd0aCBjaGVjawoJICBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgQWRkIHRoZSBsZW5ndGggY2hlY2sgc28gd2UgZG9uJ3QgY2F1c2UgdW5uZWVkZWQgd2FybmluZ3MuCgoyMDExLTAxLTA1IDEyOjA0OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSAgbXVsdGl1ZHBzaW5rOiBhZGQgYnVmZmVyLXNpemUgcHJvcGVydHkKCSAgQWRkIGJ1ZmZlci1zaXplIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSB0aGUga2VybmVsIHNlbmQgYnVmZmVyLgoKMjAxMS0wMS0wMyAyMDoxNjoyMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyB3aGVuIGRlYnVnLWxvZ2dpbmcgZGlzYWJsZWQKCjIwMTEtMDEtMDMgMjA6MDY6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYS1kZW11eDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgd2hlbiBkZWJ1Zy1sb2dnaW5nIGRpc2FibGVkCgoyMDExLTAxLTAzIDE4OjA1OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuYzoKCSAgY2FjYXNpbms6IGZpeCBtYXNrcyBhbmQgc3RyaWRlcwoJICBVc2UgdGhlIHJpZ2h0IGVuZGlhbm5lc3MgdG8gcmVhZCB0aGUgbWFza3MuCgkgIFVzZSB0aGUgcmlnaHQgc3RyaWRlcyBmb3IgdGhlIGJpdG1hcC4KCSAgRml4ZXMgIzYzODU2OQoKMjAxMS0wMS0wMyAwMToxODowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IHVuZG8gcHJlc3VtYWJseSBhY2NpZGVudGFsIGVuYWJsZW1lbnQgb2YgdGhlIEdzdFhPdmVybGF5IGludGVyZmFjZQoJICBMb29rcyBsaWtlIHRoaXMgZ290IGVuYWJsZWQgYnkgYWNjaWRlbnQgd2hlbiBhZGRpbmcgaXQgdG8gdjRsMnNpbmssCgkgIHNvIHVuZG8gdGhpcyBmb3Igbm93LiBOb3Qgc3VyZSBpdCBtYWtlcyBtdWNoIHNlbnNlIGluIGEgR1N0cmVhbWVyCgkgIGNvbnRleHQgd2l0aCBjdXJyZW50IGhhcmR3YXJlLgoKMjAxMS0wMS0wMyAxNTo0MDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogaW5jcmVhc2UgdWRwIGJ1ZmZlciBzaXplCgkgIFNldCBhIGJpZ2dlciBVRFAgYnVmZmVyIHNpemUgYnkgZGVmYXVsdCB0byByZWR1Y2UgcGFja2V0IGxvc3Mgd2l0aAoJICBoaWdoIGJpdHJhdGUgc3RyZWFtcy4KCjIwMTEtMDEtMDIgMTk6MTk6MjcgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5oOgoJICBtdWx0aWZpbGVzaW5rOiBzZW5kIHN0cmVhbSBoZWFkZXJzIGluIGtleS1mcmFtZSBtb2RlCgoyMDExLTAxLTAyIDE5OjQzOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL01ha2VmaWxlLmFtOgoJKiBleHQvamFjay9SRUFETUU6CgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogZml4IHVwIGVsZW1lbnQgZGV0YWlscyBhbmQgc29tZSBvdGhlciBtaW5vciBjbGVhbi11cHMKCjIwMTEtMDEtMDIgMTk6MjM6NTEgKzAwMDAgIEVyaWNoIFNjaHViZXJ0IDxlcmljaEBkZWJpYW4ub3JnPgoKCSogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6CgkgIGlkM2RlbXV4OiBmaXggcGFyc2luZyBvZiBJRDN2Mi40IGdlbnJlIGZyYW1lcyB3aXRoIG11bHRpcGxlIGdlbnJlcwoJICBXZSdkIG9ubHkgZXh0cmFjdCB0aGUgZmlyc3QgZ2VucmUgKG11bHRpcGxlIHRpbWVzKSBpbnN0ZWFkIG9mIGFsbAoJICBnZW5yZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzg1MzUKCjIwMTEtMDEtMDIgMTc6NDA6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogdGVtcGxhdGUgY2FwcyBoYWQgbGlzdHMgd2l0aCBvbmUgdmFsdWUsIGp1c3QgdXNlIHZhbHVlIGRpcmVjdGx5CgoyMDExLTAxLTAyIDE3OjA3OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogbWFrZSBnZXRfdHlwZSBmdW5jdGlvbnMgdGhyZWFkLXNhZmUKCSAgQmVjYXVzZSB3ZSBjYW4gKHNob3VsZG4ndCBiZSBuZWVkZWQgd2l0aCBvdGhlciB3b3JrYXJvdW5kcyBzdGlsbCB0aGVyZSkuCgoyMDExLTAxLTAyIDE1OjI3OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcwoKMjAxMS0wMS0wMiAxNToyNTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkqIGV4dC9NYWtlZmlsZS5hbToKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvamFjay9NYWtlZmlsZS5hbToKCSAgamFjazogbmV3IGphY2thdWRpb3NyYyBhbmQgamFja2F1ZGlvc2luayBlbGVtZW50cywgbW92ZWQgZnJvbSBnc3QtcGx1Z2lucy1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTkyOQoKMjAxMC0xMC0xOSAxNjoyMzoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgdmFyaW91cyAoZXh0KTogYWRkIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmbGFncwoJICBDYW5vbmljYWxpemUgcHJvcGVydHkgbmFtZXMgYXMgbmVlZGVkLgoKMjAxMC0wOS0wOSAxNDo0OTowNiAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8bGUuYnVzaW5lc3NtYW5AZ21haWwuY29tPgoKCSogZXh0L2phY2svTWFrZWZpbGUuYW06CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IGFkZGVkIHRyYW5zbGF0YWJsZSB0ZXh0IGZvciBzZXJ2ZXIgbm90IGZvdW5kIGVycm9yCgoyMDEwLTA5LTA2IDE3OjE3OjU0IC0wNDAwICBUcmlzdGFuIE1hdHRoZXdzIDxsZS5idXNpbmVzc21hbkBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9qYWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9qYWNrL2phY2tfY2xpZW50LmM6CgkgIGV4YW1wbGVzOiBhZGQgdGVzdCB0byBkZW1vbnN0cmF0ZSBqYWNrX2NsaWVudF90IHVzYWdlCgoyMDEwLTA5LTA2IDE2OjExOjMxIC0wNDAwICBUcmlzdGFuIE1hdHRoZXdzIDxsZS5idXNpbmVzc21hbkBnbWFpbC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvY2xpZW50LmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb2NsaWVudC5oOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5oOgoJICBqYWNrOiBhZGRlZCBjbGllbnQgcHJvcGVydHkKCjIwMTAtMDYtMTcgMTY6MjY6MDcgLTA0MDAgIFRyaXN0YW4gTWF0dGhld3MgPHRyaXN0YW5Ac2F0LnFjLmNhPgoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBqYWNrOiByZW1vdmVkIHVudXNlZCBmaWxlIGdzdGphY2tiaW4uYwoJICBUaGlzIGlzIGEgMC44IGxlZnRvdmVyLgoKMjAxMC0wNS0xMyAxMjo1NToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICBqYWNrc3JjOiBtYWtlIHN1cmUgd2UgYWx3YXlzIHJlYWQgbmZyYW1lcwoJICBFcnJvciBvdXQgd2hlbiB3ZSBhcmUgYXNrZWQgdG8gcmVhZCBhIGRpZmZlcmVudCBzaXplIHRoYXQgd2hhdCB3YXMgY29uZmlndXJlZCBhcwoJICB0aGUgamFjayBwZXJpb2Qgc2l6ZSBiZWNhdXNlIHRoYXQgd291bGQgbWVhbiBzb21ldGhpbmcgZWxzZSBpcyB3cm9uZy4KCSAgRml4ZXMgIzYxODQwOQoKMjAxMC0wNS0xMSAxNzo1NjozMSAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmg6CgkgIGphY2s6IGltcHJvdmUgcHJvY2Vzc19jYgoKMjAxMC0wNC0yNyAxMDo0ODozMiAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkB0cmlzdGFuLWxhcHRvcC4obm9uZSk+CgoJKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9qYWNrL2dzdGphY2t1dGlsLmM6CgkqIGV4dC9qYWNrL2dzdGphY2t1dGlsLmg6CgkgIGphY2s6IGltcGxlbWVudCBtdWx0aWNoYW5uZWwgc3VwcG9ydCBjb3JyZWN0bHkgZm9yIGphY2thdWRpb3NyYwoJICBGaXhlcyBwYXJ0cyBvZiBidWcgIzYxNjU0MS4KCjIwMTAtMDQtMjcgMTE6MjE6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkqIGV4dC9qYWNrL2dzdGphY2tyaW5nYnVmZmVyLmg6CgkgIGphY2s6IHJlbW92ZSBlbXB0eSBkaXNwb3NlIGFuZCBmaW5hbGl6ZSBtZXRob2RzCgoyMDEwLTA0LTI3IDEwOjU5OjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICBqYWNrOiBkb24ndCBsZWFrIGNhcHMKCSAgQWRkIGRpc3Bvc2UgbWV0aG9kcyB0byBjbGVhciBjYXBzLgoKMjAxMC0wNC0yNyAxMDozNDoyNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogZG9uJ3QgdXNlIEdTVF9ERUJVR19GVU5DUFRSIGZvciBnb2JqZWN0IHZtZXRob2RzCgoyMDEwLTAzLTI0IDE1OjU5OjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgamFjazogZml4IGVsZW1lbnQgbmFtZSBpbiBzZWN0aW9uIGRvYyBibG9iCgoyMDEwLTAzLTIyIDE2OjU2OjAzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgQWRkIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24KCSAgYW5kIGZpeCB0aGUgd2FybmluZ3MKCjIwMTAtMDMtMjEgMjE6Mzk6MTggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSAgQWRkIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgdG8gY29uZmlndXJlIGZsYWdzCgkgIEFuZCBmaXggYWxsIHdhcm5pbmdzCgoyMDEwLTAzLTE4IDE3OjMwOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMDktMTAtMTIgMDk6MDY6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IGVuc3VyZSBzZWd0b3RhbCBpcyBhdCBsZWFzdCAyCgkgIE5vdCBvbmx5IGFkanVzdCBidWZmZXItdGltZSBhbmQgYXZvaWQgc2VndG90YWw9MCwgYnV0IGluc3RlYWQgZW5zdXJlIHNlZ3RvdGFsIGlzCgkgIGF0bGVhc3QgMi4gRG8gc2FtZSBjaGFuZ2Ugb24gamFja3NyYy4gV2UgY291bGQgYWxzbyBjaGVjayB0aGUgbGF0ZW5jeSBhbmQgYnVmZmVyCgkgIHRpbWUgY29uZmlndXJlZCBieSB0aGUgY2xpZW50IGFuZCBhZGp1c3QgYnVmZmVyLXRpbWUgc28gdGhhdCB3ZSBnZXQgdG8gdGhlIHNhbWUKCSAgbnVtYmVyIG9mIHNlZ21lbnRzLgoKMjAwOS0xMC0xMiAwMDo1MToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICBqYWNrOiBkb24ndCBjcmFzaCBpbiByaW5nYnVmZmVyIHdpdGggU0lHRlBFIG9uIHNtYWxsIGJ1ZmZlci10aW1lcwoJICBKYWNrIG92ZXJyaWRlcyB1c2VyLXNwZWNpZmllZCBsYXRlbmN5LXRpbWUgd2l0aCB0aGUgb25lIGl0IGdldHMgZnJvbSBqYWNrCgkgIGl0c2VsZi4gSXQgYWxzbyBuZWVkcyB0byBhZGp1c3QgYnVmZmVyLXRpbWUgc29tZXdoYXQgdG8gYXZvaWQgc2VndG90YWwgYmVpbmcgMAoKMjAwOS0wNS0xMSAxNjoxMjo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvY2xpZW50LmM6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgamFjazogd2hlbiBzdG9wcGluZyBwbGF5YmFjaywgZG8gb25lIG1vcmUgY3ljbGUgdG8gZmx1c2ggdGhlIHBvcnQuIEZpeGVzICM1ODIxNjcKCSAgVGhlIGdzdF9qYWNrX2F1ZGlvX2NsaWVudF9zZXRfYWN0aXZlKCkgZmxhZ3MgdGhlIHBvcnQgYXMgZGVhY3RpdmF0aW5nIGFuZCB1c2VzCgkgIGEgR0NvbmQgdG8gd2FpdCB1bnRpbCB0aGUgamFja19wcm9jZXNzX2NiKCkgaGFzIHJ1biBvbmNlIG1vcmUgYW5kIGNsZWFyZWQgdGhlCgkgIGZsYWcuIFRoaXMgd2F5IHRoZSBjbGllbnQgemVybydzIHRoZSBidWZmZXIuIFRoaXMgaGFwcGVucyBpZiBvbmUgbWFueWFsbHkgZ28KCSAgdG8gUEFVU0VEIGFuZCB0aGVuIHRvIFJFQURZLCB3aGlsZSBsZXRpbmcgdGhlIG1haW5sb29wIHJ1biBpbmJldHdlZW4uCgoyMDA5LTAzLTE2IDExOjIxOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIGphY2s6IEFkZCBuZXcgY29ubmVjdGlvbiBtb2RlCgkgIEFkZCBhIG5ldyBjb25uZWN0aW9uIG1vZGUgdG8gamFja3NyYyBhbmQgamFja3NpbmsuIEluIHRoaXMgbmV3IGF1dG8tZm9yY2UKCSAgY29ubmVjdGlvbiBtb2RlIGphY2sgd2lsbCBjcmVhdGUgYXMgbWFueSBwb3J0cyBhcyByZXF1ZXN0ZWQvbmVlZGVkIGluIHRoZQoJICBwaXBlbGluZSBhbmQgd2lsbCB0aGVuIGNvbm5lY3QgYXMgbWFueSBwaHlzaWNhbCBwb3J0cyBhcyBwb3NzaWJsZSwgcG9zc2libHkKCSAgbGVhdmluZyBzb21lIHBvcnRzIHVuY29ubmVjdGVkLgoJICBBbHNvIGdldCByaWQgb2Ygc29tZSBsZWZ0b3ZlciBnX3ByaW50LgoJICBGaXhlcyAjNTc1Mjg0LgoKMjAwOC0xMS0yMyAxNzo1MDowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0L2phY2svOiBRdWVyeSBwb3J0IGxhdGVuY2llcyBmb3Igc2luay9zcmMgZGVsYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgIFF1ZXJ5IHBvcnQgbGF0ZW5jaWVzIGZvciBzaW5rL3NyYyBkZWxheXMuCgkgICogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBObyBwcmludGYgcGxlYXNlLgoKMjAwOC0xMS0wNCAxMjo0MjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgLWJhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2Fsc2FzcGRpZi9NYWtlZmlsZS5hbToKCSAgKiBleHQvYW1yd2IvTWFrZWZpbGUuYW06CgkgICogZXh0L2FwZXhzaW5rL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcnRzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcnRzZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXVkaW9maWxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hdWRpb3Jlc2FtcGxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9iejIvTWFrZWZpbGUuYW06CgkgICogZXh0L2NkYXVkaW8vTWFrZWZpbGUuYW06CgkgICogZXh0L2NlbHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2RjMTM5NC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZGlyYWMvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpcmVjdGZiL01ha2VmaWxlLmFtOgoJICAqIGV4dC9kaXZ4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kdHMvTWFrZWZpbGUuYW06CgkgICogZXh0L2ZhYWMvTWFrZWZpbGUuYW06CgkgICogZXh0L2ZhYWQvTWFrZWZpbGUuYW06CgkgICogZXh0L2dzbS9NYWtlZmlsZS5hbToKCSAgKiBleHQvaGVybWVzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9pdm9yYmlzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qYWNrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qcDJrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9sYWRzcGEvTWFrZWZpbGUuYW06CgkgICogZXh0L2xjcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGliZmFtZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGlibW1zL01ha2VmaWxlLmFtOgoJICAqIGV4dC9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXBlZzJlbmMvTWFrZWZpbGUuYW06CgkgICogZXh0L21wbGV4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9tdXNlcGFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXVzaWNicmFpbnovTWFrZWZpbGUuYW06CgkgICogZXh0L215dGh0di9NYWtlZmlsZS5hbToKCSAgKiBleHQvbmFzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9uZW9uL01ha2VmaWxlLmFtOgoJICAqIGV4dC9vZmEvTWFrZWZpbGUuYW06CgkgICogZXh0L3BvbHlwL01ha2VmaWxlLmFtOgoJICAqIGV4dC9yZXNpbmR2ZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2RsL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zaG91dC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc25hcHNob3QvTWFrZWZpbGUuYW06CgkgICogZXh0L3NuZGZpbGUvTWFrZWZpbGUuYW06CgkgICogZXh0L3NvdW5kdG91Y2gvTWFrZWZpbGUuYW06CgkgICogZXh0L3NwYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvc3dmZGVjL01ha2VmaWxlLmFtOgoJICAqIGV4dC90YXJraW4vTWFrZWZpbGUuYW06CgkgICogZXh0L3RoZW9yYS9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGltaWRpdHkvTWFrZWZpbGUuYW06CgkgICogZXh0L3R3b2xhbWUvTWFrZWZpbGUuYW06CgkgICogZXh0L3gyNjQvTWFrZWZpbGUuYW06CgkgICogZXh0L3hpbmUvTWFrZWZpbGUuYW06CgkgICogZXh0L3h2aWQvTWFrZWZpbGUuYW06CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QtbGlicy9nc3QvZHNob3cvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FpZmZwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXBwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2J1ZmZlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmF5ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NkeGFwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hhcnQvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NvbG9yc3BhY2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RjY3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZTIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2R2ZHNwdS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmVzdGl2YWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZpbHRlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmxhY3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dhbWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9oMjY0cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2xpYnJmYi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbWl4bWF0cml4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9tb2RwbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVnMXN5cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZzR2aWRlb3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVnZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWd0c211eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZ3ZpZGVvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L212ZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbnNmL01ha2VmaWxlLmFtOgoJICAqIGdzdC9udXZkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvb3ZlcmxheS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFzc3Rocm91Z2gvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BjYXBwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheW9uZGVtYW5kL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yYXdwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVhbC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRqcGVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zY2FsZXRlbXBvL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zZHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NlbGVjdG9yL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbW9vdGgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3Ntb290aHdhdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWVkL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVleHJlc2FtcGxlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zdGVyZW8vTWFrZWZpbGUuYW06CgkgICogZ3N0L3N1YmVuYy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdHRhL01ha2VmaWxlLmFtOgoJICAqIGdzdC92YmlkZWMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvZHJvcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdmlkZW9zaWduYWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpcnR1YWxkdWIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZtbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSAgKiBzeXMvYWNtZW5jL01ha2VmaWxlLmFtOgoJICAqIHN5cy9jZHJvbS9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHNob3dkZWN3cmFwcGVyL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvTWFrZWZpbGUuYW06CgkgICogc3lzL2R2Yi9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHhyMy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZmJkZXYvTWFrZWZpbGUuYW06CgkgICogc3lzL29zczQvTWFrZWZpbGUuYW06CgkgICogc3lzL3FjYW0vTWFrZWZpbGUuYW06CgkgICogc3lzL3F0d3JhcHBlci9NYWtlZmlsZS5hbToKCSAgKiBzeXMvdmNkL01ha2VmaWxlLmFtOgoJICAqIHN5cy93aW5pbmV0L01ha2VmaWxlLmFtOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgLWJhZC4KCjIwMDgtMDktMTcgMTM6NTk6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TL1gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOiAoamFja19wcm9jZXNzX2NiKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKGNhbGN1bGF0ZV9za2V3KToKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TL1gKCjIwMDgtMDgtMDcgMTM6MTU6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOiBUcnkgY29tbWl0dGluZyB0aGlzIG9uY2UgYWdhaW4uIE5vdyBwcm9wZXJseSByZW5hbWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zcmMuYzoKCSAgVHJ5IGNvbW1pdHRpbmcgdGhpcyBvbmNlIGFnYWluLiBOb3cgcHJvcGVybHkgcmVuYW1lZC4KCjIwMDgtMDgtMDcgMDk6MDk6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sCgkgIEFkZCBuZXcgZWxlbWVudCB0byBkb2NzLgoJICAqIGV4dC9qYWNrL2dzdGphY2suaAoJICBBZGQgbWlzc2luZyBmaWxlLgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NyYy5oOgoJICBSZW5hbWUgamFja2F1ZGlvc3JjIHRvIGphY2tfYXVkaW9fc3JjLgoKMjAwOC0wOC0wNyAwODo0Nzo0MCArMDAwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJICBleHQvamFjay86IEFkZCBhIGphY2thdWRpb3NyYy4gUmVmYWN0b3Igc2luayBzbGlnaHRseSBmb3IgYmV0dGVyIGNvZGUgcmV1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgkgICogZXh0L2phY2svTWFrZWZpbGUuYW06CgkgICogZXh0L2phY2svZ3N0amFjay5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb2NsaWVudC5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmg6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc3JjLmg6CgkgICogZXh0L2phY2svZ3N0amFja3JpbmdidWZmZXIuaDoKCSAgQWRkIGEgamFja2F1ZGlvc3JjLiBSZWZhY3RvciBzaW5rIHNsaWdodGx5IGZvciBiZXR0ZXIgY29kZSByZXVzZS4KCSAgRml4ZXMgIzU0NTE5Ny4KCjIwMDgtMDYtMTMgMTE6NTk6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1teXRodHYueG1sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxzYXNwZGlmLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW1yd2IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1iYXllci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWJ6Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZHhhcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdHNkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdmIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdmRzcHUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mYWFjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmFhZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZiZGV2c2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZlc3RpdmFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmlsdGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mcmVlemUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RpbnRlcmxhY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taDI2NHBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sYWRzcGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1tcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vZHBsdWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tcGVnMmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1wZWc0dmlkZW9wYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1wZWd0c3BhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZ3ZpZGVvcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdXNlcGFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11c2ljYnJhaW56LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXZlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXl0aHR2LnhtbAoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uZW9uLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnNmZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnV2ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbAoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yYXdwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlYWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmZic3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2RsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2RwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2VsZWN0b3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbmRmaWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwY2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWVkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXhyZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0ZXJlby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN1YmVuYy54bWwKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGltaWRpdHkueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10dGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12Y2RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3NpZ25hbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZtbmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13aWxkbWlkaS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXgyNjQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmlkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JkZWMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JlbmMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JwYXJzZS5jOgoJICAqIGV4dC9kYzEzOTQvZ3N0ZGMxMzk0LmM6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgKiBleHQvbXBlZzJlbmMvZ3N0bXBlZzJlbmMuY2M6CgkgICogZXh0L21wbGV4L2dzdG1wbGV4LmNjOgoJICAqIGV4dC9tdXNpY2JyYWluei9nc3R0cm0uYzoKCSAgKiBleHQvbXl0aHR2L2dzdG15dGh0dnNyYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHRpbWlkaXR5LmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHdpbGRtaWRpLmM6CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L2R2ZHNwdS9nc3RkdmRzcHUuYzoKCSAgKiBnc3QvZmVzdGl2YWwvZ3N0ZmVzdGl2YWwuYzoKCSAgKiBnc3QvZnJlZXplL2dzdGZyZWV6ZS5jOgoJICAqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSAgKiBnc3QvbW9kcGx1Zy9nc3Rtb2RwbHVnLmNjOgoJICAqIGdzdC9udXZkZW11eC9nc3RudXZkZW11eC5jOgoJICBBZGQgbWlzc2luZyBlbGVtZW50cyB0byBkb2NzLiBGaXggZG9jLW1hcmt1cDogdXNlIGNvbnZpbmllbmNlIHN5bnRheAoJICBmb3IgZXhhbXBsZXMgKHByb2R1Y2VzIHZhbGlkIGRvY2Jvb2spLCBhZGQgc2V2ZXJhbCByZWZzZWMyIHdoZW4gd2UKCSAgaGF2ZSBzZXZlcmFsIHRpdGxlcy4gRml4IHNvbWUgdHlwZXMuCgoyMDA4LTA2LTEyIDE0OjQ5OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2RjMTM5NC9nc3RkYzEzOTQuYzoKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNkZWMuYzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkgICogZXh0L21ldGFkYXRhL2dzdG1ldGFkYXRhZGVtdXguYzoKCSAgKiBleHQvbXl0aHR2L2dzdG15dGh0dnNyYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2JheWVyL2dzdGJheWVyMnJnYi5jOgoJICAqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3RhdWRpb3BhcnNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdHZpZGVvcGFyc2UuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAqIGdzdC9zZWxlY3Rvci9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3NlbGVjdG9yL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0CgkgIHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FybmluZ3MgaWYgdGhleSBkaWZmZXIuCgkgIEFsc28gZml4aW5nIHVwIHRoZSBDaGFuZ2VMb2cgb3JkZXIuCgoyMDA4LTA1LTI2IDE3OjUyOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOiBJbmNsdWRlIHRoZSBlbGVtZW50IG5hbWUgaW4gdGhlIHBvcnQgbmFtZSB0byBhdm9pZCBkdXBsaWNhdGUgcG9ydCBuYW1lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICAoZ3N0X2phY2tfYXVkaW9fc2lua19hbGxvY2F0ZV9jaGFubmVscyk6CgkgIEluY2x1ZGUgdGhlIGVsZW1lbnQgbmFtZSBpbiB0aGUgcG9ydCBuYW1lIHRvIGF2b2lkIGR1cGxpY2F0ZSBwb3J0IG5hbWVzLgoKMjAwOC0wNC0wNiAyMDoxODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzogV29yayBhcm91bmQgbWlzc2luZyBiaXRzIG9mIHRocmVhZC1zYWZldHkgb24gb2xkZXIgR0xpYnMgc29tZSBtb3JlIHRvIGF2b2lkIGFzc2VydGlvbnMgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6IChnc3RfamFja19hdWRpb19zaW5rX2NsYXNzX2luaXQpOgoJICBXb3JrIGFyb3VuZCBtaXNzaW5nIGJpdHMgb2YgdGhyZWFkLXNhZmV0eSBvbiBvbGRlciBHTGlicyBzb21lCgkgIG1vcmUgdG8gYXZvaWQgYXNzZXJ0aW9ucyB3aGVuIHN0YXJ0aW5nIHVwIG11bHRpcGxlIHBsYXliaW4KCSAgb2JqZWN0cyBjb25jdXJyZW50bHkgKHNlZSAjNTEyMzgyKS4KCjIwMDgtMDMtMTMgMTQ6MjU6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFVzZSBHU1RfTElDRU5TRSwgR1NUX1BBQ0tBR0VfTkFNRSBhbmQgR1NUX1BBQ0tBR0VfT1JJR0lOIGluc3RlYWQgb2YgaGFyZGNvZGluZyB2YWx1ZXMgd2hlcmUgcG9zc2libGUuIEZpeGVzIGJ1ZyAjNTIyMjEyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYWxzYXNwZGlmL2Fsc2FzcGRpZnNpbmsuYzoKCSAgKiBleHQvZ3NtL2dzdGdzbS5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2suYzoKCSAgKiBleHQvbGlibW1zL2dzdG1tcy5jOgoJICAqIGV4dC9uZW9uL2dzdG5lb25odHRwc3JjLmM6CgkgICogZXh0L3Nob3V0L2dzdHNob3V0LmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHRpbWlkaXR5LmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHdpbGRtaWRpLmM6CgkgICogZ3N0L251dmRlbXV4L2dzdG51dmRlbXV4LmM6CgkgICogZ3N0L3R0YS9nc3R0dGEuYzoKCSAgVXNlIEdTVF9MSUNFTlNFLCBHU1RfUEFDS0FHRV9OQU1FIGFuZCBHU1RfUEFDS0FHRV9PUklHSU4gaW5zdGVhZAoJICBvZiBoYXJkY29kaW5nIHZhbHVlcyB3aGVyZSBwb3NzaWJsZS4gRml4ZXMgYnVnICM1MjIyMTIuCgoyMDA3LTA3LTE4IDA3OjQyOjQ3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6IEFkZCBzdGRsaWIgaW5jbHVkZSBoZXJlIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOiAoZ3N0X2phY2tfcmluZ19idWZmZXJfb3Blbl9kZXZpY2UpLAoJICAoZ3N0X2phY2tfcmluZ19idWZmZXJfYWNxdWlyZSk6CgkgIEFkZCBzdGRsaWIgaW5jbHVkZSBoZXJlIHRvby4KCjIwMDctMDQtMDQgMDc6MzY6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzogVHJ5IHQgYmV0dGVyIG5hbWUgY2xpZW50cy4gcHJvcGVybHkgaGFuZGxlIHJldHVybiBjb2RlcyB3aGVuIHJlLSBlc3RhYmxpc2hpbmcgbGlua3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzogKGdzdF9qYWNrX3JpbmdfYnVmZmVyX29wZW5fZGV2aWNlKSwKCSAgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX2FjcXVpcmUpOgoJICBUcnkgdCBiZXR0ZXIgbmFtZSBjbGllbnRzLiBwcm9wZXJseSBoYW5kbGUgcmV0dXJuIGNvZGVzIHdoZW4gcmUtCgkgIGVzdGFibGlzaGluZyBsaW5rcy4KCjIwMDctMDMtMTggMTc6NTc6NDggKzAwMDAgIFBhdWwgRGF2aXMgPHBhdWxAbGludXhhdWRpb3N5c3RlbXMuY29tPgoKCSAgZXh0L2phY2svZ3N0amFja2F1ZGlvY2xpZW50LmM6IERvbid0IG5lZWQgdG8gdGFrZSB0aGUgY29ubmVjdGlvbiBsb2NrLCBpdCB3aWxsIG5vdCBiZSB1c2VkIGFuZCBjb3VsZCBjYXVzZSBkZWFkbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogUGF1bCBEYXZpcyA8cGF1bCBhdCBsaW51eGF1ZGlvc3lzdGVtcyBkb3QgY29tPgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb2NsaWVudC5jOiAoZ3N0X2phY2tfYXVkaW9fdW5yZWZfY29ubmVjdGlvbik6CgkgIERvbid0IG5lZWQgdG8gdGFrZSB0aGUgY29ubmVjdGlvbiBsb2NrLCBpdCB3aWxsIG5vdCBiZSB1c2VkIGFuZCBjb3VsZAoJICBjYXVzZSBkZWFkbG9ja3MuCgoyMDA3LTAzLTA4IDE1OjI0OjUyICswMDAwICBQYXVsIERhdmlzIDxwYXVsQGxpbnV4YXVkaW9zeXN0ZW1zLmNvbT4KCgkgIGV4dC9qYWNrLzogTWFrZSBhbiBvYmplY3QgdG8gbWFuYWdlIGNsaWVudCBjb25uZWN0aW9ucyB0byB0aGUgamFjayBzZXJ2ZXIgd2hpY2ggd2Ugd2lsbCB1c2UgaW4gdGhlIGZ1dHVyZSB0byBydW4gc2VsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW5jbHVkZXMgcGF0Y2ggYnk6IFBhdWwgRGF2aXMgPHBhdWwgYXQgbGludXhhdWRpb3N5c3RlbXMgZG90IGNvbT4KCSAgKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9jbGllbnQuYzogKGdzdF9qYWNrX2F1ZGlvX2NsaWVudF9pbml0KSwKCSAgKGphY2tfcHJvY2Vzc19jYiksIChqYWNrX3NhbXBsZV9yYXRlX2NiKSwgKGphY2tfYnVmZmVyX3NpemVfY2IpLAoJICAoamFja19zaHV0ZG93bl9jYiksIChjb25uZWN0aW9uX2ZpbmQpLAoJICAoZ3N0X2phY2tfYXVkaW9fbWFrZV9jb25uZWN0aW9uKSwgKGdzdF9qYWNrX2F1ZGlvX2dldF9jb25uZWN0aW9uKSwKCSAgKGdzdF9qYWNrX2F1ZGlvX3VucmVmX2Nvbm5lY3Rpb24pLAoJICAoZ3N0X2phY2tfYXVkaW9fY29ubmVjdGlvbl9hZGRfY2xpZW50KSwKCSAgKGdzdF9qYWNrX2F1ZGlvX2Nvbm5lY3Rpb25fcmVtb3ZlX2NsaWVudCksCgkgIChnc3RfamFja19hdWRpb19jbGllbnRfbmV3KSwgKGdzdF9qYWNrX2F1ZGlvX2NsaWVudF9mcmVlKSwKCSAgKGdzdF9qYWNrX2F1ZGlvX2NsaWVudF9nZXRfY2xpZW50KSwKCSAgKGdzdF9qYWNrX2F1ZGlvX2NsaWVudF9zZXRfYWN0aXZlKToKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9jbGllbnQuaDoKCSAgTWFrZSBhbiBvYmplY3QgdG8gbWFuYWdlIGNsaWVudCBjb25uZWN0aW9ucyB0byB0aGUgamFjayBzZXJ2ZXIgd2hpY2ggd2UKCSAgd2lsbCB1c2UgaW4gdGhlIGZ1dHVyZSB0byBydW4gc2VsZWN0ZWQgamFjayBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIGphY2sKCSAgY29ubmVjdGlvbi4KCSAgTWFrZSBzb21lIHN0dWZmIGEgYml0IG1vcmUgdGhyZWFkc2FmZS4KCSAgQWN0aXZhdGUgdGhlIGphY2sgY2xpZW50IEFTQVAuCgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOgoJICAoZ3N0X2phY2tfYXVkaW9fc2lua19hbGxvY2F0ZV9jaGFubmVscyksCgkgIChnc3RfamFja19hdWRpb19zaW5rX2ZyZWVfY2hhbm5lbHMpLCAoamFja19wcm9jZXNzX2NiKSwKCSAgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX29wZW5fZGV2aWNlKSwKCSAgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX2Nsb3NlX2RldmljZSksCgkgIChnc3RfamFja19yaW5nX2J1ZmZlcl9hY3F1aXJlKSwgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX3JlbGVhc2UpLAoJICAoZ3N0X2phY2tfYXVkaW9fc2lua19jbGFzc19pbml0KSwgKGdzdF9qYWNrX2F1ZGlvX3NpbmtfaW5pdCksCgkgIChnc3RfamFja19hdWRpb19zaW5rX2dldGNhcHMpOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSAgVXNlIG5ldyBjbGllbnQgb2JqZWN0IHRvIG1hbmFnZSBjb25uZWN0aW9ucy4KCSAgRG9uJ3QgcmVtb3ZlIGFuZCByZWNyZWF0ZSBhbGwgcG9ydHMsIHRyeSB0byByZXVzZSB0aGVtLgoKMjAwNy0wMS0xMiAxMDoyNTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuKjogSW1wcm92ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6IChqYWNrX3NhbXBsZV9yYXRlX2NiKSwKCSAgKGphY2tfYnVmZmVyX3NpemVfY2IpLCAoamFja19zaHV0ZG93bl9jYiksCgkgIChnc3RfamFja19yaW5nX2J1ZmZlcl9hY3F1aXJlKToKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmg6CgkgIEltcHJvdmUgZG9jcy4KCjIwMDYtMTItMDYgMTY6NTc6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXh0L2phY2svLmN2c2lnbm9yZTogSWdub3JlIG9sZCBmaWxlcyBhcyByZXF1ZXN0ZWQgYnkgdGhlIGJ1aWxkIHNsYXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvamFjay8uY3ZzaWdub3JlOgoJICBJZ25vcmUgb2xkIGZpbGVzIGFzIHJlcXVlc3RlZCBieSB0aGUgYnVpbGQgc2xhdmUuCgoyMDA2LTExLTMwIDExOjU5OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L01ha2VmaWxlLmFtOiBGaXggYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkLgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzogKGphY2tfcHJvY2Vzc19jYiksCgkgIChqYWNrX3NhbXBsZV9yYXRlX2NiKSwgKGphY2tfYnVmZmVyX3NpemVfY2IpLCAoamFja19zaHV0ZG93bl9jYiksCgkgIChnc3RfamFja19yaW5nX2J1ZmZlcl9hY3F1aXJlKToKCSAgU21hbGwgY2xlYW51cHMuCgoyMDA2LTExLTMwIDExOjQ5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgZnVsbHkgZnVuY3Rpb25hbCBqYWNrYXVkaW9zaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICAqIGV4dC9qYWNrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qYWNrL2dzdGphY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvamFjay9nc3RqYWNrLmg6CgkgICogZXh0L2phY2svZ3N0amFja2F1ZGlvc2luay5jOiAoZ3N0X2phY2tfcmluZ19idWZmZXJfZ2V0X3R5cGUpLAoJICAoZ3N0X2phY2tfcmluZ19idWZmZXJfY2xhc3NfaW5pdCksIChqYWNrX3Byb2Nlc3NfY2IpLAoJICAoamFja19zYW1wbGVfcmF0ZV9jYiksIChqYWNrX2J1ZmZlcl9zaXplX2NiKSwgKGphY2tfc2h1dGRvd25fY2IpLAoJICAoZ3N0X2phY2tfcmluZ19idWZmZXJfaW5pdCksIChnc3RfamFja19yaW5nX2J1ZmZlcl9kaXNwb3NlKSwKCSAgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX29wZW5fZGV2aWNlKSwKCSAgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX2Nsb3NlX2RldmljZSksCgkgIChnc3RfamFja19yaW5nX2J1ZmZlcl9hY3F1aXJlKSwgKGdzdF9qYWNrX3JpbmdfYnVmZmVyX3JlbGVhc2UpLAoJICAoZ3N0X2phY2tfcmluZ19idWZmZXJfc3RhcnQpLCAoZ3N0X2phY2tfcmluZ19idWZmZXJfcGF1c2UpLAoJICAoZ3N0X2phY2tfcmluZ19idWZmZXJfc3RvcCksIChnc3RfamFja19yaW5nX2J1ZmZlcl9kZWxheSksCgkgIChnc3RfamFja19jb25uZWN0X2dldF90eXBlKSwgKGdzdF9qYWNrX2F1ZGlvX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9qYWNrX2F1ZGlvX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfamFja19hdWRpb19zaW5rX2luaXQpLAoJICAoZ3N0X2phY2tfYXVkaW9fc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2phY2tfYXVkaW9fc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2phY2tfYXVkaW9fc2lua19nZXRjYXBzKSwKCSAgKGdzdF9qYWNrX2F1ZGlvX3NpbmtfY3JlYXRlX3JpbmdidWZmZXIpOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuaDoKCSAgQWRkZWQgZnVsbHkgZnVuY3Rpb25hbCBqYWNrYXVkaW9zaW5rLgoKMjAwNi0wNC0wOCAyMTo0ODowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2FtcndiL2dzdGFtcndiZGVjLmM6IChnc3RfYW1yd2JkZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2FtcndiL2dzdGFtcndiZW5jLmM6IChnc3RfYW1yd2JlbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2FtcndiL2dzdGFtcndicGFyc2UuYzogKGdzdF9hbXJ3YnBhcnNlX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hcnRzL2dzdF9hcnRzLmM6IChnc3RfYXJ0c19jbGFzc19pbml0KToKCSAgKiBleHQvYXJ0c2QvZ3N0YXJ0c2RzaW5rLmM6IChnc3RfYXJ0c2RzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzaW5rLmM6IChnc3RfYWZzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzcmMuYzogKGdzdF9hZnNyY19jbGFzc19pbml0KToKCSAgKiBleHQvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgICogZXh0L2NkYXVkaW8vZ3N0Y2RhdWRpby5jOiAoZ3N0X2NkYXVkaW9fY2xhc3NfaW5pdCk6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOiAoZ3N0X2RmYnZpZGVvc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZGl2eC9nc3RkaXZ4ZGVjLmM6IChnc3RfZGl2eGRlY19jbGFzc19pbml0KToKCSAgKiBleHQvaGVybWVzL2dzdGhlcm1lc2NvbG9yc3BhY2UuYzoKCSAgKGdzdF9oZXJtZXNfY29sb3JzcGFjZV9jbGFzc19pbml0KToKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNmaWxlLmM6IChnc3RfaXZvcmJpc2ZpbGVfY2xhc3NfaW5pdCk6CgkgICogZXh0L2phY2svZ3N0amFjay5jOiAoZ3N0X2phY2tfY2xhc3NfaW5pdCk6CgkgICogZXh0L2phY2svZ3N0amFja2Jpbi5jOiAoZ3N0X2phY2tfYmluX2NsYXNzX2luaXQpOgoJICAqIGV4dC9sY3MvZ3N0Y29sb3JzcGFjZS5jOiAoZ3N0X2NvbG9yc3BhY2VfY2xhc3NfaW5pdCk6CgkgICogZXh0L2xpYmZhbWUvZ3N0bGliZmFtZS5jOiAoZ3N0X2ZhbWVlbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L211c2ljYnJhaW56L2dzdHRybS5jOiAoZ3N0X211c2ljYnJhaW56X2NsYXNzX2luaXQpOgoJICAqIGV4dC9uYXMvbmFzc2luay5jOiAoZ3N0X25hc3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L3Nob3V0L2dzdHNob3V0LmM6IChnc3RfaWNlY2FzdHNlbmRfY2xhc3NfaW5pdCk6CgkgICogZXh0L3NuYXBzaG90L2dzdHNuYXBzaG90LmM6IChnc3Rfc25hcHNob3RfY2xhc3NfaW5pdCk6CgkgICogZXh0L3NuZGZpbGUvZ3N0c2YuYzogKGdzdF9zZl9jbGFzc19pbml0KToKCSAgKiBleHQvc3dmZGVjL2dzdHN3ZmRlYy5jOiAoZ3N0X3N3ZmRlY2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9zd2ZkZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5kZWMuYzogKGdzdF90YXJraW5kZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5lbmMuYzogKGdzdF90YXJraW5lbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhc3RyaXAuYzogKGdzdF9jZHhhc3RyaXBfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2NoYXJ0L2dzdGNoYXJ0LmM6IChnc3RfY2hhcnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2NvbG9yc3BhY2UvZ3N0Y29sb3JzcGFjZS5jOiAoZ3N0X2NvbG9yc3BhY2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6IChnc3RfZGVpbnRlcmxhY2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmM6IChnc3RfZmVzdGl2YWxfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChnc3RfYnB3c2luY19jbGFzc19pbml0KToKCSAgKiBnc3QvZmlsdGVyL2dzdGlpci5jOiAoZ3N0X2lpcl9jbGFzc19pbml0KToKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogKGdzdF9scHdzaW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC9saWJyZmIvZ3N0cmZic3JjLmM6IChnc3RfcmZic3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9taXhtYXRyaXgvbWl4bWF0cml4LmM6IChnc3RfbWl4bWF0cml4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9tcGVnMXN5cy9nc3RtcGVnMXN5c3RlbWVuY29kZS5jOgoJICAoZ3N0X3N5c3RlbV9lbmNvZGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L21wZWcxdmlkZW9wYXJzZS9nc3RtcDF2aWRlb3BhcnNlLmM6CgkgIChnc3RfbXAxdmlkZW9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBnc3QvbXBlZzJzdWIvZ3N0bXBlZzJzdWJ0LmM6IChnc3RfbXBlZzJzdWJ0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9tcGVnYXVkaW9wYXJzZS9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICAoZ3N0X21wM3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9vdmVybGF5L2dzdG92ZXJsYXkuYzogKGdzdF9vdmVybGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9wYXNzdGhyb3VnaC9nc3RwYXNzdGhyb3VnaC5jOiAocGFzc3Rocm91Z2hfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9nc3RwbGF5b25kZW1hbmQuYzogKHBsYXlfb25fZGVtYW5kX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydGpwZWcvZ3N0cnRqcGVnZGVjLmM6IChnc3RfcnRqcGVnZGVjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydGpwZWcvZ3N0cnRqcGVnZW5jLmM6IChnc3RfcnRqcGVnZW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zbW9vdGgvZ3N0c21vb3RoLmM6IChnc3Rfc21vb3RoX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zbW9vdGh3YXZlL2dzdHNtb290aHdhdmUuYzogKGdzdF9zbW9vdGh3YXZlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zdGVyZW8vZ3N0c3RlcmVvLmM6IChnc3Rfc3RlcmVvX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6IChnc3Rfc3dpdGNoX2NsYXNzX2luaXQpOgoJICAqIGdzdC90dGEvZ3N0dHRhZGVjLmM6IChnc3RfdHRhX2RlY19jbGFzc19pbml0KToKCSAgKiBnc3QvdHRhL2dzdHR0YXBhcnNlLmM6IChnc3RfdHRhX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92YmlkZWMvZ3N0dmJpZGVjLmM6IChnc3RfdmJpZGVjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6IChnc3RfdmlkZW9fY3JvcF9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlydHVhbGR1Yi9nc3R4c2hhcnBlbi5jOiAoZ3N0X3hzaGFycGVuX2NsYXNzX2luaXQpOgoJICAqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6IChnc3RfeTRtZW5jb2RlX2NsYXNzX2luaXQpOgoJICAqIHN5cy9jZHJvbS9nc3RjZHBsYXllci5jOiAoY2RwbGF5ZXJfY2xhc3NfaW5pdCk6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICAoZ3N0X2RpcmVjdHNvdW5kc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvZHhyMy9keHIzYXVkaW9zaW5rLmM6IChkeHIzYXVkaW9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy9keHIzL2R4cjNzcHVzaW5rLmM6IChkeHIzc3B1c2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvZHhyMy9keHIzdmlkZW9zaW5rLmM6IChkeHIzdmlkZW9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy9xY2FtL2dzdHFjYW1zcmMuYzogKGdzdF9xY2Ftc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuYzoKCSAgKGdzdF92NGwyX2NvbG9yX2JhbGFuY2VfY2hhbm5lbF9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzogKGdzdF92NGwyX3R1bmVyX2NoYW5uZWxfY2xhc3NfaW5pdCksCgkgIChnc3RfdjRsMl90dW5lcl9ub3JtX2NsYXNzX2luaXQpOgoJICAqIHN5cy94aW1hZ2VzcmMveGltYWdlc3JjLmM6IChnc3RfeGltYWdlc3JjX2NsYXNzX2luaXQpOgoJICBGaXggIzMzNzM2NSAoZ190eXBlX2NsYXNzX3JlZiA8LT4gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50KQoKMjAwNi0wNC0wMSAxMDowOToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIHJld29yayBidWlsZDsgYWRkIHRyYW5zbGF0aW9ucyBmb3IgdjRsMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV3b3JrIGJ1aWxkOyBhZGQgdHJhbnNsYXRpb25zIGZvciB2NGwyCgoyMDA1LTEwLTEyIDE0OjI5OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUyBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9pbmRleGluZy9pbmRleG1wZWcuYzogKG1haW4pOgoJICAqIGV4dC9hcnRzZC9nc3RhcnRzZHNpbmsuYzogKGdzdF9hcnRzZHNpbmtfb3Blbl9hdWRpbyksCgkgIChnc3RfYXJ0c2RzaW5rX2Nsb3NlX2F1ZGlvKSwgKGdzdF9hcnRzZHNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvYXJ0c2QvZ3N0YXJ0c2RzaW5rLmg6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnBhcnNlLmM6IChnc3RfYWZwYXJzZV9vcGVuX2ZpbGUpLAoJICAoZ3N0X2FmcGFyc2VfY2xvc2VfZmlsZSk6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnBhcnNlLmg6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNpbmsuYzogKGdzdF9hZnNpbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9hZnNpbmtfY2xvc2VfZmlsZSksIChnc3RfYWZzaW5rX2NoYWluKSwKCSAgKGdzdF9hZnNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmc2luay5oOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzcmMuYzogKGdzdF9hZnNyY19vcGVuX2ZpbGUpLAoJICAoZ3N0X2Fmc3JjX2Nsb3NlX2ZpbGUpLCAoZ3N0X2Fmc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNyYy5oOgoJICAqIGV4dC9jZGF1ZGlvL2dzdGNkYXVkaW8uYzogKGdzdF9jZGF1ZGlvX2luaXQpOgoJICAqIGV4dC9kaXJlY3RmYi9kaXJlY3RmYnZpZGVvc2luay5jOiAoZ3N0X2RpcmVjdGZidmlkZW9zaW5rX2luaXQpOgoJICAqIGV4dC9kdHMvZ3N0ZHRzZGVjLmM6IChnc3RfZHRzZGVjX2luaXQpOgoJICAqIGV4dC9qYWNrL2dzdGphY2suaDoKCSAgKiBleHQvamFjay9nc3RqYWNrYmluLmM6IChnc3RfamFja19iaW5faW5pdCksCgkgIChnc3RfamFja19iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvbXVzZXBhY2svZ3N0bXVzZXBhY2tkZWMuYzogKGdzdF9tdXNlcGFja2RlY19pbml0KToKCSAgKiBleHQvbXVzaWNicmFpbnovZ3N0dHJtLmM6IChnc3RfbXVzaWNicmFpbnpfaW5pdCk6CgkgICogZXh0L25hcy9uYXNzaW5rLmM6IChnc3RfbmFzc2lua19vcGVuX2F1ZGlvKSwKCSAgKGdzdF9uYXNzaW5rX2Nsb3NlX2F1ZGlvKSwgKGdzdF9uYXNzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L25hcy9uYXNzaW5rLmg6CgkgICogZXh0L3BvbHlwL3BvbHlwc2luay5jOiAoZ3N0X3BvbHlwc2lua19pbml0KToKCSAgKiBleHQvc2RsL3NkbHZpZGVvc2luay5jOiAoZ3N0X3NkbHZpZGVvc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9zZGwvc2RsdmlkZW9zaW5rLmg6CgkgICogZXh0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5jOiAoZ3N0X3Ntb290aHdhdmVfaW5pdCk6CgkgICogZXh0L3NuZGZpbGUvZ3N0c2YuYzogKGdzdF9zZl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NmX2NoYW5nZV9zdGF0ZSksIChnc3Rfc2ZfcmVsZWFzZV9yZXF1ZXN0X3BhZCksCgkgIChnc3Rfc2Zfb3Blbl9maWxlKSwgKGdzdF9zZl9jbG9zZV9maWxlKSwgKGdzdF9zZl9sb29wKToKCSAgKiBleHQvc25kZmlsZS9nc3RzZi5oOgoJICAqIGV4dC9zd2ZkZWMvZ3N0c3dmZGVjLmM6IChnc3Rfc3dmZGVjX2luaXQpOgoJICAqIGV4dC90YXJraW4vZ3N0dGFya2luZGVjLmM6IChnc3RfdGFya2luZGVjX2luaXQpOgoJICAqIGdzdC9hcGV0YWcvYXBlZGVtdXguYzogKGdzdF9hcGVfZGVtdXhfaW5pdCk6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhcGFyc2UuYzogKGdzdF9jZHhhcGFyc2VfaW5pdCk6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhc3RyaXAuYzogKGdzdF9jZHhhc3RyaXBfaW5pdCk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmM6IChnc3RfZmVzdGl2YWxfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZmVzdGl2YWwvZ3N0ZmVzdGl2YWwuaDoKCSAgKiBnc3QvbXBlZzJzdWIvZ3N0bXBlZzJzdWJ0LmM6IChnc3RfbXBlZzJzdWJ0X2luaXQpOgoJICAqIGdzdC9tdWx0aWZpbGVzaW5rL2dzdG11bHRpZmlsZXNpbmsuYzogKGdzdF9tdWx0aWZpbGVzaW5rX2luaXQpLAoJICAoZ3N0X211bHRpZmlsZXNpbmtfc2V0X2xvY2F0aW9uKSwgKGdzdF9tdWx0aWZpbGVzaW5rX29wZW5fZmlsZSksCgkgIChnc3RfbXVsdGlmaWxlc2lua19jbG9zZV9maWxlKSwgKGdzdF9tdWx0aWZpbGVzaW5rX25leHRfZmlsZSksCgkgIChnc3RfbXVsdGlmaWxlc2lua19wYWRfcXVlcnkpLCAoZ3N0X211bHRpZmlsZXNpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9tdWx0aWZpbGVzaW5rX2NoYWluKSwgKGdzdF9tdWx0aWZpbGVzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L211bHRpZmlsZXNpbmsvZ3N0bXVsdGlmaWxlc2luay5oOgoJICAqIGdzdC92aWRlb2Ryb3AvZ3N0dmlkZW9kcm9wLmM6IChnc3RfdmlkZW9kcm9wX2luaXQpOgoJICAqIHN5cy9jZHJvbS9nc3RjZHBsYXllci5jOiAoY2RwbGF5ZXJfaW5pdCk6CgkgICogc3lzL2R4cjMvZHhyM2F1ZGlvc2luay5jOiAoZHhyM2F1ZGlvc2lua19pbml0KSwKCSAgKGR4cjNhdWRpb3Npbmtfb3BlbiksIChkeHIzYXVkaW9zaW5rX2Nsb3NlKSwKCSAgKGR4cjNhdWRpb3NpbmtfY2hhaW5fcGNtKSwgKGR4cjNhdWRpb3NpbmtfY2hhaW5fYWMzKSwKCSAgKGR4cjNhdWRpb3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBzeXMvZHhyMy9keHIzYXVkaW9zaW5rLmg6CgkgICogc3lzL2R4cjMvZHhyM3NwdXNpbmsuYzogKGR4cjNzcHVzaW5rX2luaXQpLCAoZHhyM3NwdXNpbmtfb3BlbiksCgkgIChkeHIzc3B1c2lua19jbG9zZSksIChkeHIzc3B1c2lua19jaGFpbiksCgkgIChkeHIzc3B1c2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIHN5cy9keHIzL2R4cjNzcHVzaW5rLmg6CgkgICogc3lzL2R4cjMvZHhyM3ZpZGVvc2luay5jOiAoZHhyM3ZpZGVvc2lua19pbml0KSwKCSAgKGR4cjN2aWRlb3Npbmtfb3BlbiksIChkeHIzdmlkZW9zaW5rX2Nsb3NlKSwKCSAgKGR4cjN2aWRlb3Npbmtfd3JpdGVfZGF0YSksIChkeHIzdmlkZW9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogc3lzL2R4cjMvZHhyM3ZpZGVvc2luay5oOgoJICAqIHN5cy9nbHNpbmsvZ2xpbWFnZXNpbmsuYzogKGdzdF9nbGltYWdlc2lua19pbml0KToKCSAgKiBzeXMvcWNhbS9nc3RxY2Ftc3JjLmM6IChnc3RfcWNhbXNyY19jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3FjYW1zcmNfb3BlbiksIChnc3RfcWNhbXNyY19jbG9zZSk6CgkgICogc3lzL3FjYW0vZ3N0cWNhbXNyYy5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2luaXQpOgoJICAqIHN5cy92Y2QvdmNkc3JjLmM6IChnc3RfdmNkc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfdmNkc3JjX2dldCksCgkgIChnc3RfdmNkc3JjX29wZW5fZmlsZSksIChnc3RfdmNkc3JjX2Nsb3NlX2ZpbGUpLAoJICAoZ3N0X3ZjZHNyY19jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3ZjZHNyY19yZWNhbGN1bGF0ZSk6CgkgICogc3lzL3ZjZC92Y2RzcmMuaDoKCSAgcmVuYW1lZCBHU1RfRkxBR1MgbWFjcm9zIHRvIEdTVF9PQkpFQ1RfRkxBR1MKCSAgbW92ZWQgYml0c2hpZnQgZnJvbSBtYWNybyB0byBlbnVtIGRlZmluaXRpb24KCjIwMDUtMDktMDUgMTc6MjA6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrYmluLmM6CgkgIEZpeCB1cCBhbGwgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdXAgYWxsIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb25zLgoKMjAwNC0wOC0wMyAxNDoyODoxMiArMDAwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJICBmaXhlcyBmb3IgR19ESVNBQkxFX0FTU0VSVCBhbmQgZnJpZW5kcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9keW5wYXJhbXMvZmlsdGVyLmM6ICh1aV9jb250cm9sX2NyZWF0ZSk6CgkgICogZXhhbXBsZXMvZ3N0cGxheS9wbGF5ZXIuYzogKHByaW50X3RhZyk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYS5jOiAoZ3N0X2Fsc2FfcmVxdWVzdF9uZXdfcGFkKToKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGthbmltYXRpb24uYzoKCSAgKGdzdF9nZGtfYW5pbWF0aW9uX2l0ZXJfbWF5X2FkdmFuY2UpOgoJICAqIGV4dC9qYWNrL2dzdGphY2suYzogKGdzdF9qYWNrX3JlcXVlc3RfbmV3X3BhZCk6CgkgICogZXh0L21hZC9nc3RpZDN0YWcuYzogKGdzdF9tYWRfaWQzX3RvX3RhZ19saXN0KSwKCSAgKHRhZ19saXN0X3RvX2lkM190YWdfZm9yZWFjaCksIChnc3RfaWQzX3RhZ19oYW5kbGVfZXZlbnQpOgoJICAqIGV4dC92b3JiaXMvb2dndm9yYmlzZW5jLmM6IChnc3Rfb2dndm9yYmlzZW5jX2dldF90YWdfdmFsdWUpOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6IChnc3Rfdm9yYmlzZW5jX2dldF90YWdfdmFsdWUpOgoJICAqIGV4dC94aW5lL3hpbmVhdWRpb2RlYy5jOiAoZ3N0X3hpbmVfYXVkaW9fZGVjX2NoYWluKToKCSAgKiBnc3QtbGlicy9nc3QvbWVkaWEtaW5mby9tZWRpYS1pbmZvLXRlc3QuYzogKHByaW50X3RhZyk6CgkgICogZ3N0L3NpbmUvZGVtby1kcGFyYW1zLmM6IChtYWluKToKCSAgKiBnc3QvdGFncy9nc3R2b3JiaXN0YWcuYzogKGdzdF90YWdfdG9fdm9yYmlzX2NvbW1lbnRzKToKCSAgKiB0ZXN0c3VpdGUvYWxzYS9mb3JtYXRzLmM6IChjcmVhdGVfcGlwZWxpbmUpOgoJICAqIHRlc3RzdWl0ZS9hbHNhL3NpbmVzcmMuYzogKHNpbmVzcmNfZm9yY2VfY2FwcyksIChzaW5lc3JjX2dldCk6CgkgIGZpeGVzIGZvciBHX0RJU0FCTEVfQVNTRVJUIGFuZCBmcmllbmRzCgkgICogZ3N0L3R5cGVmaW5kL2dzdHR5cGVmaW5kZnVuY3Rpb25zLmM6IChhYWNfdHlwZV9maW5kKSwKCSAgKG1wM190eXBlX2ZyYW1lX2xlbmd0aF9mcm9tX2hlYWRlciksIChtcDNfdHlwZV9maW5kKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgcmVxdWlyZSBtcDMgdHlwZWZpbmRpbmcgdG8gaGF2ZSBhdCBsZWFzdCBNSU5fSEVBREVSUyB2YWxpZCBoZWFkZXJzCgkgIGFkZCB0eXBlZmluZGluZyBmb3IgQUFDIGFkdHMgZmlsZXMKCjIwMDQtMDUtMjEgMjM6Mjg6NTcgKzAwMDAgIFN0w6lwaGFuZSBMb2V1aWxsZXQgPGdzdHJlYW1lckBsZXJvdXRpZXIubmV0PgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkgIHNlY29uZCBiYXRjaCA6IHJlbW92ZSAnLCcgYXQgZW5kIG9mIGVudW1zIGFzIHRoZXkgY291bGQgY29uZnVzZSBvbGRlciBnY2MsIGZvcmVpZ24gY29tcGlsZXJzIChmb3J0ZSkgYW5kIGd0ay1kb2MgKGluIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2Vjb25kIGJhdGNoIDoKCSAgcmVtb3ZlICcsJyBhdCBlbmQgb2YgZW51bXMgYXMgdGhleSBjb3VsZCBjb25mdXNlIG9sZGVyIGdjYywgZm9yZWlnbiBjb21waWxlcnMgKGZvcnRlKSBhbmQgZ3RrLWRvYwoJICAoaW4gZ3N0LXBsdWdpbnMvZXh0LyB0aGlzIHRpbWUpCgoyMDA0LTAzLTE1IDE5OjMyOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBkb24ndCBtaXggdGFicyBhbmQgc3BhY2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBtaXggdGFicyBhbmQgc3BhY2VzCgoyMDA0LTAzLTE1IDE2OjMyOjU0ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgICouaDogUmV2ZXJ0IGluZGVudGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAqLmg6IFJldmVydCBpbmRlbnRpbmcKCjIwMDQtMDMtMTQgMjI6MzQ6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzoKCSAgZ3N0LWluZGVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ3N0LWluZGVudAoKMjAwNC0wMS0xMiAwMzo0MDoxOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIFJlbW92ZSBhbGwgdXNhZ2Ugb2YgZ3N0X3BhZF9nZXRfY2FwcygpLCBhbmQgcmVwbGFjZSBpdCB3aXRoIGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2FwcygpIG9yIGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgYWxsIHVzYWdlIG9mIGdzdF9wYWRfZ2V0X2NhcHMoKSwgYW5kIHJlcGxhY2UgaXQgd2l0aAoJICBnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMoKSBvciBnc3RfcGFkX2dldF9uZWdvdGlhdGVkX2NhcCgpLgoKMjAwMy0xMi0yMiAwMTo0NzowOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIE1lcmdlIENBUFMgYnJhbmNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZXJnZSBDQVBTIGJyYW5jaAoKMjAwMy0xMi0xMyAxNjo1OTo1MSArMDAwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrYmluLmM6CgkgIHJlbW92ZWQgR1NUXypfQ0FTVC4gRGlzYWJsaW5nIG9mIHR5cGUgY2hlY2tpbmcgaXMgZG9uZSBpbiBnbGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBHU1RfKl9DQVNULiBEaXNhYmxpbmcgb2YgdHlwZSBjaGVja2luZyBpcyBkb25lIGluIGdsaWIuCgoyMDAzLTEyLTA0IDEwOjM3OjM4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIHJlbW92ZSBjb3B5cmlnaHQgZmllbGQgZnJvbSBwbHVnaW5zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29weXJpZ2h0IGZpZWxkIGZyb20gcGx1Z2lucwoKMjAwMy0xMS0wNyAxMjo0NzowMiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBSZW1vdmUgYWxsIGNvbmZpZy5oIGluY2x1ZGVzIGZyb20gaGVhZGVyIGZpbGVzLCBhZGQgaXQgdG8gZWFjaCBzb3VyY2UgZmlsZSBhbmQgcmVtb3ZlIGR1cGxpY2F0ZSBjb25maWcuaCBpbmNsdWRlcyBmcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSBhbGwgY29uZmlnLmggaW5jbHVkZXMgZnJvbSBoZWFkZXIgZmlsZXMsIGFkZCBpdCB0byBlYWNoIHNvdXJjZSBmaWxlIGFuZCByZW1vdmUgZHVwbGljYXRlIGNvbmZpZy5oIGluY2x1ZGVzIGZyb20gc2V2ZXJhbCBzb3VyY2UgZmlsZXMKCjIwMDMtMTEtMDEgMjM6NDM6MTMgKzAwMDAgIElhaW4gSG9sbWVzIDxpYWluQHByZXR0eXBlb3BsZS5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIEphY2sgZml4ZWQgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBKYWNrIGZpeGVkIHRvbwoKMjAwMy0xMC0yOSAwMzoxNTo1NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkgIGNoYW5nZSBnc3QvYnl0ZXN0cmVhbS5oIHRvIGdzdC9ieXRlc3RyZWFtL2J5dGVzdHJlYW0uaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlIGdzdC9ieXRlc3RyZWFtLmggdG8gZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5oCgoyMDAzLTEwLTI4IDIwOjUyOjQxICswMDAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSAgbWVyZ2UgVFlQRUZJTkQgYnJhbmNoLiBNYWpvciBjaGFuZ2VzOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWVyZ2UgVFlQRUZJTkQgYnJhbmNoLiBNYWpvciBjaGFuZ2VzOgoJICAtIHRvdGFsbHkgcmV3b3JrZWQgdHlwZShmaW5kKSBzeXN0ZW0KCSAgLSBhbGwgdHlwZWZpbmQgZnVuY3Rpb25zIGFyZSBpbiBnc3QvdHlwZWZpbmQgbm93CgkgIC0gbW9yZSB0eXBlZmluZCBmdW5jdGlvbnMgdGhlbiBiZWZvcmUKCSAgLSBzb21lIHBsdWdpbnMgbWlnaHQgZmFpbCB0byBjb21waWxlIG5vdyBiZWNhdXNlIEkgZG9uJ3QgaGF2ZSB0aGVtIGluc3RhbGxlZCBhbmQgdGhleQoJICBhKSByZXF1aXJlIGJ5dGVzdHJlYW0gb3IKCSAgYikgaGF2ZW4ndCBoYWQgdGhlaXIgdHlwZWZpbmQgZml4ZWQuCgkgIFBsZWFzZSBmaXggdGhvc2UgcGx1Z2lucyBhbmQgcHV0IHRoZSB0eXBlZmluZCBmdW5jdGlvbnMgaW50byBnc3QvdHlwZWZpbmQgaWYgdGhleSBkb24ndCBoYXZlIGRlcGVuZGVuY2llcwoKMjAwMy0xMC0wOCAxNjowODoxOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICAvR3N0QnVmZmVyL0dzdERhdGEvIGluIHRoZSBBUEkgd2hlcmUgeW91IGNhbiBwYXNzIGV2ZW50cy4gRml4IHRoZSBwbHVnaW5zIHRvIGRlYWwgd2l0aCB0aGF0LiBGaXhlcyAjMTEzNDg4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgL0dzdEJ1ZmZlci9Hc3REYXRhLyBpbiB0aGUgQVBJIHdoZXJlIHlvdSBjYW4gcGFzcyBldmVudHMuIEZpeCB0aGUgcGx1Z2lucyB0byBkZWFsIHdpdGggdGhhdC4gRml4ZXMgIzExMzQ4OC4KCjIwMDMtMTAtMDEgMTM6MTQ6NTAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSAgTmV3IHR5cGVmaW5kIHN5c3RlbTogYnl0ZXN0cmVhbSBpcyBub3cgcGFydCBvZiB0aGUgY29yZSBhbGwgcGx1Z2lucyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gdXNlIHRoaXMgbmV3IHR5cGVmaW5kIHN5c3RlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOZXcgdHlwZWZpbmQgc3lzdGVtOgoJICAqIGJ5dGVzdHJlYW0gaXMgbm93IHBhcnQgb2YgdGhlIGNvcmUKCSAgKiBhbGwgcGx1Z2lucyBoYXZlIGJlZW4gbW9kaWZpZWQgdG8gdXNlIHRoaXMgbmV3IHR5cGVmaW5kIHN5c3RlbQoJICAqIGFzZiB0eXBlZmluZGluZyBhZGRlZAoJICAqIG1wZWcgdmlkZW8gc3RyZWFtIHR5cGVmaWRpbmcgcmVtb3ZlZCBiZWNhdXNlIGl0J3MgYnJva2VuCgkgICogZHVwbGljYXRlIHR5cGVmaW5kIGVudHJpZXMgcmVtb3ZlZAoJICAqIGV4dHJhIGlkMyB0eXBlZmluZGluZyBhZGRlZCwgYmVjYXVzZSB3ZSd2ZSBzZWVuIDQgdHlwZXMgb2YgZmlsZXMKCSAgKHJpZmYvd2F2LCBmbGFjLCB2b3JiaXMsIG1wMykgd2l0aCBpZDMgaGVhZGVycyBhbmQgZWFjaCBvZiB0aGVzZSBuZWVkcwoJICB0byB3b3JrLiBJbnN0ZWFkLCBJJ3ZlIGFkZGVkIGFuIGlkMyBlbGVtZW50IGFuZCBsZXQgaXQgcmVkbyB0eXBlZmlkaW5nCgkgIGFmdGVyIHRoZSBpZDMgaGVhZGVyLiB0aGlzIG5lZWRzIGEgaGFjayBiZWNhdXNlIHNwaWRlciBvbmx5IHR5cGVmaW5kcwoJICBvbmNlLiBXZSBjYW4gcmVtb3ZlIHRoaXMgaGFjayBvbmNlIHNwaWRlciBzdXBwb3J0cyBtdWx0aXBsZSB0eXBlZmluZHMuCgkgICogd2l0aCBhbGwgdGhpcywgbXAzIHR5cGVmaW5kaW5nIGlzIHNlbWktcmV3cml0dGVuCgkgICogaWQzIHR5cGVmaW5kaW5nIGluIGZsYWMvdm9yYmlzIGlzIHJlbW92ZWQsIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZAoJICAqIGZpeGVkIHNwaWRlciBhbmQgZ3N0LXR5cGVmaW5kIHRvIHVzZSB0aGlzLCB0b28uCgkgICogT3RoZXIgZ2VuZXJhbCBjbGVhbnVwcwoKMjAwMy0wOS0zMCAxMjo1NjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzoKCSAgY29uZm9ybSB0byB0aGUgYnVmZmVyLWZyYW1lcyBwcm9wcyBlbnRyeSAtLSBtdWNoIG5pY2VyIG5vdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29uZm9ybSB0byB0aGUgYnVmZmVyLWZyYW1lcyBwcm9wcyBlbnRyeSAtLSBtdWNoIG5pY2VyIG5vdy4uLgoKMjAwMy0wOC0xMCAwMDowMTo1OCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIHJlZHVuZGFudCBwbHVnaW5kaXIgZGVmaW5pdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIHJlZHVuZGFudCBwbHVnaW5kaXIgZGVmaW5pdGlvbgoKMjAwMy0wNy0xOSAyMzoyNToyNSArMDAwMCAgTGVpZiBKb2huc29uIDxsZWlmQGFtYmllbnQuMnkubmV0PgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkgICsgY2hhbmdlcyBmb3IgbmV3IGZsb2F0IGNhcHMgd2l0aG91dCBzbG9wZS9pbnRlcmNlcHQgKyBzb21lIGNhdGVnb3J5IGNoYW5nZXMgZm9yIHBsdWdpbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICsgY2hhbmdlcyBmb3IgbmV3IGZsb2F0IGNhcHMgd2l0aG91dCBzbG9wZS9pbnRlcmNlcHQKCSAgKyBzb21lIGNhdGVnb3J5IGNoYW5nZXMgZm9yIHBsdWdpbnMKCjIwMDMtMDctMDYgMjA6NDk6NTIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSAgTmV3IG1pbWV0eXBlcyBnb25lIGludG8gZWZmZWN0IHRvZGF5IC0gdGhpcyBjb21taXQgY2hhbmdlcyBhbGwgb2xkIG1pbWV0eXBlcyBvdmVyIHRvIHRoZSBuZXcgbWltZXR5cGVzIHNwZWMgYXMgZGVzY3JpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOZXcgbWltZXR5cGVzIGdvbmUgaW50byBlZmZlY3QgdG9kYXkgLSB0aGlzIGNvbW1pdCBjaGFuZ2VzIGFsbCBvbGQgbWltZXR5cGVzIG92ZXIgdG8gdGhlIG5ldyBtaW1ldHlwZXMgc3BlYyBhcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIGNvbW1pdCdzIGRvY3VtZW50LiBOb3RlOiBzb21lIHBsdWdpbnMgd2lsbCBicmVhaywgc29tZSBwaXBlbGluZXMgd2lsbCBicmVhaywgZXhwZWN0IEhFQUQgdG8gYmUgYnJva2VuIG9yIGF0IGxlYXN0IG5vdCAxMDAlIHdvcmtpbmcgZm9yIGEgZmV3IGRheXMsIGJ1dCBkb24ndCBmb3JnZXQgdG8gcmVwb3J0IGJ1Z3MKCjIwMDMtMDctMDEgMDI6Mjc6MDYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBmaXggdHlwZSBwdW5uaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdHlwZSBwdW5uaW5nCgoyMDAzLTA2LTI5IDE5OjQ2OjEzICswMDAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBjb21wYXRpYmlsaXR5IGZpeCBmb3IgbmV3IEdTVF9ERUJVRyBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbXBhdGliaWxpdHkgZml4IGZvciBuZXcgR1NUX0RFQlVHIHN0dWZmLgoJICBJbmNsdWRlcyBmaXhlcyBmb3IgbWlzc2luZyBpbmNsdWRlcyBmb3IgY29uZmlnLmggYW5kIHVuaXN0ZC5oCgkgIEkgb25seSBlbnN1cmVkIGZvciBwbHVnaW5zIEkgY2FuIGJ1aWxkIHRoYXQgdGhleSB3b3JrLCBzbyBpZiBzb21lIG9mIHRoZW0gYXJlIHN0aWxsIGJyb2tlbiwgeW91IGdvdHRhIGZpeCB0aGVtIHlvdXJzZWx2ZXMgdW5mb3J0dW5hdGVseS4KCjIwMDMtMDYtMTMgMjE6MjE6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIFJlbW92ZWQgdWdseSBjYXBzIGZpeGVkIGZsYWcgaGFjaywgd2lsbCBiZSBkb25lIGF1dG9tYXRpY2FsbHkgaW4gY29yZSBzb29uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmVkIHVnbHkgY2FwcyBmaXhlZCBmbGFnIGhhY2ssIHdpbGwgYmUgZG9uZSBhdXRvbWF0aWNhbGx5IGluCgkgIGNvcmUgc29vbgoKMjAwMy0wMy0wNCAxNTozNDoyMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzoKCSAgdXBkYXRlIGZvciB0aGUgbGF0ZXN0IGphY2sgY3ZzIGFuZCBub24tY290aHJlYWRlZCBnc3Qgc2NoZWR1bGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZm9yIHRoZSBsYXRlc3QgamFjayBjdnMgYW5kIG5vbi1jb3RocmVhZGVkIGdzdCBzY2hlZHVsZXIKCjIwMDMtMDItMDUgMjA6Mzg6NDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBDaGFuZ2VkIGNhcHMtPmZpeGVkIHRvIHVzZSBGTEFHX1NFVAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlZCBjYXBzLT5maXhlZCB0byB1c2UgRkxBR19TRVQKCjIwMDMtMDEtMTAgMTM6Mzg6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBQYWRDb25uZWN0IC0+IFBhZExpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhZENvbm5lY3QgLT4gUGFkTGluawoKMjAwMy0wMS0xMCAxMDoyMjoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIGFub3RoZXIgYmF0Y2ggb2YgY29ubmVjdC0+bGluayBmaXhlcyBwbGVhc2UgbGV0IG1lIGtub3cgYWJvdXQgaXNzdWVzIGFuZCBwbGVhc2UgcmVmcmFpbiBvZiBtYWtpbmcgdGhlbSB5b3Vyc2VsZiwgc28gdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBiYXRjaCBvZiBjb25uZWN0LT5saW5rIGZpeGVzCgkgIHBsZWFzZSBsZXQgbWUga25vdyBhYm91dCBpc3N1ZXMKCSAgYW5kIHBsZWFzZSByZWZyYWluIG9mIG1ha2luZyB0aGVtIHlvdXJzZWxmLCBzbyB0aGF0IEkgZG9uJ3Qgc3BlbmQgZG91YmxlCgkgIHRoZSB0aW1lIHJlc29sdmluZyBjb25mbGljdHMKCjIwMDItMTItMDggMTQ6NTA6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L2phY2svTWFrZWZpbGUuYW06CgkgIHBhcmFsbGVsIGluc3RhbGwgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhcmFsbGVsIGluc3RhbGwgZml4ZXMKCjIwMDItMDktMjkgMTg6MTI6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBsaWNlbnNlcyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGljZW5zZXMgYWdhaW4KCjIwMDItMDktMTggMTk6MDI6NTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSAgcGx1Z2lucyBwYXJ0IG9mIGxpY2Vuc2UgZmllbGQgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWdpbnMgcGFydCBvZiBsaWNlbnNlIGZpZWxkIHBhdGNoCgoyMDAyLTA5LTEwIDA5OjMxOjQwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIFRoaXMgdXBkYXRlcyBhbGwgcGx1Z2lucyB0byB0aGUgbmV3IEFQSSBmb3IgZ3N0X3BhZF90cnlfc2V0X2NhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFRoaXMgdXBkYXRlcyBhbGwgcGx1Z2lucyB0byB0aGUgbmV3IEFQSSBmb3IgZ3N0X3BhZF90cnlfc2V0X2NhcHMKCjIwMDItMDktMDkgMjM6Mjc6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICByZW1vdmluZyB3YXJuaW5ncyBhcyBhcHByb3ZlZCBieSB3aW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92aW5nIHdhcm5pbmdzIGFzIGFwcHJvdmVkIGJ5IHdpbQoKMjAwMi0wOC0yMyAwNDowNDoxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrYmluLmM6CgkgIGZpeCBqYWNrIGlucHV0IHBvcnQgY29ubmVjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGphY2sgaW5wdXQgcG9ydCBjb25uZWN0aW9uCgoyMDAyLTA3LTA5IDE3OjM5OjE3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIGNvbXBpbGUgZml4ZW4sIGFuZCBwcmVwYXJlIHRvIG1vdmUgTUFJTlRBSU5FUl9NT0RFIHRvIGFzLXZlcnNpb24ubTQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbXBpbGUgZml4ZW4sIGFuZCBwcmVwYXJlIHRvIG1vdmUgTUFJTlRBSU5FUl9NT0RFIHRvIGFzLXZlcnNpb24ubTQKCjIwMDItMDctMDIgMjM6MzU6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBtYWtlIGphY2sgd29yayBpbiBhbGwgaXRzIGZ1bGwgZHVwbGV4IGdsb3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIGphY2sgd29yayBpbiBhbGwgaXRzIGZ1bGwgZHVwbGV4IGdsb3J5CgoyMDAyLTA2LTEyIDAzOjMyOjAyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzoKCSAgd29ya2luZyBqYWNrIGVsZW1lbnRzIChmaXhlZCBhIHByb2JsZW0gaW4gdXBzdHJlYW0gamFjaykgcmFuZG9tIG90aGVyIGZpeGVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdvcmtpbmcgamFjayBlbGVtZW50cyAoZml4ZWQgYSBwcm9ibGVtIGluIHVwc3RyZWFtIGphY2spCgkgICogcmFuZG9tIG90aGVyIGZpeGVuLi4uCgoyMDAyLTA1LTE1IDE5OjA4OjQ5ICswMDAwICBTdGV2ZSBCYWtlciA8c3RldmVAc3RldmViYWtlci5vcmc+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkgIHVzZSBuZXcgYnl0ZXN0cmVhbSBhcGkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVzZSBuZXcgYnl0ZXN0cmVhbSBhcGkKCjIwMDItMDUtMTMgMTg6MDg6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSogZXh0L2phY2svZ3N0amFjay5oOgoJKiBleHQvamFjay9nc3RqYWNrYmluLmM6CgkgIHVwZGF0ZSB0byBuZXcgamFjayBhcGkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0byBuZXcgamFjayBhcGkKCjIwMDItMDUtMDUgMTk6Mzk6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSAgYWRkIHNvbWUgaW5jbHVkZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGluY2x1ZGVzCgoyMDAyLTA1LTA1IDAxOjA4OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBiZXR0ZXIgaW5pdGlhbGl6YXRpb24uIGl0IGRvZXNuJ3Qgd29yayBvdmVyIGhlcmUsIHRob3VnaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJldHRlciBpbml0aWFsaXphdGlvbi4gaXQgZG9lc24ndCB3b3JrIG92ZXIgaGVyZSwgdGhvdWdoLgoKMjAwMi0wNS0wNCAyMTozODo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFja2Jpbi5jOgoJICBhIGNvbW1pdCBzbyB0aGF0IGphY2sgd2lsbCBidWlsZCB3aXRob3V0IGVycm9ycyBvbiBVcmFldXMncyBzeXN0ZW0gOykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGEgY29tbWl0IHNvIHRoYXQgamFjayB3aWxsIGJ1aWxkIHdpdGhvdXQgZXJyb3JzIG9uIFVyYWV1cydzIHN5c3RlbSA7KQoKMjAwMi0wNS0wNCAyMDo1MzozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBzZXQgY2FwcyBvbmNlIHdlIGtub3cgdGhlIHNhbXBsZSByYXRlIG9mIHRoZSBzeXN0ZW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNldCBjYXBzIG9uY2Ugd2Uga25vdyB0aGUgc2FtcGxlIHJhdGUgb2YgdGhlIHN5c3RlbQoKMjAwMi0wNS0wNCAxODo1Nzo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzoKCSAgc29tZSBqYWNrIGZpeGVzLCBhbHNhIHRvdWNodXBzLCBhbmQgYWRkIHJ0cCBieSBkZWZhdWx0IHRvIHRoZSBidWlsZCBpZiB0aGVyZSBhcmUgYW55IHByb2JsZW1zIGJ1aWxkaW5nIHJ0cCwgd2UncmUgbW92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzb21lIGphY2sgZml4ZXMsIGFsc2EgdG91Y2h1cHMsIGFuZCBhZGQgcnRwIGJ5IGRlZmF1bHQgdG8gdGhlIGJ1aWxkCgkgIGlmIHRoZXJlIGFyZSBhbnkgcHJvYmxlbXMgYnVpbGRpbmcgcnRwLCB3ZSdyZSBtb3ZpbmcgaXQgYmFjayB0byBleHBlcmltZW50YWwgOykKCjIwMDItMDQtMjAgMjE6NDI6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSAgYSBoYWNrIHRvIHdvcmsgYXJvdW5kIGludGx0b29sJ3MgYnJva2VubmVzcyBhIGN1cnJlbnQgY2hlY2sgZm9yIG1wZWcyZGVjIGRldGFpbHMtPmtsYXNzIHJlb3JnYW5pemF0aW9ucyBhbiBlbGVtZW50IGJyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGEgaGFjayB0byB3b3JrIGFyb3VuZCBpbnRsdG9vbCdzIGJyb2tlbm5lc3MKCSAgKiBhIGN1cnJlbnQgY2hlY2sgZm9yIG1wZWcyZGVjCgkgICogZGV0YWlscy0+a2xhc3MgcmVvcmdhbml6YXRpb25zCgkgICogYW4gZWxlbWVudCBicm93c2VyIHRoYXQgdXNlcyBkZXRhaWxzLT5rbGFzcwoJICAqIHNlcGFyYXRlZCBjZHhhIHBhcnNlIG91dCBmcm9tIHRoZSBhdmkgZGlyZWN0b3J5CgoyMDAyLTA0LTE2IDE3OjE0OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSogZXh0L2phY2svZ3N0amFjay5jOgoJKiBleHQvamFjay9nc3RqYWNrLmg6CgkqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzoKCSAgRmluYWxseSB3ZSdyZSBvbiB0byBhIHByb3BlciBqYWNrIHNldHVwLCB3aXRoIGEgc3BlY2lhbGl6ZWQgYmluIGFuZCBlbGVtZW50cyB0aGF0IGNhbiBvbmx5IGdvIGluIGEgamFjayBiaW4uIEkgaGFkIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaW5hbGx5IHdlJ3JlIG9uIHRvIGEgcHJvcGVyIGphY2sgc2V0dXAsIHdpdGggYSBzcGVjaWFsaXplZCBiaW4gYW5kIGVsZW1lbnRzCgkgIHRoYXQgY2FuIG9ubHkgZ28gaW4gYSBqYWNrIGJpbi4gSSBoYWQgdG8gZml4IHRoZSBwYXJzZXIgZmlyc3QgdG8gZG8gdGhpcywgYnV0CgkgIHRvIHJ1biBpdCwgdGhlIHN5bnRheCBpcyBsaWtlIHNvOgoJICBnc3QtbGF1bmNoIGphY2tiaW4uKCBmaWxlc3JjICEgbWFkICEgamFja3NpbmsgKQoJICBCdXQgb2YgY291cnNlIGl0J3Mgbm90IGZ1bGx5IGZ1bmN0aW9uYWwgeWV0LiBTaWdoLgoKMjAwMi0wNC0xMSAyMDo0MjoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBHc3RQYWRUZW1wbGF0ZSA8LT4gZ3N0X3BhZF90ZW1wbGF0ZSA8LT4gR1NUX1BBRF9URU1QTEFURSBzYW1lIHdpdGggKmZhY3RvcnkgYW5kIHR5cGVmaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR3N0UGFkVGVtcGxhdGUgPC0+IGdzdF9wYWRfdGVtcGxhdGUgPC0+IEdTVF9QQURfVEVNUExBVEUKCSAgc2FtZSB3aXRoICpmYWN0b3J5IGFuZCB0eXBlZmluZC4KCSAgYWxzbywgc29tZSAtV2Vycm9yIGZpeGVzLgoKMjAwMi0wMy0zMCAyMTowNzo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBhbHBoYWJldGl6YXRpb24gZml4ZW4gYSBqYWNrIGNhcHMgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGFscGhhYmV0aXphdGlvbiBmaXhlbgoJICAqIGEgamFjayBjYXBzIGZpeAoKMjAwMi0wMy0zMCAxOTozMToxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBhZGQgbm90aWZ5IGJhY2sgdG8gZmlsZXNyYywgaXQncyBuZWVkZWQgZm9yIE1WQyBhcHBsaWNhdGlvbnMgcmVtb3ZlIG5vdGlmeSBwcmludG91dHMgZnJvbSBnc3QtbGF1bmNoIGNsZWFudXAgaW4gZ3N0LXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYWRkIG5vdGlmeSBiYWNrIHRvIGZpbGVzcmMsIGl0J3MgbmVlZGVkIGZvciBNVkMgYXBwbGljYXRpb25zCgkgICogcmVtb3ZlIG5vdGlmeSBwcmludG91dHMgZnJvbSBnc3QtbGF1bmNoCgkgICogY2xlYW51cCBpbiBnc3QtcGx1Z2lucyBjb25maWd1cmUuYWMKCSAgKiBzb21lIGphY2sgdXBkYXRlcwoJICAqIHJlbW92ZSBTRUxGX0lURVJBVElORyBmbGFnIGluIGZhdm9yIG9mIFNFRl9TQ0hFRFVMQUJMRSAobm90IGEgY2xlYXIgbmFtZSwKCSAgYnV0IGl0J3Mgd2hhdCB3ZSBoYXZlIGZvciB0aGUgbW9tZW50KQoJICAqIGltcHJvdmUgcGFyc2luZyBvZiByZXF1ZXN0IHBhZCBuYW1lcywgbm8gbW9yZSBzc2NhbmYKCSAgKiBmaXhlcyB0byB0aGUgZmFzdHNjaGVkdWxlciBNYWtlZmlsZS5hbQoKMjAwMi0wMy0yMCAyMTo0NTowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svZ3N0amFjay5jOgoJICBzL0dub21lLVN0cmVhbWVyL0dTdHJlYW1lci8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHMvR25vbWUtU3RyZWFtZXIvR1N0cmVhbWVyLwoKMjAwMi0wMy0xOSAwNDoxMDowNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svTWFrZWZpbGUuYW06CgkqIGV4dC9qYWNrL2dzdGphY2suYzoKCSAgcmVtb3ZhbCBvZiAvLy1zdHlsZSBjb21tZW50cyBkb24ndCBsaW5rIHBsdWdpbnMgdG8gY29yZSBsaWJzIC0tIHRoZSB2ZXJzaW9uaW5nIGlzIGRvbmUgaW50ZXJuYWxseSB0byB0aGUgcGx1Z2lucyB3aXRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHJlbW92YWwgb2YgLy8tc3R5bGUgY29tbWVudHMKCSAgKiBkb24ndCBsaW5rIHBsdWdpbnMgdG8gY29yZSBsaWJzIC0tIHRoZSB2ZXJzaW9uaW5nIGlzIGRvbmUgaW50ZXJuYWxseSB0byB0aGUgcGx1Z2lucyB3aXRoIHRoZSBwbHVnaW5faW5mbyBzdHJ1Y3QsCgkgIGFuZCBzeW1ib2wgcmVzb2x1dGlvbiBpcyBsYXp5LCBzbyB3ZSBjYW4gYWx3YXlzIGtub3cgaWYgYSBwbHVnaW4gY2FuIGJlIGxvYWRlZCBieSB0aGUgcGx1Z2luX2luZm8gZGF0YS4gaW4gdGhlb3J5LgoKMjAwMi0wMy0xOSAwMTozOTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZXh0L2phY2svTWFrZWZpbGUuYW06CgkgIHMvQEdTVF9QTFVHSU5fTERGTEFHU0AvJChHU1RfUExVR0lOX0xERkxBR1MpLyBALXN1YnN0aXR1ZWQgdmFyaWFibGVzIHZhcmlhYmxlcyBhcmUgZGVmaW5lZCBhcyBtYWtlIHZhcmlhYmxlcyBhdXRvbWFnaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcy9AR1NUX1BMVUdJTl9MREZMQUdTQC8kKEdTVF9QTFVHSU5fTERGTEFHUykvCgkgIEAtc3Vic3RpdHVlZCB2YXJpYWJsZXMgdmFyaWFibGVzIGFyZSBkZWZpbmVkIGFzIG1ha2UgdmFyaWFibGVzIGF1dG9tYWdpY2FsbHksCgkgIGFuZCB0aGlzIGdpdmVzIHRoZSB1c2VyIHRoZSBmcmVlZG9tIHRvIHNheSBtYWtlIEdTVF9QTFVHSU5fTERGTEFHUz0tbXlmbGFnCgoyMDAyLTAzLTE4IDA0OjQxOjM1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSogZXh0L2phY2svUkVBRE1FOgoJKiBleHQvamFjay9nc3RqYWNrLmM6CgkqIGV4dC9qYWNrL2dzdGphY2suaDoKCSAgcy9nc3RfZWxlbWVudF9pbnN0YWxsX3N0ZF9wcm9wcy9nc3RfZWxlbWVudF9jbGFzc19pbnN0YWxsX3N0ZF9wcm9wcy8gLS0gaXQganVzdCBtYWtlcyBtb3JlIHNlbnNlIHRoYXQgd2F5IGFkZGVkIGphY2sgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHMvZ3N0X2VsZW1lbnRfaW5zdGFsbF9zdGRfcHJvcHMvZ3N0X2VsZW1lbnRfY2xhc3NfaW5zdGFsbF9zdGRfcHJvcHMvIC0tIGl0IGp1c3QgbWFrZXMgbW9yZSBzZW5zZSB0aGF0IHdheQoJICAqIGFkZGVkIGphY2sgZWxlbWVudCwgZG9lc24ndCBxdWl0ZSB3b3JrIHJpZ2h0IHlldCBidXQgaSBkaWRuJ3Qgd2FudCB0byBsb3NlIHRoZSB3b3JrIC0tIGl0IGRvZXMgYnVpbGQsIHJlZ2lzdGVyLAoJICBhbmQgYXR0ZW1wdCB0byBydW4gdGhvdWdoCgkgICogaW1wb3NlZCBzb21lIHJlc3RyaWN0aW9ucyBvbiB0aGUgbmFtaW5nIG9mIHJlcXVlc3QgcGFkcyB0byBiZXR0ZXIgYWxsb3cgZm9yIHJldmVyc2UgcGFyc2luZwoJICAqIGFkZGVkICclcycgdG8gcmV2ZXJzZSBwYXJzaW5nCgkgICogYWRkZWQgbmV3IGJpbiBmbGFnIHRvIGluZGljYXRlIHRoYXQgaXQgaXMgc2VsZi1pdGVyYXRpbmcsIGFuZCBzb21lIGxhbWUgY29kZSBpbiBnc3QtbGF1bmNoIHRvIHRlc3QgaXQgb3V0CgkgICogZml4ZW4gb24gbGF1bmNoLWd1aQoJICAqIGFkZGVkIHBrZy1jb25maWcgc3R1ZmYgZm9yIHRoZSBlZGl0b3IncyBsaWJzCgoyMDExLTAxLTAyIDExOjM3OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9nc3R2NGwyLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMjogbWFyayB2NGwyc2luayBhcyBleHBlcmltZW50YWwgYW5kIGJ1aWxkIG9ubHkgaWYgLS1lbmFibGUtZXhwZXJpbWVudGFsIGlzIHBhc3NlZAoJICBJdCdzIG5vdCByZWFsbHkgb2YgJ2dvb2QnIHF1YWxpdHkgeWV0LCBidXQgdGhlcmUncyBhIGxvdCBvZgoJICBjb2RlIHNoYXJlZCB3aXRoIHY0bDJzcmMsIHNvIG5vdCBzbyBlYXN5IHRvIG1vdmUgaXQgZWxzd2hlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTIyNDQKCjIwMTEtMDEtMDIgMDE6MjQ6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICBSZXZlcnQgInY0bDI6IGFkZCBub3JtIHByb3BlcnR5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDllMWQ0MTlkMDczMzdlNmRiMmNjMzkzNjQ3MmJlMjA1Y2U5MjdlNTQuCgkgIFJldmVydGluZyB0aGlzIHNpbmNlIGl0IGFkZHMgdW5yZXZpZXdlZCBhbmQgYmFkIEFQSSB0byB2NGwyc3JjCgkgIChwcm9wZXJ0eSBvZiB0eXBlIGVudW0sIHdpdGggc2VlbWluZ2x5IHJhbmRvbSBhbmQgdW5zb3J0ZWQgdmFsdWVzKS4KCjIwMTEtMDEtMDEgMjM6MjY6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL1JFQURNRS5maWx0ZXJzdGFtcDoKCSogdG9vbHMvZmlsdGVyc3RhbXAuc2g6CgkqIHRvb2xzL2dzdC1sYXVuY2gtZXh0LW0ubToKCSogdG9vbHMvZ3N0LWxhdW5jaC1leHQuMS5pbjoKCSogdG9vbHMvZ3N0LXZpc3VhbGlzZS1tLm06CgkqIHRvb2xzL2dzdC12aXN1YWxpc2UuMS5pbjoKCSAgdG9vbHM6IHJlbW92ZSB1bnVzZWQgbGVmdC1vdmVyIGRpcmVjdG9yeQoJICBUaGVzZSBhcmUgYWxsIGluIC1iYXNlL3Rvb2xzLgoKMjAxMC0xMi0zMSAxMzo1NzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5Lmg6CgkgIG1wNGFkZXBheTogaW1wcm92ZSB0aW1lc3RhbXBzIG9uIG91dGdvaW5nIHBhY2tldHMKCSAgSW1wcm92ZSBwYXJzaW5nIG9mIHRoZSBzYW1wbGVyYXRlLgoJICBQYXJzZSB0aGUgZnJhbWVsZW4gc28gdGhhdCB3ZSBjYW4gY2FsY3VsYXRlIHRpbWVzdGFtcHMuCgkgIFdoZW4gaW50ZXJwb2xsYXRlIHRoZSBpbmNvbW1pbmcgdGltZXN0YW1wIG9uIG91dGdvaW5nIGJ1ZmZlcnMgd2hlbiB0aGVyZSBhcmUKCSAgbXVsdGlwbGUgc3ViZnJhbWVzLgoJICBmaXhlcyAjNjI1ODI1CgoyMDEwLTEyLTMxIDAyOjE2OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIGNhaXJvLCB2aWRlb2ZpbHRlcjogdXNlIGdzdC9tYXRoLWNvbXBhdC5oIGhlYWRlciBmb3IgcmludAoKMjAxMC0xMi0zMCAxNDozMDoyNyAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHZpZGVvYmFsYW5jZTogQ2hlY2sgZm9yIEhBVkVfUklOVCBpbnN0ZWFkCgkgIEFsc28gY2hhbmdlIE1fUEkgdG8gR19QSSBmb3IgZ2lnZ2xlcy4KCjIwMTAtMTItMzAgMTQ6MjE6MzcgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmM6CgkgIGNhaXJvOiBEb24ndCB1c2UgI2lmZGVmcyBpbnNpZGUgbWFjcm9zCgoyMDEwLTEyLTMwIDE0OjIwOjUyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmJhbmQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGVibGltaXQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJKiBnc3QvZ29vbS9jb252b2x2ZV9meC5jOgoJKiBnc3QvZ29vbS9pZnMuYzoKCSogZ3N0L2dvb20vbGluZXMuYzoKCSogZ3N0L2dvb20vdGVudGFjbGUzZC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9hdWRpb2Z4L2ZpcmZpbHRlci1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2F1ZGlvZngvaWlyZmlsdGVyLWV4YW1wbGUuYzoKCSAgQ2hhbmdlIE1fUEkgdG8gR19QSQoKMjAxMC0xMi0zMCAxMjowNzo1MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHZpZGVvYmFsYW5jZTogdXNlIEdfT1NfV0lOMzIgZm9yIHdpbmRvd3MgY2hlY2sKCjIwMTAtMTItMzAgMTY6MjQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJICBtcDRhZGVwYXk6IGZpeCB0aW1lc3RhbXBzIG9uIGJ1ZmZlcnMKCjIwMTAtMTItMzAgMTY6MjI6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJICBtcHZwYXk6IGZpeCBmbHVzaGluZyBhbmQgZGlzY29udAoJICBGaXggZmx1c2hpbmcgYW5kIGRpc2NvbnRzLgoJICBDbGVhbiB1cCBpbiBzdGF0ZSBjaGFuZ2VzLgoKMjAxMC0xMi0yOSAyMzozODoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2EtZGVtdXg6IGluY3JlYXNlIGFsbG93ZWQgbWF4LiBibG9jayBzaXplIGZvciBwdXNoIG1vZGUgZnJvbSAxME0gdG8gMTVNCgkgIEl0IHdhcyBhbiBhcmJpdHJhcnkgbGltaXQgZnJvbSB0aGUgc3RhcnQsIG1lYW50IGFzIGEgYmFzaWMgc2FuaXR5IGNoZWNrLAoJICBzbyBtYXkganVzdCBhcyB3ZWxsIGluY3JlYXNlIGl0IGEgbGl0dGxlLiBXb3VsZCBiZSBnb29kIHRvIHByb3ZpZGUKCSAgcHJvZ3Jlc3MgcmVwb3J0aW5nIHdoaWxlIGNvbXBsZXRpbmcgdGhlIGJsb2NrIGluIGFueSBjYXNlLi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzA2MAoKMjAxMC0xMi0yOSAyMzowOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2EtZGVtdXg6IGFzc3VtZSBtYXRyb3NrYSBpZiBubyBkb2N0eXBlIGlzIHNwZWNpZmllZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4MDE5CgoyMDEwLTEyLTA0IDEzOjQzOjExIC0wNjAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgdjRsMjogYWRkIGludGVybGFjZWQgc3VwcG9ydAoKMjAxMC0xMC0wMiAxNDo0NToxNCAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5oOgoJICB2NGwyc2luazogYWRkIG5hdmlnYXRpb24gc3VwcG9ydAoKMjAxMC0wNC0wNCAwNjo0Mzo0MSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICB2NGwyOiBhZGQgbm9ybSBwcm9wZXJ0eQoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEd1ZW5uYWRpIExpYWtob3ZldHNraS4KCjIwMTAtMDctMTMgMTA6MDM6NTEgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5oOgoJICB2NGwyOiBjbGVhbnVwIGdldC9zZXQgaW5wdXQvb3V0cHV0CgkgIG91dHB1dCBkZXZpY2VzIHNob3VsZCB1c2UgZ2V0L3NldCBvdXRwdXQsIGFuZCBpbiBlaXRoZXIgY2FzZSB3ZSBzaG91bGQKCSAgbm90IHByaW50IGEgd2FybmluZyBtZXNzYWdlIGlmIHRoZSBpb2N0bCBmYWlscyBidXQgdGhlIGRldmljZSBkb2VzIG5vdAoJICBjbGFpbSB0byBzdXBwb3J0IHRoZSB0dW5lciBpbnRlcmZhY2UKCjIwMTAtMDYtMTAgMTE6MTU6NDYgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuaDoKCSAgdjRsMnhvdmVybGF5OiBhZGQgc3VwcG9ydCB0byBjcmVhdGUgd2luZG93CgkgIElmIHhvdmVybGF5IGlzIGF2YWlsYWJsZSwgdjRsMnNpbmsgc2hvdWxkIGNyZWF0ZSBhIHdpbmRvdyBmb3IgdGhlIG92ZXJsYXkgdG8KCSAgZGlzcGxheSBpbi4KCSAgVGhlIHdpbmRvdyBhdXRvbWF0aWNhbGx5IHRyaWVzIHRvIG1ha2UgaXRzZWxmIGFzIGxhcmdlIGFzIHBvc3NpYmxlLgoJICBUaGlzIHdvcmtzIHdlbGwgb24gYSBzbWFsbCBzY3JlZW4sIGJ1dCBwZXJoYXBzIHNob3VsZCBmaXJzdCBhdHRlbXB0IHRvIHVzZQoJICB0aGUgc2l6ZSBvZiB0aGUgdmlkZW8gdGhhdCBpcyBwbGF5ZWQgKG5vIHNjYWxpbmcpLgoKMjAxMC0wNC0wNCAwNjo0MToyOCAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IHNwZWNpYWwgaGFuZGxpbmcgZm9yIGNhc2VzIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpCgkgIFNwZWNpYWwgY2FzZSBjaGVjayBmb3Igc3ViLWJ1ZmZlcnM6ICBJbiBjZXJ0YWluIGNhc2VzLCBwbGFjZXMgbGlrZQoJICBHc3RCYXNlVHJhbnNmb3JtLCB3aGljaCBtaWdodCBjaGVjayB0aGF0IHRoZSBidWZmZXIgaXMgd3JpdGFibGUgYmVmb3JlIGNvcHlpbmcKCSAgbWV0YWRhdGEsIHRpbWVzdGFtcCwgYW5kIHN1Y2gsIHdpbGwgZmluZCB0aGF0IHRoZSBidWZmZXIgaGFzIG1vcmUgdGhhbiBvbmUKCSAgcmVmZXJlbmNlIHRvIGl0LiAgSW4gdGhlc2UgY2FzZXMsIHRoZXkgd2lsbCBjcmVhdGUgYSBzdWItYnVmZmVyIHdpdGggYW4gb2Zmc2V0PTAKCSAgYW5kIGxlbmd0aCBlcXVhbCB0byB0aGUgb3JpZ2luYWwgYnVmZmVyIHNpemUuCgkgIFRoaXMgY291bGQgaGFwcGVuIGluIHR3byBzY2VuYXJpb3M6ICgxKSBhIHRlZSBpbiB0aGUgcGlwZWxpbmUsIGFuZCAoMikgYmVjYXVzZQoJICB0aGUgcmVmY250IGlzIGluY3JlbWVudGVkIGluIGdzdF9taW5pX29iamVjdF9mcmVlKCkgYmVmb3JlIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbgoJICBpcyBjYWxsZWQsIGFuZCBkZWNyZW1lbnRlZCBhZnRlciBpdCByZXR1cm5zLi4gIGJ1dCByZXR1cm5pbmcgdGhpcyBidWZmZXIgdG8gdGhlCgkgIGJ1ZmZlciBwb29sIGluIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbiwgY291bGQgd2FrZSB1cCBhIHRocmVhZCBibG9ja2VkIGluCgkgIF9idWZmZXJfYWxsb2MoKSB3aGljaCBjb3VsZCBydW4gYW5kIGdldCBhIGJ1ZmZlciB3LyByZWZjbnQ9PTIgYmVmb3JlIHRoZSB0aHJlYWQKCSAgb3JpZ2luYWxseSB1bnJlZidpbmcgdGhlIGJ1ZmZlciByZXR1cm5zIGZyb20gZmluYWxpemUgZnVuY3Rpb24gYW5kIGRlY3JlbWVudHMKCSAgdGhlIHJlZmNudCBiYWNrIHRvIDEhCgkgIFRoaXMgaXMgcmVsYXRlZCB0byBpc3N1ZSAjNTQ1NTAxCgoyMDEwLTA0LTA0IDA2OjM5OjUyIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBmaXggcmFjZSBjb25kaXRpb24KCSAgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciB3b3VsZCBiZSB6ZXJvJ2Qgb3V0IGluIGdzdF92NGwyX2J1ZmZlcl9maW5hbGl6ZSgpCgkgIGFmdGVyIHRoZSBidWZmZXIgaXMgcWJ1ZidkIG9yIHB1c2hlZCBvbnRvIHRoZSBxdWV1ZSBvZiBhdmFpbGFibGUgYnVmZmVycy4uCgkgIGxlYXZpbmcgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSB0aGUgdGhyZWFkIHdhaXRpbmcgZm9yIHRoZSBidWZmZXIgY291bGQgYXdha2UKCSAgYW5kIHNldCBiYWNrIGEgdmFsaWQgc2l6ZSBiZWZvcmUgdGhlIGZpbmFsaXppbmcgdGhyZWFkIHplcm9zIG91dCB0aGUgbGVuZ3RoLgoJICBUaGlzIHdvdWxkIHJlc3VsdCB0aGF0IHRoZSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyIGhhcyBsZW5ndGggb2YgemVyby4KCjIwMTAtMDQtMDQgMDY6Mzk6MDggLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmg6CgkgIHY0bDJzaW5rOiBhZGQgcHJvcGVydGllcyB0byBjb250cm9sIGNyb3AKCjIwMTAtMDQtMDQgMDY6Mzc6MTYgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkgIHY0bDI6IHJlLWVuYWJsZSB4LW92ZXJsYXkgc3VwcG9ydAoKMjAxMC0xMi0yNSAxMTo1MjozNiAtMDYwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IGZpeCBmb3IgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHN0YXRlIHRyYW5zaXRpb25zCgkgIFdoZW4gdjRsMnNpbmsgZ29lcyB0byBQQVVTRUQtPlJFQURZIGl0IG9ubHkgc3RvcHMgc3RyZWFtaW5nLCBzbyB0aGUgc3RhdGUKCSAgc2hvdWxkIGJlIHNldCB0byBTVEFURV9QRU5ESU5HX1NUUkVBTU9OIGluIGNhc2UgdGhlIGVsZW1lbnQgdHJhbnNpdGlvbnMKCSAgYmFjayB0byBQTEFZSU5HLgoKMjAxMC0wNC0wNCAwNjoyODo1MSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuaDoKCSAgdjRsMnNpbms6IGFkZCAibWluLXF1ZXVlZC1idWZzIiBwcm9wZXJ0eQoKMjAxMC0wNC0wNCAwNjoyNjo1MCAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc2luazogQWRkIHN1cHBvcnQgZm9yIGJsb2NraW5nIGRlcXVldWUuCgkgIFdlJ2QgcHJlZmVyIHRvIHRocm90dGxlIHRoZSBkZWNvZGVyIGlmIHdlIHJ1biBvdXQgb2YgYnVmZmVycywgdG8ga2VlcCBhIGJvdW5kCgkgIG9uIG1lbW9yeSB1c2FnZS4gIEFsc28sIGZvciBPTUFQNCBpdCBpcyBhIHJlcXVpcmVtZW50IG9mIHRoZSBkZWNvZGVyIHRvIG5vdAoJICBhbHRlcm5hdGUgYmV0d2VlbiBtZW1vcnkgYWxsb2NlZCBieSB0aGUgZGlzcGxheSBkcml2ZXIgYW5kIG1hbGxvYydkIHVzZXJzcGFjZQoJICBtZW1vcnkuCgoyMDEwLTA0LTA0IDA2OjI0OjQxIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBjbGVhciBmbGFncyBiZWZvcmUgcmV1c2luZyBidWZmZXIgZnJvbSBidWZmZXIgcG9vbAoJICBub3RlOiB0aGlzIHJlYWxseSBvbmx5IGFmZmVjdHMgdjRsMnNpbmsgc2luY2UgZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfZ2V0KCkgaXMKCSAgb25seSBjYWxsZWQgb25jZSBwZXIgYnVmZmVyIGluIHRoZSB2NGwyc3JjIGNhc2UgKGluCgkgIGdzdF92NGwyc3JjX2J1ZmZlcl9wb29sX2FjdGl2YXRlKCkpCgoyMDEwLTA0LTA0IDA2OjIzOjMxIC0wNTAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB2NGwyc2luazogZG9uJ3QgcmVuZGVyIHByZXJvbGwgYnVmZmVycwoJICBNb3N0IHY0bDIgZHJpdmVycyB3aWxsIGdldCB1cHNldCB3aGVuIHlvdSBxdWV1ZSB0aGUgc2FtZSBidWZmZXIgdHdpY2UgaW4gYQoJICByb3cgd2l0aG91dCBmaXJzdCBkZXF1ZXVlaW5nIGl0LgoJICBSZW5kZXJpbmcgb2YgcHJlLXJvbGwgYnVmZmVycyBjYW4gYmUgcmUtaW50cm9kdWNlZCBsYXRlciwgYnV0IHdpbGwgcmVxdWlyZQoJICB0cmFja2luZyB0aGUgc3RhdGUgb2YgdGhlIGJ1ZmZlciwgYW5kIGF2b2lkaW5nIHRvIHJlLVFCVUYgaWYgdGhlIGJ1ZmZlciBoYXMKCSAgYWxyZWFkeSBiZWVuIHBhc3NlZCB0byB0aGUgZHJpdmVyLgoKMjAxMC0wNC0wNCAwNjoyMjo0MyAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IEltcHJvdmUgYmVoYXZpb3IgZm9yIHNoYXJlZCBidWZmZXJzLgoJICBXaGVuIHRoZSBkZWNvZGVyIGlzIHVzaW5nIHBhZF9hbGxvYygpLCB2NGwyc2luayB3b3VsZCBiZWhhdmUgYmFkbHkgaWYKCSAgdGhlIG51bWJlciBvZiBidWZmZXJzICgncXVldWUtc2l6ZScgcHJvcGVydHkpIHdhcyBub3QgaGlnaCBlbm91Z2ggdG8KCSAgYWNjb3VudCBmb3IgYWxsIHRoZSBidWZmZXJzIG5lZWRlZCBieSB0aGUgZGVjb2RlciwgYW5kIG90aGVyIGVsZW1lbnRzCgkgIChzdWNoIGFzIHF1ZXVlcykgYmV0d2VlbiB0aGUgZGVjb2RlciBhbmQgdjRsMnNpbmsuICBUaGlzIHBhdGNoCgkgIHNsaWdodGx5IGluY3JlYXNlcyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgYnVmZmVycywgYW5kIGNoYW5nZXMgdjRsMnNpbmsKCSAgdG8gZHJvcCBmcmFtZXMgcmF0aGVyIHRoYW4gcmV0dXJuIGFuIGVycm9yIGluIGNhc2UgdGhlIG51bWJlciBvZgoJICBidWZmZXJzIGlzIG5vdCBoaWdoIGVub3VnaC4KCjIwMTAtMTEtMTUgMTU6NTg6MjggKzAxMDAgIEFuZHkgV2luZ28gPHdpbmdvQG9ibG9uZy5jb20+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmg6CgkgIGFkZCAiY2xpZW50IiBwcm9wZXJ0eQoJICAqIGV4dC9wdWxzZS9wdWxzZXNyYy5jIChnc3RfcHVsc2VzcmNfY2xhc3NfaW5pdCwgZ3N0X3B1bHNlc3JjX2luaXQpCgkgIChnc3RfcHVsc2VzcmNfc2V0X3Byb3BlcnR5LCBnc3RfcHVsc2VzcmNfZ2V0X3Byb3BlcnR5KQoJICAoZ3N0X3B1bHNlc3JjX29wZW4pOiBBZGQgYSAiY2xpZW50IiBwcm9wZXJ0eSwgYXMgaW4gcHVsc2VzaW5rLgoJICBGaXhlcyAjNjM0OTE0CgoyMDEwLTEyLTI5IDE1OjU0OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogc2VyaWFsaXNlL2Rlc2VyaWFsaXNlIGZsb2F0cyB3aXRob3V0IGNoYW5naW5nIGxvY2FsZQoJICBVc2UgZ19hc2NpaV9kdG9zdHIoKSBhbmQgZ19hc2NpaV9zdHJ0b2QoKSB0byBzZXJpYWxpc2UvZGVzZXJpYWxpc2UKCSAgZmxvYXRpbmcgcG9pbnQgbnVtYmVycywgaW5zdGVhZCBvZiB1Z2x5IGhhY2tzIHRoYXQgc3dpdGNoIGxvY2FsZQoJICBiZWZvcmUgYW5kIGFmdGVyIGNhbGxpbmcgbGliYyBmdW5jdGlvbnMgKHdoaWNoIGlzIG5vdCBhIGdvb2QgaWRlYQoJICBpbiBhIG11bHRpLXRocmVhZGVkIGFwcGxpY2F0aW9uKS4KCjIwMTAtMTItMjkgMTQ6NDA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSAgcnRwanBlZ2RlcGF5OiBmaXggZnJhbWVyYXRlIHBhcnNpbmcgZm9yIGxvY2FsZXMgdGhhdCB1c2UgYSBjb21tYSBhcyBmbG9hdGluZyBwb2ludAoJICBhdG9mKCkgY29udmVydHMgc3RyaW5ncyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgbG9jYWxlLCBidXQgdGhlCgkgIGZyYW1lcmF0ZSBzdHJpbmcgd2lsbCBsaWtlbHkgYWx3YXlzIHVzZSBhIGRvdCBhcyBmbG9hdGluZyBwb2ludAoJICBzZXBhcmF0b3IsIHNvIHVzZSBnX2FzY2lpX3N0cnRvZCgpIGluc3RlYWQgKGJ1dCBhbHNvIGNhbm9uaWNhbGlzZQoJICB0aGUgc3RyaW5nIGJlZm9yZSwgc28gd2UgY2FuIGhhbmRsZSBib3RoIGZvcm1hdHMgYXMgaW5wdXQpLgoKMjAxMC0xMi0yNyAxMzoxMTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBydHBzb3VyY2U6IHVzZSB0aGUgcmlnaHQgdmFyaWFibGUKCSAgVXNlIHRoZSByaWdodCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGF0IHdlIHNlbnQgYSByZWNlaXZlciByZXBvcnQuCgoyMDEwLTEyLTIzIDE2OjQyOjI5IC0wNjAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBmaXggdHlwbwoKMjAxMC0xMi0yMyAxNjowMzowMCAtMDYwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thLWRlbXV4OiBhZGQgc3RyZWFtLWZvcm1hdCBhbmQgYWxpZ25tZW50IHByb3BlcnRpZXMgZm9yIGgyNjQKCjIwMTAtMTItMjIgMTE6NDE6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGdzdHBheS5jOgoJICBnc3RwYXk6IGZpeCBrbGFzcywgYWRkIFJUUCBhcyBhIHVzZSBjYXNlCgoyMDEwLTEyLTEyIDE1OjEwOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBnc3RkZXBheS5jOgoJICBnc3RkZXBheTogY2xlYW51cCB0aGUgY2FjaGUKCjIwMTAtMTItMTIgMDU6MTA6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdHJ0cC5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3N0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc3RwYXkuaDoKCSAgZ3N0cGF5L2RlcGF5OiBhZGQgZ2VuZXJpYyBnc3RyZWFtZXIgcGF5bG9hZGVyCgkgIEFkZCB0aGUgYmVnaW5uaW5ncyBvZiBhIGdlbmVyaWMgR1N0cmVhbWVyIGJ1ZmZlcnMgcGF5bG9hZGVyLgoKMjAxMC0xMi0yMyAxNzowNjo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJICBtcDRncGF5OiByZXNldCBzdGF0ZSBvbiBmbHVzaC1zdG9wCgoyMDEwLTEyLTIzIDE2OjI2OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSAgbXA0Z2RlcGF5OiBmbHVzaCBzdGF0ZSBvbiBmbHVzaC1zdG9wCgoyMDEwLTEyLTIzIDE2OjI1OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBvbi1ucHQtc3RvcCBpcyBhIG1hbmFnZXIgc2lnbmFsCgoyMDEwLTEyLTIzIDE1OjI0OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IGltcHJvdmUgUlRQIHNlc3Npb24gaGFuZGxpbmcKCSAgU3RvcmUgdGhlIFJUUCBzZXNzaW9uIGluIHRoZSBzdHJlYW0gc28gdGhhdCB3ZSBjYW4gbW9yZSBlZmZpY2llbnRseQoJICBwZXJmb3JtIGFjdGlvbnMgb24gdGhlIHN0cmVhbSBiYXNlZCBvbiBSVFAgc2lnbmFscy4KCjIwMTAtMTItMjMgMTM6NTU6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBpbmNsdWRlIGxhc3Qgc2VuZCBSQiBibG9jawoJICBPbmx5IHJlcG9ydCBSQiB2YWx1ZXMgZm9yIG5vbi1pbnRlcm5hbCBzb3VyY2VzLgoJICBSZXBvcnQgbm90IG9ubHkgdGhlIFJCIGJsb2NrcyB3ZSBsYXN0IHJlY2VpdmVkIGZyb20gYnV0IGFsc28gdGhlIGxhc3QgUkIKCSAgYmxvY2sgd2Ugc2VudCB0byBhIHNvdXJjZS4KCjIwMTAtMTItMjMgMTM6NTI6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBydHBzZXNzaW9uOiByZW1lbWJlciBsYXN0IHNlbnQgUkIgdmFsdWVzLgoKMjAxMC0xMi0yMyAxMzowMDo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBydHBzb3VyY2U6IGluY2x1ZGUgYWxsIHN0YXRzIGFuZCBkb2N1bWVudAoJICBJbmNsdWRlIGFsbCBwb3NzaWJsZSBzdGF0cyBvZiBhIHNvdXJjZSBpbiB0aGUgc3RhdHMgc3RydWN0dXJlIGJlY2F1c2Ugd2UgbWlnaHQKCSAgYmUgaW50ZXJlc3RlZCBpbiB3aGF0IGhhcHBlbmVkIGluIHRoZSBwYXN0LgoJICBEb2N1bWVudCB0aGUgc3RhdHMgcHJvcGVydHkgYW5kIHRoZSBmaWVsZHMuCgoyMDEwLTEyLTIzIDEyOjU5OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1QQ01BLmM6CgkgIGV4YW1wbGVzOiBhZGQgZXhhbXBsZSBSVFAgc3RhdHMKCSAgQWRkIHNvbWUgbW9yZSBSVFAgZXhhbXBsZXMgZm9yIGhvdyB0byByZXRyaWV2ZSBSVFAgc3RhdHMgaW4gYSByZWNlaXZlci4KCjIwMTAtMTItMjMgMTI6NTg6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IGFsc28gZW1pdCBSVENQIGFjdGl2aXR5IG9uIFNSCgkgIEFsc28gZW1pdCBSVENQIGFjdGl2aXR5IHNpZ25hbHMgd2hlbiB3ZSByZWNlaXZlIGFuIFNSIHBhY2tldCB3aXRob3V0IFJCIGJsb2NrcywKCSAgc3VjaCBhcyBmcm9tIGEgc2VuZGVyIHRoYXQgaXMgbm90IHJlY2VpdmluZyBhbnl0aGluZy4KCjIwMTAtMTItMjMgMTE6MTA6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBnc3RydHBiaW4gZG9jcwoKMjAxMC0xMi0yMiAyMToyNzoxMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHhpbWFnZXNyYzogcmVtb3RlIGlzIGEgYm9vbGVhbiAoYW5kIG5vdCB1aW50KSBwcm9wZXJ0eQoKMjAxMC0xMi0yMiAxOTo1ODoyMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogRG9uJ3QgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkKCSAgVXNpbmcgdGhpcyBpbiBhIGRlbXV4ZXIgd2lsbCBjYXVzZSBkZWFkbG9ja3MgaWYgdGhlcmUncwoJICBhIHBhZCB3aXRoIGEgcGVuZGluZyBwYWQtYmxvY2sgZG93bnN0cmVhbSwgbm8gbWF0dGVyIGlmCgkgIHRoZXJlIGlzIGEgcXVldWUgYmV0d2VlbiB0aGUgcGFkIG9yIG5vdC4gUXVldWVzIHBhc3MKCSAgYnVmZmVyYWxsb2MgZG93bnN0cmVhbSBmcm9tIHRoZSBzYW1lIHRocmVhZCBhbmQgb25seQoJICBhY3QgYXMgYSB0aHJlYWQgYm91bmRhcnkgZm9yIGV2ZW50cyBhbmQgYnVmZmVycy4KCjIwMTAtMTItMjIgMTQ6MTQ6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZml4IHN1YnRpdGxlIHBhZCB0ZW1wbGF0ZSwgd2Ugb25seSBoYW5kbGUga2F0ZSBmb3Igbm93CgoyMDEwLTEyLTE2IDExOjQ0OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgZG9jczogdXBkYXRlIHJ0c3BzcmMgZG9jcywgcnRwYmluIGlzIG5vdCBpbiAtYmFkIGFueSBtb3JlCgoyMDEwLTEyLTIyIDExOjQyOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiB1bmxvY2sgYmVmb3JlIGVtaXR0aW5nIHNpZ25hbHMKCjIwMTAtMTItMjEgMjI6MzQ6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdHJ0cC5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM3BheS5oOgoJICBydHBhYzNwYXk6IGFkZCBBQzMgcGF5bG9hZGVyCgoyMDEwLTEyLTIxIDIyOjE3OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJICBhYzNkZXBheTogZml4IGRlYnVnIGNhdGVnb3J5IGRlc2NyaXB0aW9uCgoyMDEwLTEyLTIxIDIyOjE2OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgbXBhcGF5OiBhZGQgZGVidWcgY2F0ZWdvcnkKCjIwMTAtMTItMjAgMTQ6NDk6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2pwZWdlbmMuYzoKCSAganBlZ2VuYzogQWRkcyBhbm90aGVyIHRlc3QgY2FzZQoJICBBZGRzIGEgdGVzdCBmb3IganBlZ2VuYyB0byBjaGVjayB0aGF0IGlzIHBvc3NpYmxlIHRvIG5lZ290aWF0ZSBhbmQKCSAgcHVzaCBidWZmZXJzIHdpdGggZGlmZmVyZW50IHJlc29sdXRpb24gb25lIGFmdGVyIGFub3RoZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzc2ODYKCjIwMTAtMTItMjEgMTM6Mzc6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBzaW5rIHBhZCdzIGdldGNhcHMgc2hvdWxkbid0IHVzZSB0aGUgc3JjIHBhZCBnZXRjYXBzCgkgIEluc3RlYWQgb2YgdXNpbmcgZ2V0X2FsbG93ZWRfY2FwcyBvbiB0aGUgc3JjcGFkLCB0aGUgc2lua3BhZCBnZXRjYXBzCgkgIHNob3VsZCB1c2UgdGhlIGdldGNhcHMgb2YgdGhlIHNyY3BhZCdzIHBlZXIuIFRoaXMgd2F5IHRoZSBzcmNwYWQKCSAgY2FuIGtlZXAgdXNpbmcgZml4ZWRfY2FwcyBhbmQgc2lua3BhZCBnZXRjYXBzIGV4cG9zZXMgYWxsIGNhcHMKCSAgdGhhdCBjYW4gYmUgbmVnb3RpYXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3Njg2CgoyMDEwLTEyLTIxIDE2OjU4OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIyZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJICBydHA6IGFkZCBSVFAgaGludCB0byB0aGUga2xhc3MKCjIwMTAtMTItMjEgMTY6NDk6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMXNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFjZWxwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVuZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHJ0cDogZml4IHJhbmsgb2YgcGF5bG9hZGVycyBhbmQgZGVwYXlsb2FkZXJzCgkgIFNldCB0aGUgcGF5bG9hZGVycyBhbmQgZGVwYXlsb2FkZXJzIHRvIGEgcmVhc29uYWJsZSByYW5rLgoKMjAxMC0xMi0yMSAxNToyNDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkgIHZyYXdkZXBheTogcmVzZXQgZGVwYXlsb2FkZXIgc3RhdGUKCSAgUmVzZXQgdGhlIGRlcGF5bG9hZGVyIHN0YXRlIG9uIGZsdXNoLXN0b3AuCgoyMDEwLTEyLTIxIDE1OjA3OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJICBtcDRwYXk6IHVzZSB2bWV0aG9kIGZvciBpbnRlcmNlcHRpbmcgZXZlbnRzCgoyMDEwLTEyLTIxIDEzOjU1OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSAgdGhlb3JhcGF5OiBjbGVhciBwYWNrZXQgb24gZmx1c2gtc3RvcAoKMjAxMC0xMi0yMSAxMzo0OTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkgIHZvcmJpc3BheTogY2xlYXIgcGFja2V0IG9uIGZsdXNoLXN0b3AKCjIwMTAtMTItMjEgMTI6MzE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJICBtcDRnZGVwYXk6IHJlc2V0IGRlcGF5bG9hZGVyIHN0YXRlCgoyMDEwLTEyLTIxIDEyOjI5OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIGgyNjRwYXk6IGZsdXNoIGFkYXB0ZXIgb24gZmx1c2gtc3RvcAoKMjAxMC0xMi0yMCAxODo0OTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkgIG1wYXBheTogZmx1c2ggbGFzdCBwYWNrZXRzIG9uIEVPUwoKMjAxMC0xMi0yMCAxNzo0NzowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE2OTQ2MmEgdG8gNDY0NDVhZAoKMjAxMC0xMi0yMCAxNjo1MTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkgIG1wYXBheTogcmVzZXQgcGF5bG9hZGVyIG9uIHN0YXRlIGNoYW5nZQoKMjAxMC0xMi0yMCAxNjowNTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkgIG1wYXBheTogcmVzZXQgcGF5bG9hZGVyIG9uIGZsdXNoCgkgIFJlc2V0IHRoZSBwYXlsb2FkZXIgb24gYSBmbHVzaCBldmVudC4KCSAgSGFuZGxlIERJU0NPTlQgYmV0dGVyLgoKMjAxMC0xMi0yMCAxNTo1NDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IGdldCBiZXR0ZXIgYnVmZmVyaW5nIGxldmVsCgkgIFdoZW4gdGhlIGppdHRlcmJ1ZmZlciBjb250YWlucyAtMSB0aW1lc3RhbXBzLCBtYWtlIHN1cmUgd2Ugc3RpbGwgY2FsY3VsYXRlIHRoZQoJICBidWZmZXIgZmlsbCBsZXZlbCBieSBza2lwcGluZyB0aGUgLTEgYnVmZmVycy4KCSAgVHJ5IHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIHdlaXJkIGlucHV0IHRpbWVzdGFtcHMuCgoyMDEwLTEyLTIwIDExOjEwOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogcHJvdmlkZSBhIGNsb2NrLgoJICBzaW5jZSB3ZSBhcmUgdXNpbmcgdGhlIGNsb2NrIGZvciBzeW5jLCB3ZSBuZWVkIHRvIGFsc28gcHJvdmlkZSBhIGNsb2NrIGZvciBnb29kCgkgIG1lYXN1cmUuIFRoZSByZWFzb24gaXMgdGhhdCBldmVuIGlmIGRvd25zdHJlYW0gZWxlbWVudHMgcHJvdmlkZSBhIGNsb2NrLCB3ZQoJICBkb24ndCB3YW50IHRvIGhhdmUgdGhhdCBjbG9jayBzZWxlY3RlZCBiZWNhdXNlIGl0IG1pZ2h0IG5vdCBiZSBydW5uaW5nIHlldC4KCjIwMTAtMTItMjAgMTA6NDk6NTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBjb3B5IGJ1ZmZlcmluZyBzdGF0cwoJICB3aGVuIHdlIGNyZWF0ZSBhbiBhZ2dyZWdhdGUgYnVmZmVyaW5nIG1lc3NhZ2UsIGNvcHkgdGhlIGJ1ZmZlcmluZyBzdGF0cyBmb3JtIHRoZQoJICBsYXN0IG1lc3NhZ2UuIEF0IGxlYXN0IHdlIGdldCBjb3JyZWN0IGJ1ZmZlcmluZyBtb2RlIHRoZW4uCgoyMDEwLTEyLTE5IDExOjAyOjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy93YXZlbmMuYzoKCSAgd2F2ZW5jOiBGaXggbWVtb3J5IGxlYWtzIGluIHRoZSB1bml0IHRlc3QKCjIwMTAtMTItMTkgMTA6NTg6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0cmFkaW9hYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmg6CgkgIHJhZGlvYWN0djogUHJldmVudCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YWx1ZXMKCSAgRml4ZXMgYnVnICM2MTg2NTIuCgoyMDEwLTEyLTE5IDEwOjIyOjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGNhcHNkZWJ1Zy5jOgoJICBjYXBzZGVidWc6IERvbid0IGxlYWsgcGFkIHRlbXBsYXRlcyBjcmVhdGVkIGZyb20gc3RhdGljIHBhZCB0ZW1wbGF0ZXMKCjIwMTAtMTEtMjkgMTI6MzY6MDYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuaDoKCSAgeGltYWdlc3JjOiBjaGFuZ2UgZnJvbSBYR2V0SW1hZ2UgdG8gWEdldFN1YkltYWdlIGRlcGVuZGFudCBvbiBhIHByb3BlcnR5CgkgIHhpbWFnZXNyYzogY2hhbmdlIGZyb20gWEdldEltYWdlIHRvIFhHZXRTdWJJbWFnZSBkZXBlbmRhbnQgb24gYSBwcm9wZXJ0eQoJICB0byBhdm9pZCB1bm5lY2Vzc2FyeSBwZXJmb3JtYW5jZSBoaXRzIGJ5IGRlZmF1bHQuCgoyMDEwLTExLTI4IDE2OjA0OjM1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHhpbWFnZXNyYzogdXNlIFhHZXRTdWJJbWFnZSBpbnN0ZWFkIG9mIFhHZXRJbWFnZSwgd29ya3Mgd2l0aCByZW1vdGUgWAoJICB4aW1hZ2VzcmM6IHVzZSBYR2V0U3ViSW1hZ2UgaW5zdGVhZCBvZiBYR2V0SW1hZ2UsIHdvcmtzIHdpdGggcmVtb3RlIFgKCSAgKG9uIG15IHNldHVwIGFueXdheS4uLikKCjIwMTAtMTEtMjcgMTc6MTU6MzIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSAgeGltYWdlc3JjOiBmaXggdmFyaW91cyB3aWR0aC9oZWlnaHQgY2FsY3VsYXRpb25zIGJlaW5nIG9mZiBieSBvbmUsCgkgIHhpbWFnZXNyYzogZml4IHZhcmlvdXMgd2lkdGgvaGVpZ2h0IGNhbGN1bGF0aW9ucyBiZWluZyBvZmYgYnkgb25lLAoJICBhbmQgbWFrZSBpdCBzbyBhIHNpbmdsZSBwaXhlbCB3aWR0aC9oZWlnaHQgY2FuIGJlIGNhcHR1cmVkIChleGNlcHQKCSAgdGhlIHRvcCBsZWZ0IG9uZSwgYXMgMCwwLDAsMCBpcyByZXNlcnZlZCBmb3IgZnVsbCBzY3JlZW4gYXMgcGVyCgkgIHRoZSBwcm9wZXJ0eSBjb21tZW50cykuCgoyMDEwLTEyLTE3IDE5OjE5OjM1IC0wNjAwICBSb2IgQ2xhcmsgPHJvYkB0aS5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIGZpeCBjb21waWxlIGVycm9ycyBvbiBtYWNvc3gKCSAgd2l0aCBpNjg2LWFwcGxlLWRhcndpbjEwLWdjYy00LjIuMToKCSAgZ3N0djRsMm9iamVjdC5jOiBJbiBmdW5jdGlvbiAnZ3N0X3Y0bDJfb2JqZWN0X2dldF9uZWFyZXN0X3NpemUnOgoJICBnc3R2NGwyb2JqZWN0LmM6MTk4ODogd2FybmluZzogZm9ybWF0ICcldScgZXhwZWN0cyB0eXBlICd1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgMTIgaGFzIHR5cGUgJ2dpbnQgKicKCSAgZ3N0djRsMm9iamVjdC5jOjE5ODg6IHdhcm5pbmc6IGZvcm1hdCAnJXUnIGV4cGVjdHMgdHlwZSAndW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDEzIGhhcyB0eXBlICdnaW50IConCgoyMDEwLTEyLTE3IDE1OjM4OjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIHJ0cGgyNjRkZXBheTogZGV0ZXJtaW5lIG91dHB1dCBoMjY0IGxheW91dCB1c2luZyBjYXBzIG5lZ290aWF0aW9uCgkgIC4uLiB0aGVyZWJ5IChwYXJ0aWFsbHkpIGRlcHJlY2F0aW5nIHByb3BlcnRpZXMgY3VycmVudGx5IGNvbnRyb2xsaW5nIHdoZXRoZXIKCSAgb3Igbm90IGJ5dGUtc3RyZWFtIG91dHB1dCBvciBOQUwvQVUgYWxpZ25tZW50ICh0aG91Z2ggcHJvcGVydGllcyBzdGlsbCBkZXRlcm1pbmUKCSAgZmFsbGJhY2sgaWYgbm90aGluZyBzcGVjaWZpZWQgaW4gY2FwcykuCgkgIEZpeGVzICM2MDY2NjIuCgoyMDEwLTEyLTE2IDE4OjU1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSAgajJrcGF5OiBoYW5kbGUgRU9DIGNvcnJlY3RseQoJICBEb24ndCBpbmNsdWRlIHRoZSBuZXh0IDIgYnl0ZXMgd2hlbiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgZGF0YSBhbmQgdGhlcmUgYXJlCgkgIG5vIG1vcmUgYnl0ZXMgbGVmdC4KCjIwMTAtMTItMTYgMTU6MTU6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGZsdXNoIHJlbWFpbmluZyBidWZmZXJlZCBzYW1wbGVzIG9uIEVPUwoJICAuLi4gd2hpY2ggY2FuIG1ha2UgYSBkaWZmZXJlbmNlIGJldHdlZW4gYWxsIG9yIG5vdGhpbmcgd2hlbiBkZWFsaW5nCgkgIHdpdGggc2hvcnQgc3RyZWFtcyBhbmQgcmVsYXRpdmVseSBsYXJnZSByaW5nYnVmZmVyIHNlZ21lbnQuCgoyMDEwLTEyLTE2IDEwOjA0OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogQ2hhbmdlIGNsYXNzaWZpY2F0aW9uIHRvIEZpbHRlci9FZmZlY3QvVmlkZW8vRGVpbnRlcmxhY2UKCjIwMTAtMTItMTUgMTg6MjE6MzQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSAgcnRwajJrcGF5OiBJbml0aWFsaXplIGFsbCBmaWVsZHMKCSAgTWFrZXMgc2FkIGNvbXBsaWVycyBoYXBweQoKMjAxMC0xMi0xNSAxNjoyMjo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkgIGoya3BheTogY2xlYW51cCBoZWFkZXIgY29uc3RydWN0aW9uCgkgIFVzZSBhIHNpbXBsZXIgd2F5IG9mIGNvbnN0cnVjdGluZyB0aGUgaGVhZGVyIHRoYXQgZG9lc24ndCBkZXBlbmQgb24KCSAgdGhlIGVuZGlhbm5lc3MuCgoyMDEwLTEyLTE1IDEzOjMwOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBkZXBlbmQgb24gLWJhc2UgZnJvbSBnaXQgZm9yIG5ldyBydHAgYmFzZSBkZXBheWxvYWRlciBmZWF0dXJlcwoJICBUaGlzIGlzIG9rIGluIHRoaXMgY2FzZSwgc2luY2UgdGhlIHBsYW4gaXMgdG8gcmVsZWFzZSBjb3JlL2Jhc2UgYWdhaW4KCSAgYWxvbmcgd2l0aCBnb29kL3VnbHkvYmFkIGluIHRoZSBuZXh0IGN5Y2xlLgoKMjAxMC0xMi0xNSAxNDo1NTo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMDc0MmFlIHRvIDE2OTQ2MmEKCjIwMTAtMTItMTUgMTM6MTI6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrZGVwYXkuaDoKCSAgajJrZGVwYXk6IGFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdHMKCjIwMTAtMTItMTQgMTg6MTI6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHNlc3Npb246IGZpeCBhdmVyYWdlIFJUQ1AgcGFja2V0IHNpemUgc29tZSBtb3JlLgoJICBGaXggc3R1cGlkIGVycm9yIGluIGF2ZXJhZ2luZyBtYWNyby4KCSAgSW5jbHVkZSB1ZHAgaGVhZGVycyBpbiBwYWNrZXQgbGVuZ3RoIGVzdGltYXRpb24uCgoyMDEwLTEyLTE0IDE3OjE1OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOgoJICBydHBiaW46IGNvcnJlY3RseSBjYWxjdWxhdGUgUlRDUCBwYWNrZXQgc2l6ZQoKMjAxMC0xMi0xNCAxNToyNzo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkgIGoya3BheTogc3RvcCBzY2FubmluZyB3aGVuIHdlIHJlYWNoZWQgdGhlIGVuZAoJICBTdG9wIHNjYW5uaW5nIGZvciBtYXJrZXJzIHdoZW4gd2UgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBkYXRhLgoKMjAxMC0xMi0xMyAxNjoyMzoyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwMTFiY2M4IHRvIDIwNzQyYWUKCjIwMTAtMTItMTMgMTI6NTY6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBhdm9pZCBsZWFraW5nIHNpbmsgZXZlbnRzCgkgIEF2b2lkIGxlYWtpbmcgdGhlIG5ld3NlZ21lbnQgZXZlbnQgd2hlbiBpdCBoYXMgdGhlIHdyb25nIGZvcm1hdC4KCjIwMTAtMTItMTIgMTQ6NTM6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSAgbXA0dnBheTogd2UgY2FuIGFsc28gYWNjZXB0IHh2aWQgY2FwcwoKMjAxMC0xMi0xMiAwMTozOTowNiArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBBdm9pZCBpbmZpbml0ZSBsb29wIGRyYWluaW5nIGZyYW1lcwoJICBXaGVuIHRoZSBwaXBlbGluZSBpcyBmbHVzaGVkIGp1c3QgYXMgd2UncmUgZHJhaW5pbmcgaGlzdG9yeSwKCSAgZG9uJ3QgbG9vcCBpbmZpbml0ZWx5LCBqdXN0IGRpc2NhcmQgdGhlIGhpc3RvcnkgYW5kIGFib3J0LgoKMjAxMC0xMi0xMSAxNzozOToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogYWRkICJtYXgtZXJyb3JzIiBwcm9wZXJ0eSB0byBpZ25vcmUgZGVjb2RpbmcgZXJyb3JzCgkgIEFkZCBwcm9wZXJ0eSB0byBpZ25vcmUgZGVjb2RpbmcgZXJyb3JzLiBEZWZhdWx0IGlzIHRvIGlnbm9yZSBhIGZldwoJICBkZWNvZGluZyBlcnJvcnMgaWYgdGhlIGlucHV0IGlzIHBhY2tldGl6ZWQsIGJ1dCBlcnJvciBvdXQgaW1tZWRpYXRlbHkKCSAgaWYgdGhlIGlucHV0IGlzIG5vdCBwYWNrZXRpemVkLgoJICBJZ25vcmluZyBlcnJvcnMgZm9yIHBhY2tldGl6ZWQgaW5wdXQgbW9zdCBsaWtlbHkgZG9lc24ndCB3b3JrCgkgIHByb3Blcmx5IHlldCwgc28gZG9uJ3QgZG8gdGhhdCBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIzMDYzCgoyMDEwLTA1LTI4IDE1OjI3OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogZnJlZS9tYWxsb2MgaW5zdGVhZCBvZiByZWFsbG9jLCBhdm9pZHMgbWVtY3B5CgoyMDEwLTEyLTExIDE3OjQ5OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQ2hlY2sgaWYgdGhlcmUncyBhY3R1YWxseSBhIHNlZWsgdGFibGUgYmVmb3JlIHBhcnNpbmcgaXQKCjIwMTAtMTItMTEgMTc6NDY6MTcgKzAxMDAgIEtpc2hvcmUgQXJlcGFsbGkgPGtpc2hvcmUuYXJlcGFsbGlAZ21haWwuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBJbXBsZW1lbnQgQ09OVkVSVCBhbmQgRk9STUFUUyBxdWVyeQoJICBGaXhlcyBidWcgIzYzNjc4NC4KCjIwMTAtMDctMDEgMDA6MjI6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thLWRlbXV4OiBwdXQgdW5yZWNvZ25pc2VkIFJJRkYgZm9ybWF0IElEcyBpbnRvIHRoZSB1bmtub3duIGNhcHMKCSAgRXh0cmEgaW5mbyBjYW4ndCBodXJ0LiBGaWVsZCBuYW1lcyBhcmVuJ3QgbmVjZXNzYXJpbHkgY29uc2lzdGVudCB3aXRoCgkgIHdoYXQncyB1c2VkIGVsc2V3aGVyZSB0aG91Z2ggKGUuZy4gYXZpZGVtdXgpLCBidXQgdGhlbiBuZWl0aGVyIGFyZSB0aGUKCSAgY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzE3OAoKMjAxMC0xMC0yOSAyMjo1MDoxNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5oOgoJICBwdWxzZW1peGVyOiBJbXBsZW1lbnQgTUlYRVJfRkxBR19BVVRPX05PVElGSUNBVElPTlMKCSAgQWRkIHRoZSBtaXhlciBmbGFnIGFuZCBzZW5kIG5vdGlmaWNhdGlvbnMgd2hlbiBlaXRoZXIgdGhlIHZvbHVtZSBvciBtdXRlZAoJICBzdGF0dXMgY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxODM4OQoKMjAxMC0wMi0wOCAyMTo0MToyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IG1hcmsgRElTQ09OVCB3aGVuIHJlc3VtaW5nIFBMQVkKCSAgSW4gcGFydGljdWxhciwgd2hlbiBzdHJlYW1pbmcgaW50ZXJsZWF2ZWQsIHRoaXMgYXJyYW5nZXMgZm9yIHNldHRpbmcgYSBuZXcKCSAgdGltZXN0YW1wIG9uIG91dGdvaW5nIGJ1ZmZlciBzbyBkb3duc3RyZWFtIGNhbiBhcHByb3ByaWF0ZSByZXNldAoJICB0byBhIGNoYW5nZSBpbiAocnRwKXRpbWUuCgoyMDEwLTEyLTAyIDE2OjA4OjM0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBkZWdyYWRlIGdyYWNlZnVsbHkgdXBvbiBmYWlsaW5nIHNlZWsgYW5kIHR3ZWFrIFFVRVJZX1NFRUtJTkcgcmVzcG9uc2UKCjIwMTAtMTAtMjUgMTE6NTE6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhZGQgYW5kIHVzZSBhdXRvIGJ1ZmZlcmluZyBtb2RlCgkgIC4uLiB3aGljaCBzZWxlY3RzIEJVRkZFUiBmb3IgYSBub24tbGl2ZSBzdHJlYW0sIGFuZCBvdGhlcndpc2UgU0xBVkUuCgkgIEZpeGVzICM2MzMwODguCgoyMDEwLTEyLTA2IDEyOjE2OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5Lmg6CgkgIGoya2RlcGF5OiBtYWtlIHRoZSBkZXBheWxvYWRlciBtb3JlIHJlc2lsaWVudAoJICBVc2UgMyBhZGFwdGVycywgb25lIHRvIGFjY3VtdWxhdGUgcGFrZXRpemF0aW9uIHVuaXRzLCBhbm90aGVyIG9uIHRvIGFjY3VtdWxhdGUKCSAgdGlsZXMgYW5kIGEgbGFzdCBvbmUgdG8gYWNjdW11bGF0ZSB0aGUgZmluYWwgZnJhbWUuCgkgIERvbid0IGp1c3QgYmxpbmRseSBmbHVzaCB0aGUgYWRhcHRlciBvbiBESVNDT05UIGJ1dCBvbmx5IGRpc2NhcmQgdGhlIGN1cnJlbnQKCSAgcGFja2V0aXphdGlvbiB1bml0LgoJICBXaGVuIHdlIGRyb3BwZWQganBlZzIwMDAgcGFja2V0cyBiZXR3ZWVuIFNPUCBtYXJrZXJzLCBhZGp1c3QgdGhlIFNPVCBoZWFkZXIgd2l0aAoJICB0aGUgbmV3IGxlbmdodC4KCjIwMTAtMTItMDkgMTM6NDk6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggZmxvdyByZXR1cm4gYWdncmVnYXRpb24KCjIwMTAtMTItMDggMTE6MzU6MzMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggaGFuZGxpbmcgbmVhciBlbmQtb2YtZmlsZSBjb3JuZXIgY2FzZXMKCSAgQWxzbywgcmVsYXggc29tZSBlcnJvciBoYW5kbGluZyB0byBub3QgYmFpbCBvdXQgY29tcGxldGVseSB3aGVuIHNvbWV0aGluZwoJICBmZWVscyBhbWlzcywgYnV0IGNvbnNpZGVyIHRoaXMgRU9GIGFuZCBjb250aW51ZSB3aXRoIHdhcyBvYnRhaW5lZCBzbyBmYXIuCgoyMDEwLTEyLTA3IDE3OjE5OjAwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZnJhZ21lbnRlZCBzdXBwb3J0OyBmaXggb2Zmc2V0IGhhbmRsaW5nIGFuZCByZWxheCBlcnJvciByYWlzaW5nCgkgIEluIHBhcnRpY3VsYXIsIGFjY2VwdCB1bmtub3duIHN0cmVhbSBpbiB0cmFjayBmcmFnbWVudCwgYW5kIG9ubHkgZXJyb3Igb3V0CgkgIGlmIHRoYXQgcmFpc2VzIHByb2JsZW1zIGxhdGVyIG9uIHdpdGggcmVzcGVjdCB0byBvZmZzZXQgdHJhY2tpbmcuCgkgIEZpeGVzICM2MjAyODMuCgoyMDEwLTEyLTA3IDEzOjExOjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IHVzZSBhYWMgY29kZWMtZGF0YSB0byBhZGp1c3Qgc2FtcGxlcmF0ZSBpZiBuZWVkZWQKCSAgQmFzZWQgb24gcGF0Y2ggYnkgRmFiaWVuIExlYmFpbGxpZi1EZWxhbWFyZSA8ZmFiaWVuQGFycS1tZWRpYS5jb20+CgkgIEZpeGVzICM2MzY2MjEuCgoyMDEwLTEyLTA3IDExOjQzOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGRvbid0IHVuY29yayBpbiBfc3RhcnQKCSAgRG9uJ3QgdW5jb3JrIGluIHRoZSBfc3RhcnQgbWV0aG9kIGp1c3QgeWV0IGJ1dCB3YWl0IHVudGlsIHdlIGhhdmUgd3JpdHRlbiBzb21lCgkgIHNhbXBsZXMgdG8gcHVsc2VhdWRpby4gVGhpcyBhdm9pZCB1bmRlcnJ1bnMgb24gcHVsc2VhdWRpbyBhbmQgbGVzcyBjcmFja2xpbmcKCSAgbm9pc2VzIHdoZW4gc3RhcnRpbmcuCgoyMDEwLTEyLTA3IDExOjQ3OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMC0xMi0wNyAxMTo0MzoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBkb24ndCB1bmNvcmsgaW4gX3N0YXJ0CgkgIERvbid0IHVuY29yayBpbiB0aGUgX3N0YXJ0IG1ldGhvZCBqdXN0IHlldCBidXQgd2FpdCB1bnRpbCB3ZSBoYXZlIHdyaXR0ZW4gc29tZQoJICBzYW1wbGVzIHRvIHB1bHNlYXVkaW8uIFRoaXMgYXZvaWQgdW5kZXJydW5zIG9uIHB1bHNlYXVkaW8gYW5kIGxlc3MgY3JhY2tsaW5nCgkgIG5vaXNlcyB3aGVuIHN0YXJ0aW5nLgoKMjAxMC0xMi0wNyAxMTo0MjoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogdXNlIF9vYmplY3RfcmVmX3NpbmsoKSB3aGVuIHdlIGNhbgoKMjAxMC0xMi0wNyAxMTo0MDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogZG9uJ3QgYWJ1c2UgdGhlIGNsYXNzIGxvY2sKCSAgVXNlIGEgbmV3IHN0YXRpYyBsb2NrIHRvIHByb3RlY3QgdGhlIHByb2JlZCBkZXZpY2UgbGlzdCBpbnN0ZWFkIG9mIHRoZSBvYmplY3QKCSAgY2xhc3MgbG9jay4KCjIwMTAtMTItMDYgMTk6NTk6NDkgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggY29tcGlsZXIgd2FybmluZ3Mgb24gT1NYLgoKMjAxMC0xMi0wNiAxODoxNzoyNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGFkZCBkZWJ1ZyB0byBub3RpZnkgd2hlbiBza2lwcGluZyB0byBqcGVnIGhlYWRlcgoKMjAxMC0xMi0wNiAxODoxNjoxOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGRpc2NhcmQgaW5jb21wbGV0ZSBpbWFnZQoJICAuLi4gYXMgZGV0ZXJtaW5lZCB3aGVuIGZpbmRpbmcgU09JIG5leHQgaW1hZ2UgYmVmb3JlIGFuIEVPSS4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgRGF2aWQgSG95dCA8ZGF2aWQuaG95dEBsbG5sLmdvdj4KCSAgRml4ZXMgIzYzNTczNC4KCjIwMTAtMTItMDYgMTc6NDU6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBhdm9pZCBpbmZpbml0ZSBsb29wIHdoZW4gcmVzeW5jaW5nCgkgIEZpeGVzICM2MzU3MzQgKHBhcnRseSkuCgoyMDEwLTEyLTA2IDE3OjI4OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3QtcGx1Z2lucy1nb29kIGludG8gMC4xMQoKMjAxMC0xMi0wNiAxNzoyNzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGFuZHJvaWQvYXBldGFnLm1rOgoJKiBhbmRyb2lkL2F2aS5tazoKCSogYW5kcm9pZC9mbHYubWs6CgkqIGFuZHJvaWQvaWN5ZGVtdXgubWs6CgkqIGFuZHJvaWQvaWQzZGVtdXgubWs6CgkqIGFuZHJvaWQvcXRkZW11eC5tazoKCSogYW5kcm9pZC9ydHAubWs6CgkqIGFuZHJvaWQvcnRwbWFuYWdlci5tazoKCSogYW5kcm9pZC9ydHNwLm1rOgoJKiBhbmRyb2lkL3NvdXAubWs6CgkqIGFuZHJvaWQvdWRwLm1rOgoJKiBhbmRyb2lkL3dhdmVuYy5tazoKCSogYW5kcm9pZC93YXZwYXJzZS5tazoKCSogY29uZmlndXJlLmFjOgoJICBtb3JlIDAuMTAgLT4gMC4xMSBjaGFuZ2VzCgoyMDEwLTEyLTA2IDE1OjIxOjUzICswMTAwICBEYXZpZCBIb3l0IDxkaG95dEBsbG5sLmdvdj4KCgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogcGFzcyBhbG9uZyBlb3MgaWYgcmVjZWl2ZWQgYmVmb3JlIGJ1ZmZlciBhcnJpdmVzCgkgIEZpeGVzICM2MzYxNzIuCgoyMDEwLTEwLTIwIDExOjA1OjQ5ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiB0cnkgdG8gd3JpdGUgdGltZXN0YW1wcyBpbiBhbGwgdGhlIG91dGdvaW5nIGJ1ZmZlcnMKCSAgRml4ZXMgIzYzMjY1NC4KCjIwMTAtMTItMDYgMTI6MjE6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogc3RhcnQgMC4xMSBicmFuY2gKCjIwMTAtMTItMDYgMTI6MTc6MjEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvcHJvZ3Jlc3NyZXBvcnQuYzoKCSogZ3N0L2RlYnVndXRpbHMvcHJvZ3Jlc3NyZXBvcnQuaDoKCSAgcHJvZ3Jlc3NyZXBvcnQ6IG9wdGlvbmFsbHkgZGV0ZXJtaW5lIHByb2dyZXNzIHVzaW5nIGJ1ZmZlciBtZXRhZGF0YQoJICBCYXNlZCBvbiBwYXRjaCBieSBMZW8gU2luZ2VyIDxsc2luZ2VyIGF0IGNhbHRlY2guZWR1PgoJICBGaXhlcyAjNjI5NDE4LgoKMjAxMC0xMi0wNSAxNDozOToxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ludGVybGVhdmUuYzoKCSAgY2hlY2s6IEZpeHVwIHRoZSBzaHV0dGluZyBkb3duIG9yZGVyCgkgIEZpcnN0IGJyaW5nIGRvd24gZXZlcnl0aGluZyB0byBOVUxMIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVubGluawoJICBvciB1bnJlZiBhbnl0aGluZy4KCSAgQXZvaWRzIHRoZSB0ZXN0cyBqdXN0IGhhbmdpbmcgdGhlcmUgZm9yIGV2ZXIgd2FpdGluZyB0byBhY3F1aXJlIGEKCSAgbG9jayB0aGF0IGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KCjIwMTAtMTEtMDQgMTk6MzE6NDUgKzAxMDAgIEphbm5lIEdydW5hdSA8amFubmUuZ3J1bmF1QGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkgIHY0bDJzcmM6IHNldCB0b3AgZmllbGQgZmlyc3QgZm9yIGludGVybGFjZWQgYnVmZmVycyBpZiB2NGwyIGV4cG9ydHMgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDM5MwoKMjAxMC0xMS0wNCAxODozNjowOSArMDEwMCAgSmFubmUgR3J1bmF1IDxqYW5uZS5ncnVuYXVAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyc3JjOiBjaGVjayBmaWVsZCBpbmZvcm1hdGlvbiBhbmQgc2V0IGludGVybGFjZWQgY2FwcyBhY2NvcmRpbmdseQoJICBSZWplY3QgdGhlIGZvcm1hdCBpZiB0aGUgZmllbGQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0MzkxCgoyMDEwLTEyLTAzIDE3OjQyOjE0ICswMTAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAc3Rlcmljc3Nvbi5jb20+CgoJKiBBbmRyb2lkLm1rOgoJKiBhbmRyb2lkL05PVElDRToKCSogYW5kcm9pZC9hcGV0YWcubWs6CgkqIGFuZHJvaWQvYXZpLm1rOgoJKiBhbmRyb2lkL2Zsdi5tazoKCSogYW5kcm9pZC9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5jOgoJKiBhbmRyb2lkL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmg6CgkqIGFuZHJvaWQvZ3N0L3VkcC9nc3R1ZHAtZW51bXR5cGVzLmM6CgkqIGFuZHJvaWQvZ3N0L3VkcC9nc3R1ZHAtZW51bXR5cGVzLmg6CgkqIGFuZHJvaWQvZ3N0L3VkcC9nc3R1ZHAtbWFyc2hhbC5jOgoJKiBhbmRyb2lkL2dzdC91ZHAvZ3N0dWRwLW1hcnNoYWwuaDoKCSogYW5kcm9pZC9pY3lkZW11eC5tazoKCSogYW5kcm9pZC9pZDNkZW11eC5tazoKCSogYW5kcm9pZC9xdGRlbXV4Lm1rOgoJKiBhbmRyb2lkL3J0cC5tazoKCSogYW5kcm9pZC9ydHBtYW5hZ2VyLm1rOgoJKiBhbmRyb2lkL3J0c3AubWs6CgkqIGFuZHJvaWQvc291cC5tazoKCSogYW5kcm9pZC91ZHAubWs6CgkqIGFuZHJvaWQvd2F2ZW5jLm1rOgoJKiBhbmRyb2lkL3dhdnBhcnNlLm1rOgoJICBBZGQgYnVpbGQgc3lzdGVtIGZvciBBbmRyb2lkCgoyMDEwLTAzLTI2IDEzOjUxOjU4ICswMTAwICBHdWlsbGF1bWUgRW1vbnQgPGdlbW9udEBpZ2FsaWEuY29tPgoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2c2Vlay5jOgoJICBuYXZzZWVrOiBhZGQgYmFzaWMgc3VwcG9ydCB0byBjaGFuZ2UgcGxheWJhY2sgcmF0ZQoJICBUaGUgZm9sbG93aW5nIGtleXMgd2lsbCBub3cgYmUgaW50ZXJwcmV0ZWQgYnkgbmF2c2VlazoKCSAgJ2YnIG1lYW5zIGZhc3QgZm9yd2FyZDogdGhlIHN0cmVhbSBnZXRzIHBsYXllZCBhdCByYXRlIDIuMAoJICAncicgbWVhbnMgcmV3aW5kOiB0aGUgc3RyZWFtIGdldHMgcGxheWVkIGF0IHJhdGUgLTIuMAoJICAnbicgbWVhbnMgbm9ybWFsOiB0aGUgc3RyZWFtIGdldHMgcGxheWVkIGF0IHJhdGUgMS4wCgkgIEZpeGVzICM2MzE1MTYuCgoyMDEwLTEyLTAxIDEzOjEyOjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYWRkIHN1cHBvcnQgZm9yIGUoYSljLTMgYXVkaW8KCjIwMTAtMTEtMTkgMTI6NDQ6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhdm9pZCBzZW5kaW5nIEVPUyBldmVudCB0d2ljZQoKMjAxMC0xMS0xOSAxMjo0NDoxOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHJlbW92ZSBkZWFkIGNvZGUgdHJ5aW5nIHRvIHVwZGF0ZSBzdHJlYW0gZHVyYXRpb24KCSAgT24gdGhlIG9uZSBoYW5kLCBpdCBpbnN1ZmZpY2llbnRseSBjaGVja3Mgd2hldGhlciBpdCBvbmx5IHVwZGF0ZXMgYSBkdW1teQoJICBzZWdtZW50LiAgT24gdGhlIG90aGVyIGhhbmQsIG9ubHkgZG9pbmcgdGhpcyBhdCB0aGUgdGltZSB0aGUgbGFzdCBzYW1wbGVkIGlzCgkgIHByZXBhcmVkIChhbmQgc2VudCBkb3duc3RyZWFtKSBpcyB0b28gbGl0dGxlIHRvbyBsYXRlLgoKMjAxMC0xMS0wOSAxMDo1ODo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgaGFuZGxlIGlzbXYgc2FtcGxlIGZsYWdzCgoyMDEwLTExLTA4IDExOjQxOjIxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZnJhZ21lbnRlZCBzdXBwb3J0OyBoYW5kbGUgaXNtdiBzdGJsIGF0b21zCgkgIC4uLiBvciBsYWNrIG9mIHNvbWUgdGhlcmVvZiwgc3VjaCBhcyBtYW5kYXRvcnkgc3Rzei4gIFNodWZmbGUgc29tZSBjb2RlCgkgIGluIF9zdGJsX2luaXQgdG8gZGV0ZWN0IHRoaXMgZWFybHkgZW5vdWdoLgoKMjAxMC0xMS0wOCAxMTozOTozNyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgY29tcGVuc2F0ZSBmb3IgaXNtdiBvZmZzZXQgaGFuZGxpbmcKCSAgLi4uIG9yIGxhY2sgdGhlcmVvZiwgd2hpY2ggYWNjb3JkaW5nIHRvIHNwZWNzIHdvdWxkIHB1dCBtZWRpYSBkYXRhIGluCgkgIHVubGlrZWx5IHBvc2l0aW9uLgoKMjAxMC0xMS0wNCAxNDowNzo1NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogZnJhZ21lbnRlZCBzdXBwb3J0IGZvciBwdXNoIG1vZGUKCjIwMTAtMTEtMDQgMTA6MTc6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgcHJvcGVyIGFuZCBpbmNyZW1lbnRhbCBtb29mIHBhcnNpbmcKCSAgVGhhdCBpcywgcGFyc2UgZWFjaCBtb29mIGluIG9uZSBwYXNzIChjb25zaWRlcmluZyBhbGwgY29udGFpbmVkIHN0cmVhbXMnCgkgIG1ldGFkYXRhKSwgYW5kIGRvIHNvIGluY3JlbWVudGFsbHkgYXMgbmVlZGVkIGZvciBwbGF5YmFjayByYXRoZXIgdGhhbgoJICBhbiBpbml0aWFsIGNvbXBsZXRlIHNjYW4gb2YgYWxsIG1vb2YgKHRob3VnaCBhbGwgbW9vdiBzYW1wbGUgbWV0YWRhdGEKCSAgaXMgZnVsbHkgcGFyc2VkIGF0IHN0YXJ0dXApLgoKMjAxMC0xMS0wNCAxMDowNjozMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHJlZmFjdG9yIHN0cmVhbSBmcmVlaW5nCgoyMDEwLTExLTA0IDEwOjA1OjE1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZGVsZWdhdGUgbGluZWFyIHNlYXJjaCBmb3Igc2FtcGxlIHRvIGJpbmFyeSBzZWFyY2ggd2hlbiBwb3NzaWJsZQoJICBBbHNvIGFycmFuZ2UgZm9yIHBhcnNpbmcgYSBzYW1wbGUgcHJpb3IgdG8gdGFraW5nIGEgcmVmZXJlbmNlIHRvIGl0LAoJICB3aGljaCByZXF1aXJlcyBsZXNzIG1lbW9yeSBsYXlvdXQgYXNzdW1wdGlvbnMgZm9yIGNvcnJlY3RuZXNzLgoKMjAxMC0xMS0wMSAxNTo1MjoyOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgaGFuZGxlIG1vb3Ygc2FtcGxlcyBhbmQgcHJvcGVyIHN0cmVhbSBkdXJhdGlvbgoKMjAxMC0xMS0wMSAxMzo0MDowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgY29uc2lkZXIgbXZleCBhbmQgaGFuZGxlIGZsYWdzIGFuZCBvZmZzZXQgZmllbGRzCgoyMDEwLTEwLTI4IDE2OjQ5OjQxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZnJhZ21lbnRlZCBzdXBwb3J0OyBmb3JlZ28gY2hlY2sgZm9yIHNob3J0IHN0cmVhbXMKCSAgLi4uIGFzIHNvbWUgYm9ndXMgZmlsZXMgbWF5IGluZGljYXRlIHN0cmVhbXMgb2YgMCBkdXJhdGlvbiBpbiBtb292LAoJICB3aGlsZSBpbmRpY2F0aW5nIHRoZSBjb21wbGV0ZSBtb3ZpZSBkdXJhdGlvbiBpbiBtdmhkICh0aGUgbGF0dGVyIHNob3VsZAoJICBiZSBpbiBtZWhkKS4KCjIwMTAtMTAtMjggMTY6NDY6NDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmg6CgkgIHF0ZGVtdXg6IGZyYWdtZW50ZWQgc3VwcG9ydDsgY29kZSBjbGVhbnVwcyBhbmQgb3B0aW1pemF0aW9ucyBpbiBhdG9tIHBhcnNpbmcKCSAgQXZvaWQgZXh0cmEgYWxsb2NhdGlvbiBpbiBfcGFyc2VfdHJ1biwgYWRkIG1vcmUgY2hlY2tzIGZvciBwYXJzaW5nIGVycm9ycywKCSAgYWRkIG9yIGFkanVzdCBzb21lIGRlYnVnIHN0YXRlbWVudCwgZml4IGNvbW1lbnRzLCBzcHJpbmtsZSBzb21lIGJyYW5jaAoJICBwcmVkaWN0aW9uLgoKMjAxMC0wOS0xMyAyMzoxOTo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHBhcnNlX21vb2Ygc2hvdWxkIHJldHVybiBUUlVFIG9uIHN1Y2Nlc3MKCjIwMTAtMDktMTAgMjI6NDE6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggaXRlcmF0aW9uIGJ1ZwoJICBBdm9pZCBpbmZpbml0ZSBsb29wIHdoZW4gaXRlcmF0aW5nIHRyYWYKCjIwMTAtMDktMTAgMjE6MzI6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBSZWZhY3RvciB0cnVuIHBhcnNpbmcKCSAgVGhlIGFsbG9jYXRpb24gb2YgdGhlIHNhbXBsZXMgY2FuIGJlIHBsYWNlZCBvdXQgb2YgdGhlIGxvb3AuCgkgIE1ha2VzIHRoZSBjb2RlIGNsZWFyZXIuCgkgIEFsc28gYXZvaWQgcmVseWluZyBvbiB0cmFmIGluZm9ybWF0aW9uIGFzIGl0IGlzIHBsYWNlZCBvbiB0aGUKCSAgZW5kIG9mIHRoZSBmaWxlIGFuZCBtaWdodCBub3QgYmUgYWNlc3NpYmxlIG9uIHB1c2ggbW9kZS4KCjIwMTAtMDktMTAgMDA6Mjk6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBSZW1vdmUgcGFyc2luZyBvZiB1bnVzZWQgYXRvbQoJICBzZHRwIGF0b20gaXMgcGFyc2VkIGJ1dCBub3QgdXNlZCwgc28gd2UgZG9uJ3QgaGF2ZSB0bwoJICBwYXJzZSBpdC4KCjIwMTAtMTEtMDkgMTE6NDU6MDAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiB0d2VhayB3YW0gc3VwcG9ydAoJICAuLi4gd2l0aCBzb21lIGNvbW1lbnQgYW5kIHBvcnRhYmlsaXR5IG1hY3Jvcy4KCjIwMDktMDktMjMgMTg6NDc6NDIgKzAyMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmM6CgkgIHF0ZGVtdXg6IHN1cHBvcnQgd21hICYgdmMtMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk2MzIxCgoyMDEwLTAzLTExIDA5OjU2OjA0ICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogcGFyc2UgZm1wNCBzYW1wbGVzIGluZm9ybWF0aW9uCgkgIFRoZSBmcmFnbWVudGVkIG1wNCBmb3JtYXQgc3RvcmVzIHRoZSB0cmFja3MgYW5kIHNhbXBsZXMgaW5mb3JtYXRpb24gaW4gdGhlCgkgICdtb29mJyBib3hlcywgd2hpY2ggYXJlIGFwcGVuZGVkIGJlZm9yZSBlYWNoIGZyYWdtZW50IChmcmFnbWVudC0+J21vb2YnKydtZGF0JykuCgkgIFRoZSAnbWZyYScgYm94IHN0b3JlcyB0aGUgb2Zmc2V0IG9mIGVhY2ggJ21vb2YnIGJveCBhbmQgdGhlaXIgcHJlc2VudGF0aW9uCgkgIHRpbWUuIFRoZSBsb2NhdGlvbiBvZiB0aGlzIGJveCBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlICdtZnJvJyBib3gsIHdoaWNoIGlzCgkgIGxvY2F0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KCSAgVGhlICdtZnJhJyBib3ggaXMgcGFyc2VkIHRvIGdldCB0aGUgb2Zmc2V0IG9mIGVhY2ggJ21vb2YnIGJveCBhbmQgdGhlaXIKCSAgcHJlc2VudGF0aW9uIHRpbWUuCgkgIEVhY2ggJ21vb2YnIGJveCBjYW4gY29udGFpbiBpbmZvcm1hdGlvbiBmb3Igb25lIG9yIG1vcmUgdHJhY2tzIGluc2lkZQoJICAndGZoZCcgYm94ZXMuIEZvciBlYWNoIHRyYWNrIGluIGEgJ21vb2YnLCB3ZSBoYXZlIGEgJ3RydW4nIGJveCwgd2hpY2gKCSAgY29udGFpbnMgaW5mb3JtYXRpb24gb2YgZWFjaCBzYW1wbGUgKG9mZnNldCBhbmQgZHVyYXRpb24pIHVzZWQgdG8gYnVpbGQKCSAgdGhlIHNhbXBsZXMgdGFibGUuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk2MzIxCgoyMDEwLTAzLTExIDE1OjM0OjQ5ICswMTAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0YXRvbXBhcnNlci5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF90eXBlcy5oOgoJICBxdGRlbXV4OiBhZGQgZnJhZ21lbnRlZCBtcDQgZm91cmNjcwoJICBBZGRzIGZvdXJjYydzIGZvciB0ZnJhLCB0ZmhkLCB0cnVuLCBzZHRwLCB0cmV4LCBtZWhkIGFuZAoJICB0aGVpciBkdW1wcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk2MzIxCgoyMDEwLTAzLTExIDEwOjI0OjU2ICswMTAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogcGFyc2UgdGhlIHRyYWNrIGlkIGZyb20gdGhlIHRyYWNrIGhlYWRlcgoJICBTaWduZWQtb2ZmLWJ5OiBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTYzMjEKCjIwMTAtMDMtMTEgMTQ6MTA6MTIgKzAxMDAgIE1hcmMtQW5kcsOpIEx1cmVhdSA8bWx1cmVhdUBmbHVtb3Rpb24uY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhbGxvdyBwdWxsaW5nIGF0b21zIHdpdGggdW5rbm93biBzaXplCgkgIFNpZ25lZC1vZmYtYnk6IEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NjMyMQoKMjAxMC0wNy0xNCAyMDoxMzo1NSArMDIwMCAgTWFyYy1BbmRyw6kgTHVyZWF1IDxtbHVyZWF1QGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuYzoKCSAgcXRkZW11eDogbWFrZSBxdGRlbXV4X2R1bXBfbXZoZCBwYXJzZSB2ZXJzaW9uIDEgY29ycmVjdGx5CgkgIFZlcnNpb25zIDAgYW5kIDEgb2YgbXZoZCBoYXZlIGRpZmZlcmVudCBzaXplcyBvZiBpdHMgdmFsdWVzCgkgICgzMmJpdHMvNjRiaXRzKS4gVGhpcyBwYXRjaCBtYWtlcyBpdCBkdW1wIHRoZW0gY29ycmVjdGx5LgoJICBBbHNvIHVzZSB0aGUgcmlnaHQgbm9kZSBpbiB0aGUgcGFyYW1ldGVyIGFuZCBub3QgdGhlIHJvb3Qgbm9kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NjMyMQoKMjAxMC0xMS0xOSAxMjo0NTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IG1pbm9yIGNsZWFudXBzIGluIHNldHRpbmcgc3RyZWFtaGVhZGVyIG9uIGNhcHMKCjIwMTAtMTEtMDIgMTc6MDQ6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IG5vcm1hbGl6ZSBlbXB0eSBDdWVzIHRvIG5vIEN1ZXMKCSAgLi4uIHRvIHRyaWdnZXIgaW5kZXhsZXNzIHNlZWtpbmcuCgoyMDEwLTEwLTI2IDExOjE1OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGFkZCB3b3JrYXJvdW5kIGZvciBidWdneSBsaXN0IHNpemUKCSAgRml4ZXMgdHJ1bmNhdGVkIGV4dHJhLWRhdGEgaW4gaGRybC9zdHJsL3N0cmYgZHVlIHRvIGJ1Z2d5IGNvbnRhaW5pbmcKCSAgbGlzdCBzaXplIG5vdCBhY2NvdW50aW5nIGZvciBwYWRkaW5nIGluIGNvbnRhaW5lZCBjaHVua3MuCgoyMDEwLTEyLTAyIDE2OjExOjAxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICBydHBzc3JjZGVtdXg6IGRvIG5vdCBob2xkIGN1c3RvbSBQQURfTE9DSyB3aGVuIHB1c2hpbmcgZG93bnN0cmVhbQoKMjAxMC0xMi0wMiAxNjoxMDoxNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHJlc2V0IHNlc3Npb24gbWFuYWdlciBiYXNlIHRpbWUgd2hlbiBmbHVzaGluZwoJICAuLi4gYXMgcnRwYmluIHVzZXMgcnVubmluZyB0aW1lIHRvIGhhbmRsZSBydHBqaXR0ZXJidWZmZXIncyBidWZmZXIgbW9kZSBwYXVzZXMuCgoyMDEwLTEyLTAxIDE2OjUxOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogaW5jbHVkZSByYW5nZSByZXF1ZXN0IGZvciBhbGwgc3RyZWFtcyB3aXRoIG5vbi1hZ2dyZWdhdGUgY29udHJvbAoKMjAxMC0xMC0wNyAxNDo1MDo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTAtMTItMDMgMTU6Mzg6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBQYXJzZSBtb3JlIHZhcmlhbnRzIG9mIG51bWVyaWNhbCBJRElUIHRhZwoKMjAxMC0wNS0wNyAxNzozMDozMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZ2VuYzogVXNlIHByb3BlciBmcmFtZXJhdGUgcmFuZ2UgaW4gY2FwcwoKMjAxMC0xMi0wMyAxNTowNDoyNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy93YXZlbmMuYzoKCSAgdGVzdHM6IEZpeCBwcmV2aW91c2x5IHVuYnVpbGRhYmxlL3VudGVzdGVkIHdhdmVuYyB0ZXN0CgoyMDEwLTEwLTI0IDE1OjIxOjA4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogUmVmYWN0b3IgdGFnIHB1c2hpbmcgbG9naWMKCSAgVGhlIGxvZ2ljIG9mIHdoZW4gdG8gcHVzaCB3YXMgd3JvbmcgYWxzbyAocmVzdWx0aW5nIGluIHNvbWUgdGFncyBuZXZlcgoJICBiZWluZyBwdXNoZWQpLgoKMjAxMC0xMC0yNCAxNToyMDoyNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IFVzZSBwYnV0aWxzIGZvciBjb2RlYyBkZXNjcmlwdGlvbnMKCjIwMTAtMDQtMTMgMTE6Mjk6MzAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy91ZHBzaW5rLmM6CgkgIGNoZWNrOiBVc2UgZmFpbF91bmxlc3NfZXF1YWxzX2ludCBpbnN0ZWFkIG9mIGZhaWxfaWYKCSAgTWFrZXMgdGhlIGVycm9yIG1lc3NhZ2UgbW9yZSBpbnRlcmVzdGluZwoKMjAxMC0xMS0zMCAxOToyMjoxMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IEFsc28gZXh0cmFjdCBJRElUIHRhZ3MgcHJlc2VudCB0b28gZWFybHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjE0MwoKMjAxMC0xMS0zMCAxOToyMToyMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IEFsc28gZW1pdCBEYXRlVGltZSB0YWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjE0MwoKMjAxMC0xMi0wMyAwMDoyMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGRldGVjdCBEVFMgYWR2ZXJ0aXNlZCBhcyBQQ00gY29ycmVjdGx5IGluIHNvbWUgbW9yZSBjYXNlcwoJICBUaGUgRFRTIHR5cGVmaW5kZXIgbWF5IHJldHVybiBhIGxvd2VyIHByb2JhYmlsaXR5IGZvciBmcmFtZXMgdGhhdCBzdGFydAoJICBhdCBub24temVybyBvZmZzZXRzIGFuZCB3aGVyZSB0aGVyZSdzIG5vIHNlY29uZCBmcmFtZSBzeW5jIGluIHRoZSBmaXJzdAoJICBidWZmZXIuIEl0J3MgZmFpcmx5IHVubGlrZWx5IHRoYXQgd2UnbGwgYWNpZGVudGFsbHkgaWRlbnRpZnkgUENNIGRhdGEKCSAgYXMgRFRTLCBzbyB3ZSBkb24ndCBkbyBhZGRpdGlvbmFsIGNoZWNrcyBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MjM0CgoyMDEwLTExLTA4IDE3OjExOjQyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IG1ha2VmaWxlIGNsZWFudXAKCSAgRml4IGluZGVudGF0aW9uLiBVc2UgJChHU1RfTUFKT1JNSU5PUikgaW5zdGVhZCBvZiBoYXJkY29kZWQgMC4xMC4KCjIwMTAtMTEtMDggMTc6MDI6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdmVuYy5jOgoJICB0ZXN0czogYWRkIGEgdGVzdCBmb3Igd2F2IG11eGluZwoKMjAxMC0xMS0wOCAxNjo1NzoxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvd2F2cGFjay5jOgoJICB0ZXN0czogcmVtb3ZlIG5ld2xpbmVzIGJldHdlZW4gdmFyaWFibGUgZGVjbHMgKG9sZCBnc3QtaW5kZW50IGZhaWx1cmUpCgoyMDEwLTExLTA4IDE0OjQ3OjA0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICBwbmdkZWM6IHVzZSBwbmdfZXJyb3IoKSBhcyByZWNvbW1lbmRlZCBieSBsaWJwbmcgZG9jcyB0byBzaWduYWwgYW4gZXJyb3IKCSAgV2l0aG91dCB0aGF0IHRoZSBlbGVtZW50IGxvb3BzIGVuZGxlc3NseSBvbiBicm9la24gcG5ncy4gRml4ZXMgIzYzNDMxNAoKMjAxMC0xMS0xNiAxNzo0ODoxNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IFBhcnNlIGFuZCB1c2UgY3JlYXRpb24gdGltZSB0YWcgZnJvbSBtdmhkCgkgIEV4cG9zZSBjcmVhdGlvbiB0aW1lIGZyb20gbXZoZCBhcyBhIGRhdGV0aW1lIHRhZwoJICBGaXhlcyAjNjM0OTI4CgoyMDEwLTEwLTI3IDE5OjE1OjIwICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSAgaWN5ZGVtdXg6IEFkZCAnU3RyZWFtVXJsJyBtZXRhZGF0YSBhcyBHU1RfVEFHX0hPTUVQQUdFIHRhZwoKMjAxMC0xMC0yMyAxOTozNDowMCAtMDQwMCAgVG9tIEphbmlzemV3c2tpIDxUb20uSmFuaXN6ZXdza2lAYWxjYXRlbC1sdWNlbnQuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBGaXggZm9yIG5lbGx5bW9zZXIgY29kZWNpZCBzZXR0aW5nCgkgIEZpeGVzIGJ1ZyAjNjMyODk3LgoKMjAxMC0xMC0yMSAxNjoxNTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBBZGQgc3VwcG9ydCBmb3IgRS1BQzMKCjIwMTAtMTAtMjEgMTY6MTQ6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogQWRkIHN1cHBvcnQgZm9yIERUUwoKMjAxMC0xMC0zMSAxODowODoxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogRG9uJ3Qgc2VuZCBzZWVrcyBiZWhpbmQgdGhlIGVuZCBvZiBmaWxlIHRvIHRoZSBzZXJ2ZXIKCSAgQWxzbyBpbXByb3ZlIGRlYnVnIG91dHB1dCwgcmUtaW5pdGlhbGl6ZSB0aGUgY29udGVudCBzaXplIGFuZCBsZXQgdGhlCgkgIHNlZWsgaGFuZGxlciBlcnJvciBvdXQgb24gaW52YWxpZCBzZWVrIHNlZ21lbnRzLgoJICBGaXhlcyBidWcgIzYzMjk3Ny4KCjIwMTAtMTItMDIgMTc6NTM6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJICBqMmtwYXk6IHVzZSBTT1AgbWFya2VycyB0byBzcGxpdCBiaXRzdHJlYW0KCSAgV2hlbiBwYXJzaW5nIHRoZSBiaXRzdHJlYW0sIGxvb2sgZm9yIFNPUCBtYXJrZXJzIGJlY2F1c2Ugd2UgYXJlIGFsbG93ZWQgdG8gc3BsaXQKCSAgcGFja2V0cyBvbiB0aG9zZSBtYXJrZXIgYm91bmRhcmllcy4KCSAgUmV3b3JrIHRoZSBwYXJzaW5nIGNvZGUgYSBsaXR0bGUgc28gdGhhdCB3ZSBjYW4gcGFjayBtdWx0aXBsZSBQYWNrZXRpemF0aW9uCgkgIHVuaXRzIGluIG9uZSBSVFAgcGFja2V0LgoKMjAxMC0xMS0xOCAxMjo0OTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrcGF5Lmg6CgkgIHJ0cGoya3BheTogdXNlIGJ1ZmZlciBsaXN0cwoJICBVc2UgYnVmZmVyIGxpc3RzIGZvciBkb2luZyB6ZXJvY29weSBwYXlsb2FkaW5nLgoJICBBZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBidWZmZXIgbGlzdHMuCgoyMDEwLTExLTE2IDE2OjU0OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIGgyNjRwYXk6IHNtYWxsIGNsZWFudXBzCgkgIEFsbG9jYXRlIGFkYXB0ZXIgb25seSBvbmNlLgoJICBNYWtlIHNvbWUgZ3VpbnQ4ICogY29uc3QuCgoyMDEwLTExLTE2IDE1OjM5OjI0ICswMTAwICBUYW1iZXQgSW5nbyA8dGFtYmV0IGF0IGdtYWlsLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgcnRwaDI2NHBheTogaW1wbGVtZW50IGZ1bGwgYnl0ZXN0cmVhbSBzY2FuIG1vZGUuCgkgIEltcGxlbWVudCB0aGUgZnVsbCBieXRlc3RyZWFtIHNjYW4gbW9kZS4KCSAgRml4ZXMgIzYzNDkxMAoKMjAxMC0xMS0xNSAxMDo1MjozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtQU1SLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3Auc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjQtYWxzYXNyYy1QQ01BLnNoOgoJICBleGFtcGxlczogaW1wcm92ZSBSVFAgZXhhbXBsZXMKCSAgTWFrZSB0aGUgZXhhbXBsZXMgdXNlIGF1dG92aWRlb3NpbmsgYW5kIGZmbXBlZ2NvbG9yc3BhY2UgZm9yIGJldHRlcgoJICBjb21ww6B0aWJpbGl0eS4KCSAgTWFrZSBzb21lIG1vcmUgdmFyaWFibGVzIGZvciB0aGUgc2luayBhbmQgdGhlIGRlY29kZXJzLgoJICBTZXQgemVyb2xhdGVuY3kgdHVuaW5nIG9uIHgyNjRlbmMgZm9yIGJldHRlciByZWFsdGltZSByZXN1bHRzLgoKMjAxMC0xMS0xMCAxMTowNDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBzZWxlY3QgbXVsdGljYXN0IHRyYW5zcG9ydHMgaW4gYSBzbWFydGVyIHdheQoJICBXaGVuIHdlIHNlZSBhIG11bHRpY2FzdCBhZGRyZXNzIGluIHRoZSBTRFAgY29ubmVjdGlvbiwgb25seSB0cnkgdG8gbmVnb3RpYXRlIGEKCSAgbXVsdGljYXN0IHRyYW5zcG9ydCB3aXRoIHRoZSBzZXJ2ZXIuCgkgIEZpeGVzICM2MzQwOTMKCjIwMTAtMTItMDIgMTg6MTQ6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gaW1wbGljaXQgcmVxdWlyZW1lbnQKCSAgaWUuID49IDIuMjAgd2hpbGUgd2UgZGVwZW5kIG9uIGNvcmUvYmFzZSAwLjEwLjMxCgoyMDEwLTEyLTAyIDE4OjEzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMjYgPT09CgoyMDEwLTEyLTAxIDIxOjE1OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjYKCjIwMTAtMTEtMzAgMTU6Mjg6NTAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBhbmFseXNlIFJGRiBmaWVsZHMgaW4gY29ycmVjdCBvcmRlcgoJICBDb2RlIHdhcyByZXBlYXRpbmcgdGhlIHNlY29uZCBmaWVsZCwgbm90IHRoZSBmaXJzdC4KCSAgRml4ZXM6ICM2MzYxNzkuCgoyMDEwLTExLTI5IDE1OjMyOjQwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogaGFuZGxlIHN0YWxlIGRpZ2VzdCBhdXRoZW50aWNhdGlvbiBzZXNzaW9uIGRhdGEKCSAgSW4gcGFydGljdWxhciwgaGFuZGxlIFVuYXV0aG9yaXplZCBzZXJ2ZXIgcmVzcG9uc2Ugd2hlbiB0cnlpbmcgdG8gY29udmV5CgkgIGtlZXAtYWxpdmUuCgkgIEZpeGVzICM2MzU1MzIuCgoyMDEwLTExLTI2IDE1OjAwOjI5ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSAgcnRwaDI2NGRlcGF5OiBmaXggc2VnZmF1bHQgb24gZW1wdHkgcGF5bG9hZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1ODQzCgoyMDEwLTExLTE4IDAwOjQ1OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjI1LjUgcHJlLXJlbGVhc2UKCjIwMTAtMTEtMTggMDA6NDQ6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYmcucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9odS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3RyLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMS0xNCAwMDoxODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGZpeCByZWZlcmVuY2UgbGVhawoKMjAxMC0xMS0xMiAyMzo1OTowNiArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGbHVzaCBRb1MgYW5kIGhpc3RvcnkgYmVmb3JlIGFwcGx5aW5nIHNlZ21lbnQKCSAgV2hlbiBoYW5kbGluZyBuZXdzZWdtZW50LCBmbHVzaCBvdXQgdGhlIGJ1ZmZlciBoaXN0b3J5IGluIHRoZQoJICBleGlzdGluZyBzZWdtZW50LCBub3QgdGhlIG5ldyBvbmUuIEZpeGVzIHBsYXliYWNrIGluIHNvbWUgRFZECgkgIGNhc2VzLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzYzMzI5NAoKMjAxMC0xMS0xMiAxMjoyMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IGltcHJvdmUgZXZlbnQgbG9nZ2luZwoKMjAxMC0xMS0wNSAxNzowMDoxNSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICBkZWludGVybGFjZTogSW1wbGVtZW50IGZpZWxkIGhpc3RvcnkgZmx1c2hpbmcKCSAgSW4gYSBudW1iZXIgb2YgY2FzZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGZsdXNoIHRoZSBmaWVsZCBoaXN0b3J5IGJ5CgkgIHBlcmZvcm1pbmcgJ2RlZ3JhZGVkJyBkZWludGVybGFjaW5nIC0gdGhhdCBpcywgdXNpbmcgdGhlIHVzZXItY2hvc2VuCgkgIG1ldGhvZCBmb3IgYXMgbWFueSBmaWVsZHMgYXMgcG9zc2libGUsIHRoZW4gdXNpbmcgdmZpciBmb3IgYXMgbG9uZyBhcwoJICB0aGVyZSBhcmUgPj0gMiBmaWVsZHMgcmVtYWluaW5nIGluIHRoZSBoaXN0b3J5LCB0aGVuIHVzaW5nIGxpbmVhciBmb3IKCSAgdGhlIGxhc3QgZmllbGQuCgkgIFRoaXMgc2hvdWxkIGF2b2lkIGxvc2luZyBmaWVsZHMgYmVpbmcga2VwdCBmb3IgaGlzdG9yeSBmb3IgZXhhbXBsZSBhdAoJICBFT1MuCgkgIFRoaXMgbWF5IGFkZHJlc3MgcGFydCBvZiAjNjMzMjk0CgoyMDEwLTExLTA1IDE1OjQ0OjM1ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IFJlZmFjdG9yIGNoYWluIGZ1bmN0aW9uCgkgIFRoaXMgaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gb3V0cHV0IGEgZnJhbWUgZnJvbSBvdXRzaWRlIHRoZSBjaGFpbgoJICBmdW5jdGlvbiwgaS5lLiBpbiB0aGUgZm9sbG93aW5nIGNvbW1pdCB0aGF0IGFkZHMgZmx1c2hpbmcgb2YgdGhlIGZpZWxkCgkgIGhpc3RvcnkuCgoyMDEwLTExLTA1IDE3OjE3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB3ZSBzdGlsbCByZXF1aXJlIEd0aysgPj0gMi4xNC4wIHdoZW4gY29tcGlsaW5nIGFnYWluc3QgMi4wCgkgIFRoZSBjaGVjayBmb3IgdGhlIG1pbm9yIHZlcnNpb24gd2FzIGRyb3BwZWQgaW4gdGhlIHByZXZpb3VzIGNvbW1pdC4KCjIwMTAtMTEtMDUgMTY6MjQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFkZCAtLXdpdGgtZ3RrIG9wdGlvbiBhbmQgZGVmYXVsdCB0byBHdGsrIDIuMCB3aGlsZSB0aGUgMy4wIEFQSSBpcyBzdGlsbCBpbiBmbHV4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQwMTQKCjIwMTAtMTEtMDQgMTY6NDI6MDcgKzEwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGQxNG4ub3JnPgoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkgIGljeWRlbXV4OiBmaXggdXNlLWFmdGVyLWZyZWUgb2YgdGFnbGlzdAoJICBCcm9rZW4gYnkgY29tbWl0IDRjMmY1MzMzIChidWcgIzYzMDIwNSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzM5NzAKCjIwMTAtMTEtMDEgMTc6Mjk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMjUuNCBwcmUtcmVsZWFzZQoKMjAxMC0xMS0wMSAxNzoyODozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMS0wMSAxNjowNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IC0tZGlzYWJsZS1leHRlcm5hbAoKMjAxMC0xMS0wMSAxNDo1NjoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5Lmg6CgkgIHJ0cGgyNjRkZXBheTogb25seSBzZXQgZGVsdGEgdW5pdCBvbiBhbGwtbm9uLWtleSB1bml0cwoJICBPbmx5IHNldCB0aGUgZGVsdGEgZmxhZyB3aGVuIGFsbCBvZiB0aGUgdW5pdHMgaW4gdGhlIHBhY2tldCBhcmUgZGVsdGEgdW5pdHMuCgkgIEJhc2VkIG9uIHBhdGNoIGZyb20gT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoJICBGaXhlcyAjNjMyOTQ1CgoyMDEwLTEwLTI2IDE1OjQ0OjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgZ29vbTogUmV0dXJuIG5vdC1uZWdvdGlhdGVkIHdoZW4gYnBzIGlzIHVua25vd24KCSAgSWYgY2FwcyB3ZXJlbid0IG5lZ290aWF0ZWQsIGdvb20gc2hvdWxkIHJldHVybiBub3QtbmVnb3RpYXRlZAoJICBmcm9tIGl0cyBjaGFpbiBmdW5jdGlvbnMgaW5zdGVhZCBvZiB1c2luZyBicHMgdW5pdGlhbGl6ZWQsIHdoaWNoCgkgIGxlYWRzIHRvIGEgZGl2aXNpb24gYnkgMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMzMjEyCgoyMDEwLTEwLTI3IDEzOjE2OjU0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdiYmQ3MDggdG8gMDExYmNjOAoKMjAxMC0xMC0yNiAxNjo1NDoxMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZsaXA6IEZvcndhcmQgc3JjIHBhZCBldmVudHMgdXBzdHJlYW0uCgkgIEZpeCBwYXNzaW5nIG5hdmlnYXRpb24gYW5kIG90aGVyIGV2ZW50cyB1cHN0cmVhbSBieSBhY3R1YWxseSBzZW5kaW5nIHRoZW0uCgkgIEZpeGVzOiAjNjMzMjA1CgoyMDEwLTEwLTI0IDE4OjUwOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IGRlYWRsb2NrIGluIGVycm9yIGNvZGUgcGF0aAoJICBHU1RfRUxFTUVOVF9FUlJPUiBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2sgaGVsZCwKCSAgc2luY2UgaXQgd2lsbCBjYWxsIGdzdF9vYmplY3RfZ2V0X3BhcmVudCgpIGludGVybmFsbHksIHdoaWNoCgkgIHRha2VzIHRoZSBvYmplY3QgbG9jayBhcyB3ZWxsLgoKMjAxMC0xMC0yMCAxMDoyMTo0OCArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBSZW1vdmUgdXNlbGVzcyBjbGVhcmluZyBvZiBzZW5kX3hpcGhfaGVhZGVycyBmb3IgRGlyYWMKCSAgVGhpcyBsb29rcyBsaWtlIGEgbWlzdGFrZSB3aGVuIGNvcHktcGFzdGluZyB0aGUgVGhlb3JhIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI2ODIKCjIwMTAtMTAtMjAgMTM6Mjg6MjggKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogZG9uJ3QgY3Jhc2ggaWYgdm9yYmlzL3RoZW9yYSBjb2RlYyBkYXRhIGlzIG1pc3NpbmcKCSAgRXJyb3Igb3V0IHByb3Blcmx5IGluIHRoaXMgY2FzZSBpbnN0ZWFkIG9mIGNyYXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNjgyCgoyMDEwLTEwLTIyIDE4OjExOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjI1LjMgcHJlLXJlbGVhc2UKCjIwMTAtMTAtMTkgMTY6NDU6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggZHVyYXRpb24gcmVwb3J0aW5nCgkgIEluaXQgc2VnbWVudCBwcmlvciB0byBzdG9yaW5nIGR1cmF0aW9uIGluZm8gaW4gaXQuCgkgIEZpeGVzICM2MzI1NDguCgoyMDEwLTEwLTE5IDE0OjIxOjUzICswMTAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnY29uZi9NYWtlZmlsZS5hbToKCSAgZ2NvbmY6IERvbid0IGluc3RhbGwgc2NoZW1hcyB3aGVuIEdDb25mIGlzIGRpc2FibGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI1NTMKCjIwMTAtMTAtMTYgMTU6NDM6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHdpbjMyOiBzZXQgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRSBhbHNvIGluIHdpbjMyIGNvbmZpZy5oCgoyMDEwLTEwLTE2IDAxOjMzOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjI1LjIgcHJlLXJlbGVhc2UKCjIwMTAtMTAtMTYgMDE6MjY6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vZWwucG86CgkqIHBvL3ZpLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMC0xNSAxMzoyMjowMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IERvbid0IGRpc3QgZ2VuZXJhdGVkIG9yYyBmaWxlcwoKMjAxMC0xMC0xNSAxNDowMjoxOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLWRpc3QuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0Lmg6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveG9yYy1kaXN0LmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveG9yYy1kaXN0Lmg6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5oOgoJICBVcGRhdGUgZ2VuZXJhdGVkIG9yYyBjb2RlCgoyMDEwLTEwLTE1IDE4OjAwOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIE9yYyByZXF1aXJlbWVudCB0byAwLjQuMTEKCjIwMTAtMTAtMTQgMTc6NDE6MzAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IFVzZSB0aGUgcmlnaHQgY29uc3RhbnQgdG8gZGVmaW5lIHRoZSAidXNlLXBpcGVsaW5lLWNsb2NrIiBwcm9wZXJ0eQoJICBUaGUgd3JvbmcgI2RlZmluZSB3YXMgYmVpbmcgdXNlZCwgbm93IHVzZSB0aGUgY29ycmVjdCBvbmUuCgoyMDEwLTEwLTE0IDEyOjMxOjQ4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWE2NjhiZiB0byA3YmJkNzA4CgoyMDEwLTEwLTE0IDE3OjI2OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIGFjMzogZGVtdXhlcnMgcHJvdmlkZSBmcmFtZWQgb3V0cHV0CgoyMDEwLTEwLTE0IDAwOjExOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkgIG1hdHJvc2thbXV4OiByZWR1Y2UgbmV3c2VnbWVudCBldmVudCBzcGFtIGFuZCBzZXQgZGlzY29udCBmbGFnIHdoZXJlIG5lZWRlZAoJICBPbmx5IHNlbmQgbmV3c2VnbWVudCBldmVudHMgd2l0aCBuZXcgcG9zaXRpb25zIGRvd25zdHJlYW0gd2hlbiBhY3R1YWxseQoJICBuZWVkZWQsIGluc3RlYWQgb2Ygc2VuZGluZyBtdWx0aXBsZSBuZXdzZWdtZW50IGV2ZW50cyB3aXRoIG5ldyBzZWVrCgkgIHBvc2l0aW9ucyBpbiBhIHJvdy4gQWxzbyBzZXQgdGhlIGRpc2NvbnQgZmxhZyBvbiBidWZmZXJzIGFmdGVyIGEKCSAgZGlzY29udGludWl0eS4KCjIwMTAtMTAtMTMgMjM6NDY6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuaDoKCSAgbWF0cm9za2FtdXg6IHNldCBjb3JyZWN0IGJ1ZmZlciBvZmZzZXRzIGFmdGVyIHNlZWtzCgkgIFJlLXVzZSB0aGUgZXhpc3RpbmcgJ3BvcycgZmllbGQgbWFpbnRhaW5lZCBieSBlYm1sIHdyaXRlciB0byBzZXQKCSAgYnVmZmVyIG9mZnNldHMuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHRoYXQgd2Ugc2V0IHRoZSByaWdodCBvZmZzZXRzCgkgIG9uIGJ1ZmZlcnMgYWZ0ZXIgYSBzZWVrIChlLmcuIHdoZW4gd3JpdGluZyBhbiBpbmRleCBhdCB0aGUgZW5kKS4KCjIwMTAtMTAtMTQgMDA6MjI6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZG9uJ3QgZm9yd2FyZCB0YWcgZXZlbnRzIGRvd25zdHJlYW0KCSAgRG9uJ3QgZm9yd2FyZCBzdHJlYW0tc3BlY2lmaWMgdGFnIGV2ZW50cyBkb3duc3RyZWFtIChlc3AuIG5vdAoJICBiZWZvcmUgYW55IG5ld3NlZ21lbnQgZXZlbnQpLngKCjIwMTAtMTAtMTMgMTc6MTU6MjUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBoYW5kbGUgYW5vdGhlciBtcDR2IHZhcmlhdGlvbgoJICAuLi4gaW5jbHVkaW5nIHRoZSBnbGJsIGF0b20gY29udGFpbmluZyBjb2RlYy1kYXRhLgoKMjAxMC0xMC0xMyAxNzoyMToyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2thcmFva2UuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9icmVha215ZGF0YS5jOgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2c2Vlay5jOgoJKiBnc3QvZGVidWd1dGlscy9uZWdvdGlhdGlvbi5jOgoJKiBnc3QvZGVidWd1dGlscy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWVkaWFuL2dzdG1lZGlhbi5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnbGltaXRlci5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzoKCSogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW90ZW1wbGF0ZS5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5jOgoJICB2YXJpb3VzIChnc3QpOiBhZGQgYSBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZmxhZ3MKCjIwMTAtMTAtMTMgMTc6MTM6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkqIHN5cy9vc3M0L29zczQtc2luay5jOgoJKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHZhcmlvdXMgKHN5cyk6IGFkZCBhIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmbGFncwoKMjAxMC0xMC0xMyAxNjoyNToxNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbHRhZy5jOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9lc2QvZXNkbW9uLmM6CgkqIGV4dC9lc2QvZXNkc2luay5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZzaW5rLmM6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6CgkqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmM6CgkqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zcmMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkqIGV4dC9taWttb2QvZ3N0bWlrbW9kLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOgoJICB2YXJpb3VzIChleHQpOiBhZGQgYSBtaXNzaW5nIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZmxhZ3MKCjIwMTAtMTAtMTMgMTY6MzQ6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2VzZC9lc2Rtb24uYzoKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzoKCSAgdmFyaW91czogd3JhcCBwcm9wZXJ0eSByZWdpc3RyYXRpb24gYW5kIGFkZCBhIHNpbmdsZSBmaXhtZSBmb3IgbG9uZyBkZXNjLgoKMjAxMC0xMC0xMyAxMTo0Njo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIGgyNjRkZXBheTogYWx3YXlzIG1hcmsgdGhlIGNvZGVjX2RhdGEgYXMga2V5ZnJhbWUKCSAgV2UgbmVlZCB0byBtYXJrIHRoZSBjb2RlY19kYXRhIGFzIGEga2V5ZnJhbWUgb3IgZWxzZSBkb3duc3RyZWFtIGRlY29kZXJzIG1pZ2h0CgkgIGRlY2lkZSB0byBza2lwIGl0LCB3YWl0aW5nIGZvciBhIGtleWZyYW1lLgoJICBGaXhlcyAjNjMxOTk2CgoyMDEwLTEwLTEzIDA3OjE2OjQ3ICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSAgbWF0cm9za2FtdXg6IG1ha2UgYnVmZmVyIG9mZnNldHMgYSBieXRlIGNvdW50IHJhdGhlciB0aGFuIGEgYnVmZmVyIGNvdW50CgoyMDEwLTEwLTA3IDIxOjEyOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9lc2QvZXNkbW9uLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L21pa21vZC9nc3RtaWttb2QuYzoKCSogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2VmZW5jZS5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgZXh0LCBnc3Q6IGNhbm9uaWNhbGlzZSBwcm9wZXJ0eSBuYW1lcyB3aGVyZSB0aGlzIHdhc24ndCB0aGUgY2FzZQoJICBpZS4gImZvb19iYXIiIC0+ICJmb28tYmFyIgoKMjAxMC0xMC0xMiAxNTowMjo0MiArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwbXB2cGF5LmM6CgkgIHJ0cG1wdnBheTogZml4IHRpbWVzdGFtcGluZyBvZiBydHAgYnVmZmVycwoJICBJbmNvbW1pbmcgYnVmZmVyIGlzIG9ubHkgcHVzaGVkIG9uIHRoZSBhZGFwdGVyIGF0IHRoZSBlbmQgb2YgdGhlCgkgIGhhbmRsZV9idWZmZXIgZnVuY3Rpb24uIEJ1dCBkdXJhdGlvbi90aW1lc3RhbXAgb2YgdGhpcyBidWZmZXIgaXMgYWxyZWFkeQoJICB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHRoZSBjdXJyZW50IGRhdGEgaW4gdGhlIGFkYXB0ZXIuIFRoaXMgbGVhZHMgdG8KCSAgd3JvbmcgcnRwIHRpbWVzdGFtcHMgYW5kIGV4dHJhIGxhdGVuY3kuCgoyMDEwLTEwLTEyIDExOjM3OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2VxdWFsaXplci9kZW1vLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tb3Nzc3JjLmM6CgkgIGV4YW1wbGVzOiBGaXggYnVpbGQgd2l0aCBHVEsrIDMuMAoKMjAxMC0xMC0xMSAxNToxMjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogbWFyayBhcyBhIHNvdXJjZQoJICBNYXJrIHRoZSBydHNwc3JjIGVsZW1lbnQgYXMgYSBzb3VyY2UuCgkgIFJlcXVpcmVzIDAuMTAuMzEuMSBub3cKCjIwMTAtMTAtMTEgMTQ6MjQ6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc3JjLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJICBhdXRvZGV0ZWN0OiBTZXQgR1NUX0VMRU1FTlRfSVNfU09VUkNFIGZsYWcgb24gc291cmNlcwoKMjAxMC0xMC0xMSAxNDoyMTowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc3JjLmM6CgkgIHN3aXRjaHNyYzogU2V0IHRoZSBHU1RfRUxFTUVOVF9JU19TT1VSQ0UgZmxhZwoKMjAxMC0xMC0xMSAxNDoxNzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVxdWlyZSBjb3JlIDAuMTAuMzAuMQoKMjAxMC0xMC0xMCAxNDo0Mzo1OCArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkgIG1hdHJvc2thbXV4OiBzZXQgb2Zmc2V0cyBvbiBvdXRnb2luZyBidWZmZXJzCgoyMDEwLTEwLTA5IDE0OjE0OjI3ICswMjAwICBJT2hhbm5lcyBtIHptw7ZsbmlnIDx6bW9lbG5pZ0BpZW0uYXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJICB2NGwyc2luazogT25seSBnZXQvc2V0IG92ZXJsYXkgcGFyYW1zIGlmIG5lZWRlZAoJICBpdCdzIHBlcmZlY3RseSBvayBmb3IgYSB2aWRlbyBvdXRwdXQgZGV2aWNlIHRvIG5vdCBoYXZlIG92ZXJsYXkgY2FwYWJpbGl0aWVzLgoJICB0aGlzIHBhdGNoIHJlbW92ZXMgdGhlIG5lZWQgdG8gZ2V0L3NldCB0aGUgb3ZlcmxheSBwYXJhbWV0ZXJzIGlmIHRoZSB1c2VyCgkgIGRvZXMgbm90IGV4cGxpY2l0ZWx5IHJlcXVlc3Qgb25lIG9mIHRoZSBvdmVybGF5IHByb3BlcnRpZXMKCjIwMTAtMDktMzAgMTU6Mjg6MjMgKzAyMDAgIElPaGFubmVzIG0gem3DtmxuaWcgPHptb2VsbmlnQGllbS5hdD4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkgIHY0bDJzaW5rOiBQcm90ZWN0IGFnYWluc3QgTlVMTC1wb2ludGVyIGFjY2VzcwoJICBnc3RfdjRsMnNpbmtfY2hhbmdlX3N0YXRlKCkgd291bGQgZnJlZSB0aGUgcG9vbCB3aXRob3V0IGNoZWNraW5nIHdoZXRoZXIgdGhlcmUKCSAgd2FzIGEgdmFsaWQgcG9vbC4uLgoKMjAxMC0xMC0wOCAxMjo0Mzo1MSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0YThhZGMgdG8gNWE2NjhiZgoKMjAxMC0xMC0wOCAxMjo1MzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVlM2M5YmYgdG8gYzRhOGFkYwoKMjAxMC0xMC0wNiAxMToyOTo1NSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggcmVxdWlyZWQgZmllbGRzIGxvZ2ljCgkgIEJvdGggaGlzdG9yeV9jb3VudCBhbmQgZmllbGRzX3JlcXVpcmVkIGNvdW50IGZyb20gMS4gQXMgcGVyIHRoZSB3aGlsZSBsb29wCgkgIGNvbmRpdGlvbiB0aGF0IGZvbGxvd3MgdGhpcyBjb2RlLCB0byBwZXJmb3JtIHRoZSBkZWludGVybGFjaW5nIG1ldGhvZCwgd2UgbmVlZAoJICBoaXN0b3J5X2NvdW50ID49IGZpZWxkc19yZXF1aXJlZCBmaWVsZHMgaW4gdGhlIGhpc3RvcnkuIFRoZXJlZm9yZSBpZiB3ZSBoYXZlCgkgIGhpc3RvcnlfY291bnQgPCBmaWVsZHNfcmVxdWlyZWQgKG5vdCBmaWVsZHNfcmVxdWlyZWQgKyAxKSwgd2UgbmVlZCBtb3JlIGZpZWxkcy4KCjIwMTAtMDktMjAgMTk6NDM6NDUgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4Lmg6CgkgIGZsdm11eDogcmVzZW5kIG9uTWV0YWRhIHRhZyB3aGVuIHRhZ3MgY2hhbmdlcyBpbiBzdHJlYW1hYmxlIG1vZGUKCjIwMTAtMTAtMDUgMTk6NDA6NTAgKzAxMDAgIEFydW4gUmFnaGF2YW4gPGFydW4ucmFnaGF2YW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBBQUMgY29kZWNfZGF0YSBjYW4gYmUgPiAyIGJ5dGVzIGxvbmcKCSAgVGhpcyBmaXhlcyB0aGUgYXNzdW1wdGlvbiB0aGF0IERlY29kZXJTcGVjaWZpY0luZm8gbXVzdCBiZSAyIGJ5dGVzIGxvbmcKCSAgZm9yIEFBQyBmaWxlcy4gVGhlIHNwZWNpZmljYXRpb24gYWxsb3dzIEhFLUFBQyB0byBiZSBleHBsaWNpdGx5CgkgIHNpZ25hbGxlZCBpbiBhIGJhY2t3YXJkIGNvbXBhdGlibGUgd2F5LiBUaGlzIGlzIGRvbmUgYnkgbWVhbnMgb2YgYW4KCSAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhZnRlciB0aGUgcmVndWxhciBBQUMgaGVhZGVyLiBJdCBpcyBleHBlY3RlZCB0aGF0CgkgIGRlY29kZXJzIHRoYXQgY2FuIHBsYXkgQUFDIGJ1dCBub3QgSEUtQUFDIHdpbGwgcGFyc2UgdGhlIGhlYWRlciBub3JtYWxseQoJICBhbmQgaWdub3JlIGV4dGVuZGVkIGJpdHMsIG11Y2ggYXMgdGhleSBkbyBmb3IgdGhlIEhFLUFBQyBzcGVjaWZpYyBwYXlsb2FkCgkgIGluIHRoZSBhY3R1YWwgc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEyMzEzCgoyMDEwLTEwLTA1IDE2OjAxOjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBvbmx5IHVucmVmIGJ1ZmZlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQgZm9yIGNsdXN0ZXIgc2Nhbm5pbmcKCSAgRml4ZXMgIzYyOTA0Ny4KCjIwMTAtMTAtMDUgMTY6MDA6NDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGF2b2lkIGluZmluaXRlIGNsdXN0ZXIgc2Nhbm5pbmcKCjIwMTAtMTAtMDUgMTI6MjA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSAgZ29vbTogdGFrZSBkdXJhdGlvbiBpbnRvIGFjY291bnQgd2hlbiBkb2luZyBRb1MKCSAgVGFrZSB0aGUgZHVyYXRpb24gb2YgdGhlIGZyYW1lcyBpbnRvIGFjY291bnQgc28gdGhhdCB3ZSBkb24ndCBkcm9wIGZyYW1lcyB0aGF0CgkgIGFyZSBvbmx5IHBhcnRpYWxseSBwYXN0IHRoZSBRb1MgZGVhZGxpbmUuCgoyMDEwLTEwLTA1IDEwOjQwOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmg6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5oOgoJICBnb29tOiB1c2UgYWRhcHRlciBmb3IgdGltZXN0YW1waW5nCgkgIFVzZSB0aGUgYWRhcHRlciB0aW1lc3RhbXAgY29kZSB0byBnZXQgbW9yZSBhY2N1cmF0ZSB0aW1lc3RhbXBzLgoJICBGaXggbGF0ZW5jeSBjYWxjdWxhdGlvbiwgd2UgYWRkIG91ciBvd24gbGF0ZW5jeSBpbiB0aGUgd29yc3QgY2FzZS4KCjIwMTAtMTAtMDQgMjI6MzE6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9yYXcxMzk0L01ha2VmaWxlLmFtOgoJKiBleHQvcmF3MTM5NC9nc3QxMzk0LmM6CgkgIHJhdzEzOTQ6IERvbid0IGNvbXBpbGUgaGR2MTM5NHNyYyBpZiBsaWJpZWM2MTg4MyBpc24ndCBhdmFpbGFibGUKCSAgRml4ZXMgIzYyOTg5NgoKMjAxMC0wOS0yMCAxOTo0NDowOSArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkgIGljeWRlbXV4OiBmb3J3YXJkIHRhZyBldmVudHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDIwNQoKMjAxMC0xMC0wNCAxOTowMDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSAgZ29vbTJrMTogcmVwb3J0IG91ciBsYXRlbmN5IGNvcnJlY3RseQoJICBGaXhlcyAjNjMxMzAzCgoyMDEwLTEwLTA0IDE4OjU2OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20yazEvZ3N0Z29vbS5jOgoJICBnb29tMmsxOiBhZGQgZGVmaW5lcyBmb3IgZGVmYXVsdCB3aWR0aC9oZWlnaHQvZnBzCgkgIEFkZCBzb21lIGRlZmluZXMgZm9yIHRoZSBkZWZhdWx0IHdpZHRoL2hlaWdodC9mcHMgaW5zdGVhZCBvZiB1c2luZyBkaWZmZXJlbnQKCSAgdmFsdWVzIGluIGRpZmZlcmVudCBwbGFjZXMuCgoyMDEwLTEwLTA0IDE4OjUyOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICBnb29tOiBhZGQgbGF0ZW5jeSBjb21wZW5zYXRpb24gY29kZS4KCSAgSW1wbGVtZW50IGEgbGF0ZW5jeSBxdWVyeSBhbmQgcmVwb3J0IGhvdyBtdWNoIGxhdGVuY3kgd2Ugd2lsbCBhZGQgdG8gdGhlCgkgIHN0cmVhbS4KCSAgQWxzZSBtYWtlIHNvbWUgZGVmYXVsdHMgZm9yIHRoZSBkZWZhdWx0IHdpZHRoL2hlaWdodC9mcmFtZXJhdGUKCSAgRml4ZXMgIzYzMTMwMwoKMjAxMC0xMC0wNCAxNzo1Njo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItYWxzYXNyYy1QQ01BLnB5OgoJICB0ZXN0OiBhZGQgcHl0aG9uIHZlcnNpb24gb2YgdGhlIGF1ZGlvIHNlbmRlcgoJICBBZGQgYSBweXRob24gdmVyc2lvbiBvZiB0aGUgYXVkaW8gc2VuZGVyIHBpcGVsaW5lLgoJICBQb3J0ZWQgYnkgU3A0cmMgb24gSVJDLgoKMjAxMC0xMC0wNCAxNzo1MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtUENNQS5weToKCSAgdGVzdHM6IEFkZCBweXRob24gUlRQIGNsaWVudCBleGFtcGxlCgkgIEFkZCBhIHB5dGhvbiB2ZXJzaW9uIG9mIHRoZSBQQ01BIGNsaWVudCBhcHAuCgkgIFBvcnRlZCBieSBTcDRyYyBvbiBJUkMuCgoyMDEwLTEwLTA0IDA5OjM5OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJICBydHA6IEZpeCB1bml0aWFsaXplZCBjb21waWxlciB3YXJuaW5ncyBvbiBPUyBYIGJ1aWxkIGJvdAoJICBUaGVzZSB3YXJuaW5ncyBhcmUgd3JvbmcgdGhvdWdoLCB0aGUgdmFyaWFibGVzIGFyZSBvbmx5IHVzZWQgaW4KCSAgdGhlIGNhc2VzIHdoZXJlIHRoZXkgKmFyZSogaW5pdGlhbGl6ZWQgYnkgdGhlIGJpdCByZWFkZXIuCgoyMDEwLTEwLTAzIDIzOjQ5OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyMnBheS5jOgoJICBydHBnNzIycGF5OiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgkgIFRoZSBjbG9jayByYXRlIGlzIGFsd2F5cyA4MDAwIEh6IGFjY29yZGluZyB0byB0aGUgUkZDIGFuZAoJICB0aGUgc2FtcGxpbmcgcmF0ZSBtdXN0IGFsd2F5cyBiZSAxNjAwMCBIei4KCjIwMTAtMTAtMDEgMTM6NTk6MTAgKzA0MDAgIFZsYWRpbWlyIEVyZW1lZXYgPGVyZW1lZXZAYXRsYW50aXMucnU+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgcnRwaml0dGVyYnVmZmVyOiBpbXByb3ZlIGFydGljbGUgcmVmZXJlbmNlIGluIGNvbW1lbnQgYmxvY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTA4MgoKMjAxMC0wNC0zMCAyMTowMDozMSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F1aWNrdGltZS5jOgoJICBxdGRlbXV4OiBVc2UgcGJ1dGlscyBmb3IgSC4yNjQgcHJvZmlsZS9sZXZlbCBleHRyYWN0aW9uCgkgIFRoZSBmdW5jdGlvbnMgdXNlZCB0byBleHRyYWN0IHRoaXMgZGF0YSBoYXZlIGJlZW4gbW92ZWQgdG8gZ3N0cGJ1dGlscyB0bwoJICBmYWNpbGl0YXRlIHJldXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MzE4CgoyMDEwLTA0LTMwIDIxOjAwOjMxICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9NYWtlZmlsZS5hbToKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS5jOgoJICBtYXRyb3NrYWRlbXV4OiBVc2UgcGJ1dGlscyBmb3IgSC4yNjQgcHJvZmlsZS9sZXZlbCBleHRyYWN0aW9uCgkgIFRoZSBmdW5jdGlvbnMgdXNlZCB0byBleHRyYWN0IHRoaXMgZGF0YSBoYXZlIGJlZW4gbW92ZWQgdG8gZ3N0cGJ1dGlscyB0bwoJICBmYWNpbGl0YXRlIHJldXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MzE4CgoyMDEwLTA0LTIyIDE5OjM5OjQ3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRXhwb3J0IE1QRUctNCB2aWRlbyBwcm9maWxlIGFuZCBsZXZlbCBpbiBzdHJlYW0gY2FwcwoJICBUaGlzIHVzZXMgZ3N0cGJ1dGlscyB0byBleHRyYWN0IHRoZSBwcm9maWxlIGFuZCBsZXZlbCBmcm9tIHRoZSB2aWRlbwoJICBvYmplY3Qgc2VxdWVuY2UgYW5kIGFkZHMgdGhpcyB0byBzdHJlYW0gY2Fwcy4gVGhpcyBjYW4gYmUgdXNlZCBhcwoJICBtZXRhZGF0YSBhbmQgZm9yIGZpbmUtZ3JhaW5lZCBkZWNvZGVyIHNlbGVjdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNjUyMQoKMjAxMC0wOS0zMCAxMjo0NDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBhYWMgY2hhbm5lbCBvdmVycmlkZSBiYXNlZCBvbiBjb2RlYyBkYXRhIGZvciA3LjEgY2FzZQoKMjAxMC0wNC0zMCAxNDowNjoyNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9NYWtlZmlsZS5hbToKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBFeHBvcnQgQUFDIHByb2ZpbGUgYW5kIGxldmVsIGluIGNhcHMKCSAgVGhpcyBleHBvcnRzIHRoZSBBQUMgcHJvZmlsZSBhbmQgbGV2ZWwgaW4gY2FwcyBmb3IgdXNlIGFzIG1ldGFkYXRhIGFuZAoJICAoZXZlbnR1YWxseSkgZm9yIG1vcmUgZmluZS1ncmFpbmVkIHNlbGVjdGlvbiBvZiBkZWNvZGVycyBhdAoJICBjYXBzLW5lZ290aWF0aW9uIHRpbWUuIChEb2Vzbid0IHdvcmsgZm9yIEhFLUFBQyB5ZXQgdGhvdWdoLikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMjMxMwoKMjAxMC0wOS0zMCAxODozNDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyMnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjJwYXkuaDoKCSAgcnRwOiBhZGQgRzcyMiBwYXkgYW5kIGRlcGF5bG9hZGVyCgoyMDEwLTA5LTMwIDEyOjA4OjQ5ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogdXBkYXRlIGxpbmsgdG8gZG9jdW1lbnRhdGlvbgoKMjAxMC0wOS0zMCAxMTozNDo1NiArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC5zaDoKCSAgZXhhbXBsZXM6IGZpeCBpbmRlbnRhdGlvbiBvbiBydHAgY2xpZW50IGV4YW1wbGUKCjIwMTAtMDktMzAgMTE6MzM6MjQgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQtUENNQS5zaDoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1IMjY0LnNoOgoJICBleGFtcGxlczogZml4IHR5cG8gaW4gcG9ydCBvZiBydHAgZXhhbXBsZXMKCjIwMTAtMDktMjkgMTM6MjA6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSAgd2F2ZW5jOiBtaW5pc2N1bGUgY29kZSBjbGVhbi11cAoJICBHU1RfQ0xPQ0tfVElNRV9OT05FIGlzIG5vdCBzb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgdXNlZCBpbiBjb25uZWN0aW9uIHdpdGgKCSAgR1NUX0ZPUk1BVF9CWVRFUy4KCjIwMTAtMDktMjkgMTA6MzQ6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogcmV2ZXJzZSBwbGF5YmFjazsgcHJldmVudCBvdmVybGFwIG9mIHN1YnNlcXVlbnQgZnJhZ21lbnRzCgoyMDEwLTA5LTI4IDE2OjIxOjQ4ICswMzAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAbm9raWEuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggbWlzc2luZyBudWxsLXRlcm1pbmF0b3IgaW4gcHJvdG9jb2xzIGFycmF5CgkgIEZpeGVzIHJhbmRvbSBjcmFzaCByZWdyZXNzaW9uIGZyb20gY29tbWl0IGFlODRhZS4KCjIwMTAtMDktMjQgMTY6MjY6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGRvbid0IGFkZCAvVURQIGluIHRoZSB0cmFuc3BvcnQsIGl0J3MgdGhlIGRlZmF1bHQKCSAgZG9uJ3QgYWRkIHRoZSBkZWZhdWx0IFVEUCBsb3dlci10cmFuc3BvcnQsIHNvbWUgc2VydmVycyBkb24ndCBzZWVtIHRvIGxpa2UgaXQuCgkgIEZpeGVzICM2MzA1MDAKCjIwMTAtMDYtMjUgMTc6MDg6MDMgKzAyMDAgIFBhc2NhbCBCdWhsZXIgPHBhc2NhbC5idWhsZXJAdGFuZGJlcmcuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cG1hbmFnZXI6IHBhY2tldCBsb3N0IHNob3VsZCBub3QgYmUgYSB3YXJuaW5nLiBJdCBoYXBwZW5zIGFsbCB0aGUgdGltZS4uLgoKMjAxMC0wOS0yNCAxNTozMzo0MCArMDIwMCAgUGFzY2FsIEJ1aGxlciA8cGFzY2FsLmJ1aGxlckB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSAgcnRwYmluOiBNYWtlIGNsZWFuaW5nIHVwIHNvdXJjZXMgaW4gcnRwX3Nlc3Npb25fb25fdGltZW91dCBNVCBzYWZlCgkgIFVzaW5nIF9mb3JlYWNoX3JlbW92ZSBvbiB0aGUgaGFzaHRhYmxlLCB3aGlsZSByZWxlYXNpbmcgdGhlIGxvY2sgcHJvdGVjdGluZwoJICB0aGF0IHRhYmxlIGluc2lkZSB0aGUgY2FsbGJhY2sgaXMgbm90IGEgZ29vZCBpZGVhLiBUaGUgaGFzaHRhYmxlIG1pZ2h0CgkgIHRoZW4gY2hhbmdlIChhIHNvdXJjZSByZW1vdmVkIG9yIGFkZGVkKSB3aGlsZSBzaWduYWxzIGxpa2Ugb25fdGltZW91dAoJICBhcmUgYmVpbmcgc2VudC4KCSAgVGhpcyBzb2x1dGlvbiBtYWtlcyBhIGNvcHkgb2YgdGhlIHRhYmxlLCBwZXJmb3JtcyB0aGUgX2ZvcmVhY2ggd2l0aG91dAoJICBhY3R1YWxseSByZW1vdmluZyBhbnkgc291cmNlcywgYnV0IG1hcmtzIHRoZW0gZm9yIHJlbW92YWwgb24gYSBzZWNvbmQKCSAgaXRlcmF0aW9uIHdpdGggdGhlIHJlYWwgbGlzdCwgYnV0IHRoaXMgdGltZSBub3QgbGV0dGluZyBnbyBvZiB0aGUgbG9jay4KCSAgRml4ZXMgIzYzMDQ1MgoKMjAxMC0wOS0yNCAxNToxOToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkgIGlkM2RlbXV4OiBTYW5pdGl6ZSBpZDMgZnJhbWUgbmFtZXMKCSAgVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBpbiBxdGRlbXV4LiBBdm9pZHMgcHJvdmlkaW5nIGludmFsaWQKCSAgc3RydWN0dXJlL3RhZ3MgbmFtZXMKCjIwMTAtMDktMjQgMTQ6NTk6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4LmM6CgkgIGFwZWRlbXV4OiBTa2lwIGVtcHR5IHRhZ3MKCSAgQXZvaWQgY3JlYXRpbmcgYm9ndXMgc3RyaW5nIHRhZ3MuIEFsc28gYWRkZWQgbG9nZ2luZyBvZiB0aGUgc3RyaW5nCgkgIHZhbHVlcyBvZiB0aGUgdGFnIG5hbWUgYW5kIHZhbHVlLgoKMjAxMC0wOS0yNCAwODo1NjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwOiBpbml0IGRlYnVnIGNhdGVnb3J5IGJlZm9yZSB1c2luZyBpdAoKMjAxMC0wNC0xMiAwOTo0OToxNCArMDIwMCAgUGFzY2FsIEJ1aGxlciA8cGFzY2FsLmJ1aGxlckB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBIYW5kbGUgcnlzbmMgb2YgaXRlcmF0b3Igd2hlbiBsb29raW5nIGZvciBmcmVlIHBhZCBuYW1lCgkgIElmIGEgbmV3IHBhZCB3YXMgYWRkZWQgd2hpbGUgaXRlcmF0aW5nIHRoZW4gYSBwYWQgY291bGQgYmUKCSAgcmV0dXJuZWQgdGhhdCB3YXMgYWxyZWFkeSBpbiB1c2UuCgkgIEZpeGVzICM2MzA0NTEKCjIwMTAtMDktMjQgMTQ6MDk6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IGZpeCBjb21waWxhdGlvbgoKMjAxMC0wNC0wNyAxNTozMTo1MiArMDIwMCAgVHJvbmQgQW5kZXJzZW4gPHRyb25kLmFuZGVyc2VuQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IFVubG9jayBiZWZvcmUgYWRkaW5nIHBhZCBpbiBuZXdfcGF5bG9hZF9mb3VuZAoJICBIb2xkaW5nIGludGVybmFsIGxvY2tzIHdoaWxlIHBvdGVudGlhbGx5IGNhbGxpbmcgb3V0IGlzIGEgc291cmNlCgkgIG9mIGRlYWRsb2NrcywgYW5kIGluIHRoaXMgY2FzZSB0aGUgYXBwbGljYXRpb24gbWlnaHQgc3Vic2NyaWJlIHRvIHRoZQoJICBwYWQtYWRkZWQgc2lnbmFsLgoJICBGaXhlcyAjNjMwNDQ5CgoyMDA5LTA4LTMxIDE4OjM3OjQwICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IHJlbGF4IHRoaXJkLXBhcnR5IGNvbGxpc2lvbiBkZXRlY3Rpb24KCSAgSWYgdGhlIHNvdXJjZSBoYXMgYmVlbiBpbmFjdGl2ZSBmb3Igc29tZSB0aW1lLCB3ZSBhc3N1bWUgdGhhdCBpdCBoYXMKCSAgc2ltcGx5IGNoYW5nZWQgaXRzIHRyYW5zcG9ydCBzb3VyY2UgYWRkcmVzcy4gSGVuY2UsIHRoZXJlIGlzIG5vIHRydWUKCSAgdGhpcmQtcGFydHkgY29sbGlzaW9uIC0gb25seSBhIHNpbXVsYXRlZCBvbmUuCgkgIEZpeGVzICM2MzA0NDcKCjIwMTAtMDktMjQgMTM6NTA6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDEwLTA5LTI0IDEzOjQ4OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIHJ0cHNvdXJjZTogc2ltcGxpZnkgdGhlIHJhdGUgZXN0aW1hdGlvbiBzb21lIG1vcmUKCjIwMDktMDgtMzEgMTg6MzQ6MDggKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBydHBtYW5hZ2VyOiBwcm92aWRlIGFkZGl0aW9uYWwgc3RhdGlzdGljcwoKMjAxMC0wOS0yNCAwMDowMTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogc2V0IHBsdWdpbiByZWxlYXNlIGRhdGV0aW1lCgoyMDEwLTA5LTIzIDIxOjIxOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5oOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5oOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcm5iYW5kcy5oOgoJICBlcXVhbGl6ZXI6IGZpeCBjbGFzcyBkZWZpbml0aW9ucwoJICBDbGFzcyBzdHJ1Y3R1cmVzIG11c3QgYmUgYmFzZWQgb24gdGhlIHBhcmVudCBjbGFzcyBzdHJ1Y3QsIG5vdCBvbgoJICB0aGUgcGFyZW50IGluc3RhbmNlIHN0cnVjdC4KCjIwMTAtMDktMTUgMjA6MzY6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSAgdmlkZW9taXhlcjI6IHByZS1yZWdpc3RlciBwYWQgY2xhc3MgcHJvcGVybHkgd2l0aCBnX3R5cGVfY2xhc3NfcmVmCgkgIEZpeCBjb2RlIHRvIG1hdGNoIHRoZSBjb21tZW50LiBBbHNvLCB0aGVyZSdzIG5vIG5lZWQgdG8gcmVnaXN0ZXIgdGhlCgkgIGJhY2tncm91bmQgZW51bSB0eXBlIGFnYWluLCB0aGlzIGlzIGFscmVhZHkgZG9uZSB2aWEgaW5zdGFsbF9wcm9wZXJ0eS4KCjIwMTAtMDktMjMgMjE6NTc6MTggKzAyMDAgIERhdmlkIEhveXQgPGRob3l0QGxsbmwuZ292PgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBzcGVleDogRml4IGNyYXNoZXMgd2l0aCBNU1ZDCgkgIFVzaW5nIHRoZSBzeW1ib2xzIGZvciB0aGUgZGlmZmVyZW50IFNwZWV4IG1vZGVzIHJlc3VsdHMKCSAgaW4gY3Jhc2hlcyB3aGVuIHVzaW5nIE1TVkMuIFVzZSB0aGUgbGlicmFyeSBmdW5jdGlvbnMgdG8KCSAgZ2V0IHRoZSBtb2RlcyBpbnN0ZWFkLgoJICBGaXhlcyBidWcgIzYzMDM3OC4KCjIwMTAtMDgtMjQgMTM6MjU6MDIgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBsZXZlbDogYXZvaWQgZGl2aXNpb24gYnkgemVybyBvbiBzaWxlbmNlCgkgIEZpeGVzIGJ1ZyAjNjMwNDU4LgoKMjAxMC0wOS0yMyAxNjo0NjozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IHBhcnNlIGFuZCB1c2UgY3RzCgkgIEZvciBIMjY0LCB0aGVyZSBpcyBhbiBleHRyYSBoZWFkZXIgY29udGFpbmluZyB0aGUgQ1RTLCB3aGljaCBpcyBhIHRpbWVzdGFtcAoJICBvZmZzZXQgdGhhdCBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgUFRTLiBQYXJzZSB0aGlzIHZhbHVlIGFuZCB1c2UgaXQgdG8gYWRqdXN0CgkgIHRoZSBwdHMuCgkgIEZpeGVzICM2MzAwODgKCjIwMTAtMDktMjMgMTY6NDU6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBpbXByb3ZlIHB0cyBkZWJ1Z2dpbmcKCjIwMTAtMDktMjIgMTk6MDE6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9wdWxzZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9wdWxzZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvcHVsc2UvcHVsc2UuYzoKCSAgcHVsc2U6IGFkZCB0ZXN0IGFwcCBmb3IgcHVsc2UgZGV2aWNlIHByb2JlCgoyMDEwLTA5LTIyIDE4OjUwOjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2U6IGZpeCBkZXZpY2VfZGVzY3JpcHRpb24gaW4gUkVBRFkKCSAgTWFrZSB0aGUgaXNfZGVhZCBjaGVjayBtb3JlIGNsZWFyIGFuZCBhZGQgYW4gb3B0aW9uIHRvIGNoZWNrIGZvciB0aGUgc3RhdHVzIG9mCgkgIHRoZSBzdHJlYW0gaW4gYWRkaXRpb24gdG8gdGhlIGNvbnRleHQuCgkgIFdlIGRvbid0IG5lZWQgYSBzdHJlYW0gdG8gZ2V0IHRoZSBkZXZpY2VfZGVzY3JpcHRpb24gc3RyaW5nLgoJICBGaXhlcyAjNjMwMzE3CgoyMDEwLTA5LTIyIDEyOjU2OjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBEb24ndCBwb3N0IHRhZ3MgaWYgdGhlcmUgYXJlIG5vbmUKCSAgQW5kIG1ha2UgYWxsIGNvZGUgZ28gdGhyb3VnaCBfcG9zdF9nbG9iYWxfdGFncy4KCjIwMTAtMDktMjIgMTI6Mzc6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5oOgoJICBydHBoMjY0ZGVwYXk6IHJlZmFjdG9yIGFuZCBzaW1wbGlmeSBBVSBtZXJnaW5nCgkgIE1vdmUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIE5BTFUgdG8gYSBzZXBhcmF0ZSBtZXRob2QuCgkgIFNpbXBsaWZ5IHRoZSBtZXJnaW5nIG9mIE5BTFUgaW50byBBVSBhbmQgdXNlIGNvbW1vbiBjb2RlIHdoZW4gcG9zc2libGUuCgoyMDEwLTA5LTIxIDIzOjIzOjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvc2hhcGV3aXBlLWV4YW1wbGUuYzoKCSAgc2hhcGV3aXBlOiBhZGQgb3B0aW9uYWwgYm9yZGVyIHBhcmFtZXRlciBhbmQgc2xvd2Rvd24gYW5pbWF0aW9uCgkgIEFsbG93IHRvIHBsYXkgd2l0aCB0aGUgYm9yZGVyIHByb3BlcnR5IChzaGFycC9zb2Z0IGVkZ2VzKS4KCjIwMTAtMDktMjEgMTk6MTQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgc2hhcGV3aXBlOiBGb3JjZSBmb3JtYXQgdG8gQVlVViBpbiB0aGUgZXhhbXBsZSBwaXBlbGluZSBmb3IgdGhlIHNhbWUgcmVhc29uCgoyMDEwLTA5LTIxIDE5OjEzOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9zaGFwZXdpcGUtZXhhbXBsZS5jOgoJICBzaGFwZXdpcGU6IEZvcmNlIHRoZSBpbnB1dCB0byBBWVVWIHRvIHByZXZlbnQgbmVnb3RpYXRpb24gZmFpbHVyZXMgaW4gdmlkZW9taXhlcgoJICBUaGUgc2Vjb25kIHZpZGVvdGVzdHNyYyBjaGFpbiBtaWdodCBwcm9kdWNlIFlVWTIgYmVjYXVzZSBldmVyeXRoaW5nIGlzCgkgIGFjY2VwdGVkIGRvd25zdHJlYW0gYmVmb3JlIHRoZSBmaXJzdCBzaGFwZXdpcGUgY2hhaW4gZ2V0cyBuZWdvdGlhdGVkLgoKMjAxMC0wOS0yMSAxOToxMjo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJICBzaGFwZXdpcGU6IEltcHJvdmUgZGVidWdnaW5nIGFuZCBpbW1lZGlhdGVseSByZXR1cm4gZW1wdHkgY2FwcyBmcm9tIHRoZSBnZXRjYXBzIGZ1bmN0aW9ucwoKMjAxMC0wOS0yMSAxODozMzo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYWEwZDFkMCB0byA1ZTNjOWJmCgoyMDEwLTA5LTIxIDEyOjQ5OjMxICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5oOgoJICB2NGwyOiB1c2UgdGhlIHhvdmVybGF5IEFQSXMKCjIwMTAtMDktMjEgMTI6NDg6MzQgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiB1c2UgdGhlIG5ldyB4b3ZlcmxheSBBUElzCgkgIEFsc28gYnVtcGVkIC1iYXNlIHJlcXVpcmVtZW50cy4KCjIwMTAtMDktMjEgMTI6MzE6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSAtREdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgYWdhaW4gZm9yIEdJVCB2ZXJzaW9ucwoKMjAxMC0wOS0yMSAxMTo1MjoyMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBGaXggZGVidWcgc3RhdGVtZW50CgoyMDEwLTA5LTIwIDIzOjE3OjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogUGFyc2UgdXVpZCBhdG9tcyBpbiBwdXNoIG1vZGUKCSAgUGFyc2VzIHV1aWQgYXRvbXMgaW4gcHVzaCBtb2RlIHdoZW4gdGhleSBhcmUgZm91bmQsIHRoZXkgbWlnaHQKCSAgY29udGFpbiB4bXAgdGFncy4KCSAgQWxzbyBkb2VzIGEgbWlub3IgcmVmYWN0b3JpbmcgdG8gcHV0IHRoZSBnbG9iYWwgdGFncyBwb3N0aW5nCgkgIGludG8gYSBzaW5nbGUgZnVuY3Rpb24gaW5zdGVhZCBvZiByZXBlYXRpbmcgaXQgaW4gMyBkaWZmZXJlbnQKCSAgcGxhY2VzLgoJICBGaXhlcyAjNjI5ODM5CgoyMDEwLTA5LTE2IDA4OjA0OjAyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRGVsYXkgdGFncyBwb3N0aW5nIGEgbGl0dGxlCgkgIERlbGF5IHRhZ3MgcG9zdGluZyB1bnRpbCB3ZSd2ZSBwYXJzZWQgYWxsIHRoZSBoZWFkZXJzIHNvCgkgIHRoYXQgdGhlIG5hdGl2ZSBhbmQgeG1wIHRhZ3MgZ2V0IG1lcmdlZCBiZWZvcmUgcG9zdGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5ODM5CgoyMDEwLTA5LTE1IDIyOjEzOjQzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSAgcXRkZW11eDogUGFyc2UgeG1wIHBhY2tldCBpbiB1dWlkIGF0b20KCSAgeG1wIHBhY2tldCBpcyBwbGFjZWQgaW50byBhIHRvcC1sZXZlbCB1dWlkIGF0b20gZm9yCgkgIGlzb20vbXA0IHZhcmlhbnRzLgoJICBUaGlzIHBhdGNoIG1ha2VzIHF0ZGVtdXggcGFyc2UgYWxsIHRvcC1sZXZlbCBhdG9tcwoJICBpbiBwdWxsLW1vZGUgYmVmb3JlIHN0YXJ0aW5nIHRvIHB1c2ggZGF0YSwgbWFraW5nCgkgIGl0IGFibGUgdG8gZmluZCB0aG9zZSB0YWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5ODM5CgoyMDEwLTA5LTE3IDExOjA3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuYzoKCSAgcnRwc3RhdHM6IHByaW50ZiBmb3JtYXQgZml4ZXMKCjIwMTAtMDktMTcgMTE6MDc6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwcGF5OiBzb21lIHByaW50ZiBmb3JtYXQgZml4ZXMKCjIwMTAtMDktMTUgMTg6MjE6MTEgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBsb2dpYyB3aGVuIHB1c2hpbmcgRU9TLgoJICBEb24ndCBjaGVjayBmb3IgcmV0dXJuIHZhbHVlcyB3aGVuIHB1c2hpbmcgRU9TLiBTdGlsbCBwb3N0IGFuIGVycm9yIGlmIEVPUyBpcwoJICByZWFjaGVkIGFuZCBubyBzdHJlYW1zIGhhdmUgYmVlbiBmb3VuZC4KCjIwMTAtMDktMTUgMTc6MDI6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgZG9jczogYWRkIGd0ay1kb2MgY2h1bmtzIHdpdGggU2luY2U6IG1hcmtlcnMgZm9yIG5ldyB2NGwyc3JjIHByb3BlcnRpZXMKCjIwMTAtMDktMTUgMTg6NDM6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvY2FtY3RybC5jOgoJICBjYW1jdHJsOiBhZGQgbGljZW5zZSBoZWFkZXIgdG8gZGVtbwoKMjAxMC0wOS0xNCAxNzo0MToyOCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZG9uJ3Qgc2VuZCBFT1MgdHdpY2Ugb24gdGhlIHNhbWUgcGFkLgoKMjAxMC0wOS0xNCAxMDowNzo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkgIHB1bHNlc2luazogbW92ZSB0aGUgc2hhcmVkIG1haW5sb29wIGZyb20gY2xhc3MgdG8gc3RhdGljIHZhcgoJICBKdXN0IGhhdmUgb25lIHN0YXRpYyB2YXIgZm9yIHRoZSBzaGFyZWQgbWFpbmxvb3AgaW5zdGVhZCBvZiBvbmUgY2xhc3MgdmFyaWFibGUKCSAgYW5kIGNvcGllcyBpbiB0aGUgaW5zdGFuY2UuCgoyMDEwLTA5LTEzIDE3OjMxOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIHJ0cGpwZWdwYXk6IGNsZWFudXBzIGZvciBEUkkgbWFya2VycwoJICBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCBEUkkgbWFya2Vycy4KCSAgZG8gc29tZSBjbGVhbnVwcwoKMjAxMC0wOS0xMCAxMTozNTo1MyAtMDQwMCAgQW1lcmljYW4gRHluYW1pY3MgPEdTdHJlYW1lci1CdWdzQHR5Y29zcC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuYzoKCSAgZ3N0cnRwanBlZ3BheTogQWRkZWQgRGVmaW5lIFJlc3RhcnQgSW50ZXJ2YWwgKERSSSkgTWFya2VyCgkgIEFkZGVkIGFiaWxpdHkgdG8gZGV0ZWN0IGFuZCByZXNwb25kIHRvIGEgSlBFRy1kZWZpbmVkIERSSSBtYXJrZXIKCjIwMTAtMDYtMTkgMTk6MjA6MTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgZ3N0cnRwc2Vzc2lvbjogU3BsaXQgZ2V0dGluZyB0aGUgY2FwcyBpbnRvIGl0cyBvd24gZnVuY3Rpb24KCjIwMTAtMDktMTMgMTY6MDM6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBzbWFsbCBjbGVhbnVwLgoKMjAxMC0wOS0xMyAxNjoyNDoyNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkgIHB1bHNlc2luazogcmV3b3JrIGNvbnRleHQgc2hhcmluZwoJICBXZSBhbHNvIG5lZWQgdG8gc2hhcmUgdGhlIG1haW4tbG9vcCB0aHJlYWRzIGFzIHRoaXMgb3ducyB0aGUgY29udGV4dC4gVGh1cyBoYXZlCgkgIGEgY2xhc3Mgd2lkZSBtYWluLWxvb3AgdGhyZWFkLiBGcm9tIHRoaXMgd2UgY3JlYXRlIGEgY29udGV4dCBwZXIgY2xpZW50LW5hbWUuCgkgIEluc3RlYWQgb2YgYWx3YXlzIGxvb2tpbmcgdXAgdGhlIGNvbnRleHQsIHdlIGtlZXAgdGhpcyB3aXRoIHRoZSBpbnN0YW5jZS4gVGhlCgkgIHJldmVyc2UgbWFwcGluZyBpcyBvbmx5IG5lZWRlZCBpbiBwdWxzZSBzaW5nYWwgaGFuZGxlcnMuIFRoaXMgc2F2ZXMgYSBsb3Qgb2YKCSAgbG9ja2luZy4gQWxzbyBvbmUgc2lnbmFsIGhhbmRsZXIgYmVjb21lcyBzaW1wbGVyIGFzIHRoZXIgZWlzIG9ubHkgb25lIG1haW5sb29wCgkgIHRvIG5vdGlmeS4KCSAgTm93IHZhbGdpbmQgaGFwcHkgLSBubyBsZWFrcywgbm8gYmFkIHJlYWRzL3dyaXRlcy4KCSAgVGhpcyByZXZlcnRzIG1ham9yIHBhcnRzIG9mIGNvbW1pdCA2OWEzOTdjMzJmNGJhZjA3YTdiMjkzN2M2MTBmOWU4ZjM4M2U5YWU5LgoJICBGaXhlcyAjNjI4OTk2CgoyMDEwLTA5LTEzIDE1OjQ0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOgoJICBydHBzZXNzaW9uOiBTbWFsbCBjbGVhbnVwcwoJICBNYWtlIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBwcmV0dGllci4KCSAgQWN0dWFsbHkgbXVsdGlwbGUgdGhlIGJhbmR3aWR0aCB3aXRoIHRoZSBmcmFjdGlvbi4KCjIwMTAtMDYtMDEgMjE6MzU6NDAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmg6CgkgIHJ0cHNlc3Npb246IENhbGN1bGF0ZSBSVENQIGJhbmR3aWR0aCBhcyBhIGZyYWN0aW9uIG9mIHRoZSBSVFAgYmFuZHdpZHRoCgkgIENhbGN1bGF0ZSB0aGUgUlRDUCBiYW5kd2lkdGggdG8gYmUgYSBmcmFjdGlvbiBvZiB0aGUgUlRQIGJhbmR3aWR0aCBpZiBpdCBpcwoJICBzcGVjaWZpZWQgYXMgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuCgoyMDEwLTA5LTEzIDE1OjI5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBzZXNzaW9uOiBpbXByb3ZlIGJhbmR3aWR0aCByZWNhbGN1bGF0aW9uCgkgIEFsc28gcmVjYWxjdWxhdGUgYmFuZHdpZHRoIHdoZW4gb25lIG9mIHRoZSBzb3VyY2UgYmFuZHdpZHRocyBjaGFuZ2VkLgoJICBVc2UgdGhlIG5ld2x5IGNhbGN1bGF0ZWQgYmFuZHdpZHRoLgoKMjAxMC0wNi0wMSAyMToxNzoyNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IEFkZCB0aGUgb3B0aW9uIHRvIGF1dG8tZGlzY292ZXIgdGhlIFJUUCBiYW5kd2lkdGgKCjIwMTAtMDktMTMgMTQ6Mzg6MTEgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBzZXQgdXNlLXBpcGVsaW5lLWNsb2NrIG9uIGNvcnJlY3QgR09iamVjdAoKMjAxMC0wNi0wMiAxNzo1MToxMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBJbml0aWFsaXNlIHRoZSBhdmVyYWdlIHNjYWxlZCBieSAxNgoKMjAxMC0wOS0xMyAxMjo0MToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogYWRkIHJ1bm5pbmdfdGltZSBhcmd1bWVudCBkb2NzCgoyMDEwLTA2LTIzIDE2OjEzOjAxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBydHBzdGF0czogUmVjdGlmeSBkZXNjcmlwdGlvbiBvZiBjdXJyZW50X3RpbWUgaW4gUlRQQXJyaXZhbFN0YXRzCgkgIEl0IGlzIHRoZSBjdXJyZW50IHRpbWUsIGl0IGlzIHVucmVsYXRlZCB0byB3aGVuIHRoZSBwYWNrZXQgd2FzIGFjdHVhbGx5IHJlY2VpdmVkLgoKMjAxMC0wOS0xMyAxMjozMTo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogY29tcHV0ZSB0aGUgYXZlcmFnZSBjb3JyZWN0bHkgc2NhbGVkCgoyMDEwLTA2LTAxIDIwOjMxOjE4IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IENvdW50IHNlbnQgUlRDUCBwYWNrZXRzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGZpbmlzaGVkCgkgIElmIHRoZXkgYXJlIGNvdW50ZWQgYmVmb3JlIGNhbGxpbmcgZ3N0X3J0Y3BfYnVmZmVyX2VuZCgpLCB0aGVuIHRoZQoJICBzaXplIGlzIHdheSB0b28gYmlnLgoKMjAxMC0wNi0wMSAxOTo1MTozNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBnc3RydHBzZXNzaW9uOiBEb24ndCB1bnJlZiAgcGFkcyBpbiBmaW5hbGl6ZQoJICBUaGUgZ3N0cnRwc2Vzc2lvbiBvYmplY3QgaXMgbm90IGhvbGRpbmcgYW55IHJlZmVyZW5jZSB0byB0aGVtIGRpcmVjdGx5CgoyMDEwLTA5LTEyIDAwOjA5OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL1BPVEZJTEVTLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3IHNvdXBodHRwc3JjIG1lc3NhZ2VzCgoyMDEwLTA5LTEyIDAwOjA4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXA6IGhvb2sgdXAgaTE4biBiaXRzIGZvciBwbHVnaW4KCSAgQ2FsbCBiaW5kdGV4dGRvbWFpbigpIGV0Yy4KCjIwMTAtMDktMTIgMDA6MDQ6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cDogZml4IGVycm9yIG1lc3NhZ2VzCgkgIEVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSB0cmFuc2xhdGVkLiBVUklzIGFuZCBmaWxlbmFtZXMgc2hvdWxkIG5vdAoJICBiZSBwYXJ0IG9mIHRoZSBlcnJvciBtZXNzYWdlIHN0cmluZyB0aGF0J3Mgc2hvd24gdG8gdGhlIHVzZXIuCgkgIHNvdXBfbWVzc2FnZS0+cmVhc29uX3BocmFzZSBpcyBub3QgdHJhbnNsYXRlZCBhbmQgbm90IHN1aXRhYmxlIGFzCgkgIGVycm9yIG1lc3NhZ2UgZm9yIHVzZXJzIChzZWUgbGlic291cCBkb2N1bWVudGF0aW9uKS4gQWxzbyBmaXggdXAKCSAgZXJyb3IgY29kZXMgYSBiaXQsIGFzIGZhciBhcyBwb3NzaWJsZSB3aXRoIHRoZSBleGlzdGluZyBjb2Rlcy4KCjIwMTAtMDktMTAgMDk6NDM6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2UgaWYgYnVmZmVyIGFsbG9jIGZhaWxzIHdpdGggTk9UX0xJTktFRCBmbG93CgkgIFRoaXMgaXMgbm90IGZhdGFsLCBsZXQgdXBzdHJlYW0gaGFuZGxlIGl0LgoKMjAxMC0wOS0xMCAxODowNjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZG9uJ3QgY2xlYXIgc2RwIHdoZW4gc2V0IGFzIHVyaQoJICB3aGVuIHdlIHNldCB0aGUgU0RQIHdpdGggYW4gdXJpLCBkb24ndCBjbGVhciBpdCB3aGVuIHdlIGdvIHRvIFJFQURZLgoKMjAxMC0wOS0xMCAxODowMToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogdXNlIHNkcCB1cmkgcGFyc2UgbWV0aG9kCgkgIFVzZSB0aGUgc2RwIHBhcnNlIG1ldGhvZCB0aGF0IGRvZXMgcHJvcGVyIHVyaSBlc2NhcGluZy4KCjIwMTAtMDktMTAgMTY6NTk6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9jYW1jdHJsLmM6CgkgIGV4YW1wbGU6IGFkZCB2NGwyIGV4YW1wbGUsIGRlbW9uc3RyYXRpbmcgdGhlIHVzZSBvZiBnc3QgY29udHJvbGxlcgoKMjAxMC0wOS0xMCAxNjo1NToyNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc3JjOiBkb24ndCBza2lwIGNhbGN1bGF0aW5nIHRoZSBkdXJhdGlvbgoKMjAxMC0wNi0yMiAxNTo0ODowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvTWFrZWZpbGUuYW06CgkqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJICB2NGwyc3JjOiBhZGQgY29udHJvbGFibGUgY29sb3JiYWxhbmNlIHBhcmFtZXRlcnMKCSAgRXhwb3NlIGNvbG9yYmFsYW5jZSBjb250cm9scyBhcyBvYmplY3QgcHJvcGVydGllcyAobGlrZSB3ZSBkbyBvbiB4dmltYWdlc2luaykuCgkgIE1ha2UgdGhlbSBjb250cm9sYWJsZS4KCjIwMTAtMDktMTAgMTM6MjU6MzkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJICBydHBtcGFyb2J1c3RkZXBheTogZml4IHNvbWUgbWlzLWltcGxlbWVudGF0aW9uCgkgIEFsc28gYWRkIHNvbWUgZGVidWcuCgoyMDEwLTA5LTEwIDEzOjI0OjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSAgcnRwbXBhcm9idXN0ZGVwYXk6IHByb3Blcmx5IGluc2VydCBkdW1teSBidWZmZXJzCgoyMDEwLTA5LTEwIDExOjU1OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IGFkZCBydHNwLXNkcCBwcm90b2NvbCBzdXBwb3J0CgkgIEFsbG93IHNldHRpbmcgYW4gU0RQIHdpdGggdGhlIHJ0c3Atc2RwOi8vIHVybC4KCSAgQmFzZWQgb24gcGF0Y2ggZnJvbSBNYXJjbyBCYWxsZXNpby4KCSAgU2VlICM2MjgyMTQKCjIwMTAtMDktMTAgMTE6MzU6NTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJICBhbHBoYWNvbG9yOiBtYWtlIHBhc3N0aHJvdWdoIHdvcmsuCgoyMDEwLTA5LTA5IDIxOjQzOjQwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJICBtcDRhZGVwYXk6IHNtYWxsIGxvZ2dpbmcgY2xlYW51cCBhbmQgYWRkaXRpb24gdG8gZGVidWcgY29uZmlnIHBhcnNpbmcKCjIwMTAtMDktMDkgMjE6NDI6NDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSAgYWFzaW5rOiBmaXggY29udGV4dCBpbml0aWFsaXNhdGlvbiBhbmQgZnJlZWluZyB0byBub3QgbGVhawoKMjAxMC0wOS0wOSAyMTo0MDo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHRlc3RzOiBhbGxvdyBydW5uaW5nIHN0YXRlIHRlc3RzIGZvciBhbGwgZWxlbWVudHMKCSAgTm93IG9uZSBjYW4gdXNlIEdTVF9OT19TVEFURV9JR05PUkVfRUxFTUVOVFM9MSBtYWtlIGdlbmVyaWMvc3RhdGVzLmNoZWNrCgkgIHRvIHRyeSBlbGVtZW50cyB0aGF0IHdvdWxkIG5vcm1hbHkgYmUgc2tpcHBlZC4KCjIwMTAtMDktMDkgMTg6NDc6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJICB0ZXN0czogZml4IHJ0cGpwZWdwYXkgdGVzdAoJICBNYWtlIHRoZSBkYXRhIHdlIHNlbmQgdG8gdGhlIGpwZWcgcGF5bG9hZGVyIGJlIGEgdmFsaWQganBlZyBmaWxlIGJlY2F1c2UgdGhlCgkgIHBheWxvYWRlciBub3cgZXhwZWN0cyB0aGlzLgoKMjAxMC0wOS0wOSAxODo0NzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJICBydHBqcGVncGF5OiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMC0wOS0wOSAxNjozMTo1NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5LmM6CgkgIHJ0cG1wYXJvYnVzdGRlcGF5OiB1c2UgdmFsaWQgYml0cmF0ZSBmb3IgZHVtbXkgZnJhbWUKCjIwMTAtMDktMDggMTc6MDc6NTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgaWQzdjJtdXg6IEFkZHMgbWFwcGluZyBmb3IgYWxidW0gYXJ0aXN0CgkgIE1hcHMgR1NUX1RBR19BTEJVTV9BUlRJU1QgdG8gVFBFMiBpbiBpZDN2Mm11eAoKMjAxMC0wOS0wOCAxODozNTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVxdWlyZSBvcmMgMC40LjgKCSAgVGhlIGRlaW50ZXJsYWNlIHBsdWdpbiBhcHBhcmVudGx5IGZhaWxzIHRvIGNvbXBpbGUgd2l0aCBvbGRlciB2ZXJzaW9ucy4KCjIwMTAtMDktMDggMTc6NTA6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFFvUyBoYW5kbGluZyBsb2dpYyBvbmx5IGFwcGxpZXMgdG8gZm9yd2FyZCBwbGF5YmFjawoJICBGaXhlcyAjNjI4ODk0LgoKMjAxMC0wOS0wOCAxNzo0Mzo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHJlbW92ZSB1bnVzZWQgY29kZQoKMjAxMC0wOS0wOCAxNDozNjo0OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGZpeHVwIGxhc3QgY29tbWl0CgkgIFdlIG5lZWQgdG8gcHJldmVudCB0aGUgZXZlbnR1YWwgbGVhayBiZXR0ZXIuCgoyMDEwLTA5LTA4IDE0OjE2OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogY29kZSBjbGVhbnVwcwoJICBVc2UgZ19zbGlzdF9wcmVwZW5kIGFzIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIG9yZGVyLiBDaGVjayBmb3IgbGlzdCA9PSBOVUxMCgkgIGluc3RlYWQgb2YgaXRlcmF0aW5nIHRoZSBsaXN0IHRvIHNlZSBpZiBpdCBpcyBlbXB0eS4gTW92ZSBjdHggYWxsb2NhdGlvbiBkb3duCgkgIHRvIHByZXZlbnQgbGVhayBpbiBjYXNlIG9mIGZhaWx1cmUuCgoyMDEwLTA5LTA4IDA3OjEzOjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJICBydHBqcGVncGF5OiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgkgIEZpeGVzIGJ1ZyAjNjI5MDE4LgoKMjAxMC0wOS0wNyAxOTowMjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBzaW1wbGlmeSBjbG9jayBwcm92aWRlIGNvZGUKCSAgRG9uJ3QgbGVhayB0aGUgcHVsc2VzaW5rIGVsZW1lbnQgYnkgaGF2aW5nIHRoZSBjbG9jayBrZWVwIGEgcmVmIHRvIHRoZSBzaW5rLgoJICBDcmVhdGUgdGhlIGNsb2NrIG9ubHkgb25jZSBpbiB0aGUgY29uc3RydWN0b3IgYW5kIHVzZSB0aGUgYmFzZWF1ZGlvc2luayBjbG9jawoJICBjbGVhbnVwIGNvZGUuCgoyMDEwLTA5LTA3IDE3OjQ5OjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogbW92ZSB0aGUgY29udGV4dCB0YWJsZSBpbml0IHRvIF9nZXRfdHlwZSBwaGFzZQoJICBUaGlzIHNlZW1zIHRvIGZpeCB0aGUgaW52YWxpZCByZWFkcyBvbiBjb250ZXh0IHNodXRkb3duIGJldHRlciwgYWx0b3VnaAoJICBJIGNhbid0IHJlYWxseSBleHBsYWluLgoKMjAxMC0wOS0wNyAxNzowNjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogdXNlIG9sZGVyIGdfYXJyYXlfZnJlZQoJICBnX2FycmF5X3VucmVmKCkgaXMgb25seSBzaW5jZSAyLjIyCgoyMDEwLTA5LTA3IDE2OjQ5OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBhdm9pZCBpbnZhbGlkIGFkYXB0ZXIgZmx1c2ggb24gUW9TCgkgIEZpcnN0IHN0b3JlIHRoZSBhdmFpbGFibGUgZGF0YSBpbiB0aGUgYWRhcHRlciBpbiB0aGUgcmVtX2ltZ19sZW4gaW5zdGFuY2UgZmllbGQKCSAgYmVmb3JlIHRyeWluZyB0byBmbHVzaCB0aGUgYWRhcHRlciB3aXRoIHRoYXQgdmFsdWUgb24gUW9TLgoKMjAxMC0wOS0wNyAxNjo0MDowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJICBydHBqcGVncGF5OiBkbyBzb21lIG1vcmUgc2FuaXRpdHkgY2hlY2tzCgkgIFByb3RlY3Qgc29tZSBtb3JlIGFnYWluc3QgaW52YWxpZCBpbnB1dC4KCjIwMTAtMDktMDcgMTU6MjA6MTIgKzAyMDAgIEFtZXJpY2FuIER5bmFtaWNzIDxHU3RyZWFtZXItQnVncyBhdCB0eWNvc3AuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIGpwZWdwYXk6IGhhbmRsZSBjb3JydXB0ZWQganBlZyBiZXR0ZXIKCSAgUHJvdGVjdCBhZ2FpbnN0IGNvcnJ1cHRlZCBqcGVnIGlucHV0LgoKMjAxMC0wOS0wNyAxMzo1NTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkgIHJ2YXdkZXBheTogY2xlYW51cCB1bnVzZWQgZmllbGRzCgoyMDEwLTA5LTA3IDEzOjUxOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSAgdnJhd2RlcGF5OiBoYW5kbGUgaW52YWxpZCBwYXlsb2FkIGJldHRlcgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVhZCBtb3JlIGRhdGEgdGhhbiBhdmFpbGFibGUgaW4gdGhlIGlucHV0IGJ1ZmZlci4KCSAgQ2xpcCB0aGUgaW5wdXQgZGF0YSBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyLgoKMjAxMC0wOC0xNiAxNTozNTo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuaDoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmg6CgkgIHB1bHNlOiBhbGxvdyBzZXR0aW5nIHN0cmVhbSBwcm9wZXJ0aWVzCgkgIEFkZCBhICJwcm9wZXJ0aWVzIiBwcm9wZXJ0eSB0byB0aGUgZWxlbWVudHMgdG8gYWxsb3cgc2V0dGluZyBleHRyYSBzdHJlYW0KCSAgcHJvcGVydGllcy4KCSAgRml4ZXMgIzUzNzU0NAoKMjAxMC0wOS0wNyAxMjowODoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1ZjMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJICBkb2NzOiByZW1vdmUgaW50cm9zcGVjdGlvbiBpbmZvIGZvciBnZGtwaXhidWYzIHBsdWdpbiBhbmQgdXBkYXRlIHZlcnNpb24gZm9yIG90aGVycwoJICBUaGUgdmVyc2lvbnMgZ290IGFjY2lkZW50YWxseSByZXZlcnRlZCB0byBhIHByZS1yZWxlYXNlIHZlcnNpb24sIGZpeCB0aGF0LgoKMjAxMC0wOS0wNyAxMTo0MjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGMyZTEwYmYgdG8gYWEwZDFkMAoKMjAxMC0wOS0wNyAwOToyMDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkgIGNtbWxkZWM6IGZpeCBmbG93IHJldHVybiBoYW5kbGluZwoJICBGaXggYnVnZ3kgR1NUX0ZMT1dfSVNfRkFUQUwgc3Vic3RpdHV0aW9uLCBhbmQgJ21ha2UgY2hlY2snOgoJICAtICBpZiAoIUdTVF9GTE9XX0lTX0ZBVEFMIChkZWMtPmZsb3dfcmV0dXJuKSAmJiAhZGVjLT5zZW50X3Jvb3QpIHsKCSAgKyAgaWYgKGRlYy0+Zmxvd19yZXR1cm4gIT0gR1NUX0ZMT1dfT0sgJiYgIWRlYy0+c2VudF9yb290KSB7CgoyMDEwLTA5LTA3IDAwOjI3OjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZG9uJ3QgZnJlZSB0aGUgY29udGV4dCBtdWx0aXBsZSB0aW1lcwoJICBBcHBhcmVudGx5IHRoZSBjbG9zZSBmdW5jdGlvbiBvZiB0aGUgcmluZy1idWZmZXIgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4KCjIwMTAtMDgtMTIgMTI6MzM6MDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkgIHJ0cG1wNGFkZXBheTogZ3JhYiB0aGUgc2FtcGxpbmcgYXJ0ZSBhbmQgcHV0IGludG8gY2FwcwoJICBUaGlzIGlzIG5lZWRlZCB0byBiZSBhYmxlIHRvIG11eCB0aGUgcmVjZWl2ZWQgYXVkaW8gaW50byBtcDQgKGluIHRoZSBjYXNlIG9mCgkgIGFhYykuIEZpeGVzICM2MjU4MjUuCgoyMDEwLTA5LTA2IDE0OjQwOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkgIHJ0cDogbWFyayBjb25zdGFudCB0YWJsZXMgYXMgY29uc3QKCjIwMTAtMDgtMTggMTQ6NDA6NDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSAgcnRwYW1ycGF5OiBwcm9wZXJseSBzdXBwb3J0IHBlcmZlY3QtcnRwdGltZQoKMjAxMC0wOC0xOCAxMTo0MjozMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJICBydHBhbXJwYXk6IHByb3BlciBkdXJhdGlvbiBmb3IgbXVsdGlwbGUgZnJhbWUgcGF5bG9hZAoKMjAxMC0wOC0xOCAxMTo0MjowNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkgIHJ0cGFtcihkZSlwYXk6IHN1cHBvcnQgQU1SLVdCIFNJRCBmcmFtZQoKMjAxMC0wOC0xOCAxMTozOTowNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5cGF5Lmg6CgkgIHJ0cGc3MjlwYXk6IHByb3Blcmx5IHN1cHBvcnQgcGVyZmVjdC1ydHB0aW1lCgoyMDEwLTA4LTE2IDE2OjA4OjA0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogaW1wcm92ZSBmcmFtZXJhdGUgZGV0ZXJtaW5pbmcKCSAgQ29sbGVjdCBhIGxpbWl0ZWQgbnVtYmVyIG9mIHN0YXJ0aW5nIHNhbXBsZSBkdXJhdGlvbnMgYW5kIHVzZSB0aGUgbWVkaWFuIG9mCgkgIHRob3NlIHRvIGRldGVybWluZSBjYXBzIGZyYW1lcmF0ZS4KCjIwMTAtMDgtMTcgMTI6MDg6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGF0dGVtcHQgbW9yZSByZXN5bmMgdXBvbiAoY2x1c3RlcikgcGFyc2UgZXJyb3IKCSAgVGhhdCBpcywgaWYgcGFyc2UgZXJyb3Igb2NjdXJzIGluIHN0YXRlIHJlcXVpcmluZyB0byBtb3ZlIHRvIG5leHQgY2x1c3RlciwKCSAgYW5kIGRvaW5nIHNvIHRvIHRoZSBleHBlY3RlZCBuZXh0IHBvc2l0aW9uIG9mIGNsdXN0ZXIgZmFpbHMsIHRoZW4gc2NhbiBmb3IgYQoJICBuZXh0IGNsdXN0ZXIgZnJvbSBwcmVzZW50IHBvc2l0aW9uIGFuZCByZXN1bWUgZnJvbSB0aGVyZS4KCSAgRml4ZXMgIzYyMDc5MC4KCjIwMTAtMDgtMTYgMTY6MDU6NDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IG5vdCBzbyBmYXRhbCBlcnJvciBoYW5kbGluZwoJICBJZiBzb21lIGJpdHMgb3V0IG9mIHBsYWNlIGluIGJsb2NrKGdyb3VwKSBwYXJzaW5nLCBmb3JlZ28gYW5kIG1vdmUgdG8gbmV4dC4KCSAgQWxzbyBza2lwIGxhcmdlIGJsb2NrcyBpbiBwdWxsIG1vZGUsIGJ1dCBuZWVkIHRvIGdpdmUgdXAgaW4gcHVzaCBtb2RlLgoJICBGaXhlcyAjNjI2NDYzLgoJICBJbXByb3ZlcyAjNjIwNzkwLgoKMjAxMC0wNy0yNiAxNTo1MTo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IGFkZGl0aW9uYWwgcGFyc2UgcmVjb3ZlcnkKCSAgSW4gcGFydGljdWxhciwgdXBvbiBwYXJzZSBmYWlsdXJlIGluIG9uZSBjbHVzdGVyLCB3ZSBtYXkgZm9yZWdvIHJlbWFpbmluZwoJICBjb250ZW50IGFuZCB0cnkgcmVzdW1pbmcgZnJvbSBuZXh0IGNsdXN0ZXIgb253YXJkcy4KCSAgRml4ZXMgIzYyMDc5MC4KCjIwMTAtMDktMDYgMTI6MjI6MTEgKzAyMDAgIEFtZXJpY2FuIER5bmFtaWNzIDxHU3RyZWFtZXItQnVncyBhdCB0eWNvc3AuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IEFkZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgdWRwc3JjIGJ1ZmZlciBzaXplCgkgIEFkZCBhIG5ldyB1ZHAtYnVmZmVyLXNpemUgcHJvcGVydHkgdG8gY29uZmlndXJlIHRoZSBidWZmZXItc2l6ZSBvbiB0aGUgdWRwc3JjCgkgIGVsZW1lbnRzLgoJICBGaXhlcyAjNjI4MDU4CgoyMDEwLTA4LTI3IDE3OjU4OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBydHBiaW46IGFkZCBudHAtc3luYyBwcm9wZXJ0eQoJICBBZGQgYW4gbnRwLXN5bmMgcHJvcGVydHkgdGhhdCB3aWxsIHN5bmMgdGhlIHJlY2VpdmVkIHN0cmVhbXMgdG8gdGhlIHNlcnZlcgoJICBOVFAgdGltZS4gVGhpcyByZXF1aXJlcyBzeW5jaHJvbml6ZWQgTlRQIHRpbWVzIGJldHdlZW4gdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXJzLAoJICBsaWtlIHdpdGggbnRwZC4KCSAgQmFzZWQgb24gcGF0Y2ggZnJvbSBUaGlqcyBWZXJtZWlyLgoJICBGaXhlcyAjNjI3Nzk2CgoyMDEwLTA4LTI3IDEyOjE0OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogcmVuYW1lIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW9uCgoyMDEwLTA4LTI3IDExOjA3OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogcmVuYW1lIHNvbWUgdmFyaWFibGVzIGZvciBsZXNzIGNvbmZ1c2lvbgoKMjAxMC0wOC0yNyAxMDo0MTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJICBydHBqaXR0ZXJidWZmZXI6IG1vdmUgY29tbWVudCB3aGVyZSBpdCBiZWxvbmdzCgoyMDEwLTA4LTI2IDE2OjAwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBzZXNzaW9uOiBtaW5vciBjbGVhbnVwcwoJICBNYWtlIGNsb2NrIHNuYXBzaG90cyBtb3JlIGFjY3VyYXRlIGJ5IG9ubHkgc2FtcGxpbmcgdGhlIHNhbWUgY2xvY2sgb25jZS4KCjIwMTAtMDgtMjYgMTA6NTg6MjYgKzAyMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgcnRwYmluOiBhZGQgdXNlLXBpcGVsaW5lLWNsb2NrIHByb3BlcnR5CgkgIFdpdGggdGhpcyBwcm9wZXJ0eSBSVENQIFNSIE5UUCB0aW1lcyBjYW4gYmUgYmFzZWQKCSAgb24gdGhlIHN5c3RlbSBjbG9jayAobWF5YmUgc3luY2VkIHdpdGggbnRwZCkgb3IgdGhlCgkgIGN1cnJlbnQgcGlwZWxpbmUgY2xvY2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc3OTYKCjIwMTAtMDgtMjUgMDk6NTg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwZXh0LmM6CgkgIHJ0c3BleHQ6IHN0b3AgY29uZmlndXJhdGlvbiBvbiBmaXJzdCBmYWlsdXJlCgkgIFN0b3AgdGhlIGNvbmZpZ3VyYXRpb24gb2YgYSBzdHJlYW0gYXMgc29vbiBhcyBzb21lIG9mIHRoZSBleHRlbnNpb25zIHJldHVybgoJICBGQUxTRS4KCSAgRml4ZXMgIzU4MTI5NAoKMjAxMC0wOC0yMCAxNTozNToyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgIG11bHRpZmRzaW5rOiB1c2UgcmVmY291bnQgdG8gY291bnQgaG9zdC9wb3J0IGR1cGxpY2F0ZXMKCSAgSW5zdGVhZCBvZiBhZGRpbmcgbXVsdGlwbGUgY2xpZW50IHN0cnVjdHVyZXMgZm9yIHRoZSBzYW1lIGhvc3QvcG9ydCBwYWlyLCB1c2UgYQoJICByZWZjb3VudC4KCSAgQWRkIGEgc2VuZC1kdXBsaWNhdGVzIGZlYXR1cmUgdGhhdCBhbGxvd3MgeW91IHRvIGRpc2FibGUgc2VuZGluZyBtdWx0aXBsZSBjb3BpZXMKCSAgb2YgdGhlIHNhbWUgcGFja2V0IHRvIHRoZSBzYW1lIGhvc3Qgd2hlbiBpdCB3YXMgYWRkZWQgbXVsdGlwbGUgdGltZXMuIFRoZQoJICBzZW5kLWR1cGxpY2F0ZXMgcHJvcGVydHkgaXMgYnkgZGVmYXVsdCBzZXQgdG8gVFJVRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCSAgYWx0aG91Z2ggaXQgaXMgdmVyeSBsaWtlbHkgdGhhdCB0aGlzIGlzIG5vdCBkZXNpcmVkIGJlaGF2aW91ci4KCjIwMTAtMDgtMTkgMTc6MDY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGltcGxlbWVudCBjdXN0b20gZXZlbnQgaGFuZGxlcgoJICBFeHRlbmQgdGhlIF9wdXNoX2V2ZW50KCkgZnVuY3Rpb24gc28gdGhhdCBpdCBjYW4gYWxzbyBzZW5kIGV2ZW50cyB0byB0aGUgdWRwCgkgIHNvdXJjZXMgd2hlbiBhc2tlZC4KCSAgSW1wbGVtZW50IGEgY3VzdHVtIHNlbmRfZXZlbnQgZnVuY3Rpb24gdGhhdCBjb3JyZWN0bHkgZGlzcGF0Y2hlcyB0aGUgZG93bnN0cmVhbQoJICBldmVudHMgaW4gVENQIG1vZGUuIFRoaXMgZml4ZXMgc2VuZGluZyBFT1MgdG8gcnRzcHNyYyBhbmQgaGF2ZSBpdCBwdXNoIHRoZSBFT1MKCSAgZG93bnN0cmVhbS4KCjIwMTAtMDgtMTkgMTE6Mzc6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IHVzZSBfZ2V0X2NhcHNfcmVmZmVkKCkgd2hlbiB3ZSBjYW4KCSAgVXNlIF9nZXRfY2Fwc19yZWZmZWQoKQoJICBBZGQgc29tZSBtb3JlIGRlYnVnIHdoZW4gb3BlbmluZyB0aGUgc2VydmVyIGNvbm5lY3Rpb24uCgoyMDEwLTA4LTE2IDExOjI5OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuaDoKCSAganBlZ2RlcGF5OiBoYW5kbGUgRElTQ09OVCBhbmQgcmVzZXQgc3RhdGUKCSAgUHV0IGEgRElTQ09OVCBldmVudCBvbiB0aGUgbmV4dCBvdXRwdXQgYnVmZmVyIHdoZW4gdGhlIGlucHV0IGJ1ZmZlciBoYWQgYQoJICBESVNDT05ULgoJICBNYWtlIHN1cmUgd2UgY2xlYXIgb3VyIGFkYXB0ZXIgYW5kIHJlc2V0IG91ciBzdGF0ZSBiZWZvcmUgZ29pbmcgdG8gUEFVU0VELgoJICBGcmVlIHRoZSBxdGFibGVzLgoJICBGaXhlcyAjNjI2ODY5CgoyMDEwLTA4LTE2IDExOjI3OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBnNzI5cGF5Lmg6CgkgIGc3MjlwYXk6IGV4dGVuZCBmcm9tIHJpZ2h0IHBhcmVudAoKMjAxMC0wOS0wNiAwOTo1NzoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGFkZCBzaW5jZSBkb2NzIGZvciBuZXcgcHJvcGVydHkuCgoyMDEwLTA4LTMwIDE2OjQ1OjQ4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHVzZSBHU1RfQk9JTEVSUExBVEUgbWFjcm8KCjIwMTAtMDgtMTYgMTc6MjM6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW1peGVyOiBhZGQgYSBleGFtcGxlIHNob3dpbmcgaG93IHRvIHVzZSB0aGUgY2hpbGQgcHJvcGVydGllcwoJICBTaG93IGhvdyB0byBwb3NpdGlvbiBhbmQgc2V0IHRoZSBhbHBobyBvZiB0aGUgdmlkZW9zIG9uIGdzdC1sYXVuY2guCgoyMDEwLTA4LTE2IDE1OjE5OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IG1vdmUgdGhlIHByb3BlcnR5LXNldHRlciB0byB0aGUgZ2V0dGVyLgoKMjAxMC0wOC0xMSAxNTo0ODoxOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIHNwZWN0cnVtIG9ubHkgYWdncmVnYXRlIG1hZ25pdHVkZS9waGFzZSBpZiB1c2VyIGFza3MgZm9yIGl0CgoyMDEwLTA4LTExIDE1OjQ1OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IGltcHJvdmUgcGVyZm9ybWFuY2Ugd2l0aCBsb2NhbCB2YXJzCgkgIFVzZSAnaW5wdXQnIGluc3RlYWQgb2YgJ3NwZWN0cnVtLT5pbnB1dCcgd2hpY2ggd2FzIGludGVuZGUgYWxyZWFkeSAodmFyaWFibGUKCSAgZXhpc3RzLCBidXQgbm90IHVzZWQgZXZlcnl3aGVyZSkuIEFsc28gdXNlIGEgbG9jYWwgdmVyc2lvbiBvZgoJICAnc3BlY3RydW0tPmlucHV0X3BvcycuCgoyMDEwLTA4LTExIDE1OjQ0OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IGNvZGUgY2xlYW51cAoJICBNb3JlIGNvbW1lbnRzIGFuZCBsb2dnaW5nLiBFeHRyYWN0IG9uZSBjb21wbGV4IGNvbmRpdGlvbiB0byBhIHZhcmlhYmxlLiBSZW9yZGVyCgkgIHNvbWUgY29kZSBmb3IgcmVhZGFiaWxpdHkuCgoyMDEwLTA4LTExIDE1OjQwOjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IGltcHJvdmUgcHJvcGVydHkgc2V0dGVyCgkgIGNvbnNpc3RlbnRseSBvbmx5IHVwZGF0ZSBpZiB0aGUgcHJvcGVydHkgYWN0dWFseSBjaGFuZ2VkIHRoZSB2YWx1ZS4gRG8gaXQKCSAgd2l0aG91dCByZWFkaW5nIHRoZSBndmFsdWUgdHdpY2UuIE5vIG5lZWQgdG8gcmVzZXQgdGhlIHNwZWN0cnVtIGFuYWx5emVyIGZvcgoJICB0aHJlc2hvbGQgY2hhbmdlcy4KCjIwMTAtMDgtMTEgMTU6Mzg6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICBzcGVjdHJ1bTogYWRkIGhlbHBlciB0byBvbmx5IGZsdXNoIHJpbmdidWZmZXIgZGF0YSB3aXRob3V0IHJlc2V0dGluZyB0aGUgZmZ0CgkgIFJlZHVjZXMgc29tZSBkdXBsaWNhdGVkIGNvZGUgYXMgd2VsbC4KCjIwMTAtMDgtMTEgMTI6NDU6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgc3BlY3RydW06IG1vcmUgY29tbWVudHMKCjIwMTAtMDktMDUgMjI6MjI6NDIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBEb2N1bWVudCBtZXRob2RzIHdpdGggYmFkIHF1YWxpdHkKCjIwMTAtMDktMDUgMjI6MTk6NTYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmM6CgkgIGRlaW50ZXJsYWNlOiBpbml0aWFsaXplIGFsbCBkZWludGVybGFjZSBjbGFzcyBtZW1iZXJzCgkgIFRoaXMgZml4ZXMgVVlWWSBkZWludGVybGFjaW5nLgoKMjAxMC0wOS0wNSAxODo1ODoxMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQzZDlhY2YgdG8gYzJlMTBiZgoKMjAxMC0wOS0wNSAxODo0NToyMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJICB2aWRlb21peGVyOiBvcmNfaW5pdCgpIGRvZXNuJ3QgbmVlZCB0byBiZSBjYWxsZWQKCSAgVGhlcmUncyBubyBuZWVkIHRvIGNhbGwgb3JjX2luaXQoKSB1bmxlc3MgeW91J3JlIHVzaW5nIHRoZSBPcmMKCSAgQVBJIGRpcmVjdGx5LiAgQWxsIGNvZGUgY3JlYXRlZCBieSBvcmNjIGlzIGd1YXJhbnRlZWQgdG8gd29yawoJICB3aXRob3V0IGNhbGxpbmcgb3JjX2luaXQoKS4KCjIwMTAtMDktMDUgMTg6NDA6NDggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUub3JjOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJICBkZWludGVybGFjZTogRml4IGdyZWVkeWwgT3JjIGltcGxlbWVudGF0aW9uCgkgIFRvIGFncmVlIHdpdGggdGhlIHByZXZpb3VzIEMvYXNtIGNvZGUuCgoyMDEwLTA5LTA1IDIyOjMxOjM0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIyLmM6CgkgIHZpZGVvbWl4ZXIyOiBGYWlsIHdoZW4gY2FwcyBhcmUgaW5jb21wYXRpYmxlCgkgIERvIG5vdCBmb3JnZXQgdG8gcmV0dXJuIGZhbHNlIHdoZW4gY2FwcyBhcmUgaW5jb21wYXRpYmxlLgoKMjAxMC0wOS0wNSAyMDo1Njo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJICB2aWRlb21peGVyOiBPbmx5IGluaXQgb3JjIGlmIGl0IGlzIGF2YWlsYWJsZQoJICBQdXQgc29tZSBpZmRlZiBhcm91bmQgb3JjX2luaXQgdG8gcHJldmVudCBidWlsZCBlcnJvcnMKCjIwMTAtMDktMDUgMTI6MTc6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlYzYwMjE3IHRvIGQzZDlhY2YKCjIwMTAtMDktMDQgMTI6NDY6MzEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5oOgoJICBkZWludGVybGFjZTogVXBkYXRlIGRpc3RlZCBPcmMgZmlsZXMKCjIwMDktMDYtMjkgMTE6NDM6MDcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkgIHY0bDJzcmM6IGFkZCBkZWNpbWF0ZSBwcm9wZXJ0eQoKMjAxMC0wNi0wNCAxMjowOToyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvZHYvTWFrZWZpbGUuYW06CgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9kdi9nc3RzbXB0ZXRpbWVjb2RlLmg6CgkgIGR2ZGVtdXg6IFBhcnNlIFNNUFRFIHRpbWUgY29kZXMKCjIwMTAtMDgtMjMgMDI6NTA6MzYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJICBkZWludGVybGFjZTogcmVtb3ZlIGFzc2VtYmx5IGNvZGUgaW4gZmF2b3Igb2Ygb3JjCgoyMDEwLTA2LTA4IDE0OjU0OjQ5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUub3JjOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJICBkZWludGVybGFjZTogaW1wbGVtZW50IGdyZWVkeSBpbiBPcmMKCjIwMTAtMDktMDQgMTE6NDM6MjEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5oOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5oOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0LmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuaDoKCSAgdXBkYXRlIGRpc3RlZCBPcmMgZmlsZXMKCjIwMTAtMDktMDIgMTQ6MzQ6NTAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkgIGFscGhhY29sb3I6IEZpeCBjbGFzc2lmaWNhdGlvbgoJICBUaGlzIGlzIG5vIGVmZmVjdCBidXQgYSBjb252ZXJ0ZXIuIEZpeGVzIGJ1ZyAjNjI4NjA4LgoKMjAxMC0wOS0wMiAxMToxOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMudHlwZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmMy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjIuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlcjJwYWQuaDoKCSAgdmlkZW9taXhlcjI6IEFkZCBkb2N1bWVudGF0aW9uIGFuZCBhZGQgdG8gdGhlIGRvY3MKCjIwMTAtMDctMjYgMTY6MDc6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBnc3QvdmlkZW9taXhlci9nc3Rjb2xsZWN0cGFkczIuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyMi5oOgoJICB2aWRlb21peGVyMjogQWRkIHZpZGVvbWl4ZXIyIGVsZW1lbnQKCSAgVGhpcyBpcyBiYXNlZCBvbiBjb2xsZWN0cGFkczIgYW5kIGlzIHN5bmNocm9uaXppbmcKCSAgYWxsIHN0cmVhbXMgYmFzZWQgb24gdGhlIHJ1bm5pbmcgdGltZS4KCSAgTmV3IGZlYXR1cmVzIGNvbXBhcmVkIHRvIG9sZCB2aWRlb21peGVyOgoJICAqIFN5bmNocm9uaXppbmcgZnJhbWVzIG9uIHRoZSBydW5uaW5nIHRpbWUKCSAgKiBJbXByb3ZlZCBhbmQgc2ltcGxpZmllZCBuZWdvdGlhdGlvbgoJICAqIEZ1bGwgUW9TIHN1cHBvcnQKCSAgKiBWYXJpYWJsZSBmcmFtZXJhdGUgc3VwcG9ydAoJICBGaXhlcyBidWcgIzYyNjA0OCwgIzYyNDkwNS4KCjIwMTAtMDktMDEgMTE6MTE6MzQgKzAyMDAgIFBhdmVsIEtvc3R5dWNoZW5rbyA8c2hwcm90eEBnbWFpbC5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogUmVsYXggcGFyc2luZyBvZiBkYXRlIHRhZ3MKCSAgQmVmb3JlIHdlIHJlcXVpcmVkIGEgY29tcGxldGUgZGF0ZSBpbiBtYXRyb3NrYWRlbXV4IGJ1dCBpbgoJICBpZDNkZW11eCBmb3IgZXhhbXBsZSBvbmx5IHRoZSB5ZWFyIG9yIHllYXIgYW5kIG1vbnRoIHdhcyBwb3NzaWJsZSB0b28uCgkgIEZpeGVzIGJ1ZyAjNjI4NDU0LgoKMjAxMC0wOC0zMCAxOTowMzo1MiArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IFVzZSBHc3RCYXNlU3JjOjpibG9jay1zaXplIGFzIGZhbGxiYWNrIHNpemUKCjIwMTAtMDgtMzAgMTg6MzY6NTQgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IEZpeCB1c2luZyBtcGVndHMgdmlhIHRoZSBtbWFwIGludGVyZmFjZQoJICBNUEVHIGRvZXNuJ3QgaGF2ZSBhIHN0YXRpYyBzaXplIHBlciBmcmFtZSwgc28gZG9uJ3QgcHJldGVuZCBpdCBoYXMgb25lCgkgIGFuZCBmYWlsIHdoZW4gY2FwdHVyaW5nIGJlY2F1c2UgaXQgZG9lc24ndCBtYXRjaC4gSW5zdGVhZCBtYXJrIHRoZSBzaXplCgkgIGFzIHVua25vd24gYW5kIGxldCB0aGUgcmVhZCBmcmFtZSBncmFiYmluZyBtZXRob2QgdXNlIGEgcmVhc29uYWJsZSBmYWxsYmFjawoJICB2YWx1ZSAoYXNzdW1pbmcgdGhhdCdzIG9ubHkgZm9yIGFjdHVhbCBzdHJlYW1pbmcgZm9ybWF0cykKCSAgRml4ZXMgYnVnICM2MjgzNDkuCgoyMDEwLTA4LTI3IDE4OjE1OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICB3YXZwYWNrcGFyc2U6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI3IDE4OjEzOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkgIHBuZ2RlYzogRG9uJ3QgdXNlIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCSAgQW5kIGRvbid0IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBpZiBkb3duc3RyZWFtIHJldHVybnMgVU5FWFBFQ1RFRC4KCjIwMTAtMDgtMjcgMTg6MDk6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSAgZHZkZW11eDogRG9uJ3QgdXNlIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCjIwMTAtMDgtMjcgMTg6MDU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBEb24ndCB1c2UgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbmQgZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIGlmIGJ1ZmZlciBhbGxvY2F0aW9uIGZhaWxlZCBiZWNhdXNlCgkgIG9mIFVORVhQRUNURUQsIHdoaWNoIG9ubHkgbWVhbnMgdGhhdCBkb3duc3RyZWFtIHdhbnRzIHVzIHRvIEVPUyBub3cuCgoyMDEwLTA4LTI3IDE4OjAyOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jL2RlYzogRG9uJ3QgdXNlIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCSAgQW5kIHByb3Blcmx5IGhhbmRsZSBVTkVYUEVDVEVEIGFuZCBXUk9OR19TVEFURS4KCjIwMTAtMDgtMjcgMTc6NTI6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmM6CgkgIGNtbWxkZWMvZW5jOiBEb24ndCB1c2UgR1NUX0ZMT1dfSVNfRkFUQUwoKQoJICBBbmQgYXMgYSByZXN1bHQsIGRvbid0IGlnbm9yZSBXUk9OR19TVEFURSBhbmQgTk9UX0xJTktFRC4KCSAgQm90aCBtZWFuIHRoYXQgaXQncyBhIGdvb2QgaWRlYSB0byBwYXNzIHRoZW0gdXBzdHJlYW0gaW5zdGVhZAoJICBvZiBwcmV0ZW5kaW5nIHRoYXQgZXZlcnl0aGluZyBpcyBnb29kLgoKMjAxMC0wOC0yNyAxNzo0NzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI3IDE3OjQ1OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogRG9uJ3QgdXNlIEdTVF9GTE9XX0lTX0ZBVEFMKCkgYW5kIEdTVF9GTE9XX0lTX1NVQ0NFU1MoKQoKMjAxMC0wOC0yNyAxNzozOTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI3IDE3OjM3OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBEb24ndCB1c2UgR1NUX0ZMT1dfSVNfRkFUQUwoKQoKMjAxMC0wOC0yNyAxNzozNTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkgIHJuZGJ1ZmZlcnNpemU6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI3IDE3OjM1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgoyMDEwLTA4LTI3IDE3OjMyOjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IERvbid0IHVzZSBHU1RfRkxPV19JU19GQVRBTCgpCgkgIEFuZCBkb2N1bWVudCB3aHkgd3Jvbmctc3RhdGUgZG9lc24ndCBuZWVkIGFuIGVycm9yIG1lc3NhZ2UuCgoyMDEwLTA4LTI2IDEzOjQ0OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBGYWlsIGdyYWNlZnVsbHkgaWYgbm8gdGhyZWFkZWQgUEEgbWFpbmxvb3AgY2FuIGJlIGNyZWF0ZWQKCSAgRml4ZXMgYnVnICM2MjgwMjAuCgoyMDEwLTA4LTI0IDE1OjExOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5oOgoJICB2aWRlb21peGVyOiBVcGRhdGUgZGlzdGVkIE9SQyBmaWxlcwoKMjAxMC0wOC0yMyAxNTo0NDo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9tbXguaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMub3JjOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IE9wdGltaXplIEFSR0IgYmxlbmRpbmcgYW5kIGltcGxlbWVudCBCR1JBIGJsZW5kaW5nIHdpdGggb3JjCgkgIFRoaXMgbm93IG1lYW5zLCB0aGF0IHdlIGhhdmUgYWJzb2x1dGVseSBubyBoYW5kd3JpdHRlbiBhc3NlbWJseSBhbnltb3JlCgkgIGluIHZpZGVvbWl4ZXIgYW5kIGl0J3MgYWxzbyBmYXN0ZXIgbm93IHdoZW4gdXNpbmcgU1NFLgoKMjAxMC0wOC0yMiAwMTo1ODowNSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy5vcmM6CgkgIHZpZGVvbWl4ZXI6IEFkZCBvcmMgaW1wbGVtZW50YXRpb24gZm9yIGJsZW5kaW5nCgkgIHZpZGVvbWl4ZXI6IEFkZCBvcmMgaW1wbGVtZW50YXRpb24gZm9yIGJsZW5kaW5nCgoyMDEwLTA4LTIyIDAxOjU0OjE2IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogRml4IGV4YW1wbGUgcGlwZWxpbmVzCgkgIHZpZGVvbWl4ZXI6IEZpeCBleGFtcGxlIHBpcGVsaW5lcwoKMjAxMC0wOC0yMCAxMTo0MTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogQWRkIHRlc3QgZm9yIGNoZWNraW5nIGlmIGltYWdlZnJlZXplIGNvcnJlY3RseSByZXR1cm5zIFVORVhQRUNURUQgYWZ0ZXIgdGhlIGZpcnN0IGJ1ZmZlcgoKMjAxMC0wOC0yMCAxMTozODowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogQWRkIHRlc3QgZm9yIGJ1ZmZlcmFsbG9jIHBhc3N0aHJvdWdoCgoyMDEwLTA4LTIwIDEwOjM1OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBGaXggcmFjZSBjb25kaXRpb25zIGluIHRoZSB1bml0IHRlc3QKCSAgSWYgc2V0dGluZyB0aGUgcGlwZWxpbmUgdG8gUExBWUlORyBiZWZvcmUgaXNzdWluZyB0aGUgc2VlaywgYnVmZmVycwoJICBhcmUgYWxyZWFkeSBhcnJpdmluZyBhdCB0aGUgc2luayBiZWZvcmUgdGhlIHNlZWsgaXMgaGFuZGxlZCBhbmQKCSAgd2lsbCBoYXZlIHRoZSB3cm9uZyB0aW1lc3RhbXBzIGFuZCBldmVyeXRoaW5nLgoJICBGaXhlcyBidWcgIzYyNTU0Ny4KCjIwMTAtMDgtMjAgMTA6MzQ6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5oOgoJICBpbWFnZWZyZWV6ZTogRml4IGFub3RoZXIgc3VidGxlIHJhY2UgY29uZGl0aW9uIHJlbGF0ZWQgdG8gc3RhcnRpbmcgdGhlIHNyY3BhZCB0YXNrCgkgIER1ZSB0byBhIHNlZWsgdGhlIHNyY3BhZCB0YXNrIGNvdWxkIGJlIHN0YXJ0ZWQgaW4gcmFyZSBjaXJjdW1zdGFuY2VzIGFsdGhvdWdoCgkgIGl0IHNob3VsZG4ndCBiZSBzdGFydGVkIGFueW1vcmUgYmVjYXVzZSBubyB1cHN0cmVhbSBidWZmZXIgaXMgYXZhaWxhYmxlLgoKMjAxMC0wOC0yMCAxMDoyNDozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmg6CgkgIGltYWdlZnJlZXplOiBQcm90ZWN0IHRoZSBmbHVzaGluZy1zZWVrIHZhcmlhYmxlIGJ5IHRoZSBzcmNwYWQncyBzdHJlYW0gbG9jawoJICBUaGlzIGZpeGVzIGEgc3VidGxlIHJhY2UgY29uZGl0aW9uLCB0aGF0IGNhdXNlZCBidWZmZXJhbGxvYyB0byBmYWlsCgkgIHdpdGggd3Jvbmctc3RhdGUgZHVlIHRvIGEgc2VlayBidXQgY2F1c2VkIGl0IHRvIGJlIG5vdCByZXRyaWVkIGFzCgkgIGl0IHNob3VsZC4KCjIwMTAtMDgtMjAgMDk6MTQ6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBBbHdheXMgZ2VuZXJhdGUgYSBwZXJmZWN0bHkgdGltZXN0YW1wZWQgc3RyZWFtCgkgIEJlZm9yZSB0aGVyZSBjb3VsZCBiZSByb3VuZGluZyBlcnJvcnMgd2hlbiBjYWxjdWxhdGluZyB0aGUgZHVyYXRpb24sCgkgIHJlc3VsdGluZyBpbiB0aW1lc3RhbXAgKyBkdXJhdGlvbiBiZWluZyBzbWFsbGVyIHRoYW4gdGhlIG5leHQgYnVmZmVyJ3MKCSAgdGltZXN0YW1wLgoKMjAxMC0wOC0xOSAxODozODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogT25seSBpbmNsdWRlIHRoZSBzZXJ2ZXIgbmFtZSBpbiB0aGUgY29udGV4dCBuYW1lIGlmIGl0J3Mgbm90IE5VTEwKCjIwMTAtMDgtMTggMTY6Mzc6NDEgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgcHVsc2VzaW5rOiBBZGQgImNsaWVudCIgcHJvcGVydHkgdG8gc2V0IHRoZSBQQSBjbGllbnQgbmFtZQoJICBBbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIG1vZGlmeSB0aGUgY2xpZW50IG5hbWUgdXNlZCB0byBjb25uZWN0IHdoZW4KCSAgY29ubmVjdGluZyB0byB0aGUgUHVsc2VBdWRpbyBkYWVtb24uIE5vdGUgaG93ZXZlciB0aGF0IHVwZGF0aW5nIHRoZQoJICBwcm9wZXJ0eSBhZnRlciB0aGUgZWxlbWVudCByZWFjaGVkIHRoZSBSRUFEWSBzdGF0ZSB3aWxsIGhhdmUgbm8KCSAgZWZmZWN0IHVudGlsIHRoZSBuZXh0IE5VTEwtPlJFQURZIHRyYW5zaXRpb24uCgkgIEZpeGVzIGJ1ZyAjNjI3MTc0LgoKMjAxMC0wOC0xOSAxNzo1OTowOSArMDIwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogSW1wcm92ZSBlcnJvciBtZXNzYWdlcwoJICBCZWZvcmUgdGhleSBjb250YWluZWQgdGhlIFVSTCBiZWZvcmUgdGhlIGFjdHVhbCBmYWlsdXJlLiBUaGUgb3RoZXIKCSAgd2F5IGFyb3VuZCBtYWtlcyBtb3JlIHNlbnNlIGFuZCB3ZSBkbyB0aGUgc2FtZSBpbiBvdGhlciBlbGVtZW50cwoJICBsaWtlIGZpbGVzcmMuCgkgIEZpeGVzIGJ1ZyAjNjI3Mjg5LgoKMjAxMC0wOC0xOSAxMjo0Njo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogRnJlZSB0aGUgY2xvY2sgb24gc3RhdGUgY2hhbmdlIGZhaWx1cmVzIHRvbwoKMjAxMC0wOC0xNyAxNjoyNjo0MSArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHB1bHNldXRpbDogaW5jbHVkZSBwaWQgdmFsdWUgaW4gZ3N0X3B1bHNlX2NsaWVudF9uYW1lKCkgZmFsbGJhY2sgcmV0dXJuIHZhbHVlCgkgIEZpeGVzIGJ1ZyAjNjI3MTYyCgoyMDEwLTA4LTE5IDEyOjMyOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBGcmVlIHRoZSBHc3RQdWxzZUNvbnRleHQgYWZ0ZXIgdXNhZ2UKCjIwMTAtMDgtMTYgMDk6MTI6MDQgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogc2hhcmUgdGhlIFBBIGNvbnRleHQgYmV0d2VlbiBhbGwgY2xpZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUKCSAgQXZvaWQgdG8gY3JlYXRlIGEgbmV3IFBBIGNvbnRleHQgZm9yIGVhY2ggbmV3IGNsaWVudCBieSB1c2luZyBhIGhhc2gKCSAgdGFibGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiByaW5nLWJ1ZmZlcnMgYW5kIHRoZSBzaGFyZWQgUEEgY29udGV4dAoJICBmb3IgZWFjaCBjbGllbnQuIERvaW5nIHRoaXMgd2lsbCBpbXByb3ZlIGFwcGxpY2F0aW9uIG1lbW9yeSB1c2FnZSBpbgoJICB0aGUgY2FzZXMgd2hlcmUgbXVsdGlwbGUgcGlwZWxpbmVzIGludm9sdmluZyBtdWx0aXBsZSBwdWxzZXNpbmsKCSAgZWxlbWVudHMgYXJlIHVzZWQuCgkgIEZpeGVzIGJ1ZyAjNjI0MzM4LgoKMjAxMC0wOC0xNyAxMzo0MTo0OSArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbEBiYXNlLWFydC5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogY2xlYXIgdGhlIFBBIG1haW5sb29wIGlmIGJhc2VhdWRpb3NpbmsgZmFpbGVkIHRvIG9wZW4gdGhlIHJpbmdfYnVmZmVyCgkgIElmIHRoZSBhcHBsaWNhdGlvbiByZXF1ZXN0cyBhIHN0YXRlLWNoYW5nZSBhbmQgcHVsc2VzaW5rIGZhaWxzIHRvIG9wZW4KCSAgdGhlIHJpbmdfYnVmZmVyIGRldmljZSB0aGUgbWFpbmxvb3AgYXR0cmlidXRlIG9mIHRoZSBzaW5rIHNob3VsZCBiZQoJICBjbGVhbmVkIHVwIHRvIGF2b2lkIGZ1dHVyZSBzdGF0ZS1jaGFuZ2UgKE5VTEwtPlJFQURZKSBmYWlsdXJlcy4KCjIwMTAtMDgtMTkgMTI6MjM6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBQb3N0IGFuIGVycm9yIG1lc3NhZ2UgaWYgRU9TIGhhcHBlbnMgYmVmb3JlIHZhbGlkIGlucHV0IGlzIGZvdW5kCgkgIEZpeGVzIGJ1ZyAjNjI3MzQxLgoKMjAxMC0wOC0xMiAxMTo0OTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgYXZpZGVtdXg6IFNlbmQgY2xvc2UgbmV3c2VnbWVudCBldmVudCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkCgoyMDEwLTA4LTExIDExOjM2OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbWFnZWZyZWV6ZS9nc3RpbWFnZWZyZWV6ZS5jOgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuaDoKCSAgaW1hZ2VmcmVlemU6IFJldHJ5IGJ1ZmZlcmFsbG9jIGlmIGl0IHdhcyBhYm9ydGVkIHdpdGggV1JPTkdfU1RBVEUgYmVjYXVzZSBvZiBhIGZsdXNoaW5nIHNlZWsKCjIwMTAtMDgtMTEgMDg6NDY6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBSZXR1cm4gR1NUX0ZMT1dfVU5FWFBFQ1RFRCB3aGVuIGdldHRpbmcgYSBzZWNvbmQgYnVmZmVyCgkgIFRoaXMgcHJldmVudHMgdXBzdHJlYW0gZnJvbSBwdXNoaW5nIG1hbnkgdXNlbGVzcyBidWZmZXJzIGFuZCBtYWtlcwoJICBpdCBnbyBpbnRvIEVPUyBzdGF0ZS4KCjIwMTAtMDgtMTAgMjA6MTE6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBQYXNzdGhyb3VnaCBidWZmZXIgYWxsb2NhdGlvbnMKCjIwMTAtMDktMDQgMTM6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50CgkgIFRlbXBvcmFyaWx5IGRpc2FibGUgLURHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciBnaXQgYnVpbGRzIHVudGlsCgkgIHRoZSBjb2RlIGlzIHVwZGF0ZWQgZm9yIHRoZSBHU1RfRkxPV19JU18qIG1hY3JvIGRlcHJlY2F0aW9ucy4KCj09PSByZWxlYXNlIDAuMTAuMjUgPT09CgoyMDEwLTA5LTAyIDIzOjQ0OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLWRpc3QuaDoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjI1CgoyMDEwLTA5LTAyIDIzOjEyOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSAgZG9jczogdXBkYXRlIGRvY3MgZm9yIHJlbGVhc2UKCjIwMTAtMDktMDIgMjM6MDc6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZXMucG86CgkqIHBvL2dsLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3JvLnBvOgoJKiBwby9zdi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDgtMjUgMTk6MDE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC41IHByZS1yZWxlYXNlCgoyMDEwLTA4LTIyIDIxOjE1OjA3IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogdXNlIHNlcGFyYXRlIGJ1ZmZlciBtZXRhZGF0YSBmb3IgZmllbGRzCgkgIENhbGwgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgb24gYnVmZmVycyB0aGF0IGFyZQoJICBkdXBsaWNhdGVkIGludG8gZmllbGRzLiAgRml4ZXMgIzYyNzY4OS4KCjIwMTAtMDgtMjEgMjE6NDE6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLWRpc3QuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0Lmg6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveG9yYy1kaXN0LmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveG9yYy1kaXN0Lmg6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5oOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC40IHByZS1yZWxlYXNlCgoyMDEwLTA4LTE5IDE4OjMwOjA1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogUHJldmVudCBjcmFzaCB3aGVuIHJlYWRpbmcgaW1hZ2Ugd2l0aCBwcm9ibGVtcwoJICBDaGVjayBpZiB3ZSBoYXZlIGRhdGEgb24gdGhlIGFkYXB0ZXIgYW5kIGZhaWwgaWYgbm90LgoJICBGaXhlcyAjNjI3NDEzCgoyMDEwLTA4LTEzIDE3OjI0OjAxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNlOGRiMWQgdG8gZWM2MDIxNwoKMjAxMC0wOC0xMSAyMjoyMDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSAgaW1hZ2VmcmVlemU6IFNlbmQgY2xvc2Ugc2VnbWVudHMgd2hlbiBzZWVraW5nIG9ubHkgZm9yIG5vbi1mbHVzaGluZyBzZWVrcyBhbmQgaWYgd2UgYWxyZWFkeSBzZW50IGEgbmV3c2VnbWVudCBldmVudAoJICBGaXhlcyBidWcgIzYyNjYxOS4KCjIwMTAtMDgtMTEgMTY6NTA6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0cnRwYmluLW1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdHVkcC1lbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHVkcC1lbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHVkcC1tYXJzaGFsLmM6CgkgIDAuMTAuMjQuMyBwcmUtcmVsZWFzZQoKMjAxMC0wOC0xMSAxMToxNzoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHByZXZlbnQgcmVhZGluZyBwYXN0IGF2YzEgYXRvbSB3aGVuIHBhcnNpbmcKCSAgLi4uIHdoZW4gb25lIG9mIHRoZSBzdWJhdG9tcyBoYXMgYSBsYXJnZS9pbnZhbGlkIHNpemUuCgkgIEZpeGVzICM2MjY2MDkuCgoyMDEwLTA4LTEwIDIzOjM3OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjI0LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDgtMTAgMTA6NTc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiZDIwNTRiIHRvIDNlOGRiMWQKCjIwMTAtMDgtMDkgMDA6MzY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZTogZml4IHByaW50ZiBmb3JtYXQgaW4gc29tZSBkZWJ1Z2dpbmcgbWVzc2FnZXMKCjIwMTAtMDgtMDggMjM6MzE6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1wbHVnaW5zLWdvb2QtdW5pbnN0YWxsZWQucGMuaW46CgkgIHBrZ2NvbmZpZzogc2V0IHBsdWdpbnNkaXIgdG8gdG9wLWxldmVsIGJ1aWxkZGlyIHdpdGhvdXQgdGhlIHBrZ2NvbmZpZy8uLiBiaXRzCgkgIFJlbW92ZXMgY2x1dHRlciBpbiBwbHVnaW4gZGlyIHBhdGhzLiBUaGlzIGlzIG9ubHkgdXNlZCB0byBmaW5kIHRoZSAtZ29vZAoJICBwbHVnaW5zIGZvciB1bml0IHRlc3RzIG9mIHVnbHkvYmFkL2ZmbXBlZy9ldGMuIGluIGFuIHVuaW5zdGFsbGVkIHNldHVwLgoKMjAxMC0wOC0wNiAyMDowNDo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDJzcmM6IGFsc28gbG9nIHBpeGVsIGZvcm1hdHMgaW4gc29ydGVkIG9yZGVyCgoyMDEwLTA4LTA2IDE4OjA3OjQ2ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogc29ydCBmb3JtYXRzIGluIHRoZSByaWdodCBvcmRlciBzbyB0aGF0IG5vbi1lbXVsYXRlZCBmb3JtYXRzIGFyZSBwcmVmZXJlZAoJICBUaGUgZm9ybWF0IGxpc3Qgc2hvdWxkIGJlIHNvcnRlZCBmcm9tIGhpZ2ggcmFua3MgdG8gbG93IHJhbmtzLiBJbiB0aGUgR1NMaXN0CgkgIHNvcnRpbmcgZnVuY3Rpb24gdGhpcyBtZWFucyB0aGUgY29tcGFyZSBuZWVkcyB0byByZXR1cm4gYSBwb3NpdGl2ZSB2YWx1ZSBpZgoJICBmb3JtYXQgYSBoYXMgYSBsb3dlciByYW5rIHRoYW4gZm9ybWF0IGIuCgkgIEFtb25nIG90aGVyIHRoaW5ncyB0aGlzIGZpeGVzIHY0bDJzcmMgdG8gcHJlZmVyIG5vbi1lbXVsYXRlZCBmb3JtYXRzCgkgIHRvIGVtdWxhdGVkIGZvcm1hdHMgd2hlbiBidWlsdCBhZ2FpbnN0IGxpYnY0bC4KCjIwMTAtMDgtMDYgMTk6MjQ6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBGaXggcGlwZWxpbmUgaW4gdGhlIGRvY3VtZW50YXRpb24KCSAgTWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSB0aGUgc2FtZSBjb2xvciBmb3JtYXQgb24gYWxsIHN0cmVhbXMsIGkuZS4gQVlVVgoJICBGaXhlcyBidWcgIzYyNTQ1Mi4KCjIwMTAtMDgtMDUgMTM6NTY6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTUxOTU3MSB0byBiZDIwNTRiCgoyMDEwLTA2LTE0IDE5OjU4OjExICsxMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM3YybXV4LmM6CgkgIGlkM3YybXV4OiB3cml0ZSBiZWF0cy1wZXItbWludXRlIHRhZyB1c2luZyBUQlBNIGZyYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE1MjAKCjIwMTAtMDctMjUgMTE6NDc6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIHZpZGVvbWl4ZXI6IE1vdmUgZGVidWcgY2F0ZWdvcmllcyBpbnRvIHRoZSBzb3VyY2UgZmlsZXMgYW5kIGFkZCBkZWJ1ZyBjYXRlZ29yeSBmb3IgdGhlIGJsZW5kIGZ1bmN0aW9ucwoKMjAxMC0wOC0wNCAxOToyNTozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQ2hlY2sgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIElTTyBDODkgb3IgQzk5IGFuZCB3aGljaCBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZAoJICBUaGlzIGZpcnN0IGNoZWNrcyB3aGF0IGlzIHJlcXVpcmVkIGZvciBJU08gQzk5IHN1cHBvcnQgYW5kIHNldHMgdGhlIHJlbGV2YW50CgkgIGNvbXBpbGVyIHBhcmFtZXRlcnMgYW5kIGlmIG5vIEM5OSBjb21waWxlciBpcyBmb3VuZCwgaXQgY2hlY2tzIGZvciBhCgkgIEM4OSBjb21waWxlci4gVGhpcyBlbmFibGVzIHVzIHRvIGNoZWNrIGZvciBhbmQgdXNlIEM4OS9DOTkgZnVuY3Rpb25zCgkgIHRoYXQgZ2NjIGhpZGVzIGZyb20gdXMgd2l0aG91dCB0aGUgY29ycmVjdCBjb21waWxlciBwYXJhbWV0ZXJzLgoKMjAxMC0wNy0xNSAxMDoxMDozMSArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiB1c2UgR19UWVBFX0RFRklORSB0byBkZWZpbmUgcmluZyBidWZmZXIgdHlwZQoJICBUaGUgZXhpc3RpbmcgZ2V0X3R5cGUoKSBpbXBsZW1lbnRhdGlvbiBpcyByYWN5LCBhbmQgdGhlCgkgIGdfdHlwZV9jbGFzc19yZWYoKSB3b3JrYXJvdW5kIGRpZG4ndCBhY3R1YWxseSB3b3JrIGJlY2F1c2UKCSAgaXQgd2FzIGluIHRoZSB3cm9uZyBmdW5jdGlvbi4gU2luY2UgY2xhc3MgY3JlYXRpb24gaW4gR09iamVjdAoJICBpcyB0aHJlYWQtc2FmZSB0aGVzZSBkYXlzIChzaW5jZSAyLjE2KSwgdGhlIGNsYXNzX3JlZiB3b3JrYXJvdW5kCgkgIGlzIG5vIGxvbmdlciBuZWVkZWQgYW5kIGl0IGlzIHN1ZmZpY2llbnQgdG8gZW5zdXJlIHRoZSBfZ2V0X3R5cGUoKQoJICBmdW5jdGlvbiBpcyB0aHJlYWQtc2FmZSwgd2hpY2ggR19UWVBFX0RFRklORSBkb2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI0MzM4CgoyMDEwLTA4LTA0IDE1OjIwOjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBQb3N0IENMT0NLLUxPU1QvQ0xPQ0stUFJPVklERSB3aGVuIGdvaW5nIHRvL2Zyb20gUkVBRFkKCSAgT3RoZXJ3aXNlIHRoZSBjbG9ja3MgYXJlIHJlZGlzdHJpYnV0ZWQgZXZlcnkgdGltZSB0aGUgcGlwZWxpbmUKCSAgZ29lcyB0byBQQVVTRUQsIHdoaWNoIGlzIHF1aXRlIGV4cGVuc2l2ZS4KCjIwMTAtMDctMTIgMTI6MzU6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5Lmg6CgkgIHJ0cG1wNGdwYXk6IGltcGxlbWVudCBwZXJmZWN0IHRpbWVzdGFtcHMKCSAgVXNlIGJpdHJlYWRlciBmb3IgcGFyc2luZyB0aGUgY29uZmlnIHN0cmluZwoJICBSZXNldCBzdGF0ZSB2YXJpYWJsZXMgd2hlbiBnb2luZyB0byBSRUFEWQoJICBQYXJzZSBmcmFtZSBsZW5ndGggYW5kIHVzZSBpdCB0byBrZWVwIHRyYWNrIG9mIHRoZSBydHB0aW1lc3RhbXBzCgoyMDEwLTA3LTA5IDE0OjA3OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkgIHJ0cGgyNjNwZGVwYXk6IGFsbG93IG1vcmUgY2xvY2stcmF0ZXMgYXMgaW5wdXQKCSAgQWx0aG91Z2ggdGhlIHNwZWMgc2F5cyB0aGF0IHRoZSBjbG9jay1yYXRlIHNob3VsZCBhbHdheXMgYmUgOTAwMDAsIHNvbWUgcnRzcAoJICBzZXJ2ZXJzIHNlbmQgZGlmZmVyZW50IGNsb2NrLXJhdGVzIHNvIHdlIG11c3QgYWNjZXB0IHRoZW4gaW4gb3JkZXIgdG8gaGFuZGxlCgkgIHRob3NlIHN0cmVhbXMgdG9vLgoKMjAxMC0wNy0wNiAxOTowMjoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSAgTDE2ZGVwYXk6IGRlZmF1bHQgdG8gMSBjaGFubmVsCgkgIFdoZW4gd2UgY2FuJ3QgZmluZCBhbnkgY2hhbm5lbCBvciBlbmNvZGluZy1wYXJhbXMgb24gdGhlIGNhcHMgZm9yIGR5bmFtaWMKCSAgcGF5bG9hZCB0eXBlcywgc2V0IHRoZSBkZWZhdWx0IG51bWJlciBvZiBjaGFubmVscyB0byAxLCBhcyB0aGUgc3BlYyBzYXlzIHdlCgkgIHNob3VsZC4KCSAgU2VlICM2MjMyMDkKCjIwMTAtMDctMDYgMTg6MjI6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGRvbid0IHJldXNlIHVkcCBzb2NrZXRzCgkgIERvbid0IHJldXNlIHNvY2tldHMgYnV0IG1ha2UgdGhlIHVkcHNyYyBlbGVtZW50IGZhaWwgdGhlIHN0YXRlIGNoYW5nZSB3aGVuIHRoZQoJICBzb2NrZXQgaXMgYWxyZWFkeSBpbiB1c2UuIElmIHdlIGRvbid0IHByZXZlbnQgcmV1c2UsIHdlIG1pZ2h0IGVuZCB1cCB1c2luZyB0aGUgc2FtZQoJICBwb3J0IGZvciBkaWZmZXJlbnQgc3RyZWFtcyBpbiBzb21lIGNhc2VzLgoJICBGaXhlcyAjNjIyMDE3CgoyMDEwLTA3LTA2IDE4OjExOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgdWRwc3JjOiBhZGQgcHJvcGVydHkgdG8gZW5hYmxlIHBvcnQgcmV1c2UKCjIwMTAtMDctMDUgMTA6MjM6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkgIEwxNmRlcGF5OiB1c2UgZW5jb2RpbmctcGFyYW1zIGZvciB0aGUgY2hhbm5lbHMKCSAgV2hlbiBwYXJzaW5nIHRoZSBudW1iZXIgb2YgY2hhbm5lbHMsIHVzZSB0aGUgZW5jb2RpbmctcGFyYW1zIHByb3BlcnR5IGZyb20gdGhlCgkgIFJUUCBjYXBzIGJlY2F1c2UgdGhhdCBpcyB3aGVyZSB3ZSBjYW4gZmluZCB0aGUgY2hhbm5lbHMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLgoJICBGYWxsIGJhY2sgdG8gdGhlIGNoYW5uZWxzIHByb3BlcnR5IGluIHRoZSBjYXBzIHdoZW4gbmVlZGVkLgoJICBGaXhlcyAjNjIzMjA5CgoyMDEwLTA2LTI5IDEwOjQ2OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBpbXByb3ZlIGVycm9yIGFuZCB3YXJuaW5nIG1lc3NhZ2UKCSAgSW1wcm92ZSBlcnJvciBhbmQgd2FybmluZyBtZXNzYWdlLgoJICBGaXhlcyAjNjIyNTc3CgoyMDEwLTA4LTAyIDIzOjE1OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLWF1ZGlvdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJICBleGFtcGxlczogbm8gbmVlZCB0byBzZXQgdGhlIGNvbG9yIGZvciBlYWNoIGZycS1iYW5kCgoyMDEwLTA4LTAyIDEyOjU2OjI5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuaDoKCSAgcnRwZzcyOXBheTogYXZvaWQgYmFzZXJ0cHBheWxvYWQgcGVyZmVjdC1ydHB0aW1lIG1vZGUKCSAgRzcyOSBwYWNrZXRzIG1heSBvbmx5IG9jY3VyIGludGVybWl0dGVudGx5IChlLmcuIGNuIHBhY2tldHMpLCBhbmQgYXMgc3VjaAoJICBkbyBub3QgYWxsb3cgZm9yIHBlcmZlY3QtcnRwdGltZSBjYWxjdWxhdGluZyBydHAgdGltZXMgYmFzZWQgb24gZnJhbWUgb3IgYnl0ZQoJICBjb3VudC4gIEluIHBhcnRpY3VsYXIsIGRvIG5vdCB1c2UgcnRwIGF1ZGlvIGJhc2UgcGF5bG9hZGVyIGFzIGJhc2UgY2xhc3MsIGJ1dAoJICByYXRoZXIgYmFzZSBwYXlsb2FkZXIgZGlyZWN0bHkuCgoyMDEwLTA4LTAyIDEyOjQ4OjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBmaXggZWxlbWVudCBsZWFrCgoyMDEwLTA4LTAyIDEyOjQ2OjQxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6CgkgIHJ0cG1wNHZkZXBheTogZml4IGJ1ZmZlciBsZWFrCgoyMDEwLTA4LTAyIDEyOjQ2OjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6CgkgIHRlc3RzOiBydHAgcGF5bG9hZGluZzogZml4IHBhZCBsZWFrCgoyMDEwLTA3LTI5IDE3OjE4OjExICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHB1c2ggbW9kZTsgdXNlIHByb3BlciBtb3ZpIG9mZnNldCBmb3IgbW92aSBiYXNlZCBpbmRleAoJICBGaXhlcyAjNjIzMzU3LgoKMjAxMC0wNy0yOSAxMDowMDoxNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogQ29ycmVjdGx5IHBhcnNlIG12aGQgYXRvbXMKCSAgUGFyc2UgbXZoZCBkYXRhIGFjY29yZGluZyB0byBpdHMgdmVyc2lvbiB0byBhdm9pZCBmYWlsaW5nCgkgIG9uIHZhbGlkIGZpbGVzLgoKMjAxMC0wNy0yOCAxMjoyMTo0MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEZpeCB0aGUgbWF4L2F2ZyBpbiBidHJ0IGF0b20gcmVhZGluZwoJICBBY2NvcmRpbmcgdG8gSVNPIG1lZGlhIGJhc2UgZm9ybWF0LCB0aGUgbWF4IGJpdHJhdGUgaXMgdGhlCgkgIGZpcnN0IG9uZSwgYW5kIHRoZSBhdmcgY29tZXMgbmV4dC4KCjIwMTAtMDctMjcgMTU6NTg6MDIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IHByb3BlciBoYW5kbGluZyBvZiBzdHJlYW1pbmcgdXBzdHJlYW0gd2l0aG91dCBkdXJhdGlvbgoJICBGaXhlcyAjNjI1MzcxLgoKMjAxMC0wNy0yNiAxODozMzowOSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogaW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyB0byBmaXggY29tcGlsZXIgd2FybmluZ3Mgb24gT1NYIGJ1aWxkIGJvdAoKMjAxMC0wNy0yNiAxODoxNToyNSArMDIwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogY29ycmVjdGx5IGNoZWNrIHdoYXQgdmVyc2lvbiBvZiBnc3QtcGx1Z2lucy1iYXNlIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIFdlIG5lZWQgdG8gY2hlY2sgdGhlIGdzdC1wbHVnaW5zLWJhc2UgdmVyc2lvbiwgbm90IHRoZSBjb3JlIHZlcnNpb24KCSAgKGV2ZW4gaWYgYm90aCBzaG91bGQgYmUgdGhlIHNhbWUgaW4gYW55IHNhbmUgc2V0dXApLgoKMjAxMC0wNy0yNiAxNzo0NTo0MiArMDIwMCAgQXJuYXVkIFZyYWMgPHJhd291bCBhdCBnbWFpbC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogYWRkIHBvcnQtcmFuZ2UgcHJvcGVydHkgdG8gcnRzcHNyYwoJICBUbyBzdXBwb3J0IHNldHVwcyB3aXRoIGZpcmV3YWxsL2lwc2VjLCBpdCBpcyB1c2VmdWwgZm9yIGFuIHJ0c3AgY2xpZW50IHRvIGJlCgkgIGFibGUgdG8gc2V0IHRoZSByYW5nZSBvZiBwb3J0cyB0aGF0IGNhbiBiZSB1c2VkIGZvciBydHAvcnRjcCByZWNlcHRpb24uCgkgIEFsbG93cyB0aGlzIGJ5IGFkZGluZyBhICJwb3J0LXJhbmdlIiBwcm9wZXJ0eSB0byB0aGUgcnRzcHNyYyBlbGVtZW50LgoJICBGaXhlcyAjNjI1MTUzCgoyMDEwLTA3LTI2IDEzOjM4OjMxICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPGFtb3JhbGVzQGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHNldCB0aGUgcGl4ZWwtYXNwZWN0LXJhdGlvIGZpZWxkIGFsc28gZm9yIHBhcj0xLzEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTMwMgoKMjAxMC0wNy0yNiAxNTozMToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IG1lbW9yeSBsZWFrIGluIHNlcnZlciByZXF1ZXN0IHJlcGx5CgkgIFRoZSBSVFNQIHNlcnZlciBydHNwc3JjIGlzIGNvbW11bmljYXRpbmcgd2l0aCwgc2VuZHMgYSBHRVRfUEFSQU1FVEVSIHJlcXVlc3QKCSAgcGVyaW9kaWNhbGx5IGFzIGEgcGluZy4gIFRoZSBjb2RlIGluIGdzdF9ydHNwc3JjX2hhbmRsZV9yZXF1ZXN0IGZvcm1zIGFuIE9LCgkgIHJlc3BvbnNlIGFuZCBzZW5kcywgYnV0IGRvZXNuJ3QgY2FsbCBnc3RfcnRzcF9tZXNzYWdlX3Vuc2V0IHRvIGZyZWUgdGhlIG1lbW9yeQoJICBhZnRlciBzZW5kaW5nIHRoZSByZXNwb25zZS4gIFRoaXMgcmVzdWx0cyBpbiBhIGNvbnN0YW50IHNsb3cgbWVtb3J5IGxlYWsuCgkgIEZpeGVzICM2MjQ3NzAKCjIwMTAtMDctMjQgMjI6Mzk6NTQgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvZGVidWd1dGlscy9jcHVyZXBvcnQuYzoKCSAgY3B1cmVwb3J0OiByZW1vdmUgYm9ndXMgZG9jcwoKMjAxMC0wNy0yNCAyMjozNzoxMSArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9kZWJ1Z3V0aWxzL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVidWd1dGlscy9jcHVyZXBvcnQuYzoKCSogZ3N0L2RlYnVndXRpbHMvY3B1cmVwb3J0Lmg6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGRlYnVnLmM6CgkgIGRlYnVndXRpbHM6IG5ldyBlbGVtZW50IGNwdXJlcG9ydAoJICBjcHVyZXBvcnQgcG9zdHMgYnVzIG1lc3NhZ2VzIGFmdGVyIGV2ZXJ5IGJ1ZmZlciByZWNlaXZlZCBvZiBjcHUgdXNlZCwgc3lzdGVtCgkgIGNsb2NrIHRpbWUsIGJ1ZmZlciB0aW1lCgoyMDEwLTA3LTI0IDEwOjI5OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2VxdWFsaXplci9kZW1vLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tb3Nzc3JjLmM6CgkgIGV4YW1wbGVzOiBEZXN0cm95IHRoZSBjYWlybyBjb250ZXh0IGFmdGVyIHVzYWdlCgoyMDEwLTA3LTI0IDEwOjIxOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L01ha2VmaWxlLmFtOgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSAgUmV2ZXJ0ICJnZGtwaXhidWY6IEFkZCBhIGdka3BpeGJ1ZjMgcGx1Z2luIHRoYXQgdXNlcyBnZGtwaXhidWYzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI2Nzg4MTUzMTYxYjRlMDdmYmYzZDQyYTJkODkyMWVhMDQ5MzA1ZDAuCgkgIFRoZXJlJ3Mgbm8gZ2RrLXBpeGJ1ZjMgYW55bW9yZS4gZ2RrLXBpeGJ1ZiB3YXMgc2VwYXJhdGVkIGZyb20gR1RLKwoJICBhbmQgd2lsbCBzdGF5IGF0IHZlcnNpb24gMi4wIGZvciBHVEsrIDMuMC4KCjIwMTAtMDctMjQgMTA6MTk6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvZXF1YWxpemVyL2RlbW8uYzoKCSogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1vc3NzcmMuYzoKCSAgZXhhbXBsZXM6IFVzZSBjYWlybyBpbnN0ZWFkIG9mIHRvLWJlLWRlcHJlY2F0ZWQgR0RLIEFQSQoJICBGaXhlcyBidWcgIzYyNTAwMi4KCjIwMTAtMDctMjIgMTY6MjQ6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBmaXggZXZlbnQgbGVhawoKMjAxMC0wNy0yMiAxMjowNToyNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IHB1bGwgbW9kZSBub24tY3VlIHNlZWtpbmcKCSAgVGhhdCBpcywgaW4gZmlsZXMgdGhhdCBoYXZlIG5vIGluZGV4IChDdWUpLCBwZXJmb3JtIHNlZWsgYnkgc2Nhbm5pbmcgZm9yCgkgIG5lYXJlc3QgY2x1c3RlciB3aXRoIHRpbWVjb2RlIGJlZm9yZSByZXF1ZXN0ZWQgcG9zaXRpb24uICBTY2FubmluZyBpcyBkb25lCgkgIGFzIGEgY29tYmluYXRpb24gb2YgaW50ZXJwb2xhdGlvbiBhbmQgc2VxdWVudGlhbCBzY2FuLgoJICBGaXhlcyAjNjE3MzY4LgoKMjAxMC0wNy0xNiAxMjo0Njo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBzdHJlYW1hYmxlIGZpbGVzIG5lZWQgbm8gX2ZpbmlzaAoJICBGaXhlcyAjNjI0NDU1LgoKMjAxMC0wNy0yMiAxMTo0NjozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBwdXNoIG1vZGU7IGhhbmRsZSAwLXNpemUgZGF0YSBjaHVua3MKCSAgRml4ZXMgIzYxODUzNS4KCjIwMTAtMDctMjEgMDg6MTE6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBPbmx5IHJlc2V0IFFvUyBpbmZvcm1hdGlvbiBhbmQgc2VuZCBhIE5FV1NFR01FTlQgZXZlbnQgZG93bnN0cmVhbSBmb3IgTkVXU0VHTUVOVCBldmVudHMgb24gdGhlIG1hc3RlciBwYWQKCjIwMTAtMDctMTQgMjA6MzE6NDQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2RlYnVndXRpbHMvTWFrZWZpbGUuYW06CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGNhcHNkZWJ1Zy5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RjYXBzZGVidWcuaDoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0ZGVidWcuYzoKCSAgY2Fwc2RlYnVnOiBBZGQgbmV3IGVsZW1lbnQKCjIwMTAtMDctMjAgMTY6MTE6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogZGVtb3RlIFdBUk5JTkcgbWVzc2FnZSB0byBMT0cgbGV2ZWwKCSAgSXQncyBub3QgYSB3YXJuaW5nLgoKMjAxMC0wNy0xOSAxNDo0NzozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IEZpeCByZWdyZXNzaW9uIG9uIG1hcmtlcnMgcGFyc2luZwoJICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB3aGVuIGZpeGluZyBidWcgIzU4MzA0NyBpbgoJICBjb21taXQgYTM5MWJmNTJjYzNjNTgwYzdhMGEyMzE2Y2E1MmViNjZkYTNiODVjMQoJICBTa2lwIHRoZSBkYXRhIHdoZW4gbGlianBlZyBhc2tzIGl0IHRvIGJlIHNraXBwZWQgb24KCSAgb25lIG9mIGl0cyBjYWxsYmFja3MuCgoyMDEwLTA3LTE2IDE4OjA0OjQ0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBhZGQgbWlzc2luZyBhcmd1bWVudCBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDEwLTA3LTE2IDE3OjUzOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNpbms6IE9ubHkgdXNlIGdzdF9hdWRpb19jbG9ja19uZXcoKSB3aGVuIGNvbXBpbGluZyBhZ2FpbnN0IG5ld2VyIGJhc2UKCjIwMTAtMDctMDkgMTc6MzM6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6CgkgIGR2MTM5NHNyYzogUG9zdCBjbG9jay1wcm92aWRlIGFuZCBjbG9jay1sb3N0IG1lc3NhZ2VzIHdoZW4gZ29pbmcgZnJvbS90byBQTEFZSU5HCgkgIEluIFBBVVNFRCBhbmQgYmVsb3cgdGhlIGNsb2NrIGlzIG5vdCB3b3JraW5nLgoKMjAxMC0wNy0wNCAxNjo1Nzo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5jOgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5oOgoJKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc3JjLmM6CgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzcmMuaDoKCSAgZ2NvbmY6IEZpeCByZWYgaGFuZGxpbmcgb2YgbmV3IGNoaWxkIGVsZW1lbnRzIGFuZCBtaW5vciBjbGVhbnVwCgoyMDEwLTA3LTA0IDA5OjQ1OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6CgkgIGdjb25mdmlkZW9zcmM6IFVzZSBjb3JyZWN0IEdDb25mIGtleQoKMjAxMC0wNy0wMyAxNDoxNjo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NyYy5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NyYy5oOgoJICBnY29uZjogUG9ydCBnY29uZmF1ZGlvc3JjIHRvIEdzdFN3aXRjaFNyYwoKMjAxMC0wNy0wMyAxNDoxMjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5oOgoJICBnY29uZjogUG9ydCBnY29uZnZpZGVvc3JjIHRvIEdzdFN3aXRjaFNyYwoKMjAxMC0wNy0wMyAxNDoxMTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvTWFrZWZpbGUuYW06CgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzcmMuYzoKCSogZXh0L2djb25mL2dzdHN3aXRjaHNyYy5oOgoJICBnY29uZjogQWRkIEdzdFN3aXRjaFNyYyBiYXNlIGNsYXNzCgoyMDEwLTA3LTAzIDEzOjU2OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6CgkgIGdjb25mOiBDcmVhdGUgdGhlIGdob3N0cGFkIG9mIHRoZSBzd2l0Y2hzaW5rIGZyb20gdGhlIHRlbXBsYXRlCgoyMDEwLTA3LTA3IDEwOjEwOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBQb3N0IGNsb2NrLXByb3ZpZGUvY2xvY2stbG9zdCB3aGVuIGdvaW5nIHRvL2Zyb20gUEFVU0VECgkgIEFsc28gdXNlIGdzdF9hdWRpb19jbG9ja19uZXdfZnVsbCgpIHRvIHByZXZlbnQgY3Jhc2hlcyB3aGVuIHRoZQoJICBjbG9jayBpcyB1c2VkIGFmdGVyIHRoZSBlbGVtZW50IHdhcyBkZXN0cm95ZWQuCgoyMDEwLTA3LTE1IDExOjQ5OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiByZW1vdmUgYm9ndXMgVU5MT0NLCgoyMDEwLTA3LTEzIDEyOjM0OjQ0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYWxzbyBjYWxjdWxhdGUgUEFSIHVzaW5nIHRyYWNrIHdpZHRoIGFuZCBoZWlnaHQgZm9yIFFUIGZpbGVzCgkgICguLi4gYXMgb3Bwb3NlZCB0byBvbmx5IGZvciBJU08gc3R5bGUgZmlsZXMpLgoJICBGaXhlcyAjNjI0MTczLgoKMjAxMC0wNy0xMiAxNzoyOToxMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogaGFuZGxlIGJvZ3VzIGZpbGVzIHN0b3JpbmcgQURUUyBBQUMgZGF0YQoKMjAxMC0wNy0wOSAxNjo1NzozMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogZG8gbm90IGVycm9yIG91dCBvbiBhIGJsb2NrIHdpdGggdW5rbm93biB0cmFja251bWJlcgoKMjAxMC0wNy0wOCAxODo1NzoyMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGRvIG5vdCBhbGlnbiByZXZlcnNlIHBsYXliYWNrIHJlZmVyZW5jZSBzdHJlYW0gdHdpY2UKCSAgVGltZXN0YW1wIHJvdW5kaW5nIGlzc3VlcyBjb3VsZCBsZWFkIHRvIGdvaW5nIGJhY2t3YXJkcyAyIGtleWZyYW1lIHBlcmlvZHMKCSAgKHJhdGhlciB0aGFuIG9ubHkgMSkuICBXaGlsZSB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSBhIHByb2JsZW0sIGl0IG1pZ2h0CgkgIHBvdGVudGlhbGx5IHBsYWNlIGFkZGl0aW9uYWwgKGJ1ZmZlcmluZykgbG9hZCBvbiBkb3duc3RyZWFtIGFuZCBjb3VsZCBiZQoJICBhdm9pZGVkIChiZWNhdXNlIFdlIENhbikuCgkgIEZpeGVzICM2MjM2MjkuCgoyMDEwLTA3LTA4IDE2OjA3OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogY29udmVydCBzb21lIG1vcmUgbW92IGZvcm1hdCB0aW1lc3RhbXAgdG8gZ3N0IHRpbWUKCjIwMTAtMDctMDcgMTQ6MTY6NTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogYWRkaXRpb25hbCB2ZXJpZmljYXRpb24gaGV1cmlzdGljcyBmb3IgVkJSIGF1ZGlvIHN0cmVhbQoJICBDaGVjayBmb3IgYW5kIG92ZXJyaWRlIHNvbWUgaGVhZGVyIGZpZWxkKHMpIGZvciByZWFzb25hYmxlIHZhbHVlcywgYWNjb3JkaW5nCgkgIHRvIGxhdGVyIGV4cGVjdGVkIHVzZSBpbiBjYWxjdWxhdGlvbnMuCgoyMDEwLTA3LTE0IDE1OjIxOjIxICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgdmlkZW9iYWxhbmNlOiBGaXggd3JvbmcgbG9jayBvcmRlciB0aGF0IGNvdWxkIGxlYWQgdG8gYSBkZWFkbG9jay4gRml4ZXMgIzYyNDMzMS4KCjIwMTAtMDctMTYgMTE6MzE6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbWFnZWZyZWV6ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmlsdGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4yNCA9PT0KCjIwMTAtMDctMTUgMDE6NDk6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjI0CgoyMDEwLTA3LTE1IDAxOjM1OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2NzLnBvOgoJKiBwby9sdi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDctMDcgMDA6NDI6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjIzLjQgcHJlLXJlbGVhc2UKCjIwMTAtMDctMDcgMDA6MzE6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZGEucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZnIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc2wucG86CgkqIHBvL3RyLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDYtMjMgMTE6NDc6NDMgKzAyMDAgIE1pY2hhZWwgR3J6ZXNjaGlrIDxtLmdyemVzY2hpa0BwZW5ndXRyb25peC5kZT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkgIHY0bDJzaW5rOiBkZXN0cm95IGJ1ZmZlciBwb29sIHdoZW4gY2hhbmdpbmcgc3RhdGUgdG8gTlVMTAoJICBJbiB0aGUgY2FzZSB3ZSBjaGFuZ2UgdGhlIFN0YXRlIGZyb20gUkVBRFlfVE9fTlVMTCB0aGUgYnVmZmVycyBpbiB0aGUgcG9vbAoJICBzdGlsbCBob2xkIGFuIG9wZW4gZHVwIGZpbGUgZGVzY3JpcHRvciB0byB0aGUgZGV2aWNlLCB0aGVyZWZvcmUgdGhlIGRldmljZQoJICByZWxlYXNlIGZ1bmN0aW9uIHdpbGwgbm90IGJlIGNhbGxlZCBhbmQgdGhlIGRldmljZSB3aWxsIHByb2JhYmx5IGFuc3dlciB3aXRoCgkgIC1FQlVTWSB3aGVuIHdlIHJlb3BlbiBpdCBpbiB0aGUgbmV4dCBOVUxMX1RPX1JFQURZIHRyYW5zaXRpb24uCgkgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgR3J6ZXNjaGlrIDxtLmdyemVzY2hpa0BwZW5ndXRyb25peC5kZT4KCSAgU2VlIGJ1ZyAjNjIyNTAwIGFuZCAjNjEyMjQ0LgoKMjAxMC0wNy0wNiAxMzoyMToxOSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEZpeCBvcmRlciBvZiBiaXRyYXRlcyBpbiAnYnRydCcgYXRvbQoJICBUaGVyZSBzZWVtcyB0byBiZSBhIGJ1ZyBpbiBsaWJtcDR2MiB0aGF0IGdlbmVyYXRlcyBhIE1QRUc0Qml0UmF0ZUJveCBhcwoJICAoYnVmZmVyU2l6ZURCLCBhdmdCaXRyYXRlLCBtYXhCaXRyYXRlKSBpbnN0ZWFkIG9mIChidWZmZXJTaXplREIsCgkgIG1heEJpdHJhdGUsIGF2Z0JpdHJhdGUpLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMuIEkgdXNlZCB0aGUgbXA0ZmlsZQoJICBvdXRwdXQgd2hpbGUgd3JpdGluZyB0aGlzIGNvZGUsIHNvIHRoZSBvcmRlciBpcyB3cm9uZy4gVGhpcyBwYXRjaGVzCgkgIGZpeGVzIHRoYXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM2NTQKCjIwMTAtMDctMDUgMTI6MDU6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBmaXggc2tpcHBpbmcgZXh0cmEgMHhmZiBtYXJrZXJzCgkgIEZpeGVzICM2MjM1ODUuCgoyMDEwLTA2LTI5IDIzOjE4OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJICBqcGVnZGVjOiBmaXggbWVtb3J5IGxlYWsKCSAgRG9uJ3QgbGVhayByZXN1bHQgb2YgZ3N0X2FkYXB0ZXJfdGFrZSgpLiBUaGVyZSBhcmUgbW9zdCBsaWtlbHkKCSAgc21hcnRlciB0aGluZ3Mgd2UgY2FuIGRvLCBidXQgbGV0J3Mga2VlcCB0aGluZ3Mgc2ltcGxlIGZvciB0aGUKCSAgcmVsZWFzZS4KCSAgRml4ZXMgIzYyMzE3Mi4KCjIwMTAtMDctMDIgMTI6MzE6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHN0cmlwIG91dCBib2d1cyB0YWdzIGZyb20gWE1QIGF0b20KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzM2NgoKMjAxMC0wNy0wMiAxNDoyNToyMiArMDIwMCAgQW5kcnplaiBLLiBIYWN6ZXdza2kgPGFoYWN6ZXdza2lAZ21haWwuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBXcml0ZSBkdXJhdGlvbiBhdCB0aGUgY29ycmVjdCBwb3NpdGlvbgoKMjAxMC0wNi0zMCAxMToxMjowOCArMDIwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgcnRwcHRkZW11eDogZml4IG1lbWxlYWsgb24gY3VzdG9tIGRvd25zdHJlYW0gZXZlbnRzCgkgIGJ5IG5vdCBzZW5kaW5nIGN1c3RvbSBkb3duc3RyZWFtIGV2ZW50IHR3aWNlIGFuZCBmaXggbWVtbGVhayB3aGVuCgkgIG5vdCBoYW5kbGluZyB0aGUgZXZlbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzE5NgoKMjAxMC0wNi0yOSAyMDoxODo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjIzLjMgcHJlLXJlbGVhc2UKCjIwMTAtMDYtMjkgMjA6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBmaXggdW5wb3J0YWJsZSBwcmludGYgZm9ybWF0IHNwZWNpZmllcnMgaW4gY29tbWVudGVkIG91dCBjb2RlCgkgIFRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcyB3aGVuIGdyZXBwaW5nIGZvciB1bnBvcnRhYmxlIHNwZWNpZmllcnMuCgoyMDEwLTA2LTI5IDE5OjEyOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBmaXggLS1kaXNhYmxlLWV4dGVybmFsCgoyMDEwLTA2LTI4IDE1OjQ0OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBhdXRvbWFrZSByZXF1aXJlbWVudCB0byAxLjEwIGFuZCBhdXRvY29uZiB0byAyLjYwCgkgIEZvciBtYWludGFpbmFiaWxpdHkgcmVhc29ucyBhbmQgJChidWlsZGRpcikuCgkgIFNlZSAjNjIyOTQ0LgoKMjAxMC0wNi0yOCAwOTowNzo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ29vbS9wbHVnaW5faW5mby5jOgoJICBnb29tOiBkb24ndCBhbGxvY2F0ZSAyNjBrQiBzdHJ1Y3Qgb24gdGhlIHN0YWNrCgkgIFBsdWdpbkluZm8gaXMgcXVpdGUgYSBzaXplYWJsZSBzdHJ1Y3QsIGxldCdzIG5vdCBhbGxvY2F0ZSBpdCBvbiB0aGUKCSAgc3RhY2ssIGVzcGVjaWFsbHkgbm90IGlmIHdlJ3JlIGNvcHlpbmcgaXQgb3ZlciBpbnRvIGFub3RoZXIgZHluYW1pY2FsbHkKCSAgYWxsb2NhdGVkIGNvcHkgYW55d2F5LgoJICBGaXhlcyAjNTcwNzYxLgoKMjAxMC0wNi0yNyAxMDozMToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVxdWlyZSBHVEsrID49IDIuMTQgZm9yIHRoZSBleGFtcGxlcwoKMjAxMC0wNi0yNiAyMDoxMjoyNSArMDIwMCAgR3VpZG8gR8O8bnRoZXIgPGFneEBzaWd4Y3B1Lm9yZz4KCgkqIHRlc3RzL2V4YW1wbGVzL2VxdWFsaXplci9kZW1vLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tb3Nzc3JjLmM6CgkgIGV4YW1wbGVzOiBNYWtlIGRlbW9zIC1EU0VBTCBzYWZlIHRvIGZpeCBidWlsZCB3aXRoIEdUSysgMy4wCgoyMDEwLTA2LTI2IDIxOjM5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL01ha2VmaWxlLmFtOgoJICBqcGVnOiBFeHBsaWNpdGVseSBsaW5rIHdpdGggbGliZ3N0YmFzZQoKMjAxMC0wNi0yNiAxODo0MjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4yMy4yIHByZS1yZWxlYXNlCgoyMDEwLTA2LTI2IDE4OjQxOjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLWRpc3QuaDoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94b3JjLWRpc3QuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5jOgoJICBnc3Q6IHVwZGF0ZSBvcmMgZmlsZXMKCjIwMTAtMDYtMjYgMTg6NDE6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDYtMjUgMTk6NDA6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogRml4IGxlYWtpbmcgb2YgdGhlIHN0cmVhbWhlYWRlciBidWZmZXJzCgkgIGdzdF92YWx1ZV9zZXRfYnVmZmVyKCkgaW5jcmVhc2VzIHRoZSByZWZjb3VudCBhbmQgZG9lc24ndAoJICB0YWtlIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyLgoKMjAxMC0wNi0yNCAxNjozMjoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkgIG1hdHJvc2thLCB2aWRlb2JveCwgdmlkZW9maWx0ZXI6IGZpeCBjb21waWxlciB3YXJuaW5ncyB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZCBpbiBnc3RyZWFtZXIKCSAgRml4ZXMgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzIHdoZW4gR1N0cmVhbWVyJ3MgZGVidWdnaW5nIHN5c3RlbSBoYXMgYmVlbiBkaXNhYmxlZC4KCjIwMTAtMDYtMjQgMTU6MTc6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBhZGQgcGx1Z2luIGxvYWRpbmcgd2hpdGVsaXN0IHRvIHRlc3QgZW52aXJvbm1lbnQKCSAgT25seSB3YW50IHRvIGxvYWQgY29yZS9iYXNlL2dvb2QgcGx1Z2lucyBoZXJlLgoJICBGaXhlcyAjNjE5NzE3LgoKMjAxMC0wNi0yNCAxNTowOToxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3M2ZmOTNhIHRvIGE1MTk1NzEKCjIwMTAtMDYtMjQgMTM6MDI6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkgIGdka3BpeGJ1ZmRlYzogYnVtcCByYW5rIHRvIFNFQ09OREFSWQoJICBCdW1wIGdka3BpeGJ1ZmRlYydzIHJhbmsgdG8gU0VDT05EQVJZIHRvIGdpdmUgaXQgYW4gZWRnZSBvdmVyIG1pc2MuCgkgIGltYWdlIGRlY29kZXJzIGluIGdzdC1mZm1wZWcgdGhhdCBhbHNvIGhhdmUgYSBNQVJHSU5BTCByYW5rLgoJICBGaXhlcyAjNjIwMTYyLgoKMjAxMC0wNi0yMyAxMjoxNToxMyArMDIwMCAgTWljaGFlbCBHcnplc2NoaWsgPG0uZ3J6ZXNjaGlrQHBlbmd1dHJvbml4LmRlPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICByZXNldCB0aGUgaGF2ZV9pbmRleCBmbGFnIGF0IHRyYW5zaXRpb24gUEFVU0VEX1RPX1JFQURZCgkgIElmIHdlIHJlc3RhcnQgdGhlIFN0cmVhbSBpbiB0aGUgY2FzZSBvZiBkb2luZyBhIHRyYW5zaXRpb24gZnJvbQoJICBQQVVTRURfVE9fUkVBRFkgYW5kIGJhY2sgd2l0aCBSRUFEWV9UT19QQVVTRUQgYXNvLiB0aGUgZHVyYXRpb24gb2YgdGhlIHZpZGVvCgkgIHdpbGwgZ2V0IGNhbGN1bGF0ZWQgZXZlbiBpZiB3ZSBoYXZlIGEgYXZpIGhlYWRlciB3aXRoIHRoYXQgaW5mb3JtYXRpb24uCgkgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgR3J6ZXNjaGlrIDxtLmdyemVzY2hpa0BwZW5ndXRyb25peC5kZT4KCjIwMTAtMDYtMjMgMjA6Mjk6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBGaXggbmVnb3RpYXRpb24gZm9yIEk0MjAvWVYxMgoJICBXZSBkb24ndCBzdXBwb3J0IGNvbnZlcnNpb24gaW50byAqYWxsKiBZVVYKCSAgZm9ybWF0cyBmb3IgdGhlbSwgb25seSBpbnRvIEk0MjAvWVYxMi9BWVVWLgoJICBGaXhlcyBidWcgIzYyMjUwMS4KCjIwMTAtMDYtMjIgMTU6MjI6NDQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBwcm9wZXIgY2xvc2luZyBzZWdtZW50IGNvbnN0cnVjdGlvbgoJICBGaXhlcyAjNjE4OTgyLgoKMjAxMC0wNi0yMiAxNTo0Njo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMjogcHJlY2FsY3VsYXRlIGR1cmF0aW9uCgkgIEhhdmUgZnJhbWUgZHVyYXRpb24gaW4gdGhlIGluc3RhbmNlIHN0cnVjdCBhbmQgY2FsY3VsYXRlIGl0IGFmdGVyIGNoYW5naW5nIHRoZSBjYXBzLgoKMjAxMC0wNi0yMSAxMjoxNzozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNpbmsuYzoKCSAgdjRsMnNpbms6IHVzZSBnbGliIGRlZmluZXMgaW4gcHJvcGVydHkgZGVjbGFyYXRpb25zIGZvciByZWFkYWJpbGl0eQoKMjAxMC0wNi0yMSAxMjoxNToxNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDI6IHVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIHRvIHNhdmUgYSBmZXcgYnl0ZXMgYW5kIHN0cmR1cHMKCjIwMTAtMDYtMTggMjA6MDI6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBsb2NraW5nIGFmdGVyIG1vdmluZyB0aGluZ3MgYXJvdW5kCgoyMDEwLTA2LTE4IDE0OjEzOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC90YWdsaWIvZ3N0YXBldjJtdXguY2M6CgkgIHRhZ2xpYjogVXNlIG5ld2x5IGFkZGVkIGdzdF90YWdfbGlzdF9wZWVrX3N0cmluZ19pbmRleAoJICBSZXBsYWNlIGNhbGxzIHRvIGdzdF90YWdfbGlzdF9nZXRfc3RyaW5nX2luZGV4IHdpdGgKCSAgZ3N0X3RhZ19saXN0X3BlZWtfc3RyaW5nX2luZGV4IHRvIGF2b2lkIGEgc3RyaW5nIGNvcHkKCjIwMTAtMDYtMTggMTY6NTY6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IG1ha2Ugc29tZSBlcnJvcnMgYXMgd2FybmluZ3MKCSAgQXZvaWQgc3BhbW1pbmcgdGhlIHRlc3RzdWl0ZSB3aXRoIHRoZXNlIGVycm9yIGRlYnVnIGxpbmVzLgoKMjAxMC0wNi0xOCAxNjo0OTowOCArMDIwMCAgS2VpdGggTmljaG9sc29uIDxrZWl0aC5uaWNob2xzb24gYXQgdWx0cmEtY2NzLmNvbT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogZml4IG11bHRpY2FzdCBzdXBwb3J0IG9uIHdpbmRvd3MgYnVpbGRzCgkgIE9uIHdpbmRvd3MgYnVpbGRzLCBzZXRzIHNvdXJjZSBhZGRyZXNzIGZvciBiaW5kIHRvIElOQUREUl9BTlksIHdoaWxlCgkgIG1haW50YWluaW5nIHRoZSBvcmlnaW5hbCBtdWx0aWNhc3QgZ3JvdXAgYWRkcmVzcyBmb3Igc3Vic2VxdWVudCBqb2luLgoJICBGaXhlcyAjNTk1OTc4CgoyMDEwLTA2LTE4IDE2OjE2OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOgoJICB1ZHA6IG1ha2UgdXJsIHBhcnNpbmcgY29tcGF0aWJsZSB3aXRoIFZMQyBzeW50YXgKCSAgU2tpcCBldmVyeXRoaW5nIGJlZm9yZSB0aGUgQCBzaWduIGluIHRoZSB1cmwgbG9jYXRpb24uIFZMQyB1c2VzIHRoYXQgYXMgdGhlCgkgIHJlbW90ZSBhZGRyZXNzIHRvIGNvbm5lY3QgdG8gKGJ1dCB3ZSBpZ25vcmUgaXQgZm9yIG5vdykuIFRoaXMgbWFrZXMgb3VyIHVkcCB1cmxzCgkgIGNvbXBhdGlibGUgd2l0aCB0aGUgb25lcyB1c2VkIGJ5IFZMQy4KCSAgRml4ZXMgIzU5NzY5NQoKMjAxMC0wNi0xOCAxNTowODoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBmYWN0b3Igb3V0IHRoZSBjb25uZWN0aW9ucwoJICBLZWVwIGEgZ2xvYmFsIGNvbm5lY3Rpb24gZm9yIGFnZ3JlZ2F0ZSBjb250cm9sIGJ1dCBhbHNvIGtlZXAgc3RyZWFtIGNvbm5lY3Rpb25zCgkgIGZvciBub24tYWdncmVnYXRlIGNvbnRyb2wuCgkgIEFkZCBzb21lIGhlbHBlciBtZXRob2RzIHRvIGNvbm5lY3QvY2xvc2UvZmx1c2ggdGhlIGNvbm5lY3Rpb25zLgoKMjAxMC0wNi0xNyAxMzowNjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogYWRkIG5vbi1hZ2dyZWdhdGUgY29udHJvbAoJICBBZGQgbm9uLWFnZ3JlZ2F0ZSBjb250cm9sLgoJICBTZXBhcmF0ZSByZXRyaWV2aW5nIHRociBTRFAgZnJvbSBwYXJzaW5nIGFuZCBzZXR0aW5nIHVwIHRoZSBzdHJlYW1pbmcgZnJvbSB0aGUKCSAgU0RQLgoKMjAxMC0wNi0xNyAyMjoxMDowMyArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgY29tbW9uIGJhY2sgdG8gd2hhdCBpdCB3YXMKCjIwMTAtMDYtMTcgMTc6MjQ6MjIgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogYWRkIGRvY3VtZW50YXRpb24gZm9yIHN0cmVhbWFibGUgcHJvcGVydHkKCjIwMTAtMDYtMTcgMTY6NDM6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgIGRvY3M6IHVwZGF0ZSBpbnRyb3NwZWN0ZWQgcGx1Z2luIGRvY3MgZm9yIGdzdGRvYy1zY2FuZ29iaiBhbmQgb3RoZXIgY2hhbmdlcwoJICBVcGRhdGUgY29tbW9uIGZvciBsYXRlc3QgZ3N0ZG9jLXNjYW5nb2JqLCBhbmQgaW5zcGVjdCB4bWwgZmlsZXMgZm9yCgkgIGVzY2FwaW5nIGFuZCBwYWQgdGVtcGxhdGUgb3JkZXIgY2hhbmdlcy4KCjIwMTAtMDYtMTcgMTY6NDE6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBzdWItZGlyZWN0b3J5IHdpdGggb3JjIHRlc3RzCgoyMDEwLTA2LTE3IDEwOjQ0OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBGaXggYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA2LTE2IDIxOjAyOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSAgZWJtbC1yZWFkOiBaZXJvLXNpemVkIGludHMvdWludHMvZmxvYXRzIGhhdmUgYSB2YWx1ZSBvZiAwIGFjY29yZGluZyB0byB0aGUgRUJNTCBzcGVjCgoyMDEwLTA2LTE2IDIwOjAyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBGaXggcG9zc2libGUgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGFuZCBhc3NlcnRpb24gdGhhdCBjb3VsZCBiZSBjYXVzZWQgYnkgaW52YWxpZCBmaWxlcwoKMjAxMC0wNi0xNiAxOTo1MDozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogQ2xlYW4gdXAvZml4IHNvbWUgbWlub3IgZXJyb3IgaGFuZGxpbmcgYnVncwoKMjAxMC0wNi0xNiAxOTozMDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICB4aW1hZ2VzcmM6IEZpeCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBhbGxvY2F0aW9uIG9mIHRoZSB4aW1hZ2UgZmFpbHMKCjIwMTAtMDYtMTYgMTk6Mjg6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY3RhZy5jOgoJICBmbGFjdGFnOiBGaXggcG9zc2libGUgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTE2IDE5OjI0OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvaWlyZmlsdGVyLmM6CgkgIGF1ZGlvaWlyZmlsdGVyOiBGaXggcG9zc2libGUgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCgoyMDEwLTA2LTE2IDE5OjIwOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSAgd2FycHR2OiBEb24ndCB1c2UgZmxvYXRzIGFzIGxvb3AgY291bnRlcnMKCjIwMTAtMDYtMTYgMTE6MjE6MzUgLTA0MDAgIEhhdm9jIFBlbm5pbmd0b24gPGhwQHBvYm94LmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMnNyYzogZG8gbm90IHRyeSB0byBjaGFuZ2UgZGV2aWNlIGZvcm1hdCBpZiBpdCdzIGFscmVhZHkgY29ycmVjdAoJICBUaGlzIGFsbG93cyBzZXRfY2FwcyB0byBzdWNjZWVkIGlmIGNhcHMgY2hhbmdlIGluIGEgd2F5IHRoYXQKCSAgd291bGQgbm90IG1vZGlmeSB0aGUgZm9ybWF0IHdlJ3JlIGdldHRpbmcgZnJvbSB0aGUgaGFyZHdhcmUuCgkgIE90aGVyd2lzZSBpZiBub3QgaW4gTlVMTCBzdGF0ZSwgc2V0dGluZyBjYXBzIHdvdWxkIGZhaWwKCSAgd2l0aCBFQlVTWS4KCSAgV2l0aCB0aGlzIGNoYW5nZSwgaW4gc29tZSBjYXNlcyBpdCdzIE9LIHRvIGdvIFBMQVlJTkctPlJFQURZLT5QTEFZSU5HCgkgIHJhdGhlciB0aGFuIFBMQVlJTkctPk5VTEwtPlBMQVlJTkcgdG8gYXZvaWQgYSB0aW1lLWNvbnN1bWluZyBjbG9zZQoJICBhbmQgcmVvcGVuIG9mIHRoZSBkZXZpY2UuCgkgIEZpeGVzICM2MjE3MjMKCjIwMTAtMDYtMTYgMTE6MDk6MTcgLTA0MDAgIEhhdm9jIFBlbm5pbmd0b24gPGhwQHBvYm94LmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogaW4gbmVnb3RpYXRlLCBjaGVjayBmb3IgZXJyb3IgcmV0dXJuIGZyb20gc2V0X2NhcHMKCSAgRml4ZXMgIzYyMTcyMyAgKHBhcnRpYWxseSkKCSAgc2V0X2NhcHMgY2FuIGZhaWwgaWYgdGhlIHZpZGVvIGRldmljZSBpcyBydW5uaW5nLCBpbiB0aGF0IGNhc2UKCSAgc2V0dGluZyBpdHMgZm9ybWF0IGxlYWRzIHRvIEVCVVNZLgoJICBJZiBzZXRfY2FwcyBmYWlscyB0aGVuIHdlIHdpbGwgbm90IGhhdmUgc2V0IHVwIHRoZSBidWZmZXIgcG9vbAoJICAoaXQgd2lsbCBiZSBOVUxMKSB3aGljaCBsZWFkcyB0byBhIGNyYXNoIHdoZW4gd2UgdHJ5IHRvIHB1bGwKCSAgYnVmZmVycy4gSWYgd2UgZmFpbCB0aGUgbmVnb3RpYXRlIG9uIHNldF9jYXBzIGZhaWx1cmUsIHRoZW4gd2UKCSAgd29uJ3QgZ28gdG8gcGxheWluZyBzdGF0ZSBhbmQgd29uJ3QgY3Jhc2guCgkgIFRoaXMgaXMgYSBzbWFsbCBpbXByb3ZlbWVudC4gT2YgY291cnNlLCBhIG5pY2VyIGZpeCB3b3VsZAoJICBiZSB0byBtYWtlIHNldF9jYXBzIHdvcmsgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGZvcm1hdCBpcwoJICB1bmNoYW5nZWQuIElmIHRoZSBmb3JtYXQgaGFzIGNoYW5nZWQsIGZhaWxpbmcgaXMKCSAgcHJvYmFibHkgY29ycmVjdCBiZWNhdXNlIHdlIG5lZWQgdG8gY2xvc2UgdGhlIGRldmljZQoJICAoZ28gdG8gTlVMTCBzdGF0ZSkgaW4gb3JkZXIgdG8gc2V0IGNhcHMuCgoyMDEwLTA2LTE2IDE1OjQwOjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGltcHJvdmUgYXVkaW8gdmJyIGRldGVjdGlvbgoJICBTdWJzZXF1ZW50IGVudHJ5IHRpbWUgY2FsY3VsYXRpb25zIHVzZSBibG9ja2FsaWduIHZhbHVlIHRvIGRldGVybWluZQoJICBudW1iZXIgb2YgZnJhbWVzIHBlciBjaHVuaywgYW5kIGJsb2NrYWxpZ24gPT0gMSBpcyB0aGVuIG1vc3QgdW5saWtlbHkgdG8gcmVzdWx0CgkgIGluIHJlYXNvbmFibGUgdmFsdWVzICh3aGljaCBhbHNvIGFsaWducyB3aXRoICJzcGVjIikuCgoyMDEwLTA2LTE2IDE1OjUyOjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIHJ0cGgyNjRkZXBheTogdHdlYWsgREVMVEFfVU5JVCBsYWJlbGluZwoJICBDb25zaWRlciBTUFMsIFBQUyBhbmQgSURSIGFzIGtleWZyYW1lLCBhbGwgb3RoZXJzIGFzIERFTFRBX1VOSVQuCgkgIFNlZSAjNjIwMTU0LgoKMjAxMC0wNi0xNSAyMDowNjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkgIHdhdnBhY2tkZWM6IEluaXRpYWxpemUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBhbmQgZG9uJ3QgdW5yZWYgaXQgaWYgaXQncyBOVUxMCgoyMDEwLTA2LTE1IDIwOjA0OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IEFzc2lnbiB2YXJpYWJsZXMgYmVmb3JlIHByaW50aW5nIHRoZW0KCjIwMTAtMDYtMTUgMjA6MDA6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBJbml0aWFsaXplIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTAtMDYtMTUgMTk6NDc6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBJbml0aWFsaXplIHZhcmlhYmxlCgoyMDEwLTA2LTE1IDE5OjQ1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogRml4IE5FV1NFR01FTlQgcGFyc2luZyBsb2dpYyBhbmQgZG9uJ3QgdXNlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDEwLTA2LTE1IDE3OjIwOjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOgoJICBtYXRyb3NrYTogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlCgoyMDEwLTA2LTE1IDE2OjQ5OjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5MzM5Y2NjIHRvIDM1NjE3YzIKCjIwMTAtMDYtMTUgMTY6NTQ6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWFkYjFjYSB0byA5MzM5Y2NjCgoyMDEwLTA2LTE1IDE2OjM1OjE4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU3Yzg5YjcgdG8gNWFkYjFjYQoKMjAxMC0wNi0xNSAxNDowODoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgZ2VuZXJhdGVkIHR2dGltZS5oIGZpbGUKCjIwMTAtMDYtMTUgMTU6MzY6MzMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzgwNDk4OCB0byA1N2M4OWI3CgoyMDEwLTA1LTE3IDEzOjU0OjAzICswMjAwICBNYXJjLUFuZHLDqSBMdXJlYXUgPG1sdXJlYXVAZmx1bW90aW9uLmNvbT4KCgkqIGV4dC9yYXcxMzk0L2dzdDEzOTRjbG9jay5jOgoJKiBleHQvcmF3MTM5NC9nc3QxMzk0Y2xvY2suaDoKCSAgcmF3MTM5NDogcmVtb3ZlIHVzZWxlc3MgbGFzdF90aW1lCgkgIEl0IHNlZW1zIHRvIG1lIHRoaXMgY29kZSBpcyB1c2VsZXNzOiByZW1vdmluZyBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxODg3MQoKMjAxMC0wNi0xNCAxOToyMToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiByZXNwZWN0IGFnZ3JlZ2F0ZSBjb250cm9sIGF0dHJpYnV0ZXMKCSAgd2hlbiB0aGUgU0RQIHNwZWNpZmllcyBhbiBhZ2dyZWdhdGUgY29udHJvbCB1cmwsIHVzZSB0aGF0IGZvciBwbGF5YmFjawoJICBjb250cm9sLgoJICBGaXhlcyAjNjE5NTMxCgoyMDEwLTA2LTE0IDE1OjM2OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgZ29vbTogQ2FsbCBvcmNfaW5pdCgpIGJlZm9yZSB0cnlpbmcgdG8gZ2V0IHRhcmdldCBmbGFncwoKMjAxMC0wNi0xNCAxNTozNTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IENhbGwgb3JjX2luaXQoKSBiZWZvcmUgdHJ5aW5nIHRvIGdldCB0YXJnZXQgZmxhZ3MKCjIwMTAtMDYtMTQgMTQ6MjY6MjIgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6CgkgIG1hdHJvc2thbXV4OiByZXZlcnQgY2hhbmdlIHRoYXQgc2V0IGEgcmVzZXJ2ZWQgZmxhZyBvbiB0aGUgQmxvY2suCgkgIFNvIG1hdHJvc2thJ3MgQmxvY2sgc3RydWN0dXJlIGhhcyBubyBrZXlmcmFtZSBmbGFnLCBvbmx5IHRoZSBTaW1wbGVCbG9jayBoYXMgaXQuCgkgIFRvIGRldGVjdCBrZXlmcmFtZXMgaW4gQmxvY2tzLCBpdCBpcyBqdXN0IHRoZSBCbG9ja0dyb3VwIGNvbnRhaW5lciB0aGF0IG5lZWRzCgkgIHRvIGhhdmUgYSBSZWZlcmVuY2VCbG9jayBhdHRhY2hlZCBpZiBpdCBpcyBhIGRlbHRhIGZyYW1lIGluIHZpZGVvLgoKMjAxMC0wNS0zMSAxMjo0NTowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogdXNlIGxpYmpwZWcgc2NhdHRlci1nYXRoZXIgb3BlcmF0aW9uIHRvIGF2b2lkIGRhdGEgY29weWluZwoJICBGaXhlcyAjNTgzMDQ3IChtb3JlKS4KCjIwMTAtMDUtMjcgMTU6NDU6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIGpwZWdkZWM6IG9wdGltaXplIGJ1ZmZlciBoYW5kbGluZyB3aGVuIHBhcnNpbmcKCSAgVXNlIGFuIGFkYXB0ZXIgdG8gY29sbGVjdCBpbmNvbWluZyBkYXRhLCBhbmQgdXNlIGFkYXB0ZXIgQVBJIHRvIHNjYW4gYW5kIHBlZWsuCgkgIEZpeGVzICM1ODMwNDcuCgoyMDEwLTA2LTE0IDEzOjQ4OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgb3NzNDogVXNlIGdfYXNjaWlfc3RyY2FzZWNtcCgpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgZ19zdHJjYXNlY21wKCkKCjIwMTAtMDYtMTQgMTM6Mjc6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSBHTElCX0VYVFJBX0NGTEFHUwoKMjAxMC0wNi0xNCAxMzowMzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdhMGZkZjUgdG8gYzgwNDk4OAoKMjAxMC0wNi0xNCAxMTo0NjozMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICBydHBoMjY0ZGVwYXk6IGFsc28gY29uc2lkZXIgQVUgYW5kIFNFSSBOQUxVcyBhcyBERUxUQV9VTklUCgkgIEZpeGVzICM2MjAxNTQuCgoyMDEwLTA2LTE0IDExOjMyOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmRhM2JhYiB0byA3YTBmZGY1CgoyMDEwLTA2LTEyIDIxOjI2OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXJvYnVzdGRlcGF5LmM6CgkgIGJ1aWxkOiBpbmNsdWRlIHN0ZGlvLmggZm9yIHNzY2FuZgoKMjAxMC0wNi0xMiAxNDoxMjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IEFkZCBjbGVhbiBydWxlIGZvciB0aGUgb3JjIHRlc3RzCgoyMDEwLTA2LTEyIDE0OjEyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogQWRkIGF1dG9nZW5lcmF0ZWQgb3JjIHRlc3RzCgoyMDEwLTA2LTEyIDA4OjI3OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzMzZmNhOSB0byA2ZGEzYmFiCgoyMDEwLTA2LTExIDE2OjIzOjI5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogRml4IGVsZW1lbnQgZGVzY3JpcHRpb24KCjIwMTAtMDYtMTEgMjE6MTM6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5jOgoJICBydHBtcGFyb2J1c3RkZXBheTogZG9uJ3QgdHJ5IHRvIHVucmVmIE5VTEwgYnVmZmVycwoJICBGaXhlcyBnZW5lcmljL3N0YXRlcyB1bml0IHRlc3QuCgoyMDEwLTA2LTExIDIwOjUwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB3YXZwYXJzZTogdXNlIHR5cGVmaW5kIGZ1bmN0aW9ucyB0byBjaGVjayBpZiBQQ00gZGF0YSBjb250YWlucyBkdHMgc3RyZWFtCgkgIFVzZSBuZXcgZHRzIGF1ZGlvIHR5cGVmaW5kZXIgZnJvbSAtYmFzZSB0byBjaGVjayBpZiB0aGUgUENNIGRhdGEKCSAgY29udGFpbnMgYSBkdHMgc3RyZWFtLiBUaGlzIHdheSB3ZSByZWNvZ25pc2UgbW9yZSB2YXJpZXRpZXMgbW9yZQoJICByZWxpYWJseSBhbmQgYWxzbyBkZXRlY3QgdGhlIGR0cyBzdHJlYW0gaWYgdGhlcmUgaXNuJ3QgYSBmcmFtZQoJICBzeW5jIHJpZ2h0IGF0IHRoZSBzdGFydCBvZiB0aGUgZGF0YS4KCSAgRml4ZXMgIzQxMzk0Mi4KCjIwMTAtMDYtMTEgMjA6NDc6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBzZXQgYnVmZmVyIG9mZnNldHMgYmVmb3JlIHVzaW5nIHRoZSBidWZmZXIgZm9yIHRoZSBmaXJzdCB0aW1lCgkgIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSB3aWxsIG5lZWQgdGhlIGNvcnJlY3Qgb2Zmc2V0CgkgIHNldCBvbiB0aGUgYnVmZmVyIChpZS4gMCkgYW5kIG5vdCB0aGUgYnl0ZSBvZmZzZXQgd2Ugc3RhcnRlZAoJICBwdWxsaW5nIHRoZSBkYXRhIGZyb20uCgoyMDEwLTA2LTEwIDE2OjE0OjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcm9idXN0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFyb2J1c3RkZXBheS5oOgoJICBydHA6IGFkZCBtcGEtcm9idXN0IGRlcGF5bG9hZGVyCgkgIEZpeGVzICM1ODk5OTcuCgoyMDEwLTA2LTExIDEwOjU3OjQxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogZml4IGF2aSBoZWFkZXIgYnl0ZXdyaXRpbmcKCSAgLi4uIGJ5IHVzaW5nIHByb3BlciBvZmZzZXRzIGZvciB0YWcgbGlzdCB3cml0aW5nLgoJICBBbHNvIHVzZSBfcmVzZXQgcmF0aGVyIHRoYW4gX2ZyZWUgYW5kIGNvbnNpc3RlbnRseSB1c2UgYnl0ZXdyaXRlciBwb3NpdGlvbi4KCSAgU2VlICM2MTkyOTMuCgoyMDEwLTA2LTEwIDIyOjU4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIFVwZGF0ZSAuZ2l0aWdub3JlCgkgIEFkZCB0aGUgZ2VuZXJhdGVkIG9yYyBzb3VyY2UgZmlsZXMKCjIwMTAtMDYtMTAgMjI6NTU6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbWF0cm9za2FtdXguYzoKCSAgbWF0cm9za2FtdXg6IEZpeCB1bml0IHRlc3QgZm9yIGNoYW5nZWQga2V5LWZyYW1lIGJlaGF2aW91cgoJICBBbGwgYXVkaW8gZnJhbWVzIGFyZSBtYXJrZWQgYXMga2V5ZnJhbWUgbm93IGluc3RlYWQgb2YgbWFya2luZwoJICB0aGVtIGFsbCBhcyBkZWx0YSB1bml0Li4uCgoyMDEwLTA2LTEwIDIyOjQ1OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9tbXguaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZG9yYy1kaXN0Lmg6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kb3JjLm9yYzoKCSAgdmlkZW9taXhlcjogUG9ydCBtb3N0IGJsZW5kaW5nIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIG9yYwoJICBPbmx5IHJlbWFpbmluZyBNTVggaW1wbGVtZW50YXRpb24gaXMgdGhlIEFSR0IvQkdSQS9BWVVWIGJsZW5kaW5nCgkgIGZvciB3aGljaCB3ZSBmaXJzdCBuZWVkIHRoZSBvcmMgY29tcG9zaXRpbmcgb3Bjb2Rlcy4KCjIwMTAtMDYtMTAgMjA6MTc6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfbW14Lmg6CgkgIHZpZGVvbWl4ZXI6IFJlcGxhY2Ugc29tZSB0YWJzIGJ5IHNwYWNlcwoKMjAxMC0wNi0xMCAxMTowNDozOCArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZXh0L3JhdzEzOTQvZ3N0MTM5NGNsb2NrLmM6CgkgIGR2MTM5NDogRml4IHRoZSBpbnRlcm5hbCBjbG9jayBldmVuIG1vcmUKCSAgVGhlIGN5Y2xlQ291bnQgcmVnaXN0ZXIgaXMgMTMgYml0cyBsb25nIGFuZCB0aGUgY3ljbGVPZmZzZXQgb25lCgkgIGlzIDEyIGJpdHMgbG9uZy4gVG8gcmVhZCB0aGUgY3ljbGVDb3VudCByZWdpc3RlciB3ZSBuZWVkIHRvIHNoaWZ0CgkgIDEyIGJpdHMgYW5kIG5vdCAxMy4gRml4ZXMgIzYxNTQ2MQoKMjAxMC0wNi0wOSAxODozNzoyOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXNlIG00IG1hY3JvIHRvIGNoZWNrIGZvciBPcmMKCjIwMTAtMDYtMDkgMjI6NDA6MjMgKzAyMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBzb21lIG5vbi1kZWx0YSBidWZmZXJzIHdlcmUgbm90IG1hcmtlZCBhcyBrZXlmcmFtZXMKCjIwMTAtMDYtMDkgMjI6MDA6MTYgKzAyMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguaDoKCSAgbWF0cm9za2FtdXg6IGNoYW5nZSAyIHNlY29uZCBsaW1pdCBwZXIgY2x1c3RlcgoJICBTdGFydCBjbHVzdGVyIGF0IGV2ZXJ5IGtleWZyYW1lIG9yIHdoZW4gd2Ugd291bGQgb3ZlcmZsb3cgdGhlIHByZXZpb3VzCgkgIGNsdXN0ZXIncyByZWxhdGl2ZSB0aW1lc3RhbXAgZmllbGQuIFRoaXMgd291bGQgYXZvaWQgYXMgbXVjaCBhcyBwb3NzaWJsZQoJICBzdGFydGluZyBjbHVzdGVycyBhdCBub24ta2V5ZnJhbWVzLgoKMjAxMC0wNi0wOSAxMjo0MDowOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZhZDE0NWIgdG8gNzMzZmNhOQoKMjAxMC0wNi0wOSAxMjozNDowMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3NjgzYzEgdG8gZmFkMTQ1YgoKMjAxMC0wNi0wOSAyMDo1MzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogRG9uJ3QgcmVxdWVzdCBtb3JlIHNoYXJlZCBtZW1vcnkgdGhhbiBuZWVkZWQKCjIwMTAtMDYtMDkgMjA6NDU6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuYzoKCSAgc3dpdGNoc2luazogU2V0IHRoZSBHU1RfRUxFTUVOVF9JU19TSU5LIGZsYWcgb24gdGhlIHNpbmsKCjIwMTAtMDYtMDkgMjA6NDM6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc2luay5oOgoJICBnY29uZnZpZGVvc2luazogVXNlIEdzdFN3aXRjaFNpbmsgYXMgYmFzZSBjbGFzcwoKMjAxMC0wNi0wOSAyMDozMDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzoKCSAgZ2NvbmZhdWRpb3Npbms6IFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTCgoyMDEwLTA2LTA5IDIwOjI5OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuaDoKCSAgZ2NvbmZhdWRpb3Npbms6IFJlbmFtZSBpbnN0YW5jZSB2YXJpYWJsZSB0byBiZSBtb3JlIGRlc2NyaXB0aXZlCgoyMDEwLTA2LTA5IDIwOjIyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJICBhdXRve2F1ZGlvLHZpZGVvfXNpbms6IERvbid0IGxvc2UgdGhlIEdTVF9FTEVNRU5UX0lTX1NJTksgZmxhZyBhZnRlciByZW1vdmluZyB0aGUgY2hpbGQKCjIwMTAtMDYtMDkgMjA6MDc6MDkgKzAyMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBmbHVlbmRvLmNvbT4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiBQbHVnIHNvbWUgbWVtbGVhayBhbmQgc3VwcG9ydCAyMjA1MEh6IG1vbm8gc291bmQuCgkgIFNlZ21lbnQgc2l6ZSBuZWVkcyB0byBiZSBhIG11bHRpcGxlIG9mIHRoZSBzYW1wbGUgc2l6ZSBpbiBieXRlcy4KCjIwMTAtMDYtMDkgMTY6MjI6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IEZsdXNoIHNobSBidWZmZXIgaW1tZWRpYXRlbHkgaWYgaXQncyBmdWxsCgoyMDEwLTA2LTA5IDE2OjIxOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBGaXggd3JpdGluZyBvZiBidWZmZXJzIGxhcmdlciB0aGFuIHNlZ3NpemUKCSAgRml4ZXMgYnVnICM2MjA1NDAuCgoyMDEwLTA2LTA5IDE1OjQyOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBGaXggcGxheWJhY2sgaWYgUEEgZG9lc24ndCBnaXZlIHVzIGEgbGFyZ2UgZW5vdWdoIHNoYXJlZCBtZW1vcnkgYnVmZmVyCgoyMDEwLTA2LTA5IDE1OjQyOjE5ICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIG1hdHJvc2thbXV4OiBjaGFuZ2UgaW5kZXhlZCBwcm9wZXJ0eSB0byBzdHJlYW1hYmxlCgkgIFRoZSBwcm9wZXJ0eSBzdHJlYW1hYmxlIGhhcyByZXZlcnNlIHNlbWFudGljcyB0byBpbmRleGVkLgoKMjAxMC0wNi0wOSAwOToxMzowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5oOgoJICBmbHZtdXg6IFJlbmFtZSB1bnJlbGVhc2VkIHByb3BlcnR5ICdpbmRleGVkJyB0byAnc3RyZWFtYWJsZScKCSAgUmVuYW1lICdpbmRleGVkJyB0byAnc3RyZWFtYWJsZScgZm9yIGEgYmV0dGVyIG5hbWUgd2hpbGUgaXQKCSAgaGFzbid0IGJlZW4gcmVsZWFzZWQKCjIwMTAtMDYtMDggMTU6MjM6NTEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogUkVRVUlSRU1FTlRTOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIGxpYm9pbCBjaGVjawoKMjAxMC0wNi0wOCAxNDo0NDoxOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgbGV2ZWw6IHJlbW92ZSB1bnVzZWQgbGlib2lsIGluY2x1ZGUKCjIwMTAtMDYtMDQgMTg6MjI6NDIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkgIHZpZGVvbWl4ZXI6IGxpYm9pbCB0byBvcmMgY29udmVyc2lvbgoKMjAxMC0wNi0wNCAxODoyMToyMSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvdmlkZW9ib3gvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMtZGlzdC5oOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3hvcmMub3JjOgoJICB2aWRlb2JveDogbGlib2lsIHRvIG9yYyBjb252ZXJzaW9uCgoyMDEwLTA2LTA0IDE4OjE2OjI1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJKiBnc3QvZ29vbS9SRUFETUU6CgkqIGdzdC9nb29tL2dzdGdvb20uYzoKCSogZ3N0L2dvb20vcGx1Z2luX2luZm8uYzoKCSAgZ29vbTogbGlib2lsIHRvIG9yYyBjb252ZXJzaW9uCgoyMDEwLTA2LTA4IDE2OjA0OjIzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9kZWludGVybGFjZS9NYWtlZmlsZS5hbToKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS1kaXN0LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUtZGlzdC5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lLm9yYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3ZmaXIuYzoKCSAgZGVpbnRlcmxhY2U6IG9yY2lmeSBzb21lIGRlaW50ZXJsYWNpbmcgbWV0aG9kcwoKMjAxMC0wNi0wOCAxNjowMzozNiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZGVpbnRlcmxhY2UvTWFrZWZpbGUuYW06CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS92ZmlyLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmUuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZWJmZi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZldGZmLmM6CgkgIGRlaW50ZXJsYWNlOiBjb252ZXJ0IGZyb20gbGlib2lsIHRvIG9yYwoKMjAxMC0wNi0wOCAxNToyMzoyOCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBSRVFVSVJFTUVOVFM6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBBZGQgb3JjIGNoZWNrCgoyMDEwLTA2LTA4IDE0OjA5OjAwICswMjAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguaDoKCSAgZmx2bXV4OiBBZGQgaW5kZXhlZCBwcm9wZXJ0eSB0byByZXBsYWNlIGRpc2FibGVkIGlzLWxpdmUuCgkgIEFkZCBpbmRleGVkIHByb3BlcnR5IHRvIGJlIHRoZSBuZWdhdGlvbiBvZiB3aGF0IHRoZSBkaXNhYmxlZCBpcy1saXZlIHByb3BlcnR5CgkgIHdhcy4gRml4ZXMgYnVnICM2MTMwNjYuCgoyMDEwLTA2LTA4IDA5OjIyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmF3MTM5NDogUmVxdWlyZSBsaWJyYXcxMzk0ID49IDIuMC4wIGZvciByYXcxMzk0X3JlYWRfY3ljbGVfdGltZXIKCSAgRml4ZXMgYnVnICM2MjA5MjkuCgoyMDEwLTA2LTA4IDA3OjM1OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSAgY21tbGVuYzogUmVtb3ZlIGhhY2sgdG8gbGV0IG9nZ211eCBzdGFydCBhIG5ldyBwYWdlIGZvciBldmVyeSBDTU1MIGJ1ZmZlcgoJICBvZ2dtdXggZG9lcyB0aGlzIGZvciBDTU1MIGJ5IGl0cyBvd24gbm93CgoyMDEwLTA2LTA3IDE4OjMyOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IERvbid0IGhhbmRsZSBub24tVElNRSBzZWVrcwoJICBEb24ndCBzZW5kIHRoZW0gdXBzdHJlYW0gYmVjYXVzZSBmb3IgdXBzdHJlYW0gYSBCWVRFUyBzZWVrCgkgIG1pZ2h0IG1ha2Ugc2Vuc2UgYnV0IGlzIGNvbXBsZXRlbHkgd3JvbmcgYmVjYXVzZSB1cHN0cmVhbQoJICBjYW4ndCBzZWVrIHRvIGEgYnl0ZSBwb3NpdGlvbiBvZiB0aGUgYXVkaW8gb3IgdmlkZW8gc3RyZWFtLgoJICBBbHNvIGRvbid0IGJ1aWxkIHRoZSBpbmRleCBpbiBwdXNoIG1vZGUgZm9yIG5vbi1USU1FIHNlZWtzLAoJICB0aGluZ3Mgd2lsbCBnbyB3cm9uZyBoZXJlIG90aGVyd2lzZS4KCjIwMTAtMDYtMDIgMTk6MTY6MjAgKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIENvcGUgd2l0aCBzaG9ydCBzdGFydGNvZGVzIGluIHRoZSBoMjY0IGJ5dGVzdHJlYW0KCjIwMTAtMDYtMDYgMTc6MjU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZTogbG9nIG1lc3NhZ2UgcHJpbnRmIGZvcm1hdCBmaXhlcwoKMjAxMC0wNi0wNiAxODowMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlci5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICBleHQ6IERvbid0IHVzZSBHU1RfREVCVUdfRlVOQ1BUUiBmb3IgR09iamVjdCB2ZnVuY3MKCjIwMTAtMDYtMDYgMTc6NTc6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc2RtYWJ1ZmZlci5jOgoJKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzoKCSogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkqIHN5cy9vc3M0L29zczQtc291cmNlLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hyaW5nYnVmZmVyLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6CgkqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuYzoKCSAgc3lzOiBEb24ndCB1c2UgR1NUX0RFQlVHX0ZVTkNQVFIgZm9yIEdPYmplY3QgdmZ1bmNzCgoyMDEwLTA2LTA2IDE3OjUyOjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc3JjLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2JyZWFrbXlkYXRhLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdHRhZ2luamVjdC5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RwbHVnaW4uYzoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIGdzdDogRG9uJ3QgdXNlIEdTVF9ERUJVR19GVU5DUFRSIGZvciBHT2JqZWN0IHZmdW5jcwoKMjAxMC0wNi0wNiAxNToxMjoxNiArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiByZWZhY3RvciBkZWx0YSB1bml0IGhhbmRsaW5nCgkgIFRoaXMgYWxsb3dzIHVzIHRvIHNraXAgZGVsdGEgdW5pdHMgZWFybGllciBhbmQgaXMgYSBiaXQgY2xlYXJlciBpbiBteQoJICBvcGluaW9uLiBJdCBhbHNvIG1ha2VzIG9ubHkgdmlkZW8gYnVmZmVycyBldmVyIGJlIGRlbHRhIHVuaXRzLCBub3QKCSAganVzdCBmb3IgU2ltcGxlQmxvY2sgYXMgYmVmb3JlLgoKMjAxMC0wNi0wNiAxNToxNzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBDbGVhciBhZGFwdGVyIG9uIGRpc2NvbnRpbnVpdGllcwoKMjAxMC0wNi0wNiAxNDowMzo1MyArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBJZ25vcmUga2V5ZnJhbWUgZmxhZyBmb3Igbm9uLXZpZGVvIHN0cmVhbXMKCSAgV2hlbiB0aGUga2V5ZnJhbWUgYml0IG9mIFNpbXBsZUJsb2NrIEZsYWdzIHdhc24ndCBzZXQsIHRoZSBidWZmZXIgd2FzIGJlaW5nCgkgIG1hcmtlZCB3aXRoIEdTVF9CVUZGRVJfRkxBR19ERUxUQV9VTklULCBjYXVzaW5nIGFsbCBidWZmZXJzIHRvIGJlIHNraXBwZWQKCSAgYWZ0ZXIgYSBzZWVrLiBUaGlzIG1heSBiZSBhIHByb2JsZW0gd2l0aCB0aGUgU29yZW5zb24gU3F1aXNoIGVuY29kZXIsIGJ1dAoJICBhcmd1YWJseSB0aGUga2V5ZnJhbWUgYml0IHNob3VsZCBvbmx5IGJlIGFwcGxpZWQgdG8gdmlkZW8uCgkgIEZpeGVzIGJ1ZyAjNjIwMzU4LgoKMjAxMC0wNi0wNiAxNDo1Njo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBGaXJzdCB0cnkgdXBzdHJlYW0gd2hlbiBoYW5kbGluZyBzZWVrIGV2ZW50cy9xdWVyaWVzCgoyMDEwLTA2LTA0IDE0OjU0OjU5IC0wNDAwICBUcmlzdGFuIE1hdHRoZXdzIDx0cmlzdGFuQHNhdC5xYy5jYT4KCgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5jOgoJICBnc3RydHBjZWx0cGF5OiBkb24ndCBhbHdheXMgZml4YXRlIHNpbmsgY2FwcyB0byAxIGNoYW5uZWwKCSAgVGhlIGdldGNhcHMgZnVuY3Rpb24gc2hvdWxkIG5vdCBmaXhhdGUgdGhlIGNoYW5uZWxzIGZpZWxkIHVudGlsIHdlCgkgIGdldCB0aGUgZW5jb2RpbmctcGFyYW1zIGZpZWxkIGZyb20gb3VyIHNyY3BhZCdzIGNhcHMuIEZpeGVzICM2MjA1OTEKCjIwMTAtMDYtMDQgMTM6NTc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3A6IHRyeSBhbGwgcmFuZ2VzIGZyb20gdGhlIHNkcAoJICBUcnkgYWxsIHJhbmdlcyBpbiB0aGUgU0RQIGJlZm9yZSBnaXZpbmcgdXAuCgoyMDEwLTA2LTA0IDEzOjU2OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBtYWtlIHBhcnNlX3JhbmdlIHJldHVybiByZXN1bHQKCSAgTWFrZSB0aGUgcGFyc2VfcmFuZ2UgZnVuY3Rpb24gcmV0dXJuIGlmIHRoZSBwYXJzaW5nIHN1Y2NlZWRlZCBvciBmYWlsZWQuCgoyMDEwLTA2LTA0IDExOjQ0OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBpZiB3ZSdyZSBub3QgbGlua2VkIGRvd25zdHJlYW0sIHdlIGNhbiBkbyBhbnkgZm9ybWF0CgkgIFN0dXBpZCBtZSwgYXNzdW1pbmcgX2dldF9hbGxvd2VkX2NhcHMoKSB3b3VsZCBhY3R1YWxseSByZXR1cm4gdGhlCgkgIHBhZCB0ZW1wbGF0ZXMgaWYgdGhlcmUgd2FzIG5vIHBlZXIuCgoyMDEwLTA1LTMxIDE2OjI2OjE5ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgIEtlZXAgYW5ub3VuY2luZyB0aGUgZGVsaXZlcnktbWV0aG9kIGluIHRoZSBjYXBhYmlsaXRpZXMKCSAgRXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIGRlbGl2ZXJ5LW1ldGhvZCBpbiBvdXIgcGF5bG9hZGVyLCBvbGRlciB2ZXJzaW9ucyBvZgoJICB0aGUgdGhlb3JhIHBheWxvYWRlciBpbiBnc3RyZWFtZXIgcmVxdWlyZWQgaXQuIEFzIHN1Y2ggd2UgbmVlZCB0byBrZWVwIHRoaXMKCSAgYXJvdW5kIGluIHRoZSBjYXBzIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS4KCSAgVGhpcyByZXZlcnRzIHBhcnQgb2YgNDk0NjNhMzdjYmFhOTUyZTE0MDEyOTFmMGEyNjIzZGU2Y2FiMzg4MAoJICBGaXhlcyAjNjE4OTQwCgoyMDEwLTA2LTAzIDE3OjUyOjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgb3NzNDogYWRkIHNvbWUgY29tbWVudHMgZm9yIHRyYW5zbGF0b3JzIHRvIGNsYXJpZnkgbWVhbmluZyBvZiAiTG93IgoJICAiTG93IiBldGMuIGFyZSBxdWFsaXR5IHNldHRpbmdzIGhlcmUgKGUuZy4gZm9yIHRoZSBpbnRlcm5hbCByZXNhbXBsZXIpLgoJICBTb21lIGRheSB3aGVuIHdlIHVzZSBHTGliJ3MgaTE4biBmdW5jdGlvbnMgd2UgbWlnaHQgd2FudCB0byB1c2UKCSAgTkNfKCkgYW5kIGdfZHBnZXR0ZXh0MigpIGhlcmUgaW5zdGVhZCBvZiB0aGUgY29tbWVudHMuCgkgIEZpeGVzICM1NTU5NjcuCgoyMDEwLTA2LTAzIDE5OjIzOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuaDoKCSAgbXA0Z2RlcGF5OiBjYWxjdWxhdGUgdGhlIGZyYW1lIGR1cmF0aW9uIGNvcnJlY3RseQoJICBXaGVuIHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUgZHVyYXRpb24sIHdlIG5lZWQgdG8gdXNlIHRoZSBhbW91bnQgb2YKCSAgZnJhbWVzIGluIHRoZSBfcHJldmlvdXNfIHBhY2tldCwgbm90IHRoZSBjdXJyZW50IHBhY2tldC4gVGhlIGZyYW1lIGR1cmF0aW9uIGlzCgkgIG5lZWRlZCB0byBjb3JyZWN0bHkgZGUtaW50ZXJsZWF2ZSBpbnRlcmxlYXZlZCBzdHJlYW1zLiBUaGlzIGZpeGVzIHRoZSBjYXNlIHdoZXJlCgkgIHRoZXJlIGFyZSBhIHZhcmlhYmxlIG51bWJlciBvZiBmcmFtZXMgaW4gYSBwYWNrZXQuCgkgIEZpeGVzICM2MjA0OTQKCjIwMTAtMDYtMDMgMTg6NTg6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IERvbid0IHJldHVybiBjYXBzIGluIGdldF9jYXBzKCkgdGhhdCB3aWxsIGJlIHJlamVjdGVkCgkgIFRoaXMgY29tbWl0IGJhc2ljYWxseSBwdXRzIF9nZXRfY2FwcygpIGluIHN5bmMgd2l0aCBhY2NlcHRfY2FwcygpLgoJICBJZiB3ZSBkb24ndCBoYXZlIGEgbWFzdGVyIHBhZCBPUiB0aGUgbWFzdGVyIHBhZCBjYXBzIGFyZW4ndCBuZWdvdGlhdGVkCgkgIHRoZW4gd2UganVzdCByZXR1cm4gdGhlIGRvd25zdHJlYW0gYWxsb3dlZCBjYXBzLgoJICBJZiB3ZSBoYXZlIGEgbWFzdGVyIHBhZCB3aXRoIG5lZ290aWF0ZWQgY2Fwcywgd2UgcmV0dXJuIHRob3NlIGNhcHMKCSAgd2l0aCBhIGZyZWUgcmFuZ2Ugb2Ygd2lkdGgvaGVpZ2h0L2ZyYW1lcmF0ZQoKMjAxMC0wNi0wMyAxMzo0NTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIFJldmVydCAicHVsc2VzaW5rOiBBZGQgY29tbWVudHMgdG8gcmVtb3ZlIHRoZSBwcm92aWRlLWNsb2NrIG1lc3NhZ2UgcG9zdGluZyBvbmNlIHdlIGRlcGVuZCBvbiBiYXNlIDAuMTAuMzAiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGYzNzA4ZjM4YWEzODM5YTZhNjI1Y2E3ZDFjMTY2MTAxYzlmYmI3Zi4KCSAgVGhlIGJhc2VhdWRpb3NpbmsgY29tbWl0IHdhcyByZXZlcnRlZAoKMjAxMC0wNi0wMyAxMDoyNzoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogQWRkIGNvbW1lbnRzIHRvIHJlbW92ZSB0aGUgcHJvdmlkZS1jbG9jayBtZXNzYWdlIHBvc3Rpbmcgb25jZSB3ZSBkZXBlbmQgb24gYmFzZSAwLjEwLjMwCgkgIGJhc2VhdWRpb3NpbmsgZG9lcyBhbGwgdGhpcyBmb3IgdXMgbm93LgoKMjAxMC0wNi0wMiAxNjozNjoxMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBkZWxheWVkIHNlZWsgaGFuZGxpbmcgYWxzbyBkZXNlcnZlcyBUUlVFIGV2ZW50IHJlc3BvbnNlCgoyMDEwLTA2LTAyIDE1OjMwOjQ3ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcKCSAgdW51c2VkIHZhcmlhYmxlIOKAmGVzdGltYXRlZOKAmQoKMjAxMC0wNi0wMiAxNTowNDowMCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBjb21tb246CgkgIGNvbW1vbjogcmV2ZXJ0IHRoZSBjaGFuZ2UgaSBkaWQgaW4gbXkgcHJldmlvdXMgY29tbWl0CgoyMDEwLTA2LTAyIDEzOjM5OjEwICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGNvbW1vbjoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogc3RvcCBidWZmZXJpbmcgYW5kIGVtaXQgRU9TIGF0IHRoZSBlbmQgb2YgYSBzdHJlYW0KCSAgV2hlbiB1c2luZyBSVFBfSklUVEVSX0JVRkZFUl9NT0RFX0JVRkZFUiwgbWFrZSBzdXJlIHRoYXQgdGhlIHJpbmdidWZmZXIgZG9lc24ndAoJICBnZXQgc3R1Y2sgYnVmZmVyaW5nIGZvcmV2ZXIgd2hlbiB0aGVyZSBpc24ndCBlbm91Z2ggZGF0YSBsZWZ0IHRvIGZpbGwgdGhlCgkgIGJ1ZmZlci4KCjIwMTAtMDYtMDEgMjE6NTI6NTkgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RwbHVnaW4uYzoKCSAgZGVidWd1dGlsczogRG9uJ3QgY29uc3VtZSBwcmVyb2xsIGJ1ZmZlciB0d2ljZQoKMjAxMC0wNi0wMSAyMTozMjoxMSArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJICBwdWxzZTogU3R5bGUgZml4OiB1c2UgZ19zdHJkdXAoKSBpbnN0ZWFkIG9mIHByaW50ZigpaW5nIGEgc2ltcGxlIHN0cmluZwoKMjAxMC0wNS0yNyAxNjowNzozMSArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2RlYnVndXRpbHMvdGVzdHMuYzoKCSAgZGVidWd1dGlsczogUmVwbGFjZSBtZDUgaW1wbGVtZW50YXRpb24gd2l0aCBnbGliJ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxOTgyNAoKMjAxMC0wNS0yMiAxMTo1NTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IGNsZWFuIHVwIGNvZGUgZm9yIGF2aSBoZWFkZXIgdXNpbmcgYSBieXRld3JpdGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTkyOTMKCjIwMTAtMDYtMDEgMTg6NTQ6NDEgLTA1MDAgIFBpZXJyZS1Mb3VpcyBCb3NzYXJ0IDxwaWVycmUtbG91aXMuYm9zc2FydEBpbnRlbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBvcHRpbWl6ZSBjb21tdW5pY2F0aW9uIHdpdGggUHVsc2VBdWRpbyB1c2luZyBwYV9zdHJlYW1fYmVnaW5fd3JpdGUKCjIwMTAtMDYtMDIgMTA6NTI6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IFBvc3QgcHJvdmlkZS1jbG9jayBtZXNzYWdlIG9uIHRoZSBidXMgaWYgdGhlIGNsb2NrIGFwcGVhcnMvZGlzYXBwZWFycwoJICBGaXhlcyBidWcgIzYyMDI3Ny4KCjIwMTAtMDYtMDEgMjM6NDk6MTcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxN2Y4OWU1IHRvIDQ3NjgzYzEKCjIwMTAtMDYtMDEgMjI6NTQ6NDkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjZGZmMGZiIHRvIDE3Zjg5ZTUKCjIwMTAtMDYtMDEgMjA6NDU6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IGZpbHRlciBjYXBzIHJldHVybmVkIGZyb20gZG93bnN0cmVhbSB3aXRoIG91ciBwYWQgdGVtcGxhdGUuCgoyMDEwLTA2LTAxIDE2OjU2OjMyICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogUmVtb3ZlIG1vcmUgdW5uZWVkZWQgd2FybmluZ3MKCjIwMTAtMDYtMDEgMTY6NTQ6MDMgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJICBtYXRyb3NrYW11eDogcmVtb3ZlIHVubmVlZGVkIHdhcm5pbmcKCjIwMTAtMDYtMDEgMTY6NDk6MTQgKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJICBtYXRyb3NrYW11eDogcmVtb3ZlIHVubmVlZGVkIGRlYnVnIHN0YXRlbWVudAoKMjAxMC0wNi0wMSAxNjoyNDo1MyArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYW11eDogY2hhbmdlIGlzLWxpdmUgcHJvcGVydHkgdG8gaW5kZXhlZAoKMjAxMC0wNS0yMyAxMzo1NjoxNiArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thOiB1c2UgdGhlIHVpbnQ2NCBzY2FsaW5nIGZ1bmN0aW9ucwoJICBJbiBkZW11eGVyIGFuZCBtdXhlciB1c2UgdGhlIGdzdF91dGlsX3VpbnQ2NCBzY2FsaW5nIGZ1bmN0aW9ucyByYXRoZXIgdGhhbgoJICBzdGFuZGFyZCBpbnRlZ2VyIGRpdmlzaW9uLiBBZGQgd2FybmluZ3MgKHRvIGJlIGNoYW5nZWQgdG8gZGVidWcpIGZvciBkZWJ1Z2dpbmcKCSAgdGhlIHRpbWVzdGFtcCBhbmQgZHVyYXRpb24uCgoyMDEwLTA1LTIxIDE0OjM1OjM0ICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogc2V0IGRlbHRhIHVuaXQgb24gYWxsIGJ1ZmZlcnMgZXhjZXB0IGNsdXN0ZXIgc3RhcnQgb25lcwoKMjAxMC0wNS0yMSAxMzozODoxMSArMDEwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IHN0b3JlIGNhcHMgYW5kIHNldCBvbiBidWZmZXJzIHJhdGhlciB0aGFuIHVzaW5nIHBhZCBjYXBzCgoyMDEwLTA1LTIxIDEzOjI1OjI0ICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogbWFrZSBzdXJlIHBhZHMgY2FwcyBhcmUgc2V0IGJlZm9yZSBhbnkgYnVmZmVycyBwdXNoZWQuCgoyMDEwLTA1LTIxIDEzOjE0OjA0ICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogYWRkIHN0cmVhbWhlYWRlcnMKCjIwMTAtMDUtMjEgMTI6MjM6MDggKzAxMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBubyBuZWVkIHRvIHNldCBjYWNoZSB0d2ljZQoKMjAxMC0wNS0yMSAwMTo1OTo1MyArMDIwMCAgWGF2aWVyIFF1ZXJhbHQgPHhxdWVyYWx0QGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgRG8gbm90IGNyZWF0ZSBhIFNlZWtIZWFkZXIsIEN1ZXMsIC4uIHdoZW4gZG9pbmcgbGl2ZQoKMjAxMC0wNS0yMCAyMzozOTo1OSArMDIwMCAgWGF2aWVyIFF1ZXJhbHQgPHhxdWVyYWx0QGdtYWlsLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBBZGQgaXMtbGl2ZSBwcm9wZXJ0eQoKMjAxMC0wNi0wMSAxMzoyMjoyNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZpeCB2YXJpYWJsZSBpbml0CgoyMDEwLTA1LTI4IDE2OjM3OjMyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBtYXRyb3NrYWRlbXV4OiBpbXByb3ZlIHJldmVyc2UgcGxheWJhY2sKCSAgU2xpZ2h0bHkgbW9kaWZ5IGFwcHJvYWNoIHRvIGFsc28gaGFuZGxlIGNhc2VzIHdoZXJlIGN1ZSBlbnRyaWVzIGRvIG5vdCByZWxpYWJseQoJICBsZWFkIHRvIGluaXRpYWwga2V5ZnJhbWVzLgoJICBGaXhlcyAjNjE5ODE3LgoKMjAxMC0wNS0yNCAxNjowMjo1OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS92ZmlyLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmUuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZWJmZi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZldGZmLmM6CgkgIGRlaW50ZXJsYWNlOiBhdm9pZCBndGstZG9jIGNvbmZ1c2luZyBjb21tZW50cwoKMjAxMC0wNS0yMSAxMToyMTo1OCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbWF0cm9za2FtdXguYzoKCSAgbWF0cm9za2FtdXg6IGFkanVzdCB1bml0IHRlc3QgdG8gbW9kaWZpZWQgYmVoYXZpb3VyCgoyMDEwLTA1LTIwIDE0OjMzOjQxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IHVzZSB3cml0ZSBjYWNoaW5nIGFsc28gd2hlbiB3cml0aW5nIGJ1ZmZlciBkYXRhCgkgIFNwZWNpZmljYWxseSwgdGhpcyByZWR1Y2VzIHB1c2hpbmcgc2V2ZXJhbCBzbWFsbCBidWZmZXJzIGZvciBlYWNoCgkgIGRhdGEgYnVmZmVyIGFuZCBhbHNvIGF2b2lkcyBhIHNlZWsgZm9yIGVhY2ggYnVmZmVyIGFsdG9nZXRoZXIKCSAgKHRob3VnaCBhIHNlZWsgaXMgc3RpbGwgbmVlZGVkIGZvciBlYWNoIGNsdXN0ZXIpLgoJICBGaXhlcyAjNjE5MjczLgoKMjAxMC0wNS0yMCAxNDoyMzowNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBmaXggZWJtbCB3cml0ZSBjYWNoaW5nIHdpdGggYnl0ZXdyaXRlciBpbXBsZW1lbnRhdGlvbgoJICBBbHNvIGNhY2hlIGEgYml0IG1vcmUgZHVyaW5nIGhlYWRlciB3cml0aW5nLgoJICBGaXhlcyAjNjE5MjczLgoKMjAxMC0wNS0yMCAxNDowODo0MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJICBtYXRyb3NrYW11eDogdXNlIGNvbnNpc3RlbnQgZGVidWcgY2F0ZWdvcnkgbmFtZSBmb3IgZWJtbHdyaXRlCgoyMDEwLTA1LTE4IDE0OjQ0OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IHVzZSBieXRlcmVhZGVyIGJhc2VkIEdzdEVibWxSZWFkIGFzIGEgaGVscGVyCgkgIC4uLiByYXRoZXIgdGhhbiBiYXNpbmcgb24gaXQgYnkgaW5oZXJpdGFuY2UuCgkgIEFsc28gdXNlIG1vcmUgY29tbW9uIGNvZGUgZm9yIHB1c2ggYW5kIHB1bGwgbW9kZS4KCSAgRml4ZXMgIzYxOTE5OC4KCSAgRml4ZXMgIzYxMTExNy4KCjIwMTAtMDYtMDEgMTU6NDc6MzIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogX2dldF9wYWRfdGVtcGxhdGUgcmVzdWx0IG5lZWRzIG5vIHVucmVmCgoyMDEwLTA1LTE4IDE5OjQyOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIHBuZ2VuYzogU3VwcG9ydCA4IGJpdCBncmF5c2NhbGUKCSAgQWRkcyBzdXBwb3J0IHRvIDggYml0IGdyYXlzY2FsZSBpbnB1dAoKMjAxMC0wNS0xOCAxNDo0Njo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IEFkZHMgOGJpdCBncmF5c2NhbGUgc3VwcG9ydAoJICBBZGRzIGRlY29kaW5nIHN1cHBvcnQgZm9yIGpwZWcgaW1hZ2VzIGluIDggYml0IGdyYXlzY2FsZSBmb3JtYXQuCgoyMDEwLTA1LTE4IDAxOjU3OjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogQWNjZXB0IGdyYXlzY2FsZSBhcyBpbnB1dAoJICBBZGRzIHZpZGVvL3gtcmF3LWdyYXlzY2FsZSAoOCBiaXQpIHN1cHBvcnQgdG8ganBlZ2VuYwoKMjAxMC0wNS0zMSAxMzozMDowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogSW1wbGVtZW50IHNpbmtwYWQgR2V0Q2Fwc0Z1bmN0aW9uLgoJICBUaGlzIGFsbG93cyByZXR1cm5pbmcgb25seSB0aGUgZm9ybWF0cywgd2lkdGgsIGhlaWdodCwgZnJhbWVyYXRlCgkgIGFuZCBwaXhlbC1hc3BlY3QtcmF0aW8gdGhhdCBkb3duc3RyZWFtIGNhbiBzdXBwb3J0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIwMTQ4CgoyMDEwLTA1LTMxIDA3OjQ5OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBEb24ndCBjb21wYXJlIHJ1bm5pbmcgdGltZXMgd2l0aCBzdHJlYW0gdGltZXMgd2hlbiBkb2luZyBRb1MKCjIwMTAtMDUtMjcgMjE6MDY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICBkZWludGVybGFjZTogRG9uJ3QgcmVjb25maWd1cmUgdGhlIGNhcHMgd2hlbiBjaGFuZ2luZyBwcm9wZXJ0aWVzCgkgIEZpeGVzIGJ1ZyAjNjE5ODQ4LgoKMjAxMC0wNS0yNiAxMzoxMzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmg6CgkgIGFscGhhOiBBZGQgcHJvcGVydHkgdG8gYWxsb3cgcGFzc3Rocm91Z2ggbW9kZQoJICBUaGlzIHBhc3N0aHJvdWdoIG1vZGUgaXMgdXNlZCBpZiB0aGUgYWxwaGEgbWV0aG9kIGlzICJzZXQiCgkgIGFuZCB0aGUgYWxwaGEgdmFsdWUgaXMgMS4wLgoJICBGaXhlcyBidWcgIzYxNzUxMi4KCjIwMTAtMDUtMjUgMTU6MTY6MDYgKzEwMDAgIEFsZXhhbmRlciBLb2pldm5pa292IDxhbGV4YW5kZXJAa29qZXZuaWtvdi5jb20+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IHN1cHBvcnQgMjQtYml0IHdpZHRoCgkgIEZpeGVzICM2MTkwNDUKCjIwMTAtMDUtMjQgMjE6NTA6NTggKzEwMDAgIEFsZXhhbmRlciBLb2pldm5pa292IDxhbGV4YW5kZXJAa29qZXZuaWtvdi5jb20+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgc3BlY3RydW06IHN1cHBvcnQgYXJiaXRyYXJ5IGJpdCBkZXB0aAoJICBQYXJ0aWFsbHkgZml4ZXMgIzYxOTA0NQoKMjAxMC0wNS0yNSAwNTozNjo0NiArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBmaXggZGVhZGxvY2sgaW50cm9kdWNlZCBieSB2aWRlbyBrZXlmcmFtZSBRb1MKCjIwMTAtMDUtMjMgMDk6MzI6MDggKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgIG1hdHJvc2thZGVtdXg6IHNraXAgYnVmZmVycyBiZWZvcmUgYSBsYXRlIGtleWZyYW1lIChRb1MpCgkgIEJlZm9yZSwgdnA4ZGVjIGhhZCBubyBvcHRpb24gYnV0IHRvIGRlY29kZSBhbGwgZnJhbWVzIGV2ZW4gaWYgc29tZS9hbGwKCSAgb2YgdGhlbSB3b3VsZCBiZSBsYXRlLiBXaXRoIHRoaXMgY2hhbmdlLCBwZXJmb3JtYW5jZSB3aGVuIGtleWZyYW1lcyBhcmUKCSAgZnJlcXVlbnQgaXMgaGVscGVkIGEgZ3JlYXQgZGVhbC4gT24gbXkgVGhpbmtwYWQgWDYwcywgZGVjb2RpbmcgYSAyMCBzCgkgIDEwODBwIHN1bmZsb3dlciBlbmNvZGUgd2l0aCBrZXlmcmFtZXMgZXZlcnkgMTAgZnJhbWVzIHdlbnQgZnJvbSB0YWtpbmcKCSAgNDIgcyB3aXRoIDUgZnJhbWVzIHNob3duIHRvIDIxIHMgd2l0aCAxNSBmcmFtZXMgc2hvd24gKHN0aWxsIHNsb3cKCSAgZW5vdWdoIHRvIGNvdW50IGJ5IGhhbmQpLiBXaGVuIGtleWZyYW1lcyBhcmUgbW9yZSBzcGFyc2UsIHlvdSB3aWxsCgkgIHN0aWxsIGJlIGFibGUgdG8gY2F0Y2ggdXAgZXZlbnR1YWxseSwgYnV0IHRoZSByZXN1bHRzIHdvbid0IGJlIGFzCgkgIG5vdGljYWJsZS4KCjIwMTAtMDUtMTQgMTc6NTc6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXJwYWQuaDoKCSAgdmlkZW9taXhlcjogRG9uJ3QgbWl4IGlucHV0IHdpdGggZGlmZmVyZW50IHBpeGVsIGFzcGVjdCByYXRpb3MKCSAgRml4ZXMgYnVnICM2MTg1MzAuCgoyMDEwLTA1LTE3IDE5OjU0OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5hc206CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5jOgoJICBkZWludGVybGFjZTogQWRkIE1NWC8zRE5vdyBpbXBsZW1lbnRhdGlvbnMgb2YgZ3JlZWR5aCBmb3IgVVlWWQoKMjAxMC0wNS0xNyAxOToxNjo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSAgZGVpbnRlcmxhY2U6IEZpeCBVWVZZIGltcGxlbWVudGF0aW9uIG9mIGdyZWVkeWggdG8gYmUgYWN0dWFsbHkgdXNlZAoKMjAxMC0wNS0xMSAxMTo0MzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvTWFrZWZpbGUuYW06CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWZzaW5rLmM6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6CgkgIGdka3BpeGJ1ZjogQWRkIGEgZ2RrcGl4YnVmMyBwbHVnaW4gdGhhdCB1c2VzIGdka3BpeGJ1ZjMKCjIwMTAtMDYtMDEgMTA6MDY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogd2luMzIvY29tbW9uL2dzdHJ0cGJpbi1tYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RydHBiaW4tbWFyc2hhbC5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dWRwLWVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dWRwLW1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdHVkcC1tYXJzaGFsLmg6CgkgIHdpbjMyOiBhZGQgbW9yZSBnZW5lcmF0ZWQgbWFyc2hhbCBhbmQgZW51bXR5cGUgZmlsZXMgdG8gd2luMzItdXBkYXRlCgoyMDEwLTA2LTAxIDA5OjI3OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS5jOgoJICBSZXZlcnQgIm1hdHJvc2thOiBhZGQgdGVtcG9yYXJ5IHdlYm0gdHlwZWZpbmRlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkMTQ4ZWMwYWQyMDUzYWJiMGMzOGZjNjgxYTg5NTMyOTI5ODUzODhmLgoJICBXZSBkZXBlbmQgb24gLWJhc2UgZ2l0IG5vdywgd2hpY2ggaGFzIGEgd2VibSB0eXBlZmluZGVyIGluIHRoZSB1c3VhbAoJICBwbGFjZS4KCjIwMTAtMDYtMDEgMDk6MjY6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBSZXZlcnQgImF2aW11eCwgZmx2bXV4LCBtYXRyb3NrYW11eDogZG9uJ3QgY3Jhc2ggaWYgdGFncyBhcnJpdmUgb24gbXVsdGlwbGUgaW5wdXQgcGFkcyBhdCB0aGUgc2FtZSB0aW1lIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDZhOTk4M2NkMjBjNDhiOTYzOTYyMjliM2Y5NGQwMjU0YTA1ZGRmNDguCgkgIFJlbHkgb24gbG9ja2luZyBkb25lIGluIEdzdFRhZ1NldHRlciBpbiBjb3JlIGdpdC4KCjIwMTAtMDYtMDEgMDk6MjM6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlcXVpcmUgY29yZS9iYXNlIGdpdAoJICBGb3IgV2ViTSB0eXBlZmluZGluZyBhbmQgR3N0VGFnc2V0dGVyIGZpeGVzLgoKMjAxMC0wNi0wMSAwOToxNzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMjMgPT09CgoyMDEwLTA1LTMwIDE0OjAzOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWltYWdlZnJlZXplLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zczQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMwoKMjAxMC0wNS0zMCAxNDowMjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTA1LTI5IDEwOjIzOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IEZpeCBwb3NpdGlvbiBxdWVyeQoKMjAxMC0wNS0yOCAxNToxNDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2Evd2VibS1tdXguYzoKCSAgZG9jczogcmVtb3ZlIHVubmVjZXNzYXJ5IHZpZGVvcmF0ZSBlbGVtZW50IGZyb20gd2VibW11eCBleGFtcGxlIHBpcGVsaW5lCgoyMDEwLTA1LTI4IDEwOjQzOjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogS2VlcCB2YXJpYWJsZXMgaW4gc2FuZSBzdGF0ZSBhZnRlciBfcmVzZXQKCSAgV2hlbiByZXNldGluZywga2VlcCAncm93JyB2YXJpYWJsZXMgYXQgYSBzYW5lIHN0YXRlIGFmdGVyCgkgIGZyZWVpbmcgdG8gYXZvaWQgaXQgYmVpbmcgZnJlZWQgYWdhaW4gb24gX3Jlc3luYyByZWFsbG9jCgkgIHdoZW4gdGhlIGVsZW1lbnQgaXMgcmV1c2VkLgoJICBGaXhlcyAjNjE5OTQzCgoyMDEwLTA1LTI3IDE4OjA4OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogRml4IGZsb2F0aW5nIHBvaW50IHRvIGludGVnZXIgY29udmVyc2lvbiBmb3IgdGhlIGFscGhhIHZhbHVlcwoJICBGaXhlcyBidWcgIzYxOTgzNS4KCjIwMTAtMDUtMjYgMDg6NTQ6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMjIuMyBwcmUtcmVsZWFzZQoKMjAxMC0wNS0yNiAwMDozMzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNS0yNSAxNTozNDoxMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGhhbmRsZSB0cnVuY2F0ZWQgaW5wdXQgZGF0YSBhdCBFT1MgaW4gcHVsbCBtb2RlCgkgIEZpeGVzICM2MTc3MzMuCgoyMDEwLTA1LTI2IDExOjU1OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzU3YjBkYiB0byBmZDdjYTA0CgoyMDEwLTA1LTI1IDIxOjE0OjA1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IFJvdW5kIHRpbWVzdGFtcCB1cCB3aGVuIHNjYWxpbmcgdG8gbW92IGZvcm1hdAoJICBGaXggdGltZXN0YW1wIHJvdW5kaW5nIHRvIGFsbG93IHRoZSBjb3JyZWN0IGluZGV4IHRvIGJlIGxvY2F0ZWQuCgkgIFRoZSBpc3N1ZSB3YXMgdGhhdCBzY2FsaW5nIGZyb20gR1N0cmVhbWVyIHRpbWUgZm9ybWF0IHRvIG1vdiB0aW1lIGZvcm1hdCB3YXMKCSAgcm91bmRpbmcgZG93biBjYXVzaW5nIHRoZSB0aW1lc3RhbXAgb2YgdGhlIG5ld3NlZ21lbnQgZXZlbnQgcmVjZWl2ZWQgYWZ0ZXIgYQoJICBmbHVzaGluZyBrZXlmcmFtZSBzZWVrIHRvIGZpbmQgdGhlIHNhbXBsZSBpbmRleCBiZWZvcmUgdGhlIG9uZSBpdCBzaG91bGQKCSAgY2F1c2luZyBmdXJ0aGVyIGJhY2t3YXJkIHNlZWtpbmcgdG8gdGhlIGtleWZyYW1lIHByaW9yIHVudGlsIG5vIHJvdW5kaW5nIGVycm9yCgkgIG9jY3VycmVkLgoJICBSb3VuZGluZyB1cCB3aGVuIHNjYWxpbmcgdG8gbW92IGZvcm1hdCBoYXMgdGhlIGRlc2lyZWQgZWZmZWN0LCBhbmQgaXQgaXMKCSAgbm90IGNsZWFyIHdoZXRoZXIganVzdCB0aGUgX3JvdW5kICgpIHZhcmlhbnQgd291bGQgYmUgc3VmZmljaWVudC4KCSAgRml4ZXMgYnVnICM2MTkxMDUKCjIwMTAtMDUtMjQgMTc6MjY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBhdmltdXgsIGZsdm11eCwgbWF0cm9za2FtdXg6IGRvbid0IGNyYXNoIGlmIHRhZ3MgYXJyaXZlIG9uIG11bHRpcGxlIGlucHV0IHBhZHMgYXQgdGhlIHNhbWUgdGltZQoJICBUaGlzIGlzIGEgdGVtcG9yYXJ5IGZpeCBmb3IgdGhlIHJlbGVhc2Ugb25seS4KCSAgRml4ZXMgIzYxOTUzMy4KCjIwMTAtMDUtMjUgMTc6MDU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgIHJ0cHRoZW9yYTogcmVtb3ZlIGRlbGl2ZXJ5LW1ldGhvZCBmcm9tIGNhcHMKCSAgV2UgY2FuIGFjY2VwdCBhbGwgZGVsaXZlcnkgbWV0aG9kcyBzbyBkb24ndCBhZHZlcnRpc2UgYW55dGhpbmcgb24gdGhlIGNhcHMgb3IKCSAgcGFyc2UgYW55dGhpbmcsIHdlIHdpbGwgaGFuZGxlIHdoYXRldmVyIHdlIHJlY2VpdmUuCgkgIEZpeGVzICM2MTg5NDAKCjIwMTAtMDUtMjUgMTU6NDA6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLmM6CgkgIG1hdHJvc2thOiBhZGQgdGVtcG9yYXJ5IHdlYm0gdHlwZWZpbmRlcgoJICBBZGQgd2VibSB0eXBlZmluZGVyIGp1c3QgZm9yIHRoZSByZWxlYXNlLCBzbyB3ZWJtIHdvcmtzIGZvcgoJICBwZW9wbGUgd2hvc2UgZGlzdHJvcyBkb24ndCBwYXRjaCBnc3QtcGx1Z2lucy1iYXNlIGFzIHdlbGwuCgkgIFdlJ2xsIHJlbW92ZSB0aGlzIGFnYWluIGFmdGVyIHRoZSByZWxlYXNlLgoKMjAxMC0wNS0yMyAxMToxNzoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2Evd2VibS1tdXguYzoKCSAgZG9jczogYWRkIHNvbWUgcGlwZWxpbmUgZXhhbXBsZXMgdG8gd2VibW11eCBkb2NzCgoyMDEwLTA1LTIxIDEyOjI3OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZpbHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJICBkb2NzOiBhZGQgd2VibW11eCB0byBkb2NzCgoyMDEwLTA1LTIxIDEzOjAxOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EuYzoKCSogZ3N0L21hdHJvc2thL3dlYm0tbXV4LmM6CgkgIG1hdHJvc2thOiBmaXggdXAgcGx1Z2luIGFuZCBlbGVtZW50IGRlc2NyaXB0aW9ucyBhIGJpdAoKMjAxMC0wNS0yMSAxMjo0NzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EuYzoKCSogZ3N0L21hdHJvc2thL3dlYm0tbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS93ZWJtLW11eC5oOgoJICBtYXRyb3NrYTogbW92ZSB3ZWJtbXV4IGludG8gb3duIHNvdXJjZSBmaWxlcwoJICBNYWtlcyB0aGluZ3MgZWFzaWVyIGZvciBndGstZG9jLgoKMjAxMC0wNS0yMSAxMjoyNjowNSArMDUwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBVcGRhdGUgc3BlYyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMKCjIwMTAtMDUtMjAgMjA6MDE6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thOiBSZW1vdmUgdGhlIGRvY3R5cGUgZW51bSwgaXQncyBub3QgbmVlZGVkIGFueW1vcmUKCjIwMTAtMDUtMjAgMTk6NTc6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIHdlYm1tdXg6IEFkZCBuZXcgd2VibW11eCBlbGVtZW50IHRoYXQgb25seSBzdXBwb3J0cyBtdXhpbmcgb2YgV2ViTQoJICAuLi5hbmQgcmVtb3ZlIHRoZSBkb2N0eXBlIHByb3BlcnR5IGZyb20gbWF0cm9za2FtdXggYWdhaW4uCgoyMDEwLTA1LTIwIDE3OjMxOjU5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6CgkgIG1hdHJvc2thbXV4OiB1bml0IHRlc3QgY2hlY2tzIHZlcnNpb24gMSBmaWxlcwoKMjAxMC0wNS0xOCAxNToyNzowNiAtMDQwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSAgc3BlZXg6IGZpeCBsYXRlbmN5IHF1ZXJ5CgkgIFNwZWV4IHNob3VsZCByZXBvcnQgMzAgbXMgbGF0ZW5jeSBmb3IgbmFycm93YmFuZCBtb2RlLCAzNCBvdGhlcndpc2UuCgkgIEZpeGVzICM2MTkwMTgKCjIwMTAtMDUtMTggMjE6MDQ6MzIgKzA4MDAgIFBoaWxpcCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6CgkgIGVibWxyZWFkOiBybSBmbG9hdGNhc3QuaCBpbmNsdWRlIChub3QgdXNlZCkKCjIwMTAtMDUtMTcgMDU6MzY6MDAgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBidW1wIGRlZmF1bHQgZG9jdHlwZSB2ZXJzaW9uIHRvIDIKCSAgSW4gdGhpcyBkYXkgYW5kIGFnZSB0aGlzIHNob3VsZCBiZSBzYWZlLiBUaGVyZSdzIG90aGVyd2lzZSBhIHJpc2sgcGVvcGxlCgkgIHdpbGwgYmUgY3JlYXRpbmcgdW5uZWNjZXNzYXJpbHkgYmlnIFdlYk0gZmlsZXMgYXMgdGhleSBjYW4ndCB1c2UKCSAgU2ltcGxlQmxvY2sgaW4gdjEuCgoyMDEwLTA1LTE3IDA1OjI3OjQ0ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2E6IGhhbmRsZSBtYXRyb3NrYSBhbmQgd2VibSBkb2N0eXBlIHZlcnNpb25zIGVxdWFsbHkKCSAgVGhlIG9yaWdpbmFsIHBsYW4gd2FzIHRvIGxldCBXZWJNIHYxIGJlIHRoZSBzYW1lIGFzIE1hdHJvc2thIHYyICh3aXRoCgkgIGV4dHJhIGNvbnN0cmFpbnRzKSwgYnV0IGZvciBzaW1wbGljaXR5IGl0IHdhcyBkZWNpZGVkIHRvIGhhbmRsZSB0aGUKCSAgdmVyc2lvbnMgZXF1YWxseSwgc3VjaCB0aGF0IGUuZy4gU2ltcGxlQmxvY2sgaXMgb25seSBhbGxvd2VkIGluIFdlYk0gdjIuCgoyMDEwLTA1LTEzIDEyOjEwOjU0ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFZlcmlmeSBsYWNlIHNpemUgaW4gX3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2sKCSAgRmFpbHVyZSB0byBkbyB0aGlzIGZvciBjb3JydXB0IGlucHV0IGNhbiBjYXVzZSBhIHN1YmJ1ZmZlciBiaWdnZXIKCSAgdGhhbiB0aGUgYWN0dWFsIGJ1ZmZlciB0byBiZSBjcmVhdGVkLCBxdWlja2x5IGxlYWRpbmcgdG8gc2VnZmF1bHQuCgkgIFRlc3QgY2FzZToKCSAgYnVnX3MyMjIwMDU3NTFfcjAuMDAxX19fX21lbWNweS53ZWJtCgoyMDEwLTA1LTEzIDEwOjIzOjEwICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIGVibWw6IGNydWRlIGhhY2sgdG8gYXZvaWQgY3Jhc2hpbmcgb24gdW5leHBlY3RlZCBtZXRhZGF0YQoJICBUaGUgY29tbWVudCBzYXlzIHRoaXMgY2Fubm90IGhhcHBlbiwgYnV0IGl0IGRpZCBhbmQgSSBkb24ndCBrbm93CgkgIHdoeS4gVGhpcyBpcyBub3QgdGhlIGNvcnJlY3QgZml4LCBuZWVkcyBpbnZlc3RpZ2F0aW9uLiBUZXN0IGNhc2U6CgkgIGJ1Z19zNTU1MDEwMDk0X3IwLjAwMDU6MC4wMDhfX19fSUFfX2dfYXNzZXJ0aW9uX21lc3NhZ2VfZXhwci53ZWJtCgoyMDEwLTA1LTEzIDA5OjE4OjU2ICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOgoJICBlYm1sOiBkb24ndCBtb2RpZnkgb3V0IHN0ciBpZiByZXR1cm5pbmcgYW4gZXJyb3IgaW4gX3JlYWRfYXNjaWkKCSAgVGhpcyBpcyBhIHJlZ3Jlc3Npb24gZnJvbSBBU0NJSSB2YWxpZGF0aW9uIGNoYW5nZXMuIFRlc3QgY2FzZToKCSAgYnVnX3M2Njg3NjM5MF9yMC4wMDFfX19fbWFsbG9jX3ByaW50ZXJyLndlYm0KCjIwMTAtMDUtMTIgMTM6MTY6MjggKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6CgkgIGVibWw6IFZhbGlkYXRlIDctYml0IEFTQ0lJIGluIGdzdF9lYm1sX3JlYWRfYXNjaWkKCSAgVGhpcyB3YXMgdHJpZ2dlcmluZyBhbiBVVEYtOCBhc3NlcnRpb24gaW4gZ3N0X2NhcHNfc2V0X3NpbXBsZSBmb3IKCSAgY29ycnVwdCBmaWxlcyB3aXRoIGdhcmJhZ2UgYXMgY29kZWMgaWQuIFRlc3QgY2FzZToKCSAgZ3N0cmVhbWVyX2Vycm9yX3RyeWluZ190b19zZXRfaW52YWxpZF91dGY4X2FzX2NvZGVjX2lkLndlYm0KCSAgT2xkIGdzdF9lYm1sX3JlYWRfYXNjaWkgcmVuYW1lZCB0byBnc3RfZWJtbF9yZWFkX3N0cmluZywgYWxzbyB1c2VkIGJ5CgkgIGdzdF9lYm1sX3JlYWRfdXRmOC4gVW5saWtlIGZvciBVVEYtOCwgZmFpbHVyZSB0byB2YWxpZGF0ZSBpcyBhbiBlcnJvciwKCSAgYXMgZ3N0X2VibWxfcmVhZF9hc2NpaSBpcyB1c2VkIGZvciByZWFkaW5nIGRvY3R5cGUgYW5kIGNvZGVjIGlkIGFuZCB3ZQoJICBtaWdodCBqdXN0IGFzIHdlbGwgZ2l2ZSB1cCBlYXJseSBpbiB0aG9zZSBjYXNlcy4KCjIwMTAtMDUtMTIgMTQ6MzA6MTggKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogSWdub3JlIHVuZXhwZWN0ZWQgQ29kZWNTdGF0ZQoJICBCZWNhdXNlIEdzdE1hdHJvc2thVHJhY2tDb250ZXh0ICpzdHJlYW0gaXMgc2V0IHVwIGluIHRoZSBmaXJzdAoJICBTaW1wbGVCbG9jayBvciBCbG9jaywgYSByb2d1ZSBDb2RlY1N0YXRlIG90aGVyd2lzZSBjYXVzZXMgYSBzZWdmYXVsdCBvbgoJICBkZXJlZmVuY2luZyB0aGUgTlVMTCBwb2ludGVyLiBUZXN0IGNhc2U6CgkgIGJ1Z19zNTUwNjE2N19yMC4wMDFfX19fZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2sud2VibQoKMjAxMC0wNS0xMCAwNjowMDo0OSArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBBZGQgdmlkZW8vd2VibSBzaW5rIGNhcHMKCjIwMTAtMDUtMDkgMTk6NDY6NTEgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGZvb2xpcC5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBVc2UgU2ltcGxlQmxvY2sgZm9yIFdlYk0gd2hlbiBwb3NzaWJsZQoKMjAxMC0wNS0wOSAxOToyODo1OSArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBAZm9vbGlwLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBTdXBwb3J0ICJ3ZWJtIiBEb2NUeXBlCgoyMDEwLTA1LTA5IDEyOjM1OjEwICswMjAwICBQaGlsaXAgSsOkZ2Vuc3RlZHQgPHBoaWxpcEBmb29saXAub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIG1hdHJvc2thbXV4OiByZW5hbWUgbWF0cm9za2FfdmVyc2lvbiB0byBkb2N0eXBlX3ZlcnNpb24KCjIwMTAtMDUtMDkgMTI6MDk6NTcgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGZvb2xpcC5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIG1hdHJvc2thbXV4OiBTdXBwb3J0ICJ3ZWJtIiBEb2NUeXBlCgoyMDEwLTA1LTEyIDE4OjM4OjQ4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQWRkIFZQOAoKMjAxMC0wNC0yNyAxNToyNjoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBBZGQgc3VwcG9ydCBmb3IgT24yIFZQOAoJICAuLi5tYXRyb3NrYWRlbXV4IGF1dG9tYXRpY2FsbHkgc3VwcG9ydHMgaXQgdGhyb3VnaCBsaWJnc3RyaWZmLgoKMjAxMC0wNC0yNyAxNToyNTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IEFkZCBzdXBwb3J0IGZvciBPbjIgVlA4CgkgIC4uLmF2aWRlbXV4IGF1dG9tYXRpY2FsbHkgc3VwcG9ydHMgaXQgdGhyb3VnaCBsaWJnc3RyaWZmLgoKMjAxMC0wNS0xNyAxNzoxNzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZTogRG9uJ3QgbG9jayB0aGUgbWFpbmxvb3AgaW4gTlVMTAoKMjAxMC0wNS0xNSAyMToxNTo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogVXNlID0gaW5zdGVhZCBvZiA9PSBpbiBzaGVsbCBzY3JpcHRzIGZvciBlcXVhbGl0eSBjaGVja3MKCjIwMTAtMDUtMTQgMTg6MzM6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMjIuMiBwcmUtcmVsZWFzZQoKMjAxMC0wNS0xNCAxODoyNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRkNjdiZDYgdG8gMzU3YjBkYgoKMjAxMC0wNS0xNCAxODoxNjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gc291cGh0dHBzcmMgdW5pdCB0ZXN0CgkgIFVucmVmIHNlcnZlciBvYmplY3RzIHdoZW4gZG9uZS4gRml4ZXMgY2hlY2stdmFsZ3JpbmQuCgoyMDEwLTA1LTE0IDE3OjMwOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogZml4IHR3byBsZWFrcwoJICBEb24ndCBsZWFrIG90aGVyY2FwcyBvciBqcGVnZW5jIHJlZi4KCjIwMTAtMDUtMTMgMTM6MDE6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBmaXggZG9jcwoJICBEb2N1bWVudGF0aW9uIGVycm9yIHNwb3R0ZWQgYnkgdG9ueSA8Y2FpY2FpMDExOSBhdCBnbWFpbC5jb20+CgkgIEZpeGVzICM2MTg0MTkKCjIwMTAtMDUtMTEgMTM6MTg6NDIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSAgcnRwdGhlb3JhZGVwYXk6IG1ha2UgZGVsaXZlcnktbWV0aG9kIHBhcmFtZXRlciBvcHRpb25hbAoJICBJdCBwcm9iYWJseSB3aWxsIG5vdCBiZSBpbiB0aGUgZmluYWwgUkZDIGFzIGl0IGlzIG5vdCBpbiBSRkMgNTIxNSBmb3IgVm9yYmlzLgoJICBJZiB0aGVyZSBpcyBhIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVkLCBhc3N1bWUgaXQgaXMgaW4tbGluZSBhbmQgaWYgbm90aGluZyBpcwoJICBzcGVjaWZpZWQsIGFzc3VtZSBpdCBpcyBpbi1iYW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4Mzg2CgoyMDEwLTA1LTEzIDEyOjE2OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBpbmNyZWFzZSBhY2NlcHRhYmxlIG91dHB1dCBzaXplcwoJICBXZSBjYW4gcGVyZmVjdGx5IGRlY29kZSAxeDEgaW1hZ2VzIHNvIGxvd2VyIHRoZSBtaW4gd2lkdGggYW5kIGhlaWdodCB0byAxLgoJICBGaXhlcyAjNjE4MzkyCgoyMDEwLTA1LTEzIDExOjMwOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkgIGNlbHRwYXk6IGZpeCBxdWV1ZSBkdXJhdGlvbiBjYWxjdWxhdGlvbnMKCSAgRG9uJ3QgYmxpbmRseSBhZGQgdGhlIGR1cmF0aW9ucyBvZiBpbmNvbW1pbmcgYnVmZmVycyB0byB0aGUgdG90YWwgcXVldWVkCgkgIGR1cmF0aW9uIGJlY2F1c2UgaXQgbWlnaHQgYmUgaW52YWxpZC4gTWFyayB0aGUgdG90YWwgcXVldWVkIGR1cmF0aW9uIGludmFsaWQKCSAgd2hlbiB3ZSByZWNlaXZlIGFuIGludmFsaWQgaW5jb21taW5nIHRpbWVzdGFtcCBiZWNhdXNlIHRoYXQncyB3aGVuIHdlIGxvc2UgdHJhY2sKCSAgb2YgdGhlIHRvdGFsIHF1ZXVlZCBkdXJhdGlvbi4KCSAgRml4ZXMgIzYxODMyNAoKMjAxMC0wNS0xMCAxMToxNDozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogZXh0cmFjdCBTUFMgYW5kIFBQUyBmcm9tIHByb3BlcnR5IHByb3ZpZGVkIHBhcmFtZXRlciBzZXQKCSAgLi4uIHNvIGl0IGNhbiBhbHNvIGJlIHJlZ3VsYXJseSBpbnNlcnRlZCBpbnRvIHRoZSBzdHJlYW0gaWYgc28gY29uZmlndXJlZC4KCSAgRml4ZXMgIzYxNzE2NC4KCjIwMTAtMDUtMTEgMjI6Mjg6MDggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IGFsbG93IHN3aXRjaGluZyB2aWV3cyBhdCBydW50aW1lLgoKMjAxMC0wNS0xMSAyMDoyNjozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICBydHA6IGRpc3QgbWlzc2luZyBoZWFkZXIgZmlsZSB0byBmaXggbWFrZSBkaXN0Y2hlY2sKCjIwMTAtMDUtMTEgMTk6MDU6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgIG9zczQ6IG1pbm9yIGNsZWFudXAKCSAgUmVtb3ZlIGZpeGVkIEZJWE1FLCBjaGFuZ2UgZmluYWxpc2UgdG8gZmluYWxpemUgZm9yIGNvbnNpc3RlbmN5LgoKMjAxMC0wNS0xMSAxOTowMTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzNC54bWw6CgkgIGRvY3M6IGFkZCBvc3M0IGVsZW1lbnRzIHRvIGRvY3MKCjIwMTAtMDUtMTEgMTY6MDk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9reS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBtb3ZlIG9zczQgc3RyaW5ncyBmcm9tIC1iYWQgdG8gLWdvb2QKCjIwMTAtMDUtMTEgMTY6MDg6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkqIHBvL1BPVEZJTEVTLmluOgoJKiBzeXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2ljbGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICBNb3ZlIG9zczQgcGx1Z2luIGZyb20gLWJhZCB0byAtZ29vZAoJICBIb29rIHVwIGJ1aWxkIGluZnJhc3RydWN0dXJlLCBkb2NzIGFuZCB0ZXN0cy4KCSAgRml4ZXMgIzYxNDMwNS4KCjIwMTAtMDQtMjkgMTM6MTg6NTggKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ab3JhY2xlLmNvbT4KCgkqIHN5cy9vc3M0L29zczQtc2luay5jOgoJKiBzeXMvb3NzNC9vc3M0LXNpbmsuaDoKCSAgb3NzNHNpbms6IGltcGxlbWVudCBHc3RTdHJlYW1Wb2x1bWUgaW50ZXJmYWNlIGFuZCBhZGQgbXV0ZSBhbmQgdm9sdW1lIHByb3BlcnRpZXMKCSAgT1NTNCBzdXBwb3J0cyBwZXItc3RyZWFtIHZvbHVtZSBjb250cm9sLCBzbyBleHBvc2UgdGhpcyB1c2luZyB0aGUgcmlnaHQKCSAgQVBJLCBzbyB0aGF0IHBsYXliaW4yIGFuZCBhcHBsaWNhdGlvbnMgbGlrZSB0b3RlbSBjYW4gbWFrZSB1c2Ugb2YgaXQKCSAgKGluc3RlYWQgb2YgdXNpbmcgYSB2b2x1bWUgZWxlbWVudCBmb3Igdm9sdW1lIGNvbnRyb2wpLgoJICBGaXhlcyAjNjE0MzA1LgoKMjAxMC0wNC0wOCAxMDo0NTozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmM6CgkgIG9zczQ6IDgtYml0IFBDTSBhdWRpbyBjYXBzIGRvbid0IG5lZWQgYW4gZW5kaWFubmVzcyBmaWVsZAoKMjAxMC0wNC0wOCAxMDo0MDowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmM6CgkgIG9zczQ6IGRvbid0IGl0ZXJhdGUgdGhlIGZvcm1hdHMgdGFibGUgdHdpY2UgZm9yIGVhY2ggZW50cnkKCSAgV2hlbiBpdGVyYXRpbmcgdGhlIGZvcm1hdHMgdGFibGUsIHdlIGNhbiBqdXN0IHBhc3MgdGhlIHdob2xlCgkgIGVudHJ5IHRvIG91ciBoZWxwZXIgZnVuY3Rpb24sIHdoaWNoIGF2b2lkcyBpdGVyYXRpbmcgdGhlIHRhYmxlCgkgIGFnYWluIHRvIGZpbmQgdGhlIGVudHJ5IHN0cnVjdHVyZSBmcm9tIHRoZSBwYXNzZWQgZm9ybWF0IGlkLgoKMjAxMC0wMy0zMCAxMTo0MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmM6CgkgIG9zczQ6IGFsc28gYWNjZXB0IGZvcm1hdHMgbm90IG5hdGl2ZWx5IHN1cHBvcnRlZAoJICBBbHNvIGFjY2VwdCBmb3JtYXRzIHRoYXQgYXJlIG5vdCBuYXRpdmVseSBzdXBwb3J0ZWQgYnkgdGhlCgkgIGhhcmR3YXJlLCBPU1M0IGNhbiBjb252ZXJ0IHRoZW0gaW50ZXJuYWxseS4gTGlzdCB0aGUgbmF0aXZlCgkgIGZvcm1hdHMgZmlyc3QgaW4gdGhlIGNhcHMgdGhvdWdoLCB0byBleHByZXNzIG91ciBwcmVmZXJlbmNlCgkgIGZvciB0aGUgbmF0aXZlIGZvcm1hdHMuIFdlIG5lZWQgdGhpcyBpbiBvcmRlciB0byBzdXBwb3J0IHRoZQoJICBjYXNlIHByb3Blcmx5IHdoZXJlIHRoZSBhdWRpbyBoYXJkd2FyZSBzdXBwb3J0cyBvbmx5IGUuZy4KCSAgbGl0dGxlIGVuZGlhbiBQQ00sIGJ1dCB0aGUgaG9zdCBpcyBiaWcgZW5kaWFuLCBzaW5jZSBtYW55CgkgIGF1ZGlvIGVsZW1lbnRzIG9ubHkgc3VwcG9ydCBuYXRpdmUgZW5kaWFubmVzcyBhbmQgbWFrZSB0aGUKCSAgcmVhc29uYWJsZSBhc3N1bXB0aW9uIHRoYXQgYW55IGF1ZGlvc2luayB3aWxsIGJlIGFibGUgdG8KCSAgaGFuZGxlIGF1ZGlvIGluIG5hdGl2ZSBlbmRpYW5uZXNzLgoJICBCYXNlZCBvbiBwYXRjaCBieSBKZXJyeSBUYW4gPGplcnJ5LnRhbkBzdW4uY29tPgoJICBGaXhlcyAjNjE0MzE3LgoKMjAxMC0wMy0zMCAwMToxNDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgIG9zczQ6IGFkZCBjb21tZW50IGZvciB0cmFuc2xhdG9ycwoJICBOb3QgdGhhdCB0aGF0IHdpbGwgbWFrZSB0aGVzZSBzdHJpbmdzIG11Y2ggYmV0dGVyLiBBbHNvIHJlbW92ZSBpMThuCgkgIG1hcmtlciB3aGVyZSBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UuCgoyMDEwLTAzLTIyIDE2OjEzOjEyICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgIG9zczQ6IFJlZmFjdG9yIGNvZGUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbW9kZXJuCgkgIEEgc2lkZSBlZmZlY3QgaXMgdGhhdCBpdCBwYXNzZXMgLVdmb3JtYXQtbm9ubGl0ZXJhbCBhbmQgZG9lc24ndCByZWFkCgkgIGludmFsaWQgbWVtb3J5IGluIHNvbWUgY2FzZXMsIGxpa2Ugd2hlbiB0aGUgbWl4ZXIgdHJhY2sgY29udGFpbnMKCSAgYSAlIHNpZ24gb3IgdGhlcmUgaXMgYSBudW1iZXIgYnV0IG5vdCBhIGtub3duIG1peGVyIG5hbWUuCgoyMDEwLTAzLTIyIDE0OjA5OjI0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgIG9zczQ6IEF2b2lkIGdfcXVhcmtfdG9fc3RyaW5nIChnX3F1YXJrX2Zyb21fc3RyaW5nICgpKSBtYWRuZXNzCgkgIFdlIHRvIHRoZSBzdHJkdXAgaW5zaWRlIGdzdF9vc3M0X21peGVyX2NvbnRyb2xfZ2V0X3RyYW5zbGF0ZWRfbmFtZSgpCgkgIGluc3RlYWQgb2YgaW4gdGhlIG9ubHkgY2FsbGVyLgoKMjAxMC0wMy0yMSAyMTozOToxOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogc3lzL29zczQvb3NzNC1taXhlci5jOgoJICBBZGQgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcyB0byBjb25maWd1cmUgZmxhZ3MKCSAgQW5kIGZpeCBhbGwgd2FybmluZ3MKCjIwMTAtMDEtMjAgMTM6Mjk6NTIgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdW51c2VkIHJldHVybiB2YWx1ZQoKMjAwOS0wOC0yMSAwMToxNzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy90ZXN0LW9zczQuYzoKCSAgdGVzdHM6IGZpeCB0ZXN0LW9zczQgdG8gdHJlYXQgYW4gZW1wdHkgZGV2aWNlIG5hbWUgdGhlIHNhbWUgYXMgYSBOVUxMIG5hbWUKCjIwMDktMDctMTYgMTM6NTU6MTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgb3NzNDogQXR0ZW1wdCB0byBmaXggYSBjb21waWxlciB3YXJuaW5nCgkgIERvbid0IHN0b3JlIGEgY29uc3QgZ2NoYXIgKiBpbiBhIG5vbi1jb25zdCBnY2hhciAqIGxvY2FsIHZhci4KCSAgQWxzbywgbWFrZSB0aGUgdHJhbnNsYXRpb24gc3RyaW5nIGZ1bmN0aW9uIHN0YXRpYyBzaW5jZSBpdCdzIG9ubHkKCSAgdXNlZCBpbiB0aGUgb25lIGZpbGUuCgoyMDA5LTA2LTEwIDE5OjIxOjIxICswMTAwICBHYXJyZXR0IEQnQW1vcmUgPGdhcnJldHQuZGFtb3JlQHN1bi5jb20+CgoJKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmM6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXItc2xpZGVyLmM6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXItc3dpdGNoLmM6CgkqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgb3NzNDogRW5oYW5jZW1lbnRzIHRvIHRoZSBtaXhlciBhbmQgYXVkaW8gb3V0cHV0CgkgIENvZGUgY2xlYW51cHMsIGdlbmVyYWwgaW1wcm92ZW1lbnRzLCBzdXBwb3J0IGZvciB0aGUKCSAgbmV3IG1peGVyIGZsYWdzIGluIGxhdGVzdCBnc3QtcGx1Z2lucy1iYXNlLgoJICBGaXhlczogIzU4NDI1MgoJICBQYXRjaCBCeTogQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoJICBQYXRjaCBCeTogR2FycmV0dCBEJ0Ftb3JlIDxnYXJyZXR0LmRhbW9yZUBzdW4uY29tPgoKMjAwOS0wNi0xOSAxNjoyMToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgIE1ha2UgYnVpbGQgd2l0aG91dCB3YXJuaW5ncyB3aXRoIGRlYnVnZ2luZyBkaXNhYmxlZAoKMjAwOC0xMS0wNCAxMjo0MjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgLWJhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2Fsc2FzcGRpZi9NYWtlZmlsZS5hbToKCSAgKiBleHQvYW1yd2IvTWFrZWZpbGUuYW06CgkgICogZXh0L2FwZXhzaW5rL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcnRzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcnRzZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXVkaW9maWxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hdWRpb3Jlc2FtcGxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9iejIvTWFrZWZpbGUuYW06CgkgICogZXh0L2NkYXVkaW8vTWFrZWZpbGUuYW06CgkgICogZXh0L2NlbHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2RjMTM5NC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZGlyYWMvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpcmVjdGZiL01ha2VmaWxlLmFtOgoJICAqIGV4dC9kaXZ4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kdHMvTWFrZWZpbGUuYW06CgkgICogZXh0L2ZhYWMvTWFrZWZpbGUuYW06CgkgICogZXh0L2ZhYWQvTWFrZWZpbGUuYW06CgkgICogZXh0L2dzbS9NYWtlZmlsZS5hbToKCSAgKiBleHQvaGVybWVzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9pdm9yYmlzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qYWNrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qcDJrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9sYWRzcGEvTWFrZWZpbGUuYW06CgkgICogZXh0L2xjcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGliZmFtZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGlibW1zL01ha2VmaWxlLmFtOgoJICAqIGV4dC9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXBlZzJlbmMvTWFrZWZpbGUuYW06CgkgICogZXh0L21wbGV4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9tdXNlcGFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXVzaWNicmFpbnovTWFrZWZpbGUuYW06CgkgICogZXh0L215dGh0di9NYWtlZmlsZS5hbToKCSAgKiBleHQvbmFzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9uZW9uL01ha2VmaWxlLmFtOgoJICAqIGV4dC9vZmEvTWFrZWZpbGUuYW06CgkgICogZXh0L3BvbHlwL01ha2VmaWxlLmFtOgoJICAqIGV4dC9yZXNpbmR2ZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2RsL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zaG91dC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc25hcHNob3QvTWFrZWZpbGUuYW06CgkgICogZXh0L3NuZGZpbGUvTWFrZWZpbGUuYW06CgkgICogZXh0L3NvdW5kdG91Y2gvTWFrZWZpbGUuYW06CgkgICogZXh0L3NwYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvc3dmZGVjL01ha2VmaWxlLmFtOgoJICAqIGV4dC90YXJraW4vTWFrZWZpbGUuYW06CgkgICogZXh0L3RoZW9yYS9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGltaWRpdHkvTWFrZWZpbGUuYW06CgkgICogZXh0L3R3b2xhbWUvTWFrZWZpbGUuYW06CgkgICogZXh0L3gyNjQvTWFrZWZpbGUuYW06CgkgICogZXh0L3hpbmUvTWFrZWZpbGUuYW06CgkgICogZXh0L3h2aWQvTWFrZWZpbGUuYW06CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QtbGlicy9nc3QvZHNob3cvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FpZmZwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXBwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2J1ZmZlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmF5ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NkeGFwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hhcnQvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NvbG9yc3BhY2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RjY3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZTIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2R2ZHNwdS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmVzdGl2YWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZpbHRlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmxhY3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dhbWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9oMjY0cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2xpYnJmYi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbWl4bWF0cml4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9tb2RwbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVnMXN5cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZzR2aWRlb3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVnZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWd0c211eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZ3ZpZGVvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L212ZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbnNmL01ha2VmaWxlLmFtOgoJICAqIGdzdC9udXZkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvb3ZlcmxheS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFzc3Rocm91Z2gvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BjYXBwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheW9uZGVtYW5kL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yYXdwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVhbC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRqcGVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zY2FsZXRlbXBvL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zZHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NlbGVjdG9yL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbW9vdGgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3Ntb290aHdhdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWVkL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVleHJlc2FtcGxlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zdGVyZW8vTWFrZWZpbGUuYW06CgkgICogZ3N0L3N1YmVuYy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdHRhL01ha2VmaWxlLmFtOgoJICAqIGdzdC92YmlkZWMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvZHJvcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdmlkZW9zaWduYWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpcnR1YWxkdWIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZtbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSAgKiBzeXMvYWNtZW5jL01ha2VmaWxlLmFtOgoJICAqIHN5cy9jZHJvbS9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHNob3dkZWN3cmFwcGVyL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvTWFrZWZpbGUuYW06CgkgICogc3lzL2R2Yi9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHhyMy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZmJkZXYvTWFrZWZpbGUuYW06CgkgICogc3lzL29zczQvTWFrZWZpbGUuYW06CgkgICogc3lzL3FjYW0vTWFrZWZpbGUuYW06CgkgICogc3lzL3F0d3JhcHBlci9NYWtlZmlsZS5hbToKCSAgKiBzeXMvdmNkL01ha2VmaWxlLmFtOgoJICAqIHN5cy93aW5pbmV0L01ha2VmaWxlLmFtOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgLWJhZC4KCjIwMDgtMTAtMTIgMjE6NTI6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgc3lzL29zczQvOiBBZGQgc29tZSBzcGFjZXMgaW4gdHJhbnNsYXRlYWJsZSBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgQWRkIHNvbWUgc3BhY2VzIGluIHRyYW5zbGF0ZWFibGUgc3RyaW5ncy4KCSAgRml4ZXM6ICM1NTU5NjkgIzU1NTk2OCAjNTU1OTY1CgoyMDA4LTA4LTA3IDE2OjIwOjMwICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoJICAqIGV4dC9zbmRmaWxlL2dzdHNmLmM6IChwbHVnaW5faW5pdCk6CgkgICogc3lzL2R2Yi9nc3RkdmJzcmMuYzogKGdzdF9kdmJzcmNfcGx1Z2luX2luaXQpOgoJICAqIHN5cy9vc3M0L29zczQtYXVkaW8uYzogKHBsdWdpbl9pbml0KToKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyCgkgIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCjIwMDgtMDYtMTYgMDc6MzA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpbmFsIHJvdW5kIG9mIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3Qvc3BlZWQvZ3N0c3BlZWQuYzoKCSAgKiBnc3Qvc3BlZXhyZXNhbXBsZS9nc3RzcGVleHJlc2FtcGxlLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvZHZiL2dzdGR2YnNyYy5jOgoJICAqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICAqIHN5cy93aW5pbmV0L2dzdHdpbmluZXRzcmMuYzoKCSAgRmluYWwgcm91bmQgb2YgZG9jIHVwZGF0ZXMuCgoyMDA4LTA2LTEyIDE0OjQ5OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2RjMTM5NC9nc3RkYzEzOTQuYzoKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNkZWMuYzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkgICogZXh0L21ldGFkYXRhL2dzdG1ldGFkYXRhZGVtdXguYzoKCSAgKiBleHQvbXl0aHR2L2dzdG15dGh0dnNyYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2JheWVyL2dzdGJheWVyMnJnYi5jOgoJICAqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3RhdWRpb3BhcnNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdHZpZGVvcGFyc2UuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAqIGdzdC9zZWxlY3Rvci9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3NlbGVjdG9yL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zb3VyY2UuYzoKCSAgRG8gbm90IHVzZSBzaG9ydF9kZXNjcmlwdGlvbiBpbiBzZWN0aW9uIGRvY3MgZm9yIGVsZW1lbnRzLiBXZSBleHRyYWN0CgkgIHRoZW0gZnJvbSBlbGVtZW50IGRldGFpbHMgYW5kIHRoZXJlIHdpbGwgYmUgd2FybmluZ3MgaWYgdGhleSBkaWZmZXIuCgkgIEFsc28gZml4aW5nIHVwIHRoZSBDaGFuZ2VMb2cgb3JkZXIuCgoyMDA4LTA2LTEyIDEzOjA2OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9pY2xlcy90ZXN0LW9zczQuYzogSW5jbHVkZSBzdGRsaWIuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvaWNsZXMvdGVzdC1vc3M0LmM6CgkgIEluY2x1ZGUgc3RkbGliLmguCgoyMDA4LTA1LTIyIDE2OjMzOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvaWNsZXMvOiBTbWFsbCBvc3M0IHRlc3QgdGhhdCBwcm9iZXMgZm9yIGF2YWlsYWJsZSBkZXZpY2VzIGFuZCByZXRyaWV2ZXMgdGhlaXIgY2FwcyBhbmQgbWl4ZXIgdHJhY2tzIGFuZCBhbGwgdGhhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMvdGVzdC1vc3M0LmM6IChvcHRfc2hvd19taXhlcl9tZXNzYWdlcyksIChXQUlUX1RJTUUpLAoJICAoc2hvd19taXhlcl9tZXNzYWdlcyksIChwcm9iZV9taXhlcl90cmFja3MpLCAocHJvYmVfcGFkKSwKCSAgKHByb2JlX2RldGFpbHMpLCAocHJvYmVfZWxlbWVudCksIChtYWluKToKCSAgU21hbGwgb3NzNCB0ZXN0IHRoYXQgcHJvYmVzIGZvciBhdmFpbGFibGUgZGV2aWNlcyBhbmQgcmV0cmlldmVzCgkgIHRoZWlyIGNhcHMgYW5kIG1peGVyIHRyYWNrcyBhbmQgYWxsIHRoYXQuIEFsc28gYWxsb3dzIHRlc3Rpbmcgb2YKCSAgbWl4ZXIgY2hhbmdlIG1lc3NhZ2VzIG9uIHRoZSBidXMuCgoyMDA4LTA1LTIyIDE1OjE0OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL29zczQvOiBNYWtlIGRldmljZS1uYW1lIHByb2JpbmcgaW4gTlVMTCBzdGF0ZSB3b3JrIGJldHRlciAoZS5nLiBmb3IgdGhlIGdub21lLWNvbnRyb2wtY2VudGVyIHNvdW5kIGNhcHBsZXQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6IChnc3Rfb3NzNF9taXhlcl9vcGVuKToKCSAgKiBzeXMvb3NzNC9vc3M0LXByb3BlcnR5LXByb2JlLmM6CgkgIChnc3Rfb3NzNF9wcm9wZXJ0eV9wcm9iZV9maW5kX2RldmljZV9uYW1lKSwKCSAgKGdzdF9vc3M0X3Byb3BlcnR5X3Byb2JlX2ZpbmRfZGV2aWNlX25hbWVfbm9mZCk6CgkgICogc3lzL29zczQvb3NzNC1wcm9wZXJ0eS1wcm9iZS5oOgoJICAqIHN5cy9vc3M0L29zczQtc2luay5jOiAoZ3N0X29zczRfc2lua19nZXRfcHJvcGVydHkpOgoJICAqIHN5cy9vc3M0L29zczQtc291cmNlLmM6IChnc3Rfb3NzNF9zb3VyY2VfZ2V0X3Byb3BlcnR5KToKCSAgTWFrZSBkZXZpY2UtbmFtZSBwcm9iaW5nIGluIE5VTEwgc3RhdGUgd29yayBiZXR0ZXIgKGUuZy4gZm9yIHRoZQoJICBnbm9tZS1jb250cm9sLWNlbnRlciBzb3VuZCBjYXBwbGV0KS4KCjIwMDgtMDUtMDggMTk6MTY6MTcgKzAwMDAgIENsaXZlIFdyaWdodCA8Y2xpdmVfd3JpZ2h0QG50bHdvcmxkLmNvbT4KCgkgIHN5cy9vc3M0L29zczQtbWl4ZXItc2xpZGVyLmM6IEFwcGFyZW50bHkgbW9ubyBzbGlkZXJzIGhhdmUgdGhlIG1vbm8gdmFsdWUgcmVwZWF0ZWQgaW4gdGhlIHVwcGVyIGJpdHMsIHNvIG1hc2sgdGhvc2Ugby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IENsaXZlIFdyaWdodCA8Y2xpdmVfd3JpZ2h0IG50bHdvcmxkIGNvbT4KCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLXNsaWRlci5jOiAoZ3N0X29zczRfbWl4ZXJfc2xpZGVyX3VucGFja192b2x1bWUpOgoJICBBcHBhcmVudGx5IG1vbm8gc2xpZGVycyBoYXZlIHRoZSBtb25vIHZhbHVlIHJlcGVhdGVkIGluIHRoZSB1cHBlciBiaXRzLAoJICBzbyBtYXNrIHRob3NlIG91dCB3aGVuIHJlYWRpbmcgdGhlbS4gUHJvYmFibHkgbWFrZXMgdGhlIG1peGVyIGFwcGxldAoJICB3b3JrIHByb3Blcmx5IGluIHNvbWUgbW9yZSBjYXNlcy4KCjIwMDgtMDQtMTEgMDg6MTM6MjIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgc3lzL29zczQvOiBGaXggYXJndW1lbnRzIGZvcm1hdCBpbiBkZWJ1ZyBzdGF0ZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wNC0xMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLWVudW0uYzoKCSAgKGdzdF9vc3M0X21peGVyX2VudW1fZ2V0X3ZhbHVlc19sb2NrZWQpOgoJICAqIHN5cy9vc3M0L29zczQtc291cmNlLmM6IChnc3Rfb3NzNF9zb3VyY2VfZGVsYXkpOiBGaXggYXJndW1lbnRzCgkgIGZvcm1hdCBpbiBkZWJ1ZyBzdGF0ZW1lbnRzLgoKMjAwOC0wNC0wMiAyMDoxODo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIE9TU3Y0LiBNaXhlciBzdGlsbCBuZWVkcyBhIGJpdCBtb3JlIGxvdmUsIGJ1dCBldmVuIG1hZ2ljIGhhcyBpdHMgbGltaXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogc3lzL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3M0L01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3M0L29zczQtYXVkaW8uYzoKCSAgKiBzeXMvb3NzNC9vc3M0LWF1ZGlvLmg6CgkgICogc3lzL29zczQvb3NzNC1taXhlci1lbnVtLmM6CgkgICogc3lzL29zczQvb3NzNC1taXhlci1lbnVtLmg6CgkgICogc3lzL29zczQvb3NzNC1taXhlci1zbGlkZXIuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLXNsaWRlci5oOgoJICAqIHN5cy9vc3M0L29zczQtbWl4ZXItc3dpdGNoLmM6CgkgICogc3lzL29zczQvb3NzNC1taXhlci1zd2l0Y2guaDoKCSAgKiBzeXMvb3NzNC9vc3M0LW1peGVyLmM6CgkgICogc3lzL29zczQvb3NzNC1taXhlci5oOgoJICAqIHN5cy9vc3M0L29zczQtcHJvcGVydHktcHJvYmUuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXByb3BlcnR5LXByb2JlLmg6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmM6CgkgICogc3lzL29zczQvb3NzNC1zaW5rLmg6CgkgICogc3lzL29zczQvb3NzNC1zb3VuZGNhcmQuaDoKCSAgKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICAqIHN5cy9vc3M0L29zczQtc291cmNlLmg6CgkgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIE9TU3Y0LiBNaXhlciBzdGlsbCBuZWVkcyBhIGJpdCBtb3JlIGxvdmUsCgkgIGJ1dCBldmVuIG1hZ2ljIGhhcyBpdHMgbGltaXRzLgoKMjAxMC0wNS0xMSAxMDo1Mjo1OCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cuaDoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lm06CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBvc3h2aWRlb3Npbms6IGltcGxlbWVudCB0aGUgeG92ZXJsYXkgaW50ZXJmYWNlLiBGaXhlcyAjNjE4MzQ5LgoKMjAxMC0wNS0xMSAxODo0MjozMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBwdXNoIGJhc2VkIHNlZWtpbmcKCSAgLi4uIHdoZXJlIGl0IGNvbWVzIGRvd24gdG8gdHJhbnNmb3JtaW5nIGluY29taW5nIEJZVEUgc2VnbWVudAoJICB0byBhIGNvcnJlc3BvbmRpbmcgVElNRSBzZWdtZW50LgoJICBBbHNvIGZpeGVzICM2MDk0MDUuCgoyMDEwLTA1LTExIDE0OjIzOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW1hZ2VmcmVlemUueG1sOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgTW92ZSBpbWFnZWZyZWV6ZSBwbHVnaW4gZnJvbSAtYmFkIHRvIC1nb29kCgkgIEhvb2sgdXAgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUsIGRvY3MgYW5kIHVuaXQgdGVzdCBmb3IgbmV3IHBsdWdpbi4KCSAgRml4ZXMgIzYxMzc4Ni4KCjIwMTAtMDUtMDUgMTI6MjM6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBTZXQgZml4ZWQgY2FwcyBvbiB0aGUgY29ycmVjdCBwYWQKCSAgVGhpcyBtYWtlcyB0aGUgc2luayBnZXRjYXBzIGZ1bmN0aW9uIGFjdHVhbGx5IHVzZWQgaW5zdGVhZCBvZiB1c2luZwoJICB0aGUgZml4ZWQgY2FwcyBmdW5jdGlvbiBmb3IgaXQuCgoyMDEwLTAzLTIxIDIxOjM5OjE4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbWFnZWZyZWV6ZS5jOgoJICBBZGQgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcyB0byBjb25maWd1cmUgZmxhZ3MKCSAgQW5kIGZpeCBhbGwgd2FybmluZ3MKCjIwMTAtMDMtMTUgMTE6NTQ6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmM6CgkgIGltYWdlZnJlZXplOiBPbmx5IHN0YXJ0IHRoZSB0YXNrIGFmdGVyIGEgc2VlayBpZiBhIGJ1ZmZlciB3YXMgcmVjZWl2ZWQgYWxyZWFkeQoKMjAxMC0wMi0yOCAxNjowODoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbWFnZWZyZWV6ZS5jOgoJICBpbWFnZWZyZWV6ZTogQWRkIHNvbWUgdW5pdCB0ZXN0cwoKMjAxMC0wMi0yOCAxNjowNDozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSAgaW1hZ2VmcmVlemU6IFNldCB1bmRlZmluZWQgZnJhbWVyYXRlIGluIHNpbmsgZ2V0Y2FwcyBmdW5jdGlvbgoKMjAxMC0wMi0yOCAxNTowMjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSAgaW1hZ2VmcmVlemU6IEltcGxlbWVudCByZXZlcnNlIHBsYXliYWNrIGFuZCBzZXQgYnVmZmVyIG9mZnNldHMKCjIwMTAtMDItMjcgMTc6MzM6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2ltYWdlZnJlZXplL01ha2VmaWxlLmFtOgoJKiBnc3QvaW1hZ2VmcmVlemUvZ3N0aW1hZ2VmcmVlemUuYzoKCSogZ3N0L2ltYWdlZnJlZXplL2dzdGltYWdlZnJlZXplLmg6CgkgIGltYWdlZnJlZXplOiBBZGQgc3RpbGwgZnJhbWUgc3RyZWFtIGdlbmVyYXRvciBlbGVtZW50CgoyMDEwLTA1LTExIDEzOjA3OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBnc3QvZGVidWd1dGlscy9NYWtlZmlsZS5hbToKCSogZ3N0L2RlYnVndXRpbHMvZ3N0ZGVidWcuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIE1vdmUgY2Fwc2ZpbHRlciBlbGVtZW50IGZyb20gLWJhZCB0byAtZ29vZAoJICBIb29rIHVwIG1vdmVkIGZpbGVzIHRvIHRoZSBidWlsZCBpbmZyYXN0cnVjdHVyZSBhbmQgZG9jcy4KCSAgRml4ZXMgIzYxNzczOS4KCjIwMTAtMDUtMDYgMTM6MTI6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RjYXBzc2V0dGVyLmg6CgkgIGNhcHNzZXR0ZXI6IFNvbWUgbWlub3IgY2xlYW51cAoKMjAxMC0wMy0yMiAxNjo1NjowMyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc3NldHRlci5jOgoJICBBZGQgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgoJICBhbmQgZml4IHRoZSB3YXJuaW5ncwoKMjAxMC0wMy0xOCAxNzozMDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5jOgoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyA9PiBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUKCjIwMDktMTAtMDggMTk6NTE6MzEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc3NldHRlci5jOgoJICBjYXBzc2V0dGVyOiBhZGQgdW5pdCB0ZXN0CgoyMDA5LTA2LTI1IDE2OjQxOjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGNhcHNzZXR0ZXIuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0Y2Fwc3NldHRlci5oOgoJICBjYXBzc2V0dGVyOiBpbXBvcnQgZWxlbWVudCBpbnRvIC1iYWQKCjIwMTAtMDUtMTEgMTI6MDY6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgYXZpbXV4OiBjaGVjayB0aGF0IHBhZHMgaGF2ZSBiZWVuIG5lZ290aWF0ZWQKCSAgQWxzbyBzZXQgZmNjX2hhbmRsZXIgZmllbGQgaW4gYXVkaW8gc3RyZWFtIGhlYWRlci4KCSAgRml4ZXMgIzYxODM1MS4KCjIwMTAtMDUtMTAgMTg6MzM6MDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggcGFydGlhbCBwYXJzaW5nIG9mIGN0dHMgdGFibGUKCSAgRml4ZXMgIzYxNjUxNi4KCjIwMTAtMDUtMTAgMTg6MzI6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBjbGVhbnVwIGEgY29tbWVudCBhbmQgYWRkIHNvbWUgZGVidWcgYW5kIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uCgoyMDEwLTA1LTExIDEwOjAxOjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBDaGVjayBmb3IgR1RLKyAzLjAgYW5kIGlmIGl0J3Mgbm90IGF2YWlsYWJsZSBmb3IgR1RLKyAyLjAKCjIwMTAtMDUtMTAgMjI6MTE6MTAgKzAyMDAgIEphbiBVcmJhxYRza2kgPHd1bGN6ZXJAd3VsY3plci5vcmc+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IG9ubHkgc3RvcmUgdGhlIGxhc3QgYnVmZmVyIHRpbWVzdGFtcCBpZiBpdCdzIHZhbGlkCgkgIEZpeGVzIGJ1ZyAjNjE4MzA1CgoyMDEwLTAxLTA4IDIyOjEzOjU5IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogUmUtc2VuZCBTUFMvUFBTIHdoZW4gcmVxdWVzdGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY2ODkKCjIwMTAtMDUtMDcgMTc6MDk6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIHJ0cGgyNjRwYXk6IGZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKCjIwMTAtMDUtMDcgMTU6NDI6MjMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuaDoKCSAgcnRwdGhlb3JhcGF5OiBhZGQgY29uZmlnLWludGVydmFsIHBhcmFtZXRlciB0byByZS1pbnNlcnQgY29uZmlnIGluIHN0cmVhbQoJICBBZGQgYSBuZXcgY29uZmlnLWludGVydmFsIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSBwYXlsb2FkZXIgdG8gaW5zZXJ0CgkgIGNvbmZpZ3VyYXRpb24gaGVhZGVycyBhdCBwZXJpb2RpYyBpbnRlcnZhbHMgaW4gdGhlIHN0cmVhbQoJICAod2hlbiBhIGtleWZyYW1lIGlzIGNvdW50ZXJlZCkuCgoyMDEwLTA1LTA3IDE1OjMxOjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSAgcnRwdGhlb3JhZGVwYXk6IGZpeCBpbi1iYW5kIGNvbmZpZ3VyYXRpb24gcGFyc2luZwoJICBBbHNvIG1ha2UgY29uZmlndXJhdGlvbiBoZWFkZXIgcGFyc2luZyBhIGJpdCBtb3JlIHJlbGF4ZWQgd2l0aCByZXNwZWN0CgkgIHRvIGxlbmd0aCBmaWVsZCBpbnRlcnByZXRhdGlvbi4KCjIwMTAtMDUtMDcgMTU6MzA6MzAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICBydHB2b3JiaXNkZXBheTogZml4IGluLWxpbmUgY29uZmlndXJhdGlvbiBwYXJzaW5nCgkgIEFsc28gbWFrZSBjb25maWd1cmF0aW9uIGhlYWRlciBwYXJzaW5nIGEgYml0IG1vcmUgcmVsYXhlZCB3aXRoIHJlc3BlY3QKCSAgdG8gbGVuZ3RoIGZpZWxkIGludGVycHJldGF0aW9uLgoKMjAxMC0wNS0wNCAxNjo1NzozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJICBydHB0aGVvcmFwYXk6IGRvIG5vdCBkaXNjYXJkIGRvd25zdHJlYW0gZmxvdyByZXR1cm4KCjIwMTAtMDUtMDQgMTY6NTc6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSAgcnRwdGhlb3JhcGF5OiByZWZhY3RvciBidWZmZXIgcGF5bG9hZGluZwoKMjAxMC0wNS0wNyAyMDo0MTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3ZmaXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlYmZmLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmV0ZmYuYzoKCSAgZGVpbnRlcmxhY2U6IEFkZCBzdXBwb3J0IGZvciBVWVZZCgoyMDEwLTA1LTA3IDE5OjA2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBmaXggcmV0dXJuIHZhbHVlCgoyMDEwLTA1LTA3IDE5OjAyOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBkb24ndCBsZWFrIHRoZSBzZXNzaW9uCgoyMDEwLTA1LTA3IDE4OjU5OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwOiBjb25maWd1cmUgYmFuZHdpZHRoIHByb3BlcnRpZXMgaW4gdGhlIHNlc3Npb24KCjIwMTAtMDUtMDcgMTg6NTg6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IGFkZCBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyZSB0aGUgYmFuZHdpZHRoCgkgIEFkZCBwcm9wZXJ0aWVzIHRvIHByb3h5IHRoZSBiYW5kd2lkdGggY29uZmlndXJhdGlvbiB0byB0aGUgc2Vzc2lvbiBvYmplY3QuCgoyMDEwLTA1LTA3IDE4OjU3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIHJ0cHNlc3Npb246IGFkZCBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyZSBiYW5kd2lkdGhzCgkgIEFkZCBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyZSB0aGUgc2VuZGVyIGFuZCByZWNlaXZlciBiYW5kd2lkdGhzLgoJICBDb25maWd1cmUgdGhlIGJhbmR3aWR0aHMgYmVmb3JlIGNhbGN1bGF0aW5nIHRoZSBSVENQIHRpbWVvdXQgd2hlbiB3ZSBuZWVkIHRvLgoKMjAxMC0wNS0wNyAxODo1NjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmM6CgkgIHJ0cHN0YXRzOiBhZGQgc29tZSBkZWJ1ZyBpbmZvCgoyMDEwLTA1LTA3IDE4OjU1OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBzbWFsbCBjbGVhbnVwcwoKMjAxMC0wNS0wNyAxNjo1NToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmg6CgkgIHJ0cHN0YXRzOiBtYWtlIGJhbmR3aWR0aHMgbW9yZSBjb25maWd1cmFibGUKCSAgQWRkIGEgbWV0aG9kIHRvIGNvbmZpZ3VyZSB0aGUgdmFyaW91cyBiYW5kd2lkdGhzIGluIHRoZSBzZXNzaW9uLgoKMjAxMC0wNS0wNyAxMzozMjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogaGFuZGxlIE5PTkUgUlRDUCBpbnRlcnZhbHMKCSAgUHJlcGFyZSBmb3IgaGFuZGxpbmcgUlRDUCByZXBvcnRpbmcgaW50ZXJ2YWxzIG9mIEdTVF9DTE9DS19USU1FX05PTkUsIHdoaWNoCgkgIG1lYW5zIGRvbid0IHNlbmQgUlRDUCBhdCBhbGwuCgoyMDEwLTA1LTA3IDEyOjUxOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IGZhbGwgYmFjayB0byBTRFAgcG9ydHMgaW5zdGVhZCBvZiBzZXJ2ZXJfcG9ydAoJICBJbiBtdWx0aWNhc3QsIGZhbGwgYmFjayB0byB0aGUgcG9ydHMgaW4gdGhlIFNEUCBpbnN0ZWFkIG9mIHRoZSBzZXJ2ZXJfcG9ydAoJICBhdHRyaWJ1dGUgYXMgdGhpcyBpcyBtb3JlIGluIGxpbmUgd2l0aCB0aGUgUkZDLgoKMjAxMC0wNS0wNyAxMjoyNDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogcmVmYWN0b3IgY29sbGVjdGluZyB0aGUgdHJhbnNwb3J0IGluZm8KCSAgTWFrZSBhIG1ldGhvZCB0byBjb2xsZWN0IHRoZSBwb3J0cyBhbmQgZGVzdGluYXRpb24gYWRkcmVzcy4KCjIwMTAtMDUtMDcgMTE6Mjg6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGhhbmRsZSBzZXJ2ZXJzIHRoYXQgc2VuZCBicm9rZW4gVHJhbnNwb3J0cwoJICBIYW5kbGUgc2VydmVycyB0aGF0IHNlbmQgdGhlaXIgcG9ydCBwYWlycyB3aXRoIHRoZSB3cm9uZyBuYW1lLgoJICBGaXhlcyAjNjE3NTM3CgoyMDEwLTA1LTA2IDE2OjUyOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IHVzZSB0aGUgU0RQIGNvbm5lY3Rpb24gaW5mbyBpbiBtdWx0aWNhc3QKCSAgUGFyc2UgdGhlIGNvbm5lY3Rpb24gaW5mbyBmcm9tIHRoZSBTRFAuCgkgIFdoZW4gd2UgbmVlZCB0byBjb25maWd1cmUgdGhlIG11bHRpY2FzdCBkZXN0aW5hdGlvbiwgZmFsbCBiYWNrIHRvIHRoZSBTRFAKCSAgY29ubmVjdGlvbiBpbmZvIHdoZW4gdGhlIHRyYW5zcG9ydCBkaWQgbm90IHNwZWNpZnkgYSBkZXN0aW5hdGlvbiBhbmQgdHRsLgoJICBGaXhlcyAjNjE3NTM3CgoyMDEwLTA1LTA2IDE1OjQyOjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSAgZ29vbSxtb25vc2NvcGU6IHRydW5jYXRlIG93biBjYXBzLCBpbnN0ZWFkIG9mIGNvcHlpbmcgYW5kIHVzaW5nIHRoZSBmaXJzdCBvbmx5CgkgIFdlIGdvdCB0aGUgY2FwcyBmcm9tIGFuIGludGVyc2VjdCwgaXQgaXMgb3VyIG93biwgaGVuY2Ugd2UgY2FuIHRydW5jYXRlIGl0LgoKMjAxMC0wNS0wNiAxNTo0MDozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiByZWZsb3cgdG8gdHJ1bmNhdGUgY2FwcyBqdXN0IG9uY2UKCSAgV2UgZ2V0IHdyaXRhYmxlIGNwYXMgZnJvbSB0aGUgaW50ZXJzZWN0aW9uICh1bmxlc3MgaXQgZmFpbGVkKS4gQXMgd2UgdHJ1bmNhdGUKCSAgdGhvc2UgYW55d2F5LCB3ZSBkb24ndCBuZWVkIHRvIG1hbnlhbHkgY29weSB0aGUgZmlyc3Qgc3RydWN0dXJlLgoKMjAxMC0wNS0wNiAxNTozOTozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkgIGdka3BpeGJ1ZjogZG9uJ3QgbGVhayB0ZW1wbGF0ZSBjYXBzCgoyMDEwLTA1LTA2IDE1OjM4OjM1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NyYy5jOgoJICBhdXRve2F1ZGlvLHZpZGVvfXtzcmMsc2lua306IHVzZSBjYW5faW50ZXJzZWN0IHRvIGF2b2lkIGEgY2FwcyBjb3B5CgoyMDEwLTA0LTI3IDEzOjM2OjM1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiB0ZWxsIHdoYXQgd2UgY2FuIGRvCgkgIEFueS1jYXBzIGFyZSBiYWQuIElmIGFwcHMgc2NhbiB0aGUgcmVnaXN0cnksIHRoZXknZCBsaWtlIHRvIGtub3cgd2hhdCB3ZSBjYW4KCSAgb3V0cHV0LgoKMjAxMC0wNC0yNyAxMzo0MzoyOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBhbHNvIGxpZnQgdGhlIGFyYml0cmFyeSByZXN0cmljdGlvbnMgZm9yIHdpZHRoIGFuZCBoZWlnaHQKCSAgVGhpcyB3YXMgYWxyZWFkeSBkb25lIGZvciBqcGVnZGVjLgoKMjAxMC0wNS0wNiAxNDowMzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IEFsbG9jYXRlL2ZyZWUgUEEgbWFpbmxvb3AgZHVyaW5nIHN0YXRlIGNoYW5nZXMKCSAgLi4uYWxzbyBkZXN0cm95IHRoZSBzdHJlYW0gYW5kIGNvbnRleHQgZHVyaW5nIHN0YXRlIGNoYW5nZXMuCgoyMDEwLTA1LTA2IDEzOjU3OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBBbGxvY2F0ZSBhbmQgZnJlZSB0aGUgY3VzdG9tIGNsb2NrIGluIE5VTEw8LT5SRUFEWQoKMjAxMC0wNS0wNiAxMzo1MTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogQ3JlYXRlIGFuZCBmcmVlIHRoZSBQQSBtYWlubG9vcCBpbiBOVUxMLT5SRUFEWS9SRUFEWS0+TlVMTAoJICBUaGlzIGZpeGVzIGEgcmFjZSBjb25kaXRpb24sIHdoZW4gc3RvcHBpbmcgdGhlIG1haW5sb29wIGR1cmluZyBmaW5hbGl6YXRpb24KCSAgaXMgZG9uZSBmcm9tIGEgbWFpbmxvb3AgY2FsbGJhY2suCgkgIEZpeGVzIGJ1Z3MgIzYxNDc2NSBhbmQgIzU5MDY2Mi4KCjIwMTAtMDUtMDUgMTk6MzU6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBNYWtlIHNlbGVjdGlvbiBvZiBhIHNpbmtwYWQgbnVtYmVyIHRocmVhZHNhZmUKCjIwMTAtMDUtMDUgMTc6Mzk6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHkuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3ZmaXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlYmZmLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmV0ZmYuYzoKCSAgZGVpbnRlcmxhY2U6IEFkZCBzdXBwb3J0IGZvciBhbGwgY29tbW9uIFJHQiBmb3JtYXRzCgoyMDEwLTA1LTA1IDE2OjA2OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5hc206CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2xpbmVhci5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2xpbmVhcmJsZW5kLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvc2NhbGVyYm9iLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdmZpci5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmViZmYuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZXRmZi5jOgoJICBkZWludGVybGFjZTogQWRkIHN1cHBvcnQgZm9yIEFZVVYKCjIwMTAtMDUtMDQgMTY6MzQ6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IG1ha2Ugc2V0dXAgdXJsIGluIGEgc21hcnRlciB3YXkKCSAgTWFrZSBzdXJlIHdlIGFsd2F5cyBzZXBhcmF0ZSB0aGUgYmFzZSBhbmQgY29udHJvbCB1cmwgcGFydHMgd2l0aCBhIC8gd2hlbgoJICBjcmVhdGluZyB0aGUgc2V0dXAgdXJsLgoKMjAxMC0wNS0wNCAxNjowNDozOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGhhbmRsZSBTRUVLSU5HIHF1ZXJpZXMuCgoyMDEwLTA1LTA0IDExOjEzOjQ1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuaDoKCSAgcnRwbXA0dnBheTogYWRkIGNvbmZpZy1pbnRlcnZhbCBwYXJhbWV0ZXIgdG8gcmUtaW5zZXJ0IGNvbmZpZyBpbiBzdHJlYW0KCSAgQWRkIGEgbmV3IGNvbmZpZy1pbnRlcnZhbCBwcm9wZXJ0eSB0byBpbnN0cnVjdCB0aGUgcGF5bG9hZGVyIHRvIGluc2VydAoJICBjb25maWcgKFZPU0gsIFZPUywgZXRjKSBhdCBwZXJpb2RpYyBpbnRlcnZhbHMgaW4gdGhlIHN0cmVhbQoJICAod2hlbiBhIEdPUCBvciBWT1AtSSBpcyBlbmNvdW50ZXJlZCkuCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IDxtYXJjLmxlZW1hbiBhdCBnbWFpbC5jb20+CgkgIEZpeGVzICM2MDc0NTIuCgoyMDEwLTA1LTAzIDEzOjI2OjMyICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGppdHRlcmJ1ZmZlcjogbW92ZSBzb21lIGluaXRpYWxpemF0aW9uIGNvZGUgZnJvbSBjaGFuZ2Vfc3RhdGUgdG8gX2luaXQuCgkgIFNldCAtPmFjdGl2ZSB0byBUUlVFIGluIF9pbml0IHNvIGl0IGNhbiBiZSBzZXQgdG8gRkFMU0UgYWZ0ZXIgY3JlYXRpbmcgdGhlCgkgIGppdHRlcmJ1ZmZlciBhbmQgaXQgd29uJ3QgYmUgbWlzdGFrZW5seSByZXNldCB0byBUUlVFIGluIHRoZSBjaGFuZ2Vfc3RhdGUKCSAgZnVuY3Rpb24uCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHN0YXJ0IHRoZSBqaXR0ZXJidWZmZXIgYXMgaW5hY3RpdmUgd2hlbiBydHBiaW4gaXMgYnVmZmVyaW5nLgoKMjAxMC0wNS0wMyAxMTo1Njo1OCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGZpeCBhIGJ1ZyBoYW5kbGluZyBCVUZGRVJJTkcgbWVzc2FnZXMuCgkgIElmIGEgc2Vzc2lvbiBleGlzdHMgYnV0IGhhcyBubyBzdHJlYW1zLCBzZXQgdGhlIG1pbiBidWZmZXJpbmcgcGVyY2VudCB0byAwCgkgIHNpbmNlIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZW4ndCByZWNlaXZlZCBhbnl0aGluZyBmb3IgdGhhdCBzZXNzaW9uIHlldC4KCjIwMTAtMDUtMDMgMTE6NTE6MzcgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiB3aGVuIGEgc3RyZWFtIGlzIGNyZWF0ZWQsIHBhdXNlIHRoZSBqaXR0ZXJidWZmZXIgaWYgcnRwYmluIGlzIGJ1ZmZlcmluZy4KCjIwMTAtMDUtMDMgMTE6MjM6NTkgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBmaXggYSBidWcgY2FsY3VsYXRpbmcgc3RyZWFtIG9mZnNldHMuCgoyMDEwLTA1LTAxIDE0OjIwOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYW11eDogV3JpdGUgcHJldmlvdXMgY2x1c3RlcidzIHNpemUKCSAgVGhpcyBpcyB1c2VmdWwgZm9yIGJhY2t3YXJkcyBwbGF5YmFjaywgd2hpY2ggc2hvdWxkIGJlIGltcGxlbWVudGVkCgkgIGluIG1hdHJvc2thZGVtdXggYXQgc29tZSBwb2ludC4KCjIwMTAtMDUtMDEgMTQ6MTU6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFNldCBpbnRlcmxhY2VkIGZsYWcgaW4gdGhlIGNhcHMgaWYgdGhlIGZsYWcgaXMgc2V0IGluIHRoZSBNYXRyb3NrYSBmaWxlCgoyMDEwLTA1LTAxIDE0OjEyOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IFdyaXRlIGludGVybGFjZWQgZmxhZyBpZiB0aGUgaW5wdXQgdmlkZW8gY29udGVudCBpcyBpbnRlcmxhY2VkCgkgIFVuZm9ydHVuYXRlbHkgTWF0cm9za2EgaGFzIG5vIHdheSB0byBzcGVjaWZ5IFRGRiBhbmQgZnJpZW5kcy4uLgoKMjAxMC0wNS0wMSAxMToyNToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSAgcnRwOiBmaXggcHJpbnRmIGZvcm1hdCBvZiBzb21lIGRlYnVnIG1lc3NhZ2VzCgoyMDEwLTA1LTAxIDExOjA2OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYTogaW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIG9uIE9TWAoJICBGaXhlcyAoYm9ndXMpICInb2Zmc2V0JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24iCgkgIHdhcm5pbmcgb24gYnVpbGQgYm90IChhbHNvIHNwb3R0ZWQgYnkgcGhpbG4pLgoKMjAxMC0wNC0zMCAxNzoxOTo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IFVZVlkgaXMgNDoyOjIsIG5vdCA0OjI6MAoKMjAxMC0wNC0zMCAyMjoyMjoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmM6CgkgIHB1bHNlOiBEb24ndCBjb21wYXJlIHZhbHVlcyBvZiB0d28gZGlmZmVyZW50IGVudW0gdHlwZXMKCjIwMTAtMDQtMzAgMjI6MTM6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBNYWtlIGF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgaW50ZXJsYWNpbmcgdGhlIGRlZmF1bHQKCSAgUHJldmlvdXNseSAiZm9yY2UgZGVpbnRlcmxhY2luZyIgd2FzIHRoZSBkZWZhdWx0LCB3aGljaCBpcyBhIG5vdCB2ZXJ5CgkgIHNlbnNpYmxlIGRlZmF1bHQgZm9yIHRoZSBub3JtYWwgdXNlIGNhc2Ugd2hlcmUgZGVpbnRlcmxhY2Ugc2hvdWxkIGFjdAoJICBpbiBwYXNzdGhyb3VnaCBtb2RlIHVubGVzcyBpbnRlcmxhY2VkIGNvbnRlbnQgaXMgcHJlc2VudC4KCjIwMTAtMDQtMjkgMTY6MjY6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIGpwZWdkZWM6IG9wdGltaXNlIGJ1ZmZlciBzY2FubmluZwoJICBTcGVjaWZpY2FsbHksIHdoZW4gbmVlZGluZyBtb3JlIGRhdGEsIGRvIG5vdCByZXNjYW4gZnJvbSBzdGFydCBuZXh0IHRpbWUKCSAgYXJvdW5kLCBidXQgcmVzdW1lIGZyb20gbGFzdCBwb3NpdGlvbi4KCSAgU2VlIGFsc28gIzU4MzA0Ny4KCjIwMTAtMDQtMjkgMTU6Mzg6NDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBkaXNyZWdhcmQgc3VwZXJmbHVvdXMgbGluZXMgd2hlbiBpbmRpcmVjdCBkZWNvZGluZwoKMjAxMC0wNC0yNyAxNTo0NDozOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogYWRkIHN1cHBvcnQgZm9yIFJHQiBhbmQgZ3JheXNjYWxlIGNvbG9yIHNwYWNlCgkgIEFsc28gcmVmYWN0b3Igc3JjIGNhcHMgbmVnb3RpYXRpb24gYW5kIHNldHRpbmcuCgoyMDEwLTA0LTI3IDEyOjE5OjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL01ha2VmaWxlLmFtOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAganBlZ2VuYzogc3VwcG9ydCBtb3JlIGNvbG91ciBzcGFjZXMgYW5kIHNvbWUgY2xlYW51cHMKCjIwMTAtMDQtMzAgMTI6NDc6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBtb3JlIGdlbmVyaWMgc2luayBnZXRjYXBzCgoyMDEwLTA0LTMwIDEyOjQyOjQyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogbW9yZSBzYW5pdHkgY2hlY2tzIG9uIGlucHV0CgkgIFNwZWNpZmljYWxseSwgdmVyaWZ5IGlucHV0IGNvbXBvbmVudHMgLyBjb2xvdXIgc3BhY2UgaXMgYXMgY29kZQoJICBzdWJzZXF1ZW50bHkgZXhwZWN0cywgdGhlcmVieSBhdm9pZGluZyBjcmFzaGVzIG9yIG90aGVyd2lzZSBib2d1cyBvdXRwdXQuCgkgIFByZXNlbnRseSwgdGhhdCBtZWFucyAzIGNvbXBvbmVudHMgWUNiQ3IgY29sb3VyIHNwYWNlLCBhbmQgc29tZXdoYXQKCSAgbGltaXRlZCBzYW1wbGluZyBmYWN0b3JzLgoJICBGaXhlcyAjNjAwNTUzLgoKMjAxMC0wNC0yMiAxMjoyODoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkgIHJ0cHRoZW9yYWRlcGF5OiBhbHNvIGFjY2VwdCBpbi1iYW5kIGNvbmZpZ3VyYXRpb24KCSAgRml4ZXMgIzU3NDQxNiAodGhlb3JhKS4KCjIwMTAtMDQtMjIgMTI6Mjc6MzUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICBydHB2b3JiaXNkZXBheTogYWxzbyBhY2NlcHQgaW4tbGluZSBjb25maWd1cmF0aW9uCgkgIEZpeGVzICM1NzQ0MTYgKHZvcmJpcykuCgoyMDEwLTA0LTA3IDE3OjIxOjU1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkgIHJ0cHRoZW9yYWRlcGF5OiBJZ25vcmUgcGFja2V0cyB3aXRob3V0IGEga25vd24gY29kZWJvb2sKCSAgRG9uJ3QgcHJvZHVjZSBhbiBlcnJvciBpZiBhIHBhY2tldCBpcyByZWNlaXZlZCB3aXRob3V0IGEgdmFsaWQgY29kZWJvb2ssCgkgIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29kZWJvb2sgd2lsbCBqdXN0IGJlIGNvbWluZyBsYXRlci4KCSAgU2VlICM1NzQ0MTYuCgoyMDEwLTA0LTIwIDEyOjE3OjI2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3k0bWVuYy5jOgoJICB5NG1lbmM6IGFkanVzdCB1bml0IHRlc3QgdG8gZWxlbWVudCBiZWhhdmlvdXIKCjIwMTAtMDItMjMgMjI6MTY6MzkgLTA1MDAgIEJlbmphbWluIE0uIFNjaHdhcnR6IDxiZW5zQGFsdW0ubWl0LmVkdT4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmg6CgkgIHk0bWVuYzogYWRkIDQ6MjoyLCA0OjE6MSwgYW5kIDQ6NDo0IG91dHB1dCBzdXBwb3J0CgkgIEZpeGVzICM2MTA5MDIuCgoyMDEwLTA0LTE1IDEyOjIxOjU2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5Lmg6CgkgIHJ0cGgyNjRkZXBheTogREVMVEFfVU5JVCBtYXJraW5nIG9mIG91dHB1dCBidWZmZXJzCgkgIC4uLiB3aGljaCBldmlkZW50bHkgbWFrZXMgKG1vc3QpIHNlbnNlIGlmIG91dHB1dCBidWZmZXJzIGFyZQoJICBhY3R1YWxseSBmcmFtZXMuCgkgIFBhcnRpYWxseSBiYXNlZCBvbiBhIHBhdGNoIGJ5CgkgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIDxtYWRfYWx1Y2hlIGF0IGhvdG1haWwuY29tPgoJICBGaXhlcyAjNjA5NjU4LgoKMjAxMC0wNC0xNiAxNzoyMTo1MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5oOgoJICBydHBoMjYzZGVwYXk6IGV4dHJhIGtleWZyYW1lIGluZm8gZnJvbSBQVFlQRSBoZWFkZXIKCSAgLi4uIGFzIG9wcG9zZWQgdG8gdGFraW5nIGl0IGZyb20gaDI2MyBwYXlsb2FkIGhlYWRlciwgd2hpY2ggbmVlZCBub3QKCSAgYmUgc28gcmVsaWFibGUuCgkgIEZpeGVzICM2MTAxNzIuCgoyMDEwLTA0LTE2IDE3OjA4OjQ3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkgIHJ0cGgyNjNkZXBheTogYWxzbyB1c2UgUGljdHVyZSBTdGFydCBDb2RlIHRvIGRldGVjdCBwYWNrZXQgbG9zcwoJICBUaGlzIGVuc3VyZXMgYSB3aG9sZSBmcmFtZSBpcyBkcm9wcGVkIGlmIGEgKHN0YXJ0KSBwYWNrZXQgaXMgbG9zdCwKCSAgcmF0aGVyIHRoYW4gcmVseWluZyBvbmx5IG9uIHRoZSBESVNDT05UIGZsYWcuCgoyMDEwLTA0LTE2IDE3OjA2OjExICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkgIHJ0cGgyNjNkZXBheTogZGV0ZWN0IGZyYW1lIHN0YXJ0IHVzaW5nIFBpY3R1cmUgU3RhcnQgQ29kZQoJICBTbyB3ZSBzdG9wIGRyb3BwaW5nIGZyYWdtZW50cyBhcyBzb29uIGFzIHRoZXJlIGlzIGEgcGljdHVyZSBzdGFydCAoY29kZSkuCgkgIEluIHBhcnRpY3VsYXIsIHRoaXMgcHJldmVudHMgZHJvcHBpbmcgdGhlIGZpcnN0IGZyYW1lIGZvbGxvd2luZwoJICBpbml0aWFsIERJU0NPTlQuCgoyMDEwLTA0LTE2IDE2OjM0OjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkgIHJ0cGgyNjNkZXBheTogaGFuZGxlIGEgZmV3IEZJWE1FcwoKMjAxMC0wNC0xNiAxNjoyNzoyNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOgoJICBydHBoMjYzZGVwYXk6IHNsaWdodGx5IHJlZmFjdG9yIHBheWxvYWQgZHJvcHBpbmcKCjIwMTAtMDQtMTYgMTE6NTM6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJICBydHBoMjYzcGF5OiB1c2UgZm91bmQgR09CcyB0byBhcHBseSBNb2RlIEEgcGF5bG9hZGluZwoJICAuLi4gcmF0aGVyIHRoYW4gZmFsbGluZyBiYWNrIHRvIHNlbmRpbmcgdGhlIHdob2xlIGZyYW1lIGluIG9uZSBwYWNrZXQKCSAgaWYgbnVtYmVyIG9mIEdPQiBzdGFydGNvZGVzIDwgbWF4aW11bS4KCSAgT25lIG1pZ2h0IHRha2UgdGhpcyBmdXJ0aGVyIGFuZCBzdGlsbCBwZXJmb3JtIE1vZGUgQi9DIHBheWxvYWRpbmcsCgkgIGJ1dCBhdCBsZWFzdCB0aGlzIHNob3VsZCBjYXRlciBmb3IgZGVjZW50IGZyYWdtZW50cyBpbiB0eXBpY2FsIGNhc2VzLgoJICBGaXhlcyAjNTk5NTg1LgoKMjAxMC0wNC0xNCAxMTo1Mzo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IGltcGxlbWVudCBwdXNoIG1vZGUgc2Vla2luZwoKMjAxMC0wNC0yOSAyMDowODo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9maWx0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJICBkb2NzOiB1cGRhdGUgZm9yIHZpZGVvZmlsdGVyIHBsdWdpbiBtZXJnZSBhbmQgYWRkIGd0ay1kb2MgYmx1cmIgZm9yIG5ldyBwcm9wZXJ0eQoKMjAxMC0wNC0yNiAxODoxMjo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IEltcHJvdmUgc2VnbWVudCBoYW5kbGluZyBhIGJpdAoKMjAxMC0wNC0yNiAxODowNTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IE9yZGVyIGNhcHMgYnkgYW1vdW50IG9mIGNvbnRhaW5lZCBpbmZvcm1hdGlvbgoKMjAxMC0wNC0yNiAxNzoyNTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IFByb3Blcmx5IHNldCBpbnRlcmxhY2VkIGZpZWxkIGluIGdldGNhcHMKCjIwMTAtMDQtMjQgMTY6Mjg6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmViZmYuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZXRmZi5jOgoJICBkZWludGVybGFjZTogQWRkIHBsYW5hciBZVVYgc3VwcG9ydCB0byBhbGwgb3RoZXIgc2ltcGxlIG1ldGhvZHMKCjIwMTAtMDQtMjQgMTY6MTA6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHloLmFzbToKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHloLmM6CgkgIGRlaW50ZXJsYWNlOiBBZGQgcGxhbmFyIFlVViBzdXBwb3J0IHRvIGdyZWVkeWggbWV0aG9kCgoyMDEwLTA0LTI0IDE1OjQyOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5LmM6CgkgIGRlaW50ZXJsYWNlOiBBZGQgc3VwcG9ydCBmb3IgcGxhbmFyIFlVViBmb3JtYXRzIGluIGdyZWVkeWwgbWV0aG9kCgoyMDEwLTA0LTI0IDEzOjU4OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2VtZXRob2QuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdmZpci5jOgoJICBkZWludGVybGFjZTogQWRkIHN1cHBvcnQgZm9yIFk0NDQsIFk0MkIsIEk0MjAsIFlWMTIgYW5kIFk0MUIKCSAgVGhlIHZmaXIgbWV0aG9kIHN1cHBvcnRzIHRoZW0gYW5kIHdpbGwgYmUgdXNlZCB1bnRpbCBzb21ldGhpbmcgZWxzZQoJICBzdXBwb3J0cyBpdC4KCjIwMTAtMDQtMjQgMDk6MTY6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmM6CgkgIGRlaW50ZXJsYWNlOiBEZWZpbmUgZGVpbnRlcmxhY2UgbWV0aG9kIGJhc2UgY2xhc3NlcyBhcyBhYnN0cmFjdCB0eXBlcwoKMjAxMC0wNC0yMyAxNzo0MDoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvTWFrZWZpbGUuYW06CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuaDoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlbWV0aG9kLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZW1ldGhvZC5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9saW5lYXJibGVuZC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS92ZmlyLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmUuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZWJmZi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZldGZmLmM6CgkgIGRlaW50ZXJsYWNlOiBNb3ZlIGRlaW50ZXJsYWNpbmcgbWV0aG9kcyB0byB0aGVpciBvd24gZmlsZQoKMjAxMC0wNC0yMyAxNzoyNToxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkgIGRlaW50ZXJsYWNlOiBTaW1wbGlmeSBwYXNzdGhyb3VnaCBtb2RlIGRldGVjdGlvbgoKMjAxMC0wNC0yMyAxNDozNTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogRml4IHVuaXQgdGVzdCB0aGF0IGNoZWNrcyBjYXBzIGhhbmRsaW5nCgkgIGRlaW50ZXJsYWNlIG5vdyBhbHdheXMgYWRkcyB0aGUgaW50ZXJsYWNlZCBmaWVsZCB0byB0aGUgb3V0cHV0IGNhcHMsCgkgIGlmIGl0IHdhc24ndCBwcmVzZW50IGluIHRoZSBpbnB1dCBjYXBzIHRoZSBvdXRwdXQgY2FwcyB3aWxsIHN0aWxsCgkgIGNvbnRhaW4gaW50ZXJsYWNlZD1mYWxzZS4KCjIwMTAtMDQtMjEgMTc6MDA6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5LmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5hc206CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvZ3JlZWR5aC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2xpbmVhci5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2xpbmVhcmJsZW5kLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvc2NhbGVyYm9iLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbC5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdmZpci5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmViZmYuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZXRmZi5jOgoJICBkZWludGVybGFjZTogUmVmYWN0b3IgZGVpbnRlcmxhY2luZyBhcyBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBtb3JlIGNvbG9yIGZvcm1hdHMKCjIwMTAtMDQtMjIgMTk6MDU6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBBZGQgc3VwcG9ydCBmb3IgWTQ0NCwgWTQyQiBhbmQgWTQxQgoKMjAxMC0wNC0yMiAxNTo1NDoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IEFkZCBzdXBwb3J0IGZvciBZVllVIGFuZCByZW9yZGVyIHRlbXBsYXRlIGNhcHMKCjIwMTAtMDQtMTggMjE6MTE6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBUcmFuc2xhdGUgbmF2aWdhdGlvbiBldmVudHMgdG8gbWFrZSBzZW5zZSBhZ2FpbiB1cHN0cmVhbQoKMjAxMC0wNC0xOCAyMDo1ODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IFByb3Blcmx5IGhhbmRsZSByYW5nZXMvbGlzdHMgb2Ygd2lkdGggb3IgaGVpZ2h0IHdoZW4gdHJhbnNmb3JtaW5nIGNhcHMKCSAgQ29kZSBwYXJ0bHkgdGFrZW4gZnJvbSB0aGUgdmlkZW9jcm9wIGVsZW1lbnQuCgoyMDEwLTA0LTIyIDE1OjQ1OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogRml4IHBsYW5hciBZVVYtPlJHQiBwcm9jZXNzaW5nCgoyMDEwLTA0LTIyIDE1OjQyOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogQ29ycmVjdGx5IGNsYW1wIGFmdGVyIFlVVi0+UkdCIGNvbnZlcnNpb24KCjIwMTAtMDQtMjIgMTU6MjA6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBBZGQgc3VwcG9ydCBmb3IgWVVZMiwgWVZZVSBhbmQgVVlWWQoKMjAxMC0wNC0xOCAxNTowMjo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IFN5bmMgcHJvcGVydGllcyB0byB0aGUgY29udHJvbGxlciBpbiBiZWZvcmVfdHJhbnNmb3JtCgoyMDEwLTA0LTE2IDE3OjAwOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogQWRkIHN1cHBvcnQgZm9yIFlVWTIgYW5kIFVZVVYKCjIwMTAtMDQtMjEgMTc6NDE6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBSZWZhY3RvciBwcm9jZXNzaW5nIGFuZCBhZGQgc3VwcG9ydCBmb3Igb3RoZXIgcGxhbmFyIFlVViBmb3JtYXRzCgkgIFRoaXMgcmVkdWNlcyB0aGUgZ2VuZXJhdGVkIGNvZGUgc2l6ZSBieSBhIGZhY3RvciBvZiAyLjUuCgoyMDEwLTA0LTIxIDE3OjE1OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogQWRkIHN1cHBvcnQgZm9yIFlWMTIgaW5wdXQKCjIwMTAtMDQtMjIgMTM6NTY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmQuaDoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBBZGQgc3VwcG9ydCBmb3IgWVVZMiwgWVZZVSwgVVlWWQoKMjAxMC0wNC0yMCAxMjoxODoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5oOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IEFkZCBzdXBwb3J0IGZvciBZNDQ0LCBZNDJCLCBZNDFCIGFuZCBZVjEyCgoyMDEwLTA0LTIxIDE3OjA3OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgdmlkZW9maWx0ZXI6IE9yZGVyIGNvbG9yIGZvcm1hdHMgYnkgdGhlaXIgY29udGFpbmVkIGFtb3VudCBvZiBpbmZvcm1hdGlvbgoKMjAxMC0wNC0yMCAxODoyMjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkgIHZpZGVvZmxpcDogRHJvcCBZNDFCL1k0MkIgc3VwcG9ydAoJICBSb3RhdGluZyA5MMKwLzI3MMKwIHdpdGggc3Vic2FtcGxlZCBZVVYgd2hlcmUgaG9yaXpvbnRhbAoJICBhbmQgdmVydGljYWwgc3Vic2FtcGxpbmcgYXJlIGRpZmZlcmVudCBkb2Vzbid0IHJlYWxseSB3b3JrLgoKMjAxMC0wNC0xOSAxNDozNzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkgIHZpZGVvZmxpcDogQWxzbyBmbGlwIHRoZSBwaXhlbC1hc3BlY3QtcmF0aW8gaWYgd2lkdGgvaGVpZ2h0IGFyZSBleGNoYW5nZWQKCjIwMTAtMDQtMTggMjM6MDg6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgIHZpZGVvZmlsdGVyOiBFeHRlbmQgdGhlIHVuaXQgdGVzdCB0byB0ZXN0IGRpZmZlcmVudCBjb2xvciBmb3JtYXRzCgoyMDEwLTA0LTE4IDIyOjU1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgIHZpZGVvZmlsdGVyOiBBZGQgc29tZSBtb3JlIHRlc3RzCgkgIFRoZXNlIGNoZWNrIGRpZmZlcmVudCBwcm9wZXJ0eSBjb21iaW5hdGlvbnMKCjIwMTAtMDQtMTggMjI6NTQ6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZsaXA6IENoYW5nZSB0aGUgZGVmYXVsdCBtZXRob2QgdG8gaWRlbnRpdHkKCjIwMTAtMDQtMTggMjI6NTA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmg6CgkgIHZpZGVvYmFsYW5jZTogUmVkdWNlIG51bWJlciBvZiBhbGxvY2F0aW9ucyBwZXIgaW5zdGFuY2UKCjIwMTAtMDQtMTggMjI6NDU6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZpbHRlcjogVXBkYXRlIGxhc3QtcmV2aWV3ZWQgY29tbWVudHMKCjIwMTAtMDQtMTggMjI6NDA6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICB2aWRlb2JhbGFuY2U6IEFkZCBzdXBwb3J0IGZvciBhbGwgUkdCIGZvcm1hdHMKCjIwMTAtMDQtMTggMjI6Mjg6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICB2aWRlb2JhbGFuY2U6IEFkZCBzdXBwb3J0IGZvciBZVVkyLCBVWVZZLCBBWVVWIGFuZCBZVllVCgoyMDEwLTA0LTE4IDIyOjIzOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgdmlkZW9iYWxhbmNlOiBBZGQgZGVidWcgY2F0ZWdvcnkKCjIwMTAtMDQtMTggMjI6MTk6NTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICB2aWRlb2JhbGFuY2U6IE1ha2UgcHJvcGVydHkgYWNjZXNzIHRocmVhZHNhZmUKCjIwMTAtMDQtMTggMjI6MTg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICB2aWRlb2JhbGFuY2U6IEFkZCBzdXBwb3J0IGZvciBZNDFCLCBZNDJCIGFuZCBZNDQ0CgoyMDEwLTA0LTE4IDIyOjE3OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5oOgoJICB2aWRlb2JhbGFuY2U6IFVzZSBsaWJnc3R2aWRlbyBmb3IgZm9ybWF0IHNwZWNpZmljIHRoaW5ncwoKMjAxMC0wNC0xOCAyMjowOTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHZpZGVvYmFsYW5jZTogTWFrZSBwcm9wZXJ0aWVzIGNvbnRyb2xsYWJsZQoKMjAxMC0wNC0xOCAyMjowNjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgIHZpZGVvYmFsYW5jZTogRW1pdCAidmFsdWUtY2hhbmdlZCIgc2lnbmFsIG9mIGNvbG9yIGJhbGFuY2UgaW50ZXJmYWNlIHdoZW4gdmFsdWVzIGNoYW5nZQoKMjAxMC0wNC0xOCAyMTo1ODoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuaDoKCSAgdmlkZW9iYWxhbmNlOiBTb21lIHJhbmRvbSBjbGVhbnVwCgoyMDEwLTA0LTE4IDIxOjM3OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgdmlkZW9iYWxhbmNlOiBTdG9wIHVzaW5nIGxpYm9pbAoJICBUaGUgdXNlZCBsaWJvaWwgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIG9wdGltaXplZAoJICBpbXBsZW1lbnRhdGlvbiBhbnl3YXkuCgoyMDEwLTA0LTE4IDIxOjE0OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSAgdmlkZW9mbGlwOiBNYWtlIHByb3BlcnR5IGFjY2VzcyB0aHJlYWRzYWZlCgoyMDEwLTA0LTE4IDE1OjAwOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJICBnYW1tYTogU3luYyBwcm9wZXJ0aWVzIHRvIHRoZSBjb250cm9sbGVyIGluIGJlZm9yZV90cmFuc2Zvcm0KCjIwMTAtMDQtMTggMTQ6NDY6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZsaXA6IEFkZCBzdXBwb3J0IGZvciBhbGwgUkdCIGZvcm1hdHMgYW5kIEFZVVYKCjIwMTAtMDQtMTggMTQ6MzE6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZsaXA6IEFkZCBzdXBwb3J0IGZvciBZNDFCLCBZNDJCIGFuZCBZNDQ0CgoyMDEwLTA0LTE4IDE0OjI5OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5oOgoJICB2aWRlb2ZsaXA6IE1ha2UgcHJvY2Vzc2luZyBtb3JlIGdlbmVyYWwgYW5kIHVzZSBsaWJnc3R2aWRlbyBmb3IgYWxsIGZvcm1hdCBzcGVjaWZpYyB0aGluZ3MKCjIwMTAtMDQtMTggMTM6MTI6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICB2aWRlb2ZsaXA6IE1ha2UgbWV0aG9kIHByb3BlcnR5IGNvbnRyb2xsYWJsZSBhbmQgaW1wcm92ZSBkZWJ1ZyBvdXRwdXQKCjIwMTAtMDQtMTggMTM6MDM6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmg6CgkgIHZpZGVvZmxpcDogU29tZSByYW5kb20gY2xlYW51cAoKMjAxMC0wNC0xOCAxMDoxNzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9wbHVnaW4uYzoKCSAgdmlkZW9maWx0ZXI6IE1vdmUgYWxsIGVsZW1lbnRzIGludG8gYSBzaW5nbGUgcGx1Z2luCgkgIEhhdmluZyBhbGwgdGhlc2Ugc21hbGwgZWxlbWVudHMgaW4gYSBzZXBhcmF0ZSBwbHVnaW4KCSAgaXMgbm90IHZlcnkgbWVtb3J5IGVmZmVjdGl2ZS4uLgoKMjAxMC0wNC0xOCAxMDowNzoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmg6CgkgIGdhbW1hOiBJbXByb3ZlIGRvY3MgYSBiaXQKCjIwMTAtMDQtMTggMDk6NTk6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkgIGdhbW1hOiBBZGQgc3VwcG9ydCBmb3IgYWxsIFJHQiBmb3JtYXRzCgoyMDEwLTA0LTE4IDA5OjQ2OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJICBnYW1tYTogQWRkIHN1cHBvcnQgZm9yIG1hbnkgcGFja2VkIFlVViBmb3JtYXRzCgkgIFRoYXQgaXMgWVVZMiwgVVlWWSwgQVlVViBhbmQgWVZZVS4KCjIwMTAtMDQtMTggMDk6Mzg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkgIGdhbW1hOiBBZGQgc3VwcG9ydCBmb3IgYWxsIG90aGVyIHBsYW5hciBZVVYgZm9ybWF0cwoJICBUaGF0IGlzIFk0MUIsIFk0MkIsIFk0NDQsIE5WMTIgYW5kIE5WMjEuCgoyMDEwLTA0LTE4IDA5OjMzOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkgIGdhbW1hOiBTdG9wIHVzaW5nIGxpYm9pbAoJICBUaGUgdXNlZCBsaWJvaWwgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCwgb25seSBoYXMgYSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24KCSAgYW5kIGlzIG1vcmUgY29tcGxleCB0aGFuIHdoYXQncyBuZWVkZWQgaGVyZS4KCjIwMTAtMDQtMTcgMTg6MTM6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5oOgoJICBnYW1tYTogVXNlIGxpYmdzdHZpZGVvIGZvciBmb3JtYXQgc3BlY2lmaWMgdmFsdWVzIGFuZCBtYWtlIGdhbW1hIHByb2Nlc3NpbmcgbW9yZSBnZW5lcmljCgkgIEFsbG93cyB1cyB0byBlYXNpbHkgYWRkIHN1cHBvcnQgZm9yIG5ldyBjb2xvciBmb3JtYXRzIGxhdGVyLgoKMjAxMC0wNC0xNyAxODowMTowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJICBnYW1tYTogTWFrZSBnYW1tYSBwcm9wZXJ0eSBjb250cm9sbGFibGUKCSAgLi4uYW5kIHByb3Blcmx5IHVzZSBsaWJvaWwuCgoyMDEwLTA0LTE3IDE3OjU1OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJICBnYW1tYTogU29tZSByYW5kb20gY2xlYW51cAoKMjAxMC0wNC0xOSAxNDo0NTozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJICBzbXB0ZWFscGhhOiBTeW5jIHByb3BlcnRpZXMgdG8gdGhlIGNvbnRyb2xsZXIgaW4gYmVmb3JlX3RyYW5zZm9ybQoKMjAxMC0wNC0xNyAxNzo0NzowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJICBzbXB0ZWFscGhhOiBBZGQgc3VwcG9ydCBmb3IgWVYxMiAoY29udmVydGVkIHRvIEFZVVYpCgoyMDEwLTA0LTE3IDE3OjQzOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6CgkgIHNtcHRlYWxwaGE6IEFkZCBzdXBwb3J0IGZvciBhbGwgNCBBUkdCIGZvcm1hdHMKCSAgLi4ud2l0aG91dCBmb3JtYXQgY29udmVyc2lvbi4KCjIwMTAtMDQtMTYgMTc6Mjc6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuaDoKCSAgc21wdGVhbHBoYTogTWFrZSBjb2xvciBmb3JtYXQgc3VwcG9ydCBtb3JlIGdlbmVyaWMKCSAgVGhpcyBhbGxvd3MgZWFzaWVyIGFkZGl0aW9uIG9mIG5ldyBmb3JtYXRzIGxhdGVyLgoKMjAxMC0wNC0xNiAxNzoxODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5oOgoJICBzbXB0ZWFscGhhOiBTb21lIHJhbmRvbSBjbGVhbnVwCgoyMDEwLTA0LTE1IDIyOjI4OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zbXB0ZS9nc3RtYXNrLmM6CgkqIGdzdC9zbXB0ZS9nc3RtYXNrLmg6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuaDoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuaDoKCSAgc21wdGU6IEFkZCBwcm9wZXJ0eSBmb3IgaW52ZXJ0aW5nIHRoZSB0cmFuc2l0aW9uIG1hc2sKCSAgVGhpcyBjb252ZXJ0cyBhIGxlZnQtdG8tcmlnaHQgdHJhbnNpdGlvbiB0byByaWdodC10by1sZWZ0IG9yCgkgIGNsb2NrLXdpc2UgdG8gY291bnRlci1jbG9jay13aXNlLgoKMjAxMC0wNC0xNSAyMjoyNzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJICBzbXB0ZWFscGhhOiBDb3JyZWN0bHkgZGV0ZWN0IHByb3BlcnR5IGNoYW5nZXMgYW5kIHVwZGF0ZSBwcm9wZXJ0aWVzCgoyMDEwLTA0LTE2IDE5OjM1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBxY2VscGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWNlbHBkZXBheS5oOgoJICBxY2VscGRlcGF5OiBhZGQgZmlyc3QgdmVyc2lvbiBvZiBhIFFDRUxQIGRlcGF5bG9hZGVyCgoyMDEwLTA0LTI5IDE1OjE4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50LgoKPT09IHJlbGVhc2UgMC4xMC4yMiA9PT0KCjIwMTAtMDQtMjggMDI6NTg6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjIKCjIwMTAtMDQtMjggMDI6NTc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wNC0yNSAyMzozNjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4yMS4zIHByZS1yZWxlYXNlCgoyMDEwLTA0LTI1IDIxOjE5OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogaGlkZSBpcy1saXZlIHByb3BlcnR5IGZvciByZWxlYXNlCgkgIEF0IHRoZSB2ZXJ5IGxlYXN0IGl0IG5lZWRzIGEgYmV0dGVyL2xlc3Mgd3JvbmcgbmFtZS4KCSAgU2VlICM2MTMwNjYuCgoyMDEwLTA0LTI1IDE1OjEyOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogZG9uJ3QgY3Jhc2ggaWYganBlZyBpbWFnZSBjb250YWlucyBtb3JlIHRoYW4gdGhyZWUgY29tcG9uZW50cwoJICBPdXIgY29kZSBjdXJyZW50bHkgb25seSBoYW5kbGVzIGEgbWF4aW11bSBvZiAzIGNvbXBvbmVudHMsIHNvIGVycm9yCgkgIG91dCBmb3Igbm93IGlmIHRoZSBpbWFnZSBoYXMgbW9yZSBjb21wb25lbnRzIHRoYW4gdGhhdC4KCSAgRml4ZXMgIzYwNDEwNi4KCjIwMTAtMDQtMjAgMTc6MjE6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJICBkb2FwOiB1cGRhdGUgcmVwb3NpdG9yeSBpbmZvIGZyb20gY3ZzLT5naXQgYW5kIG1haW50YWluZXJzCgoyMDEwLTA0LTIzIDE0OjQwOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmM4NTg2NyB0byA0ZDY3YmQ2CgoyMDEwLTA0LTIyIDEzOjMwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkgIHZpZGVvbWl4ZXI6IEZpeCBieXRlIG9yZGVyIGZvciBNTVggQVJHQi9BWVVWIGNvbG9yIGZpbGxpbmcKCSAgRml4ZXMgYnVnICM2MTY0MDkuCgoyMDEwLTA0LTIxIDE3OjUzOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkgIHZpZGVvbWl4ZXI6IEZpeCBBWVVWIGNoZWNrZXIvY29sb3IgZmlsbGluZwoKMjAxMC0wNC0xOSAxNjo0MzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9tbXguaDoKCSAgdmlkZW9taXhlcjogQWRkIGkzODcgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIHRvIHRoZSBjbG9iYmVyZWQgcmVnaXN0ZXJzIGxpc3QKCSAgVGhleSBhcmUgdGhlIHNhbWUgYXMgdGhlIG1tMC1tbTcgTU1YIHJlZ2lzdGVycyBhbmQgd2lsbCBiZSBvdmVyd3JpdHRlbgoJICBieSB0aGUgYXNzZW1ibHkgY29kZSBpZiBnY2MgZG9lc24ndCBrbm93IGFib3V0IHRoZSBNTVggcmVnaXN0ZXJzLgoJICBOb3RlOiBUaGV5J3JlIGFsbCBhZGRlZCB0byB0aGUgbGlzdCBvZiBjbG9iYmVyZWQgcmVnaXN0ZXJzIGluIGFsbCBjYXNlcwoJICBhbmQgbm90IG9ubHkgd2hlbiBfX01NWF9fIGlzIG5vdCBkZWZpbmVkIGp1c3QgdG8gbWFrZSBzdXJlIHRoYXQgbm8gb3RoZXIKCSAgYnVncyBoYXBwZW4gd2l0aCB0aGlzIGNvZGUganVzdCBiZWNhdXNlIHNvbWUgY29tcGlsZXIgdmVyc2lvbiBnZXRzIHRoaW5ncwoJICB3cm9uZy4KCSAgRml4ZXMgYnVnICM2MTQ0NjYuCgoyMDEwLTA0LTE5IDE0OjA5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogVXNlIGxpYmdzdHZpZGVvIHRvIGdldCB0aGUgb3JkZXIgb2YgUkdCCgoyMDEwLTA0LTE3IDEwOjA2OjQxICswMTAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQG9yYWNsZS5jb20+CgoJKiBnc3QvZ29vbS94bW14LmM6CgkgIGdvb206IGFkZCBlZHggdG8gY2xvYmJlciBsaXN0IGluIGlubGluZSBhc3NlbWJseSBjb2RlCgkgIG11bGwgbW9kaWZpZXMgJWVkeCwgc28gc2hvdWxkIGJlIG1lbnRpb25lZCBpbiBjbG9iYmVyIGxpc3QuCgkgIEZpeGVzIGNyYXNoIG9uIFNvbGFyaXMgKCM2MTU5OTgpLgoKMjAxMC0wNC0xNSAxMzozOTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRvbid0IHVzZSBHU1RfUExVR0lOX0xERkxBR1Mgd2hlbiBidWlsZGluZyB0ZXN0IGJpbmFyaWVzCgoyMDEwLTA0LTE2IDE1OjI3OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogRml4IEk0MjAtPkk0MjAgY29weWluZwoJICBGaXhlcyBidWcgIzYxNTE0My4KCjIwMTAtMDQtMTMgMTg6MTU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBGaXggQVlVVi0+STQyMCBjb3B5aW5nCgoyMDEwLTA0LTE2IDEyOjE0OjI2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgIHJ0cGgyNjRkZXBheTogcHJvZmlsZS1sZXZlbC1pZCBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIKCSAgU28sIGlmIG5lZWRlZCwgZXh0cmFjdCB0aGUgY29ycmVzcG9uZGluZyBpbmZvIGZyb20KCSAgc3Byb3AtcGFyYW1ldGVyLXNldHMuCgkgIEJhc2VkIG9uIHBhdGNoIHByb3ZpZGVkIGJ5IDxkeHNzeCBhdCBnbWFpbC5jb20+CgkgIEZpeGVzICM2MTI2NTcuCgoyMDEwLTA0LTE1IDA3OjEzOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBEcm9wIC1XY2FzdC1hbGlnbgoJICBDb21taXQgbWVzc2FnZSBjb3BpZWQgZnJvbSBjb3JlJ3MgY29tbWl0IGZyb20gQmVuamFtaW4gT3R0ZToKCSAgMjQ2ZjVkYmE5NmE1YjUwYmI3NDYyMWFmNjdiMzA5NDJjY2E3MmFmNQoJICBBcHBhcmVudGx5IGdjYyB3YXJucyB0aGF0IEdzdE1pbmlPYmplY3QgaXMgbm90IGNhc3RhYmxlIHRvCgkgIEdzdEV2ZW50L01lc3NhZ2UvQnVmZmVyIGR1ZSB0byB0aGVtIGNvbnRhaW5pbmcgNjRiaXQgdmFyaWFibGVzLCBldmVuCgkgIHRob3VnaCBBUk0gaGFja2VycyBjbGFpbSB0aGF0IHRob3NlIG9ubHkgbmVlZCA0Ynl0ZSBhbGlnbm1lbnQuIEFuZCBhcwoJICBsb25nIGFzIGdjYyBiZWhhdmVzIHRoYXQgd2F5LCB0aGlzIHdhcm5pbmcgaXMgbm90IHZlcnkgdXNlZnVsLgoJICBTbyB3ZSdsbCByZW1vdmUgdGhlIHdhcm5pbmcgdW50aWwgdGhpcyBwcm9ibGVtIGlzIGZpeGVkLgoJICBGaXhlcyAjNjE1Njk4CgoyMDEwLTA0LTE0IDIzOjQ2OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzoKCSAgZmxhY3RhZzogZml4IGFkYXB0ZXIgYXNzZXJ0aW9uIHdoZW4gdXNlZCBkaXJlY3RseSBhZnRlciBmbGFjZW5jCgkgIFVubGlrZSBmaWxlc3JjLCBmbGFjZW5jIG91dHB1dHMgdGhlIGZsYWMgYmxvY2tzIG5lYXRseSBhbGlnbmVkIG9uZSBpbgoJICBlYWNoIGJ1ZmZlci4gVGhpcyBtZWFucyB0aGF0IHdoZW4gd2Ugc3dpdGNoIGZyb20gbWV0YWRhdGEgbW9kZSB0bwoJICBhdWRpbyBkYXRhIHBhc3N0aHJvdWdoIG1vZGUsIHRoZXJlJ3Mgbm8gZGF0YSBsZWZ0IGluIHRoZSBhZGFwdGVyIHRvCgkgIHB1c2ggb3V0IGF0IHRoaXMgcG9pbnQsIHNvIGNoZWNrIGlmIHRoZXJlJ3MgZGF0YSBpbiB0aGUgYWRhcHRlcgoJICBiZWZvcmUgcmVxdWVzdGluZyBidWZmZXJzIGZyb20gaXQgKGFsc28gbmVlZGVkIGluIGNhc2Ugd2UgZ2V0IGlucHV0CgkgIGJ1ZmZlcnMgb2YgMCBzaXplKS4KCSAgRml4ZXMgIzYxNTc5My4KCjIwMTAtMDQtMTQgMjM6MTg6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMjEuMiBwcmUtcmVsZWFzZQoKMjAxMC0wNC0xNCAyMDozMTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlCgoyMDEwLTA0LTE0IDIwOjA2OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2VxdWFsaXplci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc2hhcGV3aXBlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiB1c2UgTERBREQgZm9yIGxpYnMgdG8gbGluayB0byBpbnN0ZWFkIG9mIExERkxBR1MKCSAgVXNlIGZvb19MREFERCBpbnN0ZWFkIG9mIGZvb19MREZMQUdTIHRvIHNwZWNpZnkgdGhlIGxpYnJhcmllcyB0byBsaW5rIHRvLgoJICBUaGlzIHNob3VsZCBtYWtlIHN1cmUgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGxpbmtlciBpbiB0aGUgcmlnaHQKCSAgb3JkZXIsIGFuZCBtYWtlcyBMREZMQUdTIHVzYWJsZSBhZ2Fpbi4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBvcmFjbGUuY29tPgoJICBGaXhlcyAjNjE1Njk3LgoKMjAxMC0wNC0xNCAxODoxMzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogdHJhbnNmb3JtX2NhcHMgOiBXZSBjYW4gb25seSBjb252ZXJ0IEFZVVYgdG8geFJHQgoJICBXZSB3ZXJlIHByZXZpb3VzbHkgc3RhdGluZyB0aGF0IHdlIGNvdWxkIGNvbnZlcnQgQVlVVi9JNDIwL1lWMTIgdG8geFJHQi4KCjIwMTAtMDQtMTMgMDA6MTQ6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGFsc28gcmVtb3ZlIC1XYWdncmVnYXRlLXJldHVybiBmcm9tIHdhcm5pbmcgZmxhZ3MKCSAgSXQgY2F1c2VzIHByb2JsZW1zIHdpdGggT2JqZWN0aXZlLUMgY29kZSBsaWtlIGluIG9zeHZpZGVvc2luay4KCSAgRml4ZXMgIzYxMzY2My4KCjIwMTAtMDQtMTIgMTg6MjI6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IElnbm9yZSBvc3ggYXVkaW8vdmlkZW8gc3JjL3NpbmtzIGluIHN0YXRlIGNoYW5nZSB0ZXN0cwoJICBBbmQgbWFrZSB0aGUgbGluZSByZWFkYWJsZSBmb3IgdGhvc2UgbWVyZSBtb3J0YWxzIHRoYXQgZG9uJ3Qgb3duIGEgMzAiIHNjcmVlbgoKMjAxMC0wNC0xMiAxODowMzoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGVuYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnbGltaXRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ3ZvbHVtZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zcGVjdHJ1bS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2ZpbHRlci5jOgoJICBjaGVjazogRG9uJ3QgcmUtZGVjbGFyZSAnR0xpc3QgKmJ1ZmZlcnMnIGluIHRoZSB0ZXN0cwoJICBJdCdzIGFuIGV4dGVybmFsIHdoaWNoIGxpdmVzIGluIGdzdGNoZWNrLmMuIFJlZGVjbGFyaW5nIGl0IG1ha2VzIHNvbWUKCSAgY29tcGlsZXJzL2FyY2hpdGVjdHVyZXMgdGhpbmsgdGhlICdidWZmZXJzJyBpbiB0aGUgaW5kaXZpZHVhbCB0ZXN0cyBhcmUKCSAgYSBkaWZmZXJlbnQgc3ltYm9sLi4uIGFuZCB0aGVyZWZvcmUgd2UgZW5kIHVwIGNvbXBhcmluZyBob2xvZGVja3Mgd2l0aAoJICBvcmFuZ2VzLgoKMjAxMC0wNC0xMiAxNDo1MDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4LCBxdGRlbXV4OiBtaW5vciBjb2RlIGNsZWFudXAgaW4gYXZjX2xldmVsX2lkY190b19zdHJpbmcoKQoJICBEbyB0aGUgc2FtZSB3aXRoIHNsaWdodGx5IGZld2VyIExPQy4KCjIwMTAtMDQtMTIgMTI6NDA6MTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogUmVtb3ZlIC1XdW5kZWYgZmxhZwoJICBGaXhlcyAjNjE1MTYxCgoyMDEwLTA0LTEyIDExOjQzOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogRml4IEk0MjAtPkFZVVYgY29weWluZwoKMjAxMC0wNC0xMiAxMToyNTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IENvcnJlY3RseSBjbGFtcCBmcmFtZS9iYWNrZ3JvdW5kIGFscGhhcyB0byBbMCwyNTVdIGJlZm9yZSB3cml0aW5nIHRoZW0KCjIwMTAtMDQtMTIgMTE6MTY6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBjaGVjazogSWdub3JlIGpwZWdlbmMgdGVzdAoKMjAxMC0wNC0xMSAxMzoxNDozMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkgIGRlaW50ZXJsYWNlOiBPbmx5IGNoZWNrIGludGVybGFjZWQgZmxhZyBpbiBzaW5rIGNhcHMKCSAgRml4ZXMgIzYxNTQ2MC4KCjIwMTAtMDQtMDkgMTE6MjE6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiYTMzZDFmIHRvIGZjODU4NjcKCjIwMTAtMDQtMDggMTg6MDU6NDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgZG9jczogZG8gcHJvcGVyIGVzY2FwaW5nIGZvciAiJSIKCjIwMTAtMDQtMDggMTc6NTA6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9ydHNwL2dzdHJ0c3Bnb29nbGUuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcGdvb2dsZS5oOgoJICBydHNwOiByZW1vdmUgb2Jzb2xldGUgZ29vZ2xlIGV4dGVuc2lvbgoJICBUaGlzIHdhcyBub3QgYnVpbGQgZm9yIGEgd2hpbGUgYW5kIGNhbiBiZSByZW1vdmVkLgoKMjAxMC0wNC0wOCAxNzo0Mjo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IG1vdmUgdHdvIHN5bWJvbHMgdG8gcHJpdmF0ZSBzZWN0aW9uCgoyMDEwLTA0LTA4IDE3OjM2OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIGZseGRlYyBkb2NzCgoyMDEwLTA0LTA4IDE3OjE3OjA2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIGRvY3M6IGVuYWJsZSB0aGUgMiBvZiA2NSBydHAgZWxlbWVudHMgaW4gdGhlIGRvY3MKCjIwMTAtMDQtMDggMTE6NTQ6MTkgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6CgkgIHNob3V0MjogRG9uJ3Qgd2FpdCBpZiB3ZSdyZSBsYXRlCgkgIEluIGZhY3QsIGR1ZSB0byBzaWduZWRuZXNzIGlzc3VlcywgYSBuZWdhdGl2ZSBkZWxheSB3b3VsZCBiZSBjaGFuZ2VkIHRvCgkgIGFuIGFsbW9zdCBpbmZpbml0ZSB3YWl0IGNhdXNpbmcgc2hvdXQyc2VuZCB0byAibG9jayB1cCIuCgkgIFJlcG9ydGVkIGJ5IENocmlzdG9waGVyIE1vbnRnb21lcnkuCgoyMDEwLTA0LTA4IDE2OjU2OjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICBkb2NzOiB1cGQgLT4gdWRwIGFuZCB2b2lsYSBpdCBzaG93cyB1cCBpbiB0aGUgZG9jcwoKMjAxMC0wNC0wOCAxNjo1MToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmg6CgkgIGRvY3M6IGZpeCBkb2MgYmxvYiBzeW50YXgKCjIwMTAtMDQtMDggMTY6NTE6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgKHNwYXJzZSkgZG9jcyBmb3IgYXVwYXJzZSBlbGVtZW50CgoyMDEwLTA0LTA4IDE0OjQwOjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIHZpZGVvYm94IHN5bWJvbHMKCjIwMTAtMDQtMDggMTQ6NDA6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgZG9jczogcmVtb3ZlIGR5bnVkcHNpbmsgdW50aWwgc29tZW9uZSBkb2N1bWVudHMgaXQKCjIwMTAtMDQtMDggMTQ6MzQ6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IG1ha2UgZGVidWcgY2F0ZWdvcnkgc3RhdGljCgoyMDEwLTA0LTA4IDE0OjI5OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkgIGZseGRlbXV4OiByZW5hbWUgR3N0RkxWRGVtdXggZm9yIEdzdEZsdkRlbXV4CgoyMDEwLTA0LTA4IDE0OjIzOjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2Zsdi9NYWtlZmlsZS5hbToKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5oOgoJICBmbHZkZW11eDogbWVyZ2UgZmx2cGFyc2UgaW50byB0aGUgZGVtdXhlciBhbmQgbWFrZSBmdW5jdGlvbiBzdGF0aWMKCSAgTm8gbmVlZCB0byBoaWRlIGNlcnRhaW4gZnVuY3Rpb24gaW4gdGhlIGRvY3MuIEFsbG93cyB0byBkbyBtb3JlIGNsZWFudXBzLgoKMjAxMC0wNC0wOCAxMzoxMzozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuaDoKCSAgYWxwaGE6IEFkZCBkb2N1bWVudGF0aW9uCgoyMDEwLTA0LTA4IDE0OjAwOjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogdjRsMmJ1ZmZlciBwb29sIGlzIG5vdyBhIHNlcGFyYXRlIG9iamVjdCwgcmVtb3ZlIHRoZW0gZnJvbSB2NGwyc3JjIGRvY3MKCjIwMTAtMDQtMDggMTM6NTg6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgbm9uIGV4aXN0aW5nIGZsYWdzIGFuZCBhZGQgdHdvIGludGVybmFsIG1ldGhvZHMKCSAgSWYgc29tZW9uZSBjYXJlcyBmbHZwYXJzZSBjb3VsZCBiZSBtZXJnZWQgaW50byBmbHZkZW11eC4KCjIwMTAtMDQtMDggMTM6NTc6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uaDoKCSAgcnRwc2Vzc2lvbjogcmVtb3ZlIHByb3RvdHlwZSBmb3Igbm9uIGV4aXN0aW5nIGZ1bmN0aW9uCgkgIFRoZXJlIGlzIG5vIGZ1bmN0aW9uIGJ5IHRoYXQgbmFtZSBhbnl3aGVyZS4KCjIwMTAtMDQtMDggMTI6NTY6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJICBkb2NzOiBVcGRhdGUgaW5zcGVjdGVkIHBsdWdpbiBpbmZvcm1hdGlvbgoKMjAxMC0wNC0wOCAxMjo1NjozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJICBhbHBoYWNvbG9yOiBJbXByb3ZlIGRvY3MgYSBiaXQKCjIwMTAtMDQtMDggMTM6NDc6NDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgZWZmZWN0dHYgZGVmaW5lcyBhbmQgcmVvcmRlciBsaXN0CgoyMDEwLTA0LTA4IDEzOjQxOjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHRocmVlIGVudHJpZXMgdGhhdCBhcmUgbm90IGV4cG9ydGVkIGZyb20gdGhlIGhlYWRlcnMgYW55bW9yZQoKMjAxMC0wNC0wOCAxMzo0MDozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIGpwZWdkZWM6IG1vdmUgbWFjcm8gdG8gYyBzb3VyY2UKCSAgT25lIGxlc3Mgc2VtaSBwdWJsaWMgc3ltYm9sIHdpdGhvdXQgbmFtZXNwYWNlIHByZWZpeCBpbiB0aGUgaGVhZGVycy4KCjIwMTAtMDQtMDggMTM6NDA6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5oOgoJICBzcGVleGVuYzogcmVtb3ZlIHVudXNlZCBkZWZpbmVzCgoyMDEwLTA0LTA4IDEzOjIzOjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thLW11eDogZml4IGxhc3QgY29tbWl0CgkgIFVzZSBhIGxvY2FsIGRlZmluZSBmb3IgV0FWRUZPUk1BVF9FWCBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0ICsgMiBieXRlcwoJICBmb3IgdGhlIGV4dGVuc2lvbiBzaXplLgoKMjAxMC0wNC0wOCAxMzoxNjo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmg6CgkgIHNwZWV4OiByZW1vdmUgdW51c2VkIGRlZmluZQoKMjAxMC0wNC0wOCAxMzowMzo0MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3dhdmVuYy9NYWtlZmlsZS5hbToKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSogZ3N0L3dhdmVuYy9yaWZmLmg6CgkgIHdhdmVuYzogcmVtb3ZlIGludGVybmFsIGNvcHkgb2YgcmlmZi5oIGFuZCB1c2UgcmlmZi1saWJyYXJ5IGluc3RlYWQuCgkgIFdlIGRvbid0IHVzZSBhbnkgZnVuY3Rpb24geWV0LCBqdXN0IHRoZSBzdHJ1Y3R1cmVzIGFuZCBkZWZpbmVzLgoKMjAxMC0wNC0wOCAxMjo1NjowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIG1hdHJvc2thbXV4OiB1c2UgcmlmZiBsaWIgbW9yZQoJICBSZW1vdmUgQklUTUFQSU5GT0hFQURFUiBhbmQgdXNlIHRoZSBvbmUgZnJvbSByaWZmLWxpYi4gQWxzbyByZW1vdmUgdGhlCgkgIFdBVkVGT1JNQVRFWF9TSVpFIGRlZmluZSBhbmQgdXNlIGEgc2l6ZW9mIHRvZ2V0aGVyIHdpdGggdGhlIHJlc3BlY3RpdmUgc3RydWN0LgoJICBCZXNpZGVzIGJldHRlciBjb2RlIHJldXNlIHRoaXMgbGVzc2VucyB0aGUgdW51bnNlZCBzeW1ib2xzIGluIHRoZSBkb2NzLgoKMjAxMC0wNC0wOCAxMjoxNDowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkgIGRvY3M6IHRyaW0gc2VjdGlvbnMgZmlsZSBtb3JlCgkgIFJlbmFtZSBzb21lIGRlZmluZXMgYW5kIG1vdmUgc29tZSBpdGVzbSB0byAqLmMgZmlsZXMuIEFkZCBtb3JlIGl0ZW1zIHRvIGludGVybmFsCgkgIHN1YnNlY3Rpb24uCgoyMDEwLTA0LTA4IDExOjE5OjQzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgZG9jc3c6IHRyaW0gdGhlIHNlY3Rpb24gZmlsZQoKMjAxMC0wNC0wOCAxMDoyNjoyNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCB2NGwyc2luayB0byBkb2NzCgoyMDEwLTA0LTA4IDEwOjE1OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIGRvY3M6IGZpeCB4bWwKCSAgVGhlIHRpdGxlIHRhZyBiZWxvbmdzIGludG8gdGhlIHJlZnNlY3QyLgoKMjAxMC0wNC0wNyAxNzo0Mzo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IEFkZCBzdXBwb3J0IGZvciBZVjEyLCBpbmNsdWRpbmcgY29udmVyc2lvbiBzdXBwb3J0IGZvciBJNDIwL0FZVVYKCjIwMTAtMDQtMDcgMTc6Mjc6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBBZGQgc3VwcG9ydCBmb3IgZ3JheXNjYWxlIGlucHV0L291dHB1dAoJICBUaGlzIGRvZXNuJ3QgZG8gYW55IGNvbnZlcnNpb24gYW5kIGlzIHRoZSBuZXh0IHN0ZXAgdG8KCSAgcmVwbGFjaW5nIHZpZGVvY3JvcCBieSBzdXBwb3J0aW5nIGFsbCByZW1haW5pbmcgZm9ybWF0cwoJICBpbiBwYXNzdGhyb3VnaCBtb2RlLgoKMjAxMC0wNC0wNyAxNjoyNDozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94Lmg6CgkgIHZpZGVvYm94OiBBZGQgc3VwcG9ydCBmb3IgZmlsbGluZyB0aGUgYmFja2dyb3VuZCB3aXRoIHJlZCwgeWVsbG93IGFuZCB3aGl0ZQoKMjAxMC0wNC0wNyAxNjoxMToxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IEFkZCBzdXBwb3J0IGZvciBkaXJlY3QgUkdCPC0+QVlVViBjb252ZXJzaW9uCgoyMDEwLTA0LTA3IDE2OjExOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogRml4IFJHQjI0IGZpbGxpbmcKCjIwMTAtMDQtMDcgMTY6MDY6NTQgKzAzMDAgIE1hcmNvIEJhbGxlc2lvIDxtYXJjby5iYWxsZXNpb0Bub2tpYS5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICBoMjY0ZGVwYXk6IGhhbmRsZSBwcm9wZXJseSBTVEFQcwoJICBpbiBydHBoMjY0ZGVwYXkuYywgbGluZXMgNTc3LTU3NiwgTkFMVS10eXBlIDI0IChTaW5nbGUtVGltZSBBZ2dyZWdhdGlvbgoJICBQYWNrZXQpIGlzIGhhbmRsZWQgaW4gZmFsbC10aHJvdWdoIGFzIE5BTFUtdHlwZSAyNiAodW5oYW5kbGVkKS4KCSAgVGhpcyBsZWFkcyBoaWdoIHF1YWxpdHkgaDI2NCBzdHJlYW1zIHN1Y2ggYXM6CgkgIHJ0c3A6Ly9zdHJlYW0ueWxlLm1vYmkveWxlL2FyZWVuYS9NRURJQV9FMDM0MjY1N19wMy5tcDQKCSAgdG8gZmFpbCB3aXRoICJOQUwgdW5pdCB0eXBlIDI0IG5vdCBzdXBwb3J0ZWQgeWV0IiAoYnV0IGl0J3MgYWN0dWFsbHkKCSAgc3VwcG9ydGVkKSwgYW5kIHRodXMgdG8gY2xvc2UgYW55IHN0cmVhbSB3aGljaCBjb250YWlucyBTVEFQcy4KCSAgVGhlIHByb3Bvc2VkIG9uZS1saW5lciBwYXRjaCBmaXhlcyB0aGUgaXNzdWUuCgkgIEZpeGVzICM2MTUwNTEuCgoyMDEwLTA0LTA3IDEzOjQ3OjAyICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0LWxpYnMvZ3N0L2dzdC1pMThuLXBsdWdpbi5oOgoJKiBnc3QvYXZpL2dzdGF2aS5jOgoJICBidWlsZDogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIGZpeCB3YXJuaW5ncyBmb3IgYWxsIHBsdWdpbnMgdGhhdCB1c2U6IHNldGxvY2FsZSAoTENfQUxMLi4uCgoyMDEwLTA0LTA3IDEzOjMxOjEzICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmkuYzoKCSAgYXZpOiBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMC0wMy0zMSAxNzo1NDoyMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogcmVzdHJpY3QgcmVzeW5jaW5nIHRvIHN1YnRpdGxlIHRyYWNrcwoJICBUaGlzIHNob3VsZCBwcmV2ZW50IHNraXBwaW5nIGF1ZGlvIG9yIHZpZGVvIGluIG5vdCBzbyB3ZWxsIGludGVybGVhdmVkCgkgIGNhc2VzLgoJICBGaXhlcyAjNjE0NDYwLgoKMjAxMC0wNC0wNiAxMzoyMTo1MSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Zm9yZF9wcmVmZWN0QGdlbnRvby5vcmc+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IFBvc3QgYXZnLi9tYXguIGJpdHJhdGUgdGFncyBmb3IgSC4yNjQKCSAgVGhpcyByZWFkcyB0aGUgYXZlcmFnZSBhbmQgbWF4aW11bSBiaXRyYXRlcyBmcm9tIHRoZSAnYnRydCcgYXRvbSBpZgoJICBhdmFpbGFibGUsIGFuZCBwdXNoZXMgdGhlc2UgYXMgdGFncywKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDkyNwoKMjAxMC0wNC0wMyAyMzozOToyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGZpeCByYWN5IHNodXRkb3duCgkgIEtlZXAgYSByZWYgb2YgcHVsc2VzaW5rIGZvciBkZWZlcnJlZCBtYWlubG9vcCBpbnZvY2F0aW9uLiBGaXhlcyAjNjE0NzY1CgoyMDEwLTA0LTA1IDE1OjQ4OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9qcGVnZW5jLmM6CgkgIHRlc3RzOiBqcGVnZW5jOiBBZGRzIHNvbWUgZ2V0Y2FwcyB0ZXN0CgkgIEFkZHMgdGVzdHMgZm9yIHRoZSBqcGVnZW5jIGdldGNhcHMgZnVuY3Rpb24sIHRvIGF2b2lkCgkgIGhhdmluZyBpdCByZXR1cm5pbmcgbm9uLXN1YnNldCBjYXBzCgoyMDEwLTA0LTA1IDE0OjUxOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogRml4IGdldGNhcHMgZnVuY3Rpb24KCSAgV2hlbiBjcmVhdGluZyB0aGUgY2FwcyBhbGxvd2VkIHRvIHVwc3RyZWFtIHVzaW5nIGRvd25zdHJlYW0KCSAgcmVzdHJpY3Rpb25zLCB1c2UgZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzIGFzIHRoYXQgaGFzIHRoZQoJICB1c2FibGUgZm9ybWF0cyBhbmQgcHV0cyBpbnRvIGl0IHRoZSB3aWR0aCwgaGVpZ2h0IGFuZCBmcmFtZXJhdGUKCSAgZmllbGRzLiBUaGlzIGF2b2lkcyBnZXR0aW5nIGVycm9ycyBhYm91dCBnZXRjYXBzIHJldHVybmluZwoJICBub24gc3Vic2V0IGNhcHMgb2YgaXRzIHBhZCB0ZW1wbGF0ZS4KCSAgVGhpcyBlcnJvciBzaG93ZWQgdXAgb24gdGhlIG1ldGFkYXRhIHBsdWdpbiB1bml0IHRlc3QgaW4gLWJhZC4KCjIwMTAtMDQtMDUgMTc6MzE6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBGaXggY29udmVyc2lvbiBmcm9tIDMgYnl0ZSBSR0IgdG8gQVJHQgoKMjAxMC0wNC0wNSAxNzowODoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IEFkZCBzdXBwb3J0IGZvciAzIGJ5dGUgUkdCIGZvcm1hdHMgYW5kIHJlZmFjdG9yIFJHQiBjb2RlIGEgYml0CgoyMDEwLTA0LTA1IDE1OjUxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guaDoKCSAgdmlkZW9ib3g6IEFkZCBzdXBwb3J0IGZvciBhbGwgMzIgYml0IFJHQiBmb3JtYXRzCgkgIC4uLmluY2x1ZGluZyBjb252ZXJzaW9uIGJldHdlZW4gdGhlbS4KCjIwMTAtMDQtMDUgMTU6MjY6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogYWRkIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGJ1ZmZlcmluZyBtZXRob2QKCSAgQWRkIGEgcHJvcGVydHkgdG8gY29udHJvbCBob3cgdGhlIGppdHRlcmJ1ZmZlciBwZXJmb3JtcyB0aW1lc3RhbXBpbmcgYW5kCgkgIGJ1ZmZlcmluZy4KCjIwMTAtMDQtMDQgMTk6MDI6NDEgLTAzMDAgIEFuZHLDqSBEaWViIE1hcnRpbnMgPGFuZHJlLmRpZWJAZ21haWwuY29tPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSAgYWxwaGFjb2xvcjogUmVtb3ZpbmcgdW51c2VkIHZhcmlhYmxlCgkgIEZpeGVzIGJ1ZyAjNjE0ODQzLgoKMjAxMC0wNC0wNCAyMDozMTozOCAtMDMwMCAgQW5kcsOpIERpZWIgTWFydGlucyA8YW5kcmUuZGllYkBnbWFpbC5jb20+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkgIGpwZWdlbmM6IHNob3VsZCBub3QgcmV0dXJuIGNhcHMgQU5ZIGJhc2VkIG9uIGRvd25zdHJlYW0KCSAgV2hlbiBkb3duc3RyZWFtIGhhcyBhIHNpbmsgcGFkIHdpdGggQU5ZIGNhcHMsIGpwZWdlbmMgc2hvdWxkCgkgIHRyZWF0IGl0IHRoZSBzYW1lIGFzIE5VTEwgYW5kIHJldHVybiBpdHMgdGVtcGxhdGUgY2Fwcy4KCSAgRml4ZXMgIzYxNDg0MgoKMjAxMC0wNC0wNCAyMjoyODozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL29zcy9nc3Rvc3NoZWxwZXIuYzoKCSAgb3NzOiBhZGQgZml4bWUgY29tbWVudAoKMjAxMC0wNC0wNCAyMjoyNjo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ2NvbmYvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiB1c2UgJChidWlsZGRpcikgZm9yIGluc3RhbGxpbmcgZ2VuZXJhdGVkIGZpbGVzCgoyMDEwLTA0LTA0IDIyOjA3OjMzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiY29uZmlndXJlOiBmaXggb3V0IG9mIHNvdXJjZSBkaXIgYnVpbGRzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGNhMGJkM2E4Y2VhMzFmOWVhMGRmNzk4YTgzZDMwMDdlNjk2OTU4YmEuCgoyMDEwLTA0LTA0IDIxOjM2OjM1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogZml4IG91dCBvZiBzb3VyY2UgZGlyIGJ1aWxkcwoJICBSZW1vdmUgbm9uLWV4aXN0aW5nIGdzdC1saWJzIGZyb20gaW5jbHVkZSBhbmQgbGlicmFyeS1wYXRocycuCgkgIEZpeGVzICM2MTQzNTQgZXZlbiBtb3JlLgoKMjAxMC0wNC0wMSAxMDoxOTowMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IFJlYWQgcmVwbGF5Z2FpbiBwZWFrL2dhaW4gdGFncwoJICBNYWtlIHF0ZGVtdXggcmVhZCB0YWdzIHJlcGxheWdhaW4gdGFncyB0aGF0IGFyZSB3aXRoaW4gJy0tLS0nIGF0b21zLgoJICBGaXhlcyAjNjE0NDcxCgoyMDEwLTA0LTAxIDE4OjQ4OjQzICswNTMwICBBcnVuIFJhZ2hhdmFuIDxmb3JkX3ByZWZlY3RAZ2VudG9vLm9yZz4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIG1hdHJvc2thOiBFeHBvcnQgaC4yNjQgcHJvZmlsZSBhbmQgbGV2ZWwgaW4gY2FwcwoJICBUaGlzIHJlcGxpY2F0ZXMgdGhlIGNvZGUgaW4gcXRkZW11eCB0byBleHBvcnQgdGhlIGguMjY0IHByb2ZpbGUgYW5kCgkgIGxldmVsIGluIHRoZSBzdHJlYW0gY2Fwcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDY1MQoKMjAxMC0wNC0wMiAxODo1MDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEZpeCBvZmYtYnktb25lIGludHJvZHVjZWQgaW4gbGFzdCBjb21taXQKCjIwMTAtMDQtMDEgMTg6Mzg6MzggKzA1MzAgIEFydW4gUmFnaGF2YW4gPGZvcmRfcHJlZmVjdEBnZW50b28ub3JnPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBNaW5vciByZWZhY3RvciBvZiB0aGUgY29kZQoJICBUaGlzIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gY2x1bXAgdG9nZXRoZXIgY29tbW9uIGNvZGUgd2hlbiBjb3B5aW5nIHRvCgkgIG1hc3Ryb3NrYWRlbXV4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0NjUxCgoyMDEwLTA0LTAxIDE4OjE3OjA5ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxmb3JkX3ByZWZlY3RAZ2VudG9vLm9yZz4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRXhwb3J0IGguMjY0IGxldmVsIGluIGNhcHMKCSAgVGhpcyBleHBvcnRzIHRoZSBoLjI2NCBsZXZlbCBpbiB0aGUgc3RyZWFtIGNhcHMgKGFzIGEgc3RyaW5nKSB3aGljaCBjYW4KCSAgYmUgdXNlZCB0byBtYXRjaCBhIGRlY29kZXIsIG9yIGFzIG1ldGFkYXRhLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0NjUxCgoyMDEwLTA0LTAxIDE2OjU4OjMyICswNTMwICBBcnVuIFJhZ2hhdmFuIDxmb3JkX3ByZWZlY3RAZ2VudG9vLm9yZz4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRXhwb3J0IGguMjY0IHByb2ZpbGUgaW4gY2FwcwoJICBUaGlzIGFkZHMgdGhlIGguMjY0IHByb2ZpbGUgZm9yIGEgZ2l2ZW4gc3RyZWFtIGludG8gY2Fwcy4gVGhpcyBjYW4KCSAgKGV2ZW50dWFsbHkpIGJlIHVzZWQgdG8gc2VsZWN0IGFuIGFwcHJvcHJpYXRlIGRlY29kZXIgYW5kIGFzIG1ldGFkYXRhCgkgIGZvciBjZXJ0YWluIGFwcGxpY2F0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDY1MQoKMjAxMC0wMy0zMSAxNDo0MzoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiByZW1vdmUgb2Jzb2xldGUgcmV2ZXJzZSBwbGF5YmFjayBjb2RlIHBhdGgKCjIwMTAtMDMtMzEgMTQ6NDA6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSAgZmx2ZGVtdXg6IHN1cHBvcnQgKHB1bGwgbW9kZSkgbmVnYXRpdmUgc2VlayByYXRlCgoyMDEwLTAzLTI5IDE1OjI3OjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgZmx2ZGVtdXg6IGFsc28gY2hlY2sgZm9yIHNlZ21lbnQgc3RvcCBmb3Igbm9uLXNlZ21lbnQtc2VlawoKMjAxMC0wMy0zMCAxNjo1MDoxMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogcHVzaCBjb3JyZWN0bHkgc2l6ZWQgZmxhYyBoZWFkZXIgYnVmZmVycwoJICBGaXhlcyAjNjE0MzUzLgoKMjAxMC0wMy0zMCAwNzozNDowNyAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2hlbiBzcmNkaXIgIT0gYnVpbGRkaXIKCSAgRml4ZXMgJy4uLy4uL2dzdC1saWJzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyB3YXJuaW5nL2Vycm9yIHdoZW4KCSAgdGhlIGJ1aWxkIGRpcmVjdG9yeSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgkgIEZpeGVzICM2MTQzNTQuCgoyMDEwLTAzLTMwIDAxOjUwOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOgoJICBpZDNkZW11eDogZml4IHBhcnNpbmcgb2YgdW5zeW5jZWQgZnJhbWVzIHdpdGggZGF0YSBsZW5ndGggaW5kaWNhdG9yCgkgIEZpeGVzIGJ1ZyAjNjE0MTU4LgoKMjAxMC0wMy0yOSAxMTowMDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGV4dC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBzeXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBidWlsZDogYnVpbGQgcGx1Z2lucyBhbmQgZXhhbXBsZXMgaW4gcGFyYWxsZWwgd2hlcmUgcG9zc2libGUKCjIwMTAtMDMtMTggMTg6NDk6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBkaXJlY3Rzb3VuZHNpbms6IGZpeCByZWR1bmRhbnQgZnVuY3Rpb24gcmVkZWNsYXJhdGlvbiBjb21waWxlciB3YXJuaW5ncwoJICBSZS1hcHBseSB0aGlzIGFnYWluIGFzIHdlbGwsIGFzIGl0IHdhcyB1bmRvbmUgYnkgdGhlIHByZXZpb3VzIGNvbW1pdC4uCgoyMDEwLTAzLTE4IDE0OjMxOjM1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoJICBBcHBseSB0aGlzIGFnYWluLCBhcyBpdCB3YXMgb3ZlcndyaXR0ZW4gYnkgdGhlIHByZXZpb3VzIGNvbW1pdC4gTWVyZ2luZwoJICBpcyBoYXJkLCBhcHBhcmVudGx5LgoKMjAxMC0wMy0yNiAyMzoyMDoxMCArMDEwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQGZsdWVuZG8uY29tPgoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmg6CgkgIGRpcmVjdHNvdW5kc2luazogSW1wbGVtZW50IFNQRElGIHN1cHBvcnQgZm9yIEFDMy4KCSAgRGV0ZWN0IGlmIHRoZSBzb3VuZCBjYXJkIHN1cHBvcnRzIFNQRElGIHBhc3N0aHJ1IG9mIEFDMyBhbmQgYWRkCgkgIG5lY2Vzc2FyeSBjb2RlIHRvIHN1cHBvcnQgdGhhdCBsaWtlIGFsc2FzaW5rLgoKMjAxMC0wMy0yNiAxNzowNjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IGFkZCBjcnVmdCBhbGVydCBmb3IgY29tbW9uL3NoYXZlKgoKMjAxMC0wMy0yNiAxNjo1MDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9NYWtlZmlsZS5hbToKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2xhbmcuYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9sYW5nLmg6CgkgIHF0ZGVtdXg6IGV4dHJhY3Qgc3RyZWFtIGxhbmd1YWdlIGluIG1vcmUgY2FzZXMKCSAgVGhlIDE2LWJpdCBsYW5ndWFnZSBjb2RlIGNhbiBiZSBlaXRoZXIgYSBwYWNrZWQgSVNPLTYzOS0yVCBjb2RlCgkgIG9yIGEgJ01hY2ludG9zaCBsYW5ndWFnZSBjb2RlJy4gSGFuZGxlIHRoZSBsYXR0ZXIgdHlwZSBvZiBsYW5ndWFnZQoJICBjb2RlcyBhcyB3ZWxsLCBhbmQgbWFwIHRvIHRoZSBtYXRjaGluZyBJU08gY29kZS4gTGFzdGx5LCBmaXgKCSAgbGFuZ3VhZ2UgY29kZSBwb3N0aW5nIGZvciBsYW5ndWFnZSAjMCwgd2hpY2ggaXMgdmFsaWQgYW5kIHN0YW5kcwoJICBmb3IgJ0VuZ2xpc2gnLgoJICBGaXhlcyAjNjE0MDAxLgoKMjAxMC0wMy0yNiAxNDo1NTo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IEltcHJvdmUgZGVidWdnaW5nIGFuZCBhZGQgc29tZSBGSVhNRXMKCjIwMTAtMDMtMjYgMTQ6NDI6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBTYW1wbGUgcmF0ZSBtYXJrZXJzIDB4MDEsIDB4MDIgYW5kIDB4MDMgYXJlIHZhbGlkCgkgIFRoZXkgYXJlIGZvciA4OC4ya0h6LCAxNzYuNGtIeiBhbmQgMTkya0h6LgoKMjAxMC0wMy0yNiAxNDoxNjozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IFRha2Ugc2FtcGxlcmF0ZSwgd2lkdGggYW5kIG51bWJlciBvZiBjaGFubmVscyBmcm9tIHRoZSBTVFJFQU1JTkZPCgkgIC4uLmFuZCB1cGRhdGUgaXQgZnJvbSB0aGUgZnJhbWUgaGVhZGVycyBpZiBpdCBzaG91bGQgY2hhbmdlIGZvciBzb21lIHJlYXNvbi4KCSAgVGhpcyBhbGxvd3MgcGxheWJhY2sgb2YgZmlsZXMgd2l0aCBvZGQgc2FtcGxlIHJhdGVzLgoKMjAxMC0wMy0yNiAxMzo0NTo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IEZpeCBBWVVWLT5JNDIwIGZyYW1lIGNvcHlpbmcKCjIwMTAtMDMtMjYgMTM6MzQ6MTcgKzAxMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBTZXQgY29ycmVjdCBnZXRjYXBzL3NldGNhcHMgZnVuY3Rpb25zIG9uIHNyY3BhZHMgYW5kIHNpbXBsaWZ5IHRoZW0KCSAgVGhpcyBmaXhlcyBkb3duc3RyZWFtIG5lZ290aWF0aW9uLCB1cHN0cmVhbSBuZWdvdGlhdGlvbiBpc24ndCByZWFsbHkKCSAgc3VwcG9ydGVkIGJ5IGpwZWdlbmMgeWV0LgoJICBGaXhlcyBidWcgIzYxMzc4OS4KCjIwMTAtMDMtMjYgMTA6MzE6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5oOgoJICB2aWRlb2JveDogQWx3YXlzIGZpbGwgdGhlIGNvbXBsZXRlIGZyYW1lIGlmIGJvcmRlcnMgc2hvdWxkIGJlIGFkZGVkCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGRvbid0IGdldCBhbnkgZ2FwcyBiZXR3ZWVuIHJlY3RhbmdsZXMgYmVjYXVzZQoJICBvZiBjaHJvbWEgc3Vic2FtcGxpbmcgZm9yIGV4YW1wbGUuCgoyMDEwLTAzLTE4IDIyOjEyOjQwICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAaW50ZWwuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogRG9uJ3QgY2FsbCBjb25maWd1cmUgd2l0aCAtLWVuYWJsZS1wbHVnaW4tZG9jcwoJICBjb25maWd1cmUgZ2l2ZXMgYSBuaWNlIHdhcm5pbmc6CgkgIGNvbmZpZ3VyZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6IC0tZW5hYmxlLXBsdWdpbi1kb2NzCgkgIGFuZCBpbmRlZWQsIEkgY291bGQgbm90IGZpbmQgYW55dGhpbmcgaW4gdGhlIGNvbmZpZ3VyZS5hYyBvciB0aGUgbTQKCSAgbWFjcm9zIHRoYXQgd291bGQgYWxsb3cgZW5hYmxpbmcgdGhhdCBvcHRpb24uIFJlbW92ZSBpdCB0aGVuLgoKMjAxMC0wMy0yMiAxNjo1ODoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94Lmg6CgkgIHZpZGVvYm94OiBSZWZhY3RvciBib3hpbmcgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24KCjIwMTAtMDMtMjIgMTM6MTM6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBTaW1wbGlmeSBjYXBzIHRyYW5zZm9ybWF0aW9uCgoyMDEwLTAzLTIxIDIwOjE0OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogQWRkIGNvbnN0IHF1YWxpZmllciB0byB0aGUgc291cmNlIGZyYW1lIGRhdGEKCjIwMTAtMDMtMjMgMTc6NDc6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IG9ubHkgc2VlayB3aGVuIGluIHByb3BlciBzdGF0ZQoJICAuLi4gYW5kIGRhdGEgc3RydWN0dXJlcyBjYW4gYmUgdGhyZWFkLXNhZmVseSBhY2Nlc3NlZC4KCSAgU2VlICM2MDE2MTcuCgoyMDEwLTAzLTIzIDE3OjM0OjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBtYXRyb3NrYWRlbXV4OiBzdXBwb3J0IChwdWxsIG1vZGUpIG5lZ2F0aXZlIHNlZWsgcmF0ZQoKMjAxMC0wMy0xOCAxNToyOTowMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IHRyYWNrIGNsaXAgZHVyYXRpb24gaW4gc2VnbWVudAoKMjAxMC0wMy0xOCAxMzozOTowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogcHJlZmVyIGluZGV4IG9mIHZpZGVvIHRyYWNrIHRvIHBlcmZvcm0gc2Vla2luZwoKMjAxMC0wMy0yNCAxNjoxOTo1MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBmaXggdHlwbyBpbiBoZWFkZXIgdmFsaWRhdGlvbiBjaGVjawoKMjAxMC0wMy0yNCAxODo1MzoyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNTVjZDUxNCB0byBjMWQwN2RkCgoyMDEwLTAzLTIzIDE5OjQ2OjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5oOgoJICBpY3lkZW11eDogSGFuZGxlIHVwc3RyZWFtIENvbnRlbnQtVHlwZS4KCSAgQWxsb3dzIHVzIHRvIGhhbmRsZSBTaG91dENhc3QgVFYgKE5TVikgc3RyZWFtcy4KCSAgSWYgdGhlIHVwc3RyZWFtIGNhcHMgaGF2ZSB0aGUgJ2NvbnRlbnQtdHlwZScgZmllbGQgc2V0IHRvIHZpZGVvL25zdiwgdGhlbgoJICB3ZSBzaG9ydGN1dCB0aGUgdHlwZWZpbmRpbmcgYW5kIHNldCB2aWRlby94LW5zdiBkaXJlY3RseS4KCjIwMTAtMDMtMjMgMTk6MzA6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogU2V0IHRoZSBDb250ZW50LVR5cGUgSFRUUCBoZWFkZXIgb24gdGhlIGNhcHMuCgkgIEZpcnN0IHN0ZXAgdG8gZml4aW5nIFNob3V0Q2FzdCAoTlNWKSBzdHJlYW1pbmcuCgoyMDEwLTAzLTIzIDAyOjM4OjQzIC0wNDAwICBUcmlzdGFuIE1hdHRoZXdzIDx0cmlzdGFuQHNhdC5xYy5jYT4KCgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb2VsZW1lbnQuYzoKCSogc3lzL29zeHZpZGVvL01ha2VmaWxlLmFtOgoJICBvc3g6IGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBBZGRlZCB2b2lkIHBhcmFtZXRlciB0byBhdm9pZCBvbGQtc3R5bGUgZGVmaW5pdGlvbiB3YXJuaW5nLgoJICBBZGRlZCAtV25vLWFnZ3JlZ2F0ZS1yZXR1cm4gZmxhZyB0byBhdm9pZCBlcnJvbmVvdXMgYWdncmVnYXRlIHJldHVybiB3YXJuaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzNjYzCgoyMDEwLTAzLTIzIDAwOjE1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOgoJICB0ZXN0czogdXNlIGxvb3AgdGVzdCBmb3IgbG9uZy1ydW5uaW5nIHZpZGVvY3JvcCBjaGVjawoJICBUaGlzIHNob3VsZCBhdm9pZCB0aW1lb3V0cyBvbiBzbG93IG1hY2hpbmVzLgoJICBGaXhlcyAjNTk3NzM5LgoKMjAxMC0wMy0yMiAxNzoyNjozNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2ZsYWMvZ3N0ZmxhYy5jOgoJKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2suYzoKCSogZ3N0LWxpYnMvZ3N0L2dldHRleHQuaDoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmg6CgkgIGkxOG46IGJ1aWxkIGZpeGVzOiAjaWYgLT4gI2lmZGVmIGZvciBFTkFCTEVfTkxTCgoyMDEwLTAzLTIyIDE3OjI1OjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QtbGlicy9nc3QvZ3N0LWkxOG4tcGx1Z2luLmg6CgkgIGkxOG46IGZpeCB0aGUgYnVpbGQKCSAgRG9uJ3QgaW5sY3VkZSBsb2NhbGUuaCB3aGljaCB3ZSBpbmNsdWRlIGluIGdldHRleHQuaCBpZiBuZWVkZWQuIEd1YXJkIHRoZQoJICBpbmxjdWRlIGxpa2Ugd2UgZG8gaW4gdGhlIHNpbWlsbGFyIGhlYWRlcnMgaW4gY29yZS4KCjIwMTAtMDMtMjEgMTc6NDY6MDYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiBpcyBub3QgdmFsaWQgZm9yIEMrKwoKMjAxMC0wMy0yMSAxNzozNjoyOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGUuYzoKCSAgbXVsdGlmaWxlOiBJbmNsdWRlIGhlYWRlcnMgaW5zdGVhZCBmbyBkZWZpbmluZyBmdW5jdGlvbnMKCjIwMTAtMDMtMjEgMTc6MjQ6MTQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIGEgbGFyZ2Ugc2V0IG9mIHdhcm5pbmcgZmxhZ3MuCgkgIE5vbmUgb2YgdGhlbSB0cmlnZ2VyIHdhcm5pbmdzIGFueW1vcmUsIHNvIG5vdGhpbmcgbmVlZGVkIHRvIGJlIGZpeGVkLgoKMjAxMC0wMy0yMSAxNzoyMzo0MyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dvb20vY29uZmlnX3BhcmFtLmM6CgkqIGdzdC9nb29tL2NvbnZvbHZlX2Z4LmM6CgkqIGdzdC9nb29tL2ZpbHRlcnMuYzoKCSogZ3N0L2dvb20vZmx5aW5nX3N0YXJzX2Z4LmM6CgkqIGdzdC9nb29tL2dvb21fY29uZmlnX3BhcmFtLmg6CgkqIGdzdC9nb29tL2dvb21fY29yZS5jOgoJKiBnc3QvZ29vbS9nb29tX2ZpbHRlcnMuaDoKCSogZ3N0L2dvb20vZ29vbV9meC5oOgoJKiBnc3QvZ29vbS9pZnMuYzoKCSogZ3N0L2dvb20vaWZzLmg6CgkqIGdzdC9nb29tL3BsdWdpbl9pbmZvLmM6CgkqIGdzdC9nb29tL3RlbnRhY2xlM2QuYzoKCSogZ3N0L2dvb20vdGVudGFjbGUzZC5oOgoJICBNYWtlIGdvb20gbm90IHVzZSBhZ2dyZWdhdGUgcmV0dXJucwoKMjAxMC0wMy0yMSAxNToxNzo0NiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sdXRpbHMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGVuYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGFjZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2xpbWl0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdWRwc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZGVjLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2ljbGVzL3Y0bDJzcmMtdGVzdC5jOgoJICBBZGQgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiBmbGFnCgkgIEFuZCBmaXggdGhlIHdhcm5pbmdzCgoyMDEwLTAzLTIwIDAwOjU0OjE0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9oYWwvaGFsLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tjb21tb24uYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0cHVzaGZpbGVzcmMuYzoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJKiBnc3QvZ29vbS9jb25maWdfcGFyYW0uYzoKCSogZ3N0L2dvb20vZ29vbV9jb25maWdfcGFyYW0uaDoKCSogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBzeXMvb3NzL2dzdG9zc21peGVydHJhY2suYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbl9idWZmZXJfbGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBBZGQgLVd3cml0ZS1zdHJpbmdzIHRvIHRoZSBjb25maWd1cmUgZmxhZ3MKCSAgLi4uIGFuZCBmaXggYWxsIHdhcm5pbmdzCgoyMDEwLTAzLTIxIDExOjE0OjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkgIHNoYXBld2lwZTogQWRkIHN1cHBvcnQgZm9yIHRoZSByZW1haW5pbmcgQVJHQiBmb3JtYXRzCgkgIEFuZCBoYW5kbGUgQVlVViBsaWtlIEFSR0IsIHdlIG5lZWQgbm8gWVVWIHNwZWNpZmljIGhhbmRsaW5nLgoKMjAxMC0wMy0yMCAyMTozMDo1OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IEFkZCBzdXBwb3J0IGZvciBSR0IgYW5kIHhSR0IgaW5wdXQKCjIwMTAtMDMtMjAgMjE6MTM6MjMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBBZGQgc3VwcG9ydCBmb3IgQVJHQiBpbnB1dAoKMjAxMC0wMy0yMCAyMDo0NjoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IEFkZCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIEFSR0Igb3V0cHV0CgoyMDEwLTAzLTIwIDEwOjQ3OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmg6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX21teC5oOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IEFkZCBzdXBwb3J0IGZvciBBQkdSIGFuZCBSR0JBCgkgIE5vdyBhbGwgNCBBUkdCIHZhcmlhbnRzIGFyZSBzdXBwb3J0ZWQgYnkgdmlkZW9taXhlci4KCjIwMTAtMDMtMjAgMTA6MjQ6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBNb3ZlIGNocm9tYSBrZXlpbmcgcGFyYW1ldGVycyBpbnRvIHN0YWNrIHZhcmlhYmxlcyB0byBwcmV2ZW50IG11bHRpcGxlIHBvaW50ZXIgZGVyZWZlcmVuY2VzIHBlciBwaXhlbAoKMjAxMC0wMy0yMCAxMDoyMDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IE1vdmUgY29sb3IgY29udmVyc2lvbiBtYXRyaXhlcyBpbnRvIHN0YWNrIHZhcmlhYmxlcyB0byBzcGVlZCB1cCBwcm9jZXNzaW5nCgoyMDEwLTAzLTIwIDEwOjE4OjA0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogVXNlIGNvcnJlY3QgbWF0cml4ZXMgdG8gY29udmVydCBjaHJvbWEga2V5aW5nIGNvbG9yIHRvIFlVVgoKMjAxMC0wMy0xOSAxODo1MTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IEFkZCBzdXBwb3J0IGZvciBkaWZmZXJlbnQgY29sb3IgbWF0cml4ZXMKCjIwMTAtMDMtMTkgMTg6MjE6MTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBSZW5hbWUgYW5kIG1vdmUgZnVuY3Rpb25zIGFzIGZ1cnRoZXIgcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgbW9yZSBjb2xvciBmb3JtYXRzCgoyMDEwLTAzLTE5IDE4OjE4OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuaDoKCSAgYWxwaGE6IFJlbW92ZSBzb21lIHVubmVlZGVkIGNhbGN1bGF0aW9ucyBhbmQgaW5zdGFuY2Ugc3RydWN0IGZpZWxkcwoJICBBbmQgZG9jdW1lbnQgdGhlIGluc3RhbmNlIHN0cnVjdCBmaWVsZHMgYSBiaXQgYmV0dGVyCgoyMDEwLTAzLTE5IDE4OjExOjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuaDoKCSAgYWxwaGE6IFNvbWUgcHJlcGFyYXRpb25zIGZvciBzdXBwb3J0aW5nIG1vcmUgY29sb3IgZm9ybWF0cwoKMjAxMC0wMy0xOSAxNzowOTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBoMjY0cGF5OiBmaXggY29uZmlnLWludGVydmFsIHByb3BlcnR5CgkgIFVzZSB0aGUgc2FtZSB1bml0cyBmb3IgY29tcGFyaW5nIHRoZSBlbGFwc2VkIHRpbWUgYWdhaW5zdCB0aGUgaW50ZXJ2YWwuCgkgIEZpeGVzICM2MTMwMTMKCjIwMTAtMDMtMTkgMTY6NDQ6MDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuaDoKCSAgYWxwaGFjb2xvcjogSW1wbGVtZW50IGNvbG9yLW1hdHJpeCBzdXBwb3J0IGFuZCB1c2UgaW50ZWdlciBhcml0aG1ldGljIG9ubHkKCSAgQWxwaGFjb2xvciBub3cgdXNlcyB0aGUgY29ycmVjdCBtYXRyaXhlcyBmb3IgU0RUViBhbmQgSERUViBhbmQgY2FuCgkgIGNvbnZlcnQgYmV0d2VlbiB0aGVtLgoKMjAxMC0wMy0xOSAxNTowMzo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwOiB1c2UgR1R5cGUgZnJvbSAtYmFzZSBhbmQgYnVtcCByZXF1aXJlZCB2ZXJzaW9uCgkgIFVzZSB0aGUgdHJhbnNwb3J0IGZsYWdzIEdUeXBlIGZyb20gLWJhc2UgYW5kIGJ1bXAgdGhlIHJlcXVpcmVkIHZlcnNpb24gb2YgLWJhc2UKCSAgYmVjYXVzZSBvZiB0aGlzLgoKMjAxMC0wMy0xOSAwMDowNToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXBldGFnL01ha2VmaWxlLmFtOgoJICBhcGV0YWc6IG1pbm9yIE1ha2VmaWxlLmFtIHN1cmdlcnkKCSAgLUkkKHRvcF9zcmNkaXIpL2dzdC1saWJzLyBpcyBhbHJlYWR5IGluICQoR1NUX0NGTEFHUykKCjIwMTAtMDMtMDQgMjI6MTI6MzUgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBleHQvcmF3MTM5NC9nc3QxMzk0Y2xvY2suYzoKCSAgZHYxMzk0c3JjOiBGaXggaW50ZXJuYWwgY2xvY2sKCSAgRml4ZXMgIzU5MzkxMC4KCjIwMTAtMDMtMTggMjE6MTQ6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L01ha2VmaWxlLmFtOgoJKiBleHQvZXNkL01ha2VmaWxlLmFtOgoJKiBleHQvbGliY2FjYS9NYWtlZmlsZS5hbToKCSogZXh0L3B1bHNlL01ha2VmaWxlLmFtOgoJKiBleHQvc2hvdXQyL01ha2VmaWxlLmFtOgoJKiBleHQvc3BlZXgvTWFrZWZpbGUuYW06CgkqIGV4dC93YXZwYWNrL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVwYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2F2aS9NYWtlZmlsZS5hbToKCSogZ3N0L2ZseC9NYWtlZmlsZS5hbToKCSogZ3N0L2ljeWRlbXV4L01ha2VmaWxlLmFtOgoJKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJKiBnc3QvcXRkZW11eC9NYWtlZmlsZS5hbToKCSogZ3N0L3JlcGxheWdhaW4vTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC91ZHAvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJKiBnc3Qvd2F2cGFyc2UvTWFrZWZpbGUuYW06CgkqIHN5cy9kaXJlY3Rzb3VuZC9NYWtlZmlsZS5hbToKCSogc3lzL29zcy9NYWtlZmlsZS5hbToKCSogc3lzL3dhdmVmb3JtL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy92NGwyL01ha2VmaWxlLmFtOgoJICBidWlsZDogTWFrZWZpbGUuYW0gY2xlYW51cHMKCSAgTW9zdGx5IGFkZCAkKEdTVF9CQVNFX0NGTEFHUykgd2hlcmUgaXQgd2FzIG1pc3NpbmcsIGJ1dCBhbHNvIGZpeCB1cAoJICBvcmRlciBvZiBmbGFncyBhbmQgbGlicyBpZiBuZWVkZWQgKHNlZSBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2lucykuCgoyMDEwLTAzLTE4IDE4OjQ5OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgZGlyZWN0c291bmRzaW5rOiBmaXggcmVkdW5kYW50IGZ1bmN0aW9uIHJlZGVjbGFyYXRpb24gY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDMtMTggMTk6MDA6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5oOgoJICBhbHBoYTogUmVtb3ZlIHJlbWFpbmluZyBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHdoZW4gcHJvY2Vzc2luZyBhIHBpeGVsCgoyMDEwLTAzLTE4IDE4OjU1OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogUmVmYWN0b3IgY2hyb21hIGtleWluZyBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uCgkgIFRoaXMgcmVkdWNlcyBjb2RlIGR1cGxpY2F0aW9uIG9uY2Ugd2UgYWRkIHN1cHBvcnQgZm9yIG1vcmUgY29sb3IgZm9ybWF0cy4KCjIwMTAtMDMtMTggMTQ6MzE6MzUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmM6CgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9lc2QvZXNkbW9uLmM6CgkqIGV4dC9lc2QvZXNkc2luay5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuYzoKCSogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5jOgoJKiBleHQvaGFsL2dzdGhhbGF1ZGlvc2luay5jOgoJKiBleHQvaGFsL2dzdGhhbGF1ZGlvc3JjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvanBlZy9nc3RzbW9rZWRlYy5jOgoJKiBleHQvanBlZy9nc3RzbW9rZWVuYy5jOgoJKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOgoJKiBleHQvbGlibW5nL2dzdG1uZy5oOgoJKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5jOgoJKiBleHQvbGlibW5nL2dzdG1uZ2VuYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZy5oOgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJKiBleHQvbWlrbW9kL2dzdG1pa21vZC5jOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3JhdzEzOTQvZ3N0aGR2MTM5NHNyYy5jOgoJKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2thcmFva2UuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc3JjLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzoKCSogZ3N0L2RlYnVndXRpbHMvYnJlYWtteWRhdGEuYzoKCSogZ3N0L2RlYnVndXRpbHMvZWZlbmNlLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdmlnYXRpb250ZXN0LmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdnNlZWsuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0cHVzaGZpbGVzcmMuYzoKCSogZ3N0L2RlYnVndXRpbHMvbmVnb3RpYXRpb24uYzoKCSogZ3N0L2RlYnVndXRpbHMvcHJvZ3Jlc3NyZXBvcnQuYzoKCSogZ3N0L2RlYnVndXRpbHMvdGVzdHBsdWdpbi5jOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOgoJKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzoKCSogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSogZ3N0L3F0ZGVtdXgvZ3N0cnRweHF0ZGVwYXkuYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnbGltaXRlci5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwajJrZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAxc2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVucGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwZ29vZ2xlLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW90ZW1wbGF0ZS5jOgoJKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOgoJKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzoKCSogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlci5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuYzoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSAgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgPT4gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlCgoyMDEwLTAzLTE4IDE0OjAyOjMwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3Qvb2xkY29yZS9NYWtlZmlsZS5hbToKCSogZ3N0L29sZGNvcmUvZ3N0YWdncmVnYXRvci5jOgoJKiBnc3Qvb2xkY29yZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIGdzdC9vbGRjb3JlL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9vbGRjb3JlL2dzdGZkc2luay5jOgoJKiBnc3Qvb2xkY29yZS9nc3RmZHNpbmsuaDoKCSogZ3N0L29sZGNvcmUvZ3N0bWQ1c2luay5jOgoJKiBnc3Qvb2xkY29yZS9nc3RtZDVzaW5rLmg6CgkqIGdzdC9vbGRjb3JlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3Qvb2xkY29yZS9nc3RtdWx0aWZpbGVzcmMuaDoKCSogZ3N0L29sZGNvcmUvZ3N0cGlwZWZpbHRlci5jOgoJKiBnc3Qvb2xkY29yZS9nc3RwaXBlZmlsdGVyLmg6CgkqIGdzdC9vbGRjb3JlL2dzdHNoYXBlci5jOgoJKiBnc3Qvb2xkY29yZS9nc3RzaGFwZXIuaDoKCSogZ3N0L29sZGNvcmUvZ3N0c3RhdGlzdGljcy5jOgoJKiBnc3Qvb2xkY29yZS9nc3RzdGF0aXN0aWNzLmg6CgkgIFJlbW92ZSBvbGRjb3JlIGRpcmVjdG9yeQoJICBUaGUgZWxlbWVudHMgaGF2ZSBiZWVuIHVudXNlZCBmb3IgYWdlcyBhbmQgYWxsIGltcG9ydGFudCBvbmVzIGhhdmUgYmVlbgoJICByZXBsYWNlZCBvciBjb3BpZWQgZWxzZXdoZXJlLgoKMjAxMC0wMy0xOCAxMzo0NTowOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZWNvZGVyLmM6CgkgIGF2aTogUmVtb3ZlIG9sZCBmaWxlCgkgIFNlZW1zIHRvIGJlIGxlZnRvdmVyIGZyb20gdGhlIDAuNCBkYXlzIG9yIHNvLgoKMjAxMC0wMy0xOCAxMjo0NDo1MyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBleHQvcHVsc2UvcHVsc2V1dGlsLmM6CgkgIHB1bHNlOiB1c2UgI2lmZGVmIHJhdGhlciB0aGFuICNpZiBjb25kaXRpb25hbHMKCjIwMTAtMDMtMTggMTI6MjA6MTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSAgcnRwaDI2NGRlcGF5OiBkbyBub3QgY2FsbCBfcHVzaF90cyB3aXRoIHVubmVlZGVkIChhbmQgd3JvbmcpIHRpbWUgcGFyYW1ldGVyCgkgIEZpeGVzICM2MTMyMDYuCgoyMDEwLTAzLTE4IDExOjMzOjU5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCB0eXBvIGluIGhlYWRlciB2YWxpZGF0aW9uIGNoZWNrCgoyMDEwLTAzLTE4IDAxOjUxOjE5ICswMTAwICBKYW4gVXJiYcWEc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBwdXQgbW9yZSBpbmZvcm1hdGlvbiBpbiB0aGUgbWV0YWRhdGEKCSAgQWRkaXRpb25hbCB0YWdzIGFyZTogYXVkaW9jb2RlY2lkLCB2aWRlb2NvZGVjaWQgZnJhbWVyYXRlIGFuZCAoaW4gdGhlCgkgIG5vbi1saXZlIGNhc2UpIGZpbGVzaXplLgoJICBXaGlsZSBhdCBpdCwgZml4IGluZGV4IHJld3JpdGluZyB0byB1cGRhdGUgZHVyYXRpb24gYW5kIGZpbGVzaXplCgkgIHZhbHVlcyBldmVuIGlmIHRoZSBpbmRleCBpcyBlbXB0eS4KCSAgRml4ZXMgIzYxMzA5NC4KCjIwMTAtMDMtMTcgMjE6MzM6MjggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuaDoKCSogZ3N0L2dvb20vZ29vbV9jb25maWcuaDoKCSogZ3N0L2dvb20vbWF0aHRvb2xzLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIEFkZCAtV3VuZGVmIHRvIGNvbmZpZ3VyZSBmbGFncwoJICBhbmQgZml4IHRoZSByZXN1bHRpbmcgd2FybmluZ3MKCjIwMTAtMDMtMTcgMjA6MDI6MTYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgLVdtaXNzaW5nLXByb3RvdHlwZXMgaXMgbm90IHZhbGlkIGZvciBDKysKCjIwMTAtMDMtMTcgMTk6MzU6MTAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSogZXh0L2pwZWcvZ3N0anBlZy5oOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzoKCSogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIEFkZCAtV3JlZHVuZGFudC1kZWNscyB3YXJuaW5nIGZsYWcKCSAgQWxzbyBmaXggY29tcGlsZSBpc3N1ZXMKCjIwMTAtMDMtMTcgMTg6NDk6MTEgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmg6CgkgIEZpeCB3YXJuaW5ncyBpbiBleHBlcmltZW50YWwgcGx1Z2lucywgdG9vCgoyMDEwLTAzLTE3IDE4OjIzOjAwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9hbm5vZGV4L2dzdGFubm9kZXguYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5oOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmg6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxwYXJzZXIuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbHV0aWxzLmM6CgkqIGV4dC9kdi9nc3RkdmRlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5oOgoJKiBleHQvanBlZy9NYWtlZmlsZS5hbToKCSogZXh0L2pwZWcvZ3N0anBlZy5jOgoJKiBleHQvanBlZy9nc3RqcGVnLmg6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrc3RyZWFtcmVhZGVyLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tzdHJlYW1yZWFkZXIuaDoKCSogZ3N0L2RlYnVndXRpbHMvYnJlYWtteWRhdGEuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2c2Vlay5jOgoJKiBnc3QvZGVidWd1dGlscy9ybmRidWZmZXJzaXplLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RwbHVnaW4uYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHloLmFzbToKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHloLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvbW14Lmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsLmluYzoKCSogZ3N0L2dvb20vZ29vbV9meC5oOgoJKiBnc3QvZ29vbTJrMS9maWx0ZXJzLmM6CgkqIGdzdC9nb29tMmsxL2ZpbHRlcnMuaDoKCSogZ3N0L2xhdy9tdWxhdy1jb252ZXJzaW9uLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5oOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5oOgoJKiBnc3QvcXRkZW11eC9nc3RydHB4cXRkZXBheS5jOgoJKiBnc3QvcnRwL2ZudjFoYXNoLmM6CgkqIGdzdC9ydHAvZm52MWhhc2guaDoKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuaDoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBkdmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzIzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzIzcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBwY211cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5Lmg6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9zbXB0ZS9nc3RtYXNrLmM6CgkqIGdzdC9zbXB0ZS9nc3RtYXNrLmg6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5oOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5oOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuaDoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRvcmllbnQuaDoKCSogc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FzcGVjdHJhdGlvY3JvcC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2FtcGxpZnkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGViYmFuZC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJsaW1pdC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2R5bmFtaWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9lY2hvLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvaW52ZXJ0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvcGFub3JhbWEuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW93c2luY2JhbmQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW93c2luY2xpbWl0LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F2aW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmlzdWJ0aXRsZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZGVjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2VxdWFsaXplci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2xpbWl0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmd2b2x1bWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2hhcGV3aXBlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tkZWMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja2VuYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMveTRtZW5jLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy93YXZwYWNrLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2VxdWFsaXplci9kZW1vLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2xldmVsL2xldmVsLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vc3BlY3RydW0tZXhhbXBsZS5jOgoJKiB0ZXN0cy9pY2xlcy92NGwyc3JjLXRlc3QuYzoKCSAgQWRkIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgd2FybmluZyBmbGFncwoJICBBbmQgZml4IGFsbCB0aGUgd2FybmluZ3MuCgoyMDEwLTAzLTE3IDE2OjIzOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSAgbXA0Z2RlcGF5OiBpbXByb3ZlIGNvbnN0YW50RHVyYXRpb24gZ3Vlc3NpbmcKCSAgV2hlbiBubyBjb25zdGFudER1cmF0aW9uIGhhcyBiZWVuIGdpdmVuIGluIHRoZSBjYXBzLCB0cnkgdG8gZGVyaXZlIG9uZSBmcm9tIHRoZQoJICB0aW1lc3RhbXAgZGlmZmVyZW5jZSBiZXR3ZWVuIHBhY2tldHMuIEFsc28ga2VlcCBkb2luZyB0aGlzIGZvciBlYWNoIHBhY2tldAoJICBiZWNhdXNlIHNvbWUgYnJva2VuIHN0cmVhbXMgbWlnaHQgc2ltcGx5IHByb3ZpZGUgd3JvbmcgdGltZXN0YW1wcy4KCjIwMTAtMDMtMTYgMjM6NDM6MzkgKzAxMDAgIEphbiBVcmJhxYRza2kgPHd1bGN6ZXJAd3VsY3plci5vcmc+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IFB1dCB3aWR0aCBhbmQgaGVpZ2h0IGluIHRoZSBtZXRhZGF0YQoJICBTb21lIHBsYXllcnMgdXNlIHRoYXQgaW5mbyB0byBzY2FsZSB0aGVpciBkaXNwbGF5LgoJICBTZWUgIzYxMzA5NC4KCjIwMTAtMDMtMTYgMjM6MzI6NDUgKzAxMDAgIEphbiBVcmJhxYRza2kgPHd1bGN6ZXJAd3VsY3plci5vcmc+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IGRvbid0IHB1dCB0aW1lc3RhbXBzIGxhcmdlciB0aGFuIEdfTUFYSU5UMzIgaW4gdGhlIEZMViB0YWdzCgkgIEZvciBub24tbGl2ZSBpbnB1dCByZXNwb25kIGJ5IHB1c2hpbmcgRU9TLCBmb3IgbGl2ZSB3cmFwIHRoZQoJICB0aW1lc3RhbXBzIGV2ZXJ5IEdfTUFYSU5UMzIgbWlsaXNlY29uZHMuCgkgIEZpeGVzICM2MTMwMDMuCgoyMDEwLTAzLTE2IDIzOjQwOjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwOiBhbHNvIHVzZSBnX3ZhbHVlX3NldF9zdGF0aWNfc3RyaW5nKCkgaGVyZSBmb3Igc3RhdGljIHN0cmluZ3MKCjIwMTAtMDMtMTYgMjE6MjM6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSAgYWxwaGFjb2xvcjogRml4IFJHQkE8LT5BWVVWIGNvbnZlcnNpb24KCjIwMTAtMDMtMTYgMjE6MTY6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5oOgoJICBhbHBoYTogUmVtb3ZlIHJlZHVuZGFudCBpbnN0YW5jZSBmaWVsZAoKMjAxMC0wMy0xNiAyMToxMDowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgYWxwaGE6IFByb3RlY3QgcHJvcGVydHkgdmFsdWVzIGZyb20gY2hhbmdlcyBkdXJpbmcgZnJhbWUgcHJvY2Vzc2luZwoKMjAxMC0wMy0xNSAyMzoyOTo1NSArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICBwbmdlbmM6IFVzZSBwbmdfZ2V0X2lvX3B0cigpIGluc3RlYWQgb2YgYWNjZXNzaW5nIGlvX3B0ciBkaXJlY3RseQoJICBGaXhlcyAjNjEyNzAwIChmb3IgdGhlIGxhc3QgdGltZSEpCgoyMDEwLTAzLTE1IDIzOjI5OjA2ICswMzAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcG5nOiBDaGVjayBmb3IgbGlicG5nID49IDEuMiBpbnN0ZWFkIG9mIGxpYnBuZzEyCgoyMDEwLTAzLTE2IDAxOjI5OjM2ICswMTAwICBKYW4gVXJiYcWEc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguaDoKCSAgZmx2bXV4OiBBbHdheXMgcHV0IGEgZHVyYXRpb24gdGFnIGluIHRoZSBtZXRhZGF0YQoJICBTb21lIEZsYXNoIHBsYXllcnMgKGZvciBpbnN0YW5jZSBKVyBQbGF5ZXIpIGFsd2F5cyBleHBlY3QgYSBkdXJhdGlvbgoJICB0YWcsIG90aGVyd2lzZSB0aGV5IGRvbid0IHN0YXJ0IHBsYXliYWNrLgoJICBJZiBkdXJhdGlvbiBjYW4gYmUgcXVlcmllZCBmcm9tIHRoZSBzaW5rIHBhZHMgb3IgaXMgcHJvdmlkZWQgYXMgYSB0YWcsCgkgIHVzZSBpdC4gT3RoZXJ3aXNlIHRyeSB0byBkZXRlcm1pbmUgaXQgZnJvbSB0aGUgbGFzdCBzZWVuIHRpbWVzdGFtcCBvZgoJICB0aGUgc2luayBwYWRzIGFmdGVyIEVPUyBhbmQgcmV3cml0ZSBpdCBpbiB0aGUgaGVhZGVyIGJlZm9yZSB3cml0aW5nCgkgIHRoZSBpbmRleC4KCjIwMTAtMDMtMTYgMDA6MzU6NDYgKzAxMDAgIEphbiBVcmJhxYRza2kgPHd1bGN6ZXJAd3VsY3plci5vcmc+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdm11eC5oOgoJICBmbHZtdXg6IFJlbW92ZSB0aGUgc2VuZF9jb2RlY19kYXRhIGZpZWxkIGZyb20gR3N0Rmx2UGFkCgkgIFRoYXQgZmllbGQgaXMgbm90IHVzZWQgYW55bW9yZSBhZnRlciB0aGUgY2hhbmdlcyBpbgoJICA5ZmRlY2JjMWMxMWY0ZTVhZjY1NzhiYmEzMmE5YjMyNzcxMDI5ZDMzLgoKMjAxMC0wMy0xNiAxMzo1MzoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIG11bHRpdWRwc2luazogZ2V0IGZhbWlseSBvZiBleHRlcm5hbCBzb2NrZXRzIHRvbwoJICBHZXQgdGhlIGZhbWlseSBvZiBleHRlcm5hbGx5IGNvbmZpZ3VyZWQgc29ja2V0cyBzbyB0aGF0IHdlIGNhbiBjb25maWd1cmUgaXQKCSAgY29ycmVjdGx5LgoKMjAxMC0wMy0xNSAyMDozNzo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJICBhbHBoYWNvbG9yOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHJlbWFpbmluZyBBUkdCIGZvcm1hdHMKCjIwMTAtMDMtMTUgMTk6MTY6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSAgYWxwaGFjb2xvcjogU2ltcGxpZnkgQVJHQjwtPkFZVVYgY29udmVyc2lvbnMgYnkgY29kZSBnZW5lcmF0aW9uIG1hY3JvcwoKMjAxMC0wMy0xNSAxOTowNzoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9hbHBoYS9NYWtlZmlsZS5hbToKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5oOgoJICBhbHBoYTogTWlub3IgY2xlYW51cHMgYW5kIG1vdmUgZGVjbGFyYXRpb25zIGludG8gYSBzZXBhcmF0ZSBoZWFkZXIgZmlsZQoKMjAxMC0wMy0xNSAxODo1ODo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvTWFrZWZpbGUuYW06CgkqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICBhbHBoYTogVXNlIEdzdFZpZGVvRmlsdGVyIGFzIGJhc2UgY2xhc3MgZm9yIGF1dG9tYXRpYyBRb1Mgc3VwcG9ydAoKMjAxMC0wMy0xNSAxODo1MDoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5oOgoJICBhbHBoYWNvbG9yOiBBZGQgc3VwcG9ydCBmb3IgaW5wbGFjZSBjb252ZXJzaW9ucyBmcm9tIEFZVVYgdG8gQVJHQgoKMjAxMC0wMy0xNSAxODoxNDoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5oOgoJICBhbHBoYWNvbG9yOiBVc2UgbGliZ3N0dmlkZW8gZm9yIGNhcHMgcGFyc2luZwoKMjAxMC0wMy0xNSAxODowOTo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWxwaGEvTWFrZWZpbGUuYW06CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmg6CgkgIGFscGhhY29sb3I6IFVzZSBHc3RWaWRlb0ZpbHRlciBhcyBiYXNlIGNsYXNzIGZvciBhdXRvbWF0aWMgUW9TIHN1cHBvcnQKCjIwMTAtMDMtMTUgMTg6MDc6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSAgYWxwaGFjb2xvcjogU29tZSBtaW5vciBjbGVhbnVwCgoyMDEwLTAzLTE1IDE0OjE2OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuaDoKCSAgc3BlZXhkZWM6IFVzZSBzcGVleF9zdGVyZW9fc3RhdGVfaW5pdCgpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgaW5pdGlhbGl6YXRpb24gbWFjcm8KCSAgRml4ZXMgYnVnICM2MTI3NzcuCgoyMDEwLTAzLTE1IDAxOjA5OjQ5ICswMTAwICBKYW4gVXJiYcWEc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBDb3JyZWN0bHkgbWFyayBidWZmZXJzIGFzIGRlbHRhIHVuaXRzCgkgIE1hcmsgdmlkZW8gaW50ZXJmcmFtZXMsIHZpZGVvIGNvZGVjIGRhdGEgYnVmZmVycyBhbmQgYXVkaW8gYnVmZmVycyAoaWYKCSAgaXQncyBub3QgYW4gYXVkaW8tb25seSBzdHJlYW0pIGFzIGRlbHRhIHVuaXRzLgoKMjAxMC0wMy0xNCAxOTozMjoyMCArMDEwMCAgSmFuIFVyYmHFhHNraSA8d3VsY3plckB3dWxjemVyLm9yZz4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogU3VwcG9ydCBzdHJlYW1oZWFkZXJzCgkgIFB1dCB0aGUgRkxWIGhlYWRlciwgdGhlIG1ldGFkYXRhIHRhZyBhbmQgKGlmIHByZXNlbnQpIGNvZGVjCgkgIGluZm9ybWF0aW9uIGluIHRoZSBzdHJlYW1oZWFkZXIgdG8gYWxsb3cgdGhlIG11eGVyIHRvIGJlIHVzZWQgZm9yCgkgIHN0cmVhbWluZy4KCjIwMTAtMDMtMTQgMDE6Mzg6MjEgKzAxMDAgIEphbiBVcmJhxYRza2kgPHd1bGN6ZXJAd3VsY3plci5vcmc+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IFByZWFsbG9jYXRlIGluZGV4IHNwYWNlIGFuZCBmaWxsIGl0IGFmdGVyIGZpbmlzaGluZyBvdXRwdXQKCSAgTWFrZSB0aGUgaW5kZXggYXBwZWFyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUsIHdoaWNoIGlzIHdoYXQgbW9zdAoJICBwbGF5ZXJzIGFyZSBleHBlY3RpbmcuCgkgIEZpeGVzICM2MDEyMzYuCgoyMDEwLTAzLTE1IDEzOjQ3OjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogTWlub3IgY29kaW5nIHN0eWxlIGZpeGVzIGFuZCBjbGVhbnVwCgoyMDEwLTAzLTE0IDAxOjM0OjAyICswMTAwICBKYW4gVXJiYcWEc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguaDoKCSAgZmx2bXV4OiBBZGQgYSBpcy1saXZlIHByb3BlcnR5CgkgIElmIGl0IGlzIHNldCwgdGhlIG11eGVyIHdpbGwgbm90IHdyaXRlIHRoZSBpbmRleC4gRGVmYXVsdHMgdG8gZmFsc2UuCgoyMDEwLTAzLTE0IDAxOjI1OjQyICswMTAwICBKYW4gVXJiYcWEc2tpIDx3dWxjemVyQHd1bGN6ZXIub3JnPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBPbmx5IHB1dCB2YWxpZCBzZWVrIHBvaW50cyBpbiB0aGUgaW5kZXgKCSAgRm9yIGZpbGVzIGNvbnRhaW5pbmcgdmlkZW8gb25seSB2aWRlbyBrZXlmcmFtZXMgYXJlIHZhbGlkIHBvaW50cyB0bwoJICB3aGljaCBhIHBsYXllciBjYW4gc2Vlay4gRm9yIGF1ZGlvLW9ubHkgZmlsZXMgYW55IHRhZyBzdGFydCBpcyBhIHZhbGlkCgkgIHNlZWsgcG9pbnQuCgkgIFNlZSAjNjAxMjM2LgoKMjAxMC0wMy0xNCAwMTowOTozNyArMDEwMCAgSmFuIFVyYmHFhHNraSA8d3VsY3plckB3dWxjemVyLm9yZz4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogRml4IGluZGV4IGJ1aWxkaW5nIHRvIG1ha2UgZW50cmllcyBwb2ludCB0byB0YWcncyBzdGFydCBvZmZzZXQKCSAgUHJldmlvdXMgY29kaW5nIHdhcyB3cm9uZ2x5IGluY3JlbWVudGluZyB0aGUgdG90YWwgYnl0ZSBjb3VudCBiZWZvcmUKCSAgYWRkaW5nIGFuIGluZGV4IGVudHJ5LgoKMjAxMC0wMy0xNSAxMzo0MDozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSAgY2Fpcm90ZXh0b3ZlcmxheTogRG9uJ3QgcmVuZGVyIHRleHQgb3V0c2lkZSB0aGUgZnJhbWUgYm91bmRhcmllcwoJICBGaXhlcyBidWcgIzYxMTk4Ni4KCjIwMTAtMDMtMTUgMTE6Mzg6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGRvbid0IGZvcmdldCB0byBzZW5kIGtlZXBhbGl2ZSBtZXNzYWdlcwoJICBXaGVuIHdlIG9wZXJhdGUgaW4gVENQIG1vZGUsIHN0aWxsIHNlbmQga2VlcGFsaXZlIG1lc3NhZ2VzIHdoZW4gd2UKCSAgbmVlZCB0by4KCSAgRml4ZXMgIzYxMjY5NgoKMjAxMC0wMy0xMyAyMzoxOTozNSArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJICBwbmdlbmM6IENhbGwgcG5nX2ptcGJ1ZigpIGluc3RlYWQgb2YgYWNjZXNzaW5nIHBuZ19zdHJ1Y3RfcHRyIGRpcmVjdGx5CgkgIEZpeGVzICM2MTI3MDAgKGFnYWluKQoKMjAxMC0wMy0xMiAxNjo0NDozMCArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJICBwbmdlbmM6IENhbGwgcG5nX2Vycm9yKCkgaW5zdGVhZCBvZiB1c2luZyBsb25nam1wKCkgZGlyZWN0bHkuCgkgIEZpeGVzICM2MTI3MDAKCjIwMTAtMDMtMTIgMTM6NTc6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGUyNzJmNzEgdG8gNTVjZDUxNAoKMjAxMC0wMy0wNSAxMTowNjo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IGFkZCBYTVAgcGFyc2luZyBzdXBwb3J0CgkgIFVzZSB4bXAgaGVscGVycyB0byBwYXJzZSBYTVAgbWV0YWRhdGEgaW4gdWR0YSBhdG9tLgoJICBGaXhlcyAjNjA5NTM5CgoyMDEwLTAzLTExIDEyOjMyOjU2IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICB1ZHA6IGZpeCBjb21waWxhdGlvbiBlcnJvcnMgb24gbm9uLXdpbmRvd3MuCgoyMDEwLTAzLTEwIDIyOjIzOjQzICswMTAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmg6CgkgIG11bHRpdWRwc2luazogYXZvaWQgZ2V0dGluZyB0aGUgc29ja2V0IGZhbWlseSB1c2luZyBnZXRzb2NrbmFtZSgpCgoyMDEwLTAzLTExIDE3OjI4OjQ3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggcHJpbnQgc3RhdGVtZW50cyBmb3IgcG9pbnRlciBkaWZmZXJlbmNlcy4KCSAgVGhpcyBmaXhlcyBpdCBmb3IgYm90aCAzMiBhbmQgNjQgYml0CgoyMDEwLTAzLTExIDE3OjI4OjM1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDEwLTAzLTExIDE3OjAzOjQ3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogRml4IHByaW50ZiBmb3JtYXR0aW5nIGZvciBtYWNvc3gKCjIwMTAtMDMtMTEgMTc6MDM6MDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDEwLTAzLTExIDE3OjAyOjQ0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogRml4IHVuaXRpYWxpemVkIHZhcmlhYmxlLgoKMjAxMC0wMi0xOSAxMzozOTowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSAgZmx2cGFyc2U6IE1ha2Ugc2NyaXB0IHRhZyBwYXJzaW5nIG1vcmUgZmxleGlibGUuCgkgICogVGhlIG5iX2VsZW1lbnRzIGZvciBhcnJheXMgaXMganVzdCBhbiBpbmRpY2F0aW9uLCB3ZSBjYW4gdGhlcmVmb3JlIGlnbm9yZQoJICBpdCBhbmQgY2Fycnkgb24gcGFyc2luZyBtZXRhZGF0YSBpdGVtcyB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kIG1hcmtlci4KCSAgKiBJZiB0eXBlID09IDMsIHRoZW4gdGhlIHNjcmlwdCB0YWcgY29udGFpbnMgYSBsaXN0IG9mIG9iamVjdCBmb2xsb3dlZAoJICBieSB0aGUgZW5kIG1hcmtlci4KCSAgUmVmYWN0b3IgY29kZSBzbGlnaHRseSB0byBoYW5kbGUgYm90aCBjYXNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEwNDQ3CgoyMDEwLTAzLTExIDE1OjUxOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6CgkgIHRlc3RzOiBmaXggbWV0YWRhdGEgbm90IHdyaXRhYmxlIHdhcm5pbmdzIGluIGludGVybGVhdmUgYW5kIGRlaW50ZXJsZWF2ZSB0ZXN0cwoKMjAxMC0wMy0xMSAxNTozODoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hcGV2Mm11eC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDN2Mm11eC5jOgoJICB0ZXN0czogZml4IG1ldGFkYXRhIG5vdCB3cml0YWJsZSB3YXJuaW5ncyB3aXRoIGFwZXYybXV4IGFuZCBpZDN2Mm11eCB0ZXN0cwoKMjAxMC0wMy0xMSAxNToyNDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogZml4IG1ldGFkYXRhIHdyaXRhYmxlIHdhcm5pbmdzCgkgIFNldCBtZXRhZGF0YSBvbiBidWZmZXIgZmlyc3QsIHdoZW4gdGhlIHJlZmNvdW50IGlzIHN0aWxsIDEsIGFuZCBvbmx5CgkgIHJlZiBhZ2FpbiBhZnRlcndhcmRzLgoKMjAxMC0wMy0xMSAxNTowMjo0OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBpZ25vcmUgc3RyZWFtIHdpdGggaW52YWxpZCBoZWFkZXIgdGltZSBtZXRhZGF0YQoKMjAxMC0wMy0wOCAxNDo1NzoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IFNldCBzdHJlYW0tZm9ybWF0PXJhdyBvbiBBQUMgY2FwcwoJICBTZXQgc3RyZWFtLWZvcm1hdD1yYXcgZm9yIEFBQyBjYXBzLCBhcyB0aGF0IGlzIHRoZQoJICBleHBlY3RlZCBBQUMgZm9ybWF0IHRvIGJlIGluIHRoaXMgY29udGFpbmVyIGZhbWlseS4KCSAgRml4ZXMgIzU2NjI1MAoKMjAxMC0wMy0xMSAxMjo1NjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogY2hlY2sgZm9yIE5VTEwgYmVmb3JlIGRvaW5nIHN0cmNtcAoJICBDaGVjayB0aGUgY29ubmVjdGlvbiBhbmQgYWRkcmVzcyB0eXBlIGZvciBOVUxMIGJlZm9yZSBkb2luZyBzdHJjbXAgYW5kCgkgIGNyYXNoaW5nLgoJICBGaXhlcyAjNjEyNTUzCgoyMDEwLTAzLTExIDExOjIwOjU5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGRmOGE3YzggdG8gZTI3MmY3MQoKMjAxMC0wMy0xMSAxMTowOTo1NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOgoJICBidWlsZDogaW5jbHVkZSBzdGRsaWIuaCBmb3IgYXRvaSgpCgoyMDEwLTAzLTExIDEwOjMzOjAwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6CgkgIGF1ZGlvcGFub3JhbWE6IG1vdmUgaW52YXJpYW50IGNoZWNrIG91dCBvZiB0aGUgaW5uZXIgbG9vcAoJICBJbXByb3ZlcyBwZXJmb3JtYW5jZSBmb3Igc2ltcGxlIG1ldGhvZC4KCjIwMTAtMDMtMTAgMjI6MTU6MDQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgVXBkYXRlIENYWEZMQUdTLCB0b28sIGp1c3QgbGlrZSBDRkxBR1MKCjIwMTAtMDMtMTAgMjE6MDE6MjAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBVcGRhdGUgZm9yIHJlY2VudCBjaGFuZ2VzIHRvIGNvbW1vbiBzdWJtb2R1bGUKCSAgVGhpcyBqdXN0IHJlcGxhY2VzIGV2ZXJ5ICIkRVJST1JfQ0ZMQUdTIiB1c2FnZSB3aXRoIGEgdXNhZ2Ugb2YKCSAgIiRXQVJOSU5HX0NGTEFHUyAkRVJST1JfQ0ZMQUdTIiB0byBnZXQgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBhcwoJICBwcmV2aW91c2x5LgoJICBBY3R1YWxseSB1c2luZyB0aGF0IHNlcGFyYXRpb24gd2lsbCBoYXBwZW4gbGF0ZXIuCgoyMDEwLTAzLTEwIDIxOjUyOjA5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk3MjBhN2QgdG8gZGY4YTdjOAoKMjAxMC0wMy0xMCAyMDo0Mzo1NyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwYjZlMDcyIHRvIDk3MjBhN2QKCjIwMTAtMDMtMTAgMTA6NTE6MjggLTA4MDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIG11bHRpdWRwc2luazogUmVzZXQgd2luZG93cyBlcnJvciBjb2RlIGFmdGVyIGdldHRpbmcgY29ycmVzcG9uZGluZyBlcnJvciBtZXNzYWdlLgoKMjAxMC0wMy0wOSAxNzozMjoyNyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICBhdmltdXg6IHB1dCB0aGUgY29kZWNfZGF0YSBibG9iIGludG8gdGhlIGFjdHVhbCBkYXRhIGZvciBNUEVHNCB2aWRlbywgdG8gbWF0Y2ggb3RoZXIgaW1wbGVtZW50YXRpb25zIGluIHRoZSB3aWxkLgoKMjAxMC0wMy0xMCAxNjowOTo1NiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3Y2M1ZWI0IHRvIDBiNmUwNzIKCjIwMTAtMDItMjMgMjE6MDY6NTUgLTAzMDAgIFRoYWRldSBMaW1hIGRlIFNvdXphIENhc2NhcmRvIDxjYXNjYXJkb0Bob2xvc2NvcGlvLmNvbT4KCgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHhpbWFnZXNyYzogc2VuZCBuZXdfc2VnbWVudCB3aXRoIEdTVF9GT1JNQVRfVElNRSBmb3JtYXQKCSAgSW5zdGVhZCBvZiB1c2luZyBCYXNlU3JjIGRlZmF1bHQgZm9ybWF0IEdTVF9GT1JNQVRfQllURVMsIHNlbmQgaXQgaW4KCSAgR1NUX0ZPUk1BVF9USU1FLgoJICBTaWduZWQtb2ZmLWJ5OiBUaGFkZXUgTGltYSBkZSBTb3V6YSBDYXNjYXJkbyA8Y2FzY2FyZG9AaG9sb3Njb3Bpby5jb20+CgkgIEZpeGVzICM2MTE2NTkKCjIwMTAtMDMtMTAgMTE6NDY6MDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogcHVzaCBtb2RlOyBhbHNvIHJlcG9ydCBzZWVrYWJsZSB3aXRob3V0IGFuIGVsZW1lbnQgaW5kZXgKCSAgLi4uIHNpbmNlIHJlY2VudCBjb2RlIGFsc28gc2Vla3MgYXJvdW5kIHRvIG9idGFpbiByZXF1aXJlZCBkYXRhCgkgIGZyb20gYXZpIGluZGV4LgoKMjAxMC0wMy0wOSAxODowNjo1MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBhZGQgc29tZSBjaGVjayBhbmQgc3RhbmRhcmRpemVkIHNlZWsgZXZlbnQgaGFuZGxpbmcgaW4gcHVzaCBtb2RlCgoyMDEwLTAzLTA5IDE4OjA1OjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCBvZmZzZXQgaGFuZGxpbmcgaW4gcHVzaCBtb2RlIHNlZWtpbmcKCSAgUHVzaCBtb2RlIHNlZWtpbmcgdXNlcyBzYW1lIGluZGV4IGRhdGEgYXMgcHVsbCBtb2RlLCBhbmQgc3RvcmVzCgkgIG9mZnNldCB0byBkYXRhIGluIGNodW5rLCB3aGVyZWFzIHB1c2ggbW9kZSBvcGVyYXRlcyBpbiBjaHVua3MsCgkgIGFuZCBhcyBzdWNoIG5lZWRzIG9mZnNldCBjb25zaXN0ZW50bHkgY29ycmVzcG9uZGluZyB0byBjaHVuayBoZWFkZXJzLgoJICBBbHNvIGZpeCBkZXRlcm1pbmluZyBiZXN0IG1hdGNoaW5nIHN0cmVhbSBmb3IgaW5jb21pbmcgbmV3c2VnbWVudCBldmVudCwKCSAgYXMgd2VsbCBhcyBzZXR0aW5nIHNvbWUgc3RyZWFtIHN0YXRlIGFjY29yZGluZ2x5LgoKMjAxMC0wMi0yNiAyMToyOTo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSAgZmx2ZGVtdXg6IGNvbmR1Y3QgaW5kZXggc2NhbiBpbiB0YXNrIHRocmVhZAoJICAuLi4gcmF0aGVyIHRoYW4gaW4gc2Vla2luZyB0aHJlYWQsIHdoaWNoIG1pZ2h0IHRoZW4gb2NjdXB5IG1haW5sb29wCgkgIGZvciBzb21lIHRpbWUgd2l0aCBwb3NzaWJsZSB1bnJlc3BvbnNpdmUgc2lkZS1lZmZlY3RzLgoKMjAxMC0wMi0yNiAyMToyNzozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIGZsdmRlbXV4OiBhdm9pZCBpbmRlZmluaXRlIGluZGV4IGdyb3d0aAoJICBUaGF0IGlzLCBjaGVjayBmb3IgYW5kIGRvIG5vdCBhZGQgYW4gaW5kZXggZW50cnkgdGhhdCBoYXMgYWxyZWFkeQoJICBiZWVuIGFkZGVkLgoKMjAxMC0wMi0xOCAxNDo1NzozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIGZsdmRlbXV4OiBhbHNvIGNvbGxlY3QgaW5kZXggaW5mbyBvbi10aGUtZmx5IGluIHB1bGwgbW9kZQoKMjAxMC0wMi0xOCAxMjo0MjozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmg6CgkgIGZsdmRlbXV4OiBpbmNyZW1lbnRhbGx5IGJ1aWxkIGluZGV4IGluIHB1bGwgbW9kZQoJICBTY2FuIGZvciBuZWVkZWQgcGFydCB1cG9uIGEgc2VlayBhcyBvcHBvc2VkIHRvIGRvaW5nIGEgY29tcGxldGUgc2NhbgoJICBhdCBzdGFydHVwLCB3aGljaCBtYXkgdGFrZSBzb21lIHRpbWUgZGVwZW5kaW5nIG9uIGZpbGUgYW5kL29yIHBsYXRmb3JtLgoJICBBbHNvIGFjY2VwdCBpbmRleCBtZXRhZGF0YSBpbiBwdWxsIG1vZGUgYW5kIHBlZWsgZm9yIHNvbWUgbWV0YWRhdGEKCSAgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSB3aGVuIGRlZW1lZCBhcHByb3ByaWF0ZS4KCjIwMTAtMDItMTggMTI6MjY6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogc29tZSBtb3JlIHZhcmlhYmxlIGNsZWFudXAKCjIwMTAtMDMtMDkgMTg6MjU6MjMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZkZW11eDogcmVmYWN0b3IgYWRkaW5nIGluZGV4IGVudHJ5CgoyMDEwLTAyLTE3IDExOjM2OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSAgZmx2ZGVtdXg6IGZpeCBzZXR0aW5nIERFTFRBX1VOSVQgZmxhZyBvbiBvdXRnb2luZyBidWZmZXJzCgkgIC4uLiB3aGljaCBzaG91bGQgbm90IGRlcGVuZCBvbiBoYXZpbmcgaW5kZXggYXZhaWxhYmxlIG9yIG5vdC4KCSAgQWxzbyByZWZhY3RvciByZXN1bHRpbmcgY29sbGFwc2VkIGNvZGUuCgoyMDEwLTAyLTExIDE5OjQzOjQ3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYXZvaWQgZXJyb25lb3VzIGNvZGVjLWRhdGEgb3ZlcnJpZGluZyBvZiBzdHNkIGluZm9ybWF0aW9uCgoyMDEwLTAyLTAxIDIyOjM3OjMwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJICBzcGVleGRlYzogYWRhcHQgdG8gbmV3IG9nZ2RlbXV4CgkgIFJlbW92ZSBhbGwgZ3JhbnVsZXBvcyBoYWNrcyBhbmQgc2ltcGx5IHVzZSB1cHN0cmVhbSB0aW1lc3RhbXBzLgoKMjAxMC0wMi0wMSAyMjozNjowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmg6CgkgIHNwZWV4ZGVjOiByZWZhY3RvciBncmFudWxlcG9zIGhhY2tzCgoyMDEwLTAzLTEwIDExOjE5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBwYXJzZSBjb25uZWN0aW9uIGluZm9ybWF0aW9uCgkgIFBhcnNlIHRoZSBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFNEUCBhbmQgdXNlIGl0IHRvIGZpZ3VyZSBvdXQgaWYgd2UgYXJlCgkgIGRlYWxpbmcgd2l0aCBpcHY0IG9yIGlwdjYgY29ubmVjdGlvbnMuCgoyMDEwLTAzLTA5IDE3OjUzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiByZXF1aXJlIGEgZGVzdGluYXRpb24gZm9yIG11bHRpY2FzdAoJICBXaGVuIHNldHRpbmcgdXAgdGhlIG11bHRpY2FzdCBzb2NrZXRzLCB3ZSBuZWVkIGEgZGVzdGluYXRpb24gYWRkcmVzcyB0byBsaXN0ZW4KCSAgb24gb3IgZWxzZSB3ZSBlcnJvci4KCjIwMTAtMDMtMDkgMTc6NTI6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogaGFuZGxlIGlwdjYgbGlzdGVuaW5nIHBvcnRzIHdoZW4gbmVlZGVkCgkgIEFkZCBzb21lIGNvZGUgdG8gbWFrZSB1ZHBzcmMgbGlzdGVuIG9uIGFuIGlwdjYgYWRkcmVzcyB3aGVuIG5lZWRlZC4gVGhlCgkgIGRldGVjdGlvbiBvZiBJUFY2IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCgoyMDEwLTAzLTA5IDE3OjE1OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc2luay5oOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5oOgoJICB1ZHA6IHVzZSB1cmkgcGFyc2luZyBjb2RlCgkgIFVzZSB0aGUgdXJpIHBhcnNpbmcgaGVscGVyIGZ1bmN0aW9ucyB0byBtYW5hZ2UgdGhlIGhvc3QgYW5kIHBvcnQgcGFpcnMuIFRoaXMKCSAgYWRkcyBzdXBwb3J0IGZvciBJUFY2LgoKMjAxMC0wMy0wOSAxNzoxMzozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICB1ZHBuZXR1dGlsczogYWRkIGhlbHBlciBmdW5jdGlvbnMgZm9yIHVkcCB1cmkgaGFuZGxpbmcKCSAgQWRkIHNvbWUgaGVscGVycyB0byBwYXJzZSB1ZHAgdXJpcy4gTWFrZSBzdXJlIElQVjYgaXMgc3VwcG9ydGVkIHRvby4KCjIwMTAtMDMtMDUgMTY6MDg6NDUgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIHJ0cHNlc3Npb246IE1ha2UgaXQgcG9zc2libGUgdG8gZmF2b3IgbmV3IHNvdXJjZXMgaW4gY2FzZSBvZiBTU1JDIGNvbmZsaWN0CgkgIEFkZCBhICJmYXZvci1uZXciIHByb3BlcnR5IHRoYXQgdGVsbHMgdGhlIHNlc3Npb24gdG8gZmF2b3IgbmV3IHNvdXJjZXMgd2hlbgoJICB0aGVyZSBpcyBhIFNTUkMgY29uZmxpY3QuIFRoaXMgaXMgdXNlZnVsIGZvciBTSVAgY2FsbHMgYW5kIG90aGVyIHN1Y2ggY2FzZXMKCSAgd2hlcmUgYSByZW1vdGUgbG9vcCBpcyBleHRyZW1lbHkgdW5saWtlbHkuCgkgIEZpeGVzICM2MDc2MTUKCjIwMTAtMDMtMDUgMTU6NDY6NDggKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIHJ0cHNlc3Npb246IE1vdmUgU1NSQyBjb25mbGljdHMgbGlzdHMgaW50byBSVFBTb3VyY2UKCSAgV2Ugd2lsbCBhbHNvIG5lZWQgdG8gdHJhY2sgU1NSQyBjb25mbGljdHMgaW4gcmVtb3RlIHNvdXJjZXMuCgkgIFNlZSAjNjA3NjE1CgoyMDEwLTAyLTI2IDE3OjEzOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBzZW5kIGtlZXAgYWxpdmUgd2hlbiBwYXVzZWQKCSAgV2hlbiB3ZSBhcmUgcGF1c2VkLCBzZW5kIGtlZXAgYWxpdmUgbWVzc2FnZXMgdG8gdGhlIHNlcnZlciBzbyB0aGF0IG91ciBzZXNzaW9uCgkgIGRvZXNuJ3QgdGltZSBvdXQgd2hlbiB3ZSBnbyBiYWNrIHRvIHBsYXlpbmcgbGF0ZXIuCgoyMDEwLTAzLTEwIDAxOjEwOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2FhNjViNSB0byA3Y2M1ZWI0CgoyMDEwLTAyLTIzIDE5OjQ4OjEwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuaDoKCSAgbXVsdGlmaWxlc2luazogQWRkIGtleS1mcmFtZSBvcHRpb24gdG8gbmV4dC1maWxlCgkgIFRoaXMgYWxsb3dzIHNlZ21lbnRpbmcgb2YgTVBFRy1UUyBmaWxlcyBhdCBrZXkgZnJhbWVzLCB3aGljaCBpcwoJICBleGFjdGx5IHdoYXQgaXMgbmVlZGVkIGZvciBBcHBsZSdzIEhUVFAgc3RyZWFtaW5nLgoKMjAxMC0wMy0wOSAyMTozMjo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ0ZWNjZTcgdG8gN2FhNjViNQoKMjAxMC0wMy0wOCAyMDoxNzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgdmlkZW9ib3g6IEZpeCBhdXRvY3JvcHBpbmcgZm9yIG9kZCB3aWR0aC9oZWlnaHQgZGlmZmVyZW5jZXMKCjIwMTAtMDMtMDggMjA6MDI6MTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94Lmg6CgkgIHZpZGVvYm94OiBVc2UgbGliZ3N0dmlkZW8gZm9yIGZvcm1hdCBzcGVjaWZpYyBzdHVmZgoKMjAxMC0wMy0wOCAxOToyODo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWlpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2thcmFva2UuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJICBhdWRpb2Z4OiBTeW5jIHByb3BlcnRpZXMgdG8gdGhlIHN0cmVhbSB0aW1lCgoyMDEwLTAzLTA4IDE5OjIwOjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBNYWtlIHByb3BlcnRpZXMgY29udHJvbGxhYmxlCgoyMDEwLTAzLTA4IDE5OjA5OjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogU29tZSBjbGVhbnVwCgoyMDEwLTAyLTI4IDE1OjQ3OjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5jOgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RyaXBwbGUuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzdHJlYWsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgIGVmZmVjdHY6IFVzZSBjb250cm9sbGVyIHdoZXJlIHBvc3NpYmxlLCBvcHRpbWl6ZSBhIGJpdCBhbmQgbWFrZSBwcm9wZXJ0aWVzIHRocmVhZHNhZmUKCjIwMTAtMDItMjYgMTY6MzU6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICBidWlsZDogTWFrZSBzb21lIG1vcmUgcnVsZXMgc2lsZW50IGlmIHJlcXVlc3RlZAoKMjAxMC0wMi0yNiAxNTo0MTo1MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogVXNlIGF1dG9tYWtlIDEuMTEgc2lsZW50IHJ1bGVzIGluc3RlYWQgb2Ygc2hhdmUgaWYgYXZhaWxhYmxlCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIHVzZSBzb21ldGhpbmcgdGhhdCBpcyBzdGlsbCBtYWludGFpbmVkIGFuZAoJICBhbHNvIGJyaW5ncyBiYWNrIGxpYnRvb2wgMS41IHN1cHBvcnQuCgoyMDEwLTAzLTA4IDIyOjU3OjM0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJICBwbmc6IGZyYWN0aW9ucyBkb24ndCBhbGxvdyBkb3VibGVzCgoyMDEwLTAzLTAxIDEyOjAzOjU2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJICBmbHg6IGZpeCBkZXNjcmlwdGlvbgoJICBJdCdzIHZpZGVvLCBub3QgYXVkaW8KCjIwMTAtMDMtMDkgMTc6NDU6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjIxID09PQoKMjAxMC0wMy0wOSAwMDoyODoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMjEKCjIwMTAtMDMtMDkgMDA6MjQ6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMy0wOSAwMDowOTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5oOgoJICBSZXZlcnQgIkFkZCA0OjI6MiwgNDoxOjEsIGFuZCA0OjQ6NCBvdXRwdXQgc3VwcG9ydCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2MzdjMjZmNjFhMmJkOGQ3YjAxZjhiNmQwODFkOTRkYTY1Zjc0NTU3LgoKPT09IHJlbGVhc2UgMC4xMC4yMCA9PT0KCjIwMTAtMDMtMDggMjM6NDI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hhcGV3aXBlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjIwCgoyMDEwLTAzLTA4IDIzOjQyOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTAtMDMtMDggMTY6NDc6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBkb24ndCBzZW5kIHNlY29uZCBuZXdzZWdtZW50IGV2ZW50IGluIGZyYW1lZCBtb2RlLCBmaXhlcyBsb25nIHBsYXliYWNrIGRlbGF5CgkgIERvbid0IHNlbmQgYW5vdGhlciBuZXdzZWdtZW50IGV2ZW50IGlmIHRoZSB1cHN0cmVhbSBtdXhlci9wYXJzZXIgaGFzIGFscmVhZHkKCSAgc2VudCBvbmUgKG90aGVyd2lzZSB0aGUgc2luayB3aWxsIHdhaXQgZm9yICRkdXJhdGlvbiBiZWZvcmUgc3RhcnRpbmcgcGxheWJhY2spLgoJICBGaXhlcyBsb25nIGRlbGF5IHVudGlsIHBsYXliYWNrIHN0YXJ0cyB3aXRoIGZsYWMtaW4tb2dnIGZpbGVzLgoJICBGaXhlcyAjNjEwOTU5LgoKMjAxMC0wMy0wNSAxMzo0OTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogY29uZmlndXJlIG11bHRpY2FzdCBjb3JyZWN0bHkKCSAgVGFrZSB0aGUgdHJhbnNwb3J0IGRlc3RpbmF0aW9uIGZvciBtdWx0aWNhc3QuCgkgIERpc2FibGUgbG9vcCBhbmQgYXV0b2pvaW4gZm9yIG11bHRpY2FzdCBvbiB0aGUgdWRwc2lua3MuCgoyMDEwLTAzLTA1IDEzOjQ3OjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgbXVsdGljYXN0OiBhbHdheXMgY29uZmlndXJlIGxvb3AgYW5kIHR0bAoJICBBbHNvIGNvbmZpZ3VyZSBUVEwgYW5kIGxvb3AgcGFyYW1ldGVycyB3aGVuIHdlIGFkZCBhIGNsaWVudCBhZnRlciBpbml0aWFsaXppbmcKCSAgdGhlIHNlbmRlci4KCjIwMTAtMDMtMDggMTI6MTM6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOgoJICBSZXZlcnQgInJ0cGgyNjNkZXBheTogYmFzZWNsYXNzIGhhbmRsZXMgdGltZXN0YW1wcyBmb3IgdXMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTY0NTgxZTFiODhlY2Q1ZWM1ZGE4MmMzY2FmYjBlN2EyZDU4YjMwMi4KCSAgSWYgd2UgZG9uJ3QgY2FsbCBwdXNoX3RzLCB0aGVyZSB3aWxsIGJlIG5vIHRpbWVzdGFtcCBhdCBhbGwgb24gdGhlIG91dGdvaW5nCgkgIGJ1ZmZlci4KCSAgRml4ZXMgIzYxMjE1NAoKMjAxMC0wMi0yMyAyMjoxNjozOSAtMDUwMCAgQmVuamFtaW4gTS4gU2Nod2FydHogPGJlbnNAYWx1bS5taXQuZWR1PgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuaDoKCSAgQWRkIDQ6MjoyLCA0OjE6MSwgYW5kIDQ6NDo0IG91dHB1dCBzdXBwb3J0CgoyMDEwLTAzLTAyIDEzOjIxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIHJ0cHNvdXJjZTogdXNlIHBheWxvYWQgc2l6ZSB0byBlc3RpbWF0ZSBiaXRyYXRlCgkgIFVzZSB0aGUgbGVuZ3RoIG9mIHRoZSBwYXlsb2FkIGZvciBlc3RpbWF0aW5nIHRoZSByZWNlaXZlciBiaXRyYXRlIHNvIHRoYXQgaXQKCSAgbWF0Y2hlcyB0aGUgY2FsY3VsYXRpb25zIGRvbmUgb24gdGhlIHNlbmRlciBzaWRlLiBUb2dldGhlciB3aXRoIHRoZSBudW1iZXIgb2YKCSAgcGFja2V0cyBvbmUgY2FuIHNjYWxlIHRoZSBiaXRyYXRlIHdpdGggdGhlIGhlYWRlciBvdmVyaGVhZCBvZiB0aGUgbG93ZXIKCSAgdHJhbnNwb3J0LgoKMjAxMC0wMy0wMiAxMjozOToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSAgcnRwc291cmNlOiByZWZhY3RvciBiaXRyYXRlIGVzdGltYXRpb24KCSAgRG9uJ3QgcmV1c2UgdGhlIHNhbWUgdmFyaWFibGUgd2UgbmVlZCBmb3Igc3RhdHMgZm9yIHRoZSBiaXRyYXRlIGVzdGltYXRpb24KCSAgYmVjYXVzZSB3ZSdyZSB1cGRhdGluZyBpdC4KCSAgUmVmYWN0b3IgdGhlIGJpdHJhdGUgZXN0aW1hdGlvbiBjb2RlIHNvIHRoYXQgYm90aCBzZW5kZXIgYW5kIHJlY2VpdmVycyB1c2UgdGhlCgkgIHNhbWUgY29kZSBwYXRoLgoKMjAxMC0wMy0wMSAxNjo0MDoyNyAtMDUwMCAgVHJpc3RhbiBNYXR0aGV3cyA8dHJpc3RhbkBzYXQucWMuY2E+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgYWRkZWQgYml0cmF0ZSBlc3RpbWF0aW9uIHRvIHJlY2VpdmVyLXNpZGUgc3RhdHMsIGZpeGVzICM2MTEyMTMKCjIwMTAtMDMtMDEgMTY6MDE6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSAgaDI2M3BheTogZml4IHR5cG8gaW4gZGVidWcKCj09PSByZWxlYXNlIDAuMTAuMTkgPT09CgoyMDEwLTAzLTA2IDAwOjQzOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNoYXBld2lwZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xOQoKMjAxMC0wMy0wNiAwMDo0MjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAzLTAzIDIwOjI5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjE4LjQgcHJlLXJlbGVhc2UKCjIwMTAtMDMtMDIgMTg6Mjk6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogTWFrZSBzdXJlIHdlIGRvbid0IHNlbmQgaW52YWxpZCBuZXdzZWdtZW50cwoJICBGaXhlcyAjNjExNTAxCgoyMDEwLTAzLTAyIDE0OjA5OjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgbWF0cm9za2FkZW11eDogTWFyayBzdHJlYW1zIGFzIGJlaW5nIEVPUyBhdCB0aGUgcmlnaHQgdGltZS4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gc3RvcCBzdHJlYW1pbmcgb25seSB3aGVuIGFsbCBzdHJlYW1zIGhhdmUgZ29uZSBwYXN0IHRoZQoJICBzZWdtZW50LnN0b3AgYW5kIG5vdCBiZWZvcmUuCgkgIEZpeGVzICM2MTE1MDEKCjIwMTAtMDItMjYgMTg6MTA6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IEFkdmFuY2Ugc3BhcnNlIHN0cmVhbXMgb25seSBhcyBtdWNoIGFzIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGdhcCBzbWFsbGVyIHRoYW4gNTAwbXMKCSAgQ2hhbmdpbmcgaXQgdG8gdGhlIG5ld2VzdCB0aW1lc3RhbXAgdGhhdCB3YXMgZXZlciBwdXNoZWQgd2lsbAoJICBpbmNyZWFzZSB0aGUgc2VnbWVudCBzdGFydCBpbiA1MDBtcyBqdW1wcywgd2hpY2ggY291bGQgYmUganVzdAoJICBhZnRlciB0aGUgbmV4dCBzcGFyc2Ugc3RyZWFtIGJ1ZmZlci4gRS5nLgoJICBWaWRlbyBhdCAxLjBzLCBzcGFyc2Ugc3RyZWFtIGF0IDAuNXMgd291bGQganVtcCB0aGUKCSAgc3BhcnNlIHN0cmVhbSB0byAxLjBzLiBOb3cgYSBuZXcgc3BhcnNlIHN0cmVhbSBidWZmZXIgY291bGQKCSAgYXBwZWFyIHRoYXQgaGFzIGEgdGltZXN0YW1wIG9mIDAuOXMgYW5kIHRoaXMgd291bGQgYmUKCSAgZHJvcHBlZCBmb3Igbm8gZ29vZCByZWFzb24gYmVjYXVzZSBvZiBiYWQgbHVjay4KCjIwMTAtMDItMjQgMDE6MzY6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9lcy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE4LjMgcHJlLXJlbGVhc2UKCjIwMTAtMDItMjQgMDI6MDU6NDkgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuaDoKCSAgTWFrZSBzdXJlIEZMVVNIX1NUT1AgaXMgc2VudCBzbyBub3QgdG8gbGVhdmUgZG93bnN0cmVhbSBmbHVzaGluZy4KCjIwMTAtMDItMjMgMTc6MjU6NTQgKzAxMDAgIFZvbGtlciBHcmFic2NoIDxidWd6aWxsYS5nbm9tZS5vcmdAdi5ub3RqdXN0aG9zdGluZy5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogVXNlICRQS0dfQ09ORklHIGluc3RlYWQgb2YgcGtnLWNvbmZpZyB0byBmaXggY3Jvc3MgY29tcGlsYXRpb24KCSAgRml4ZXMgYnVnICM2MTA4MzkuCgoyMDEwLTAyLTIzIDE3OjI0OjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBydHBqaXR0ZXJidWZmZXI6IFJlc2V0IHNrZXcgZGV0ZWN0aW9uIGFmdGVyIGluc3RhbnRpYXRpbmcgdGhlIGppdHRlcmJ1ZmZlcgoJICAuLi5ub3Qgb25seSB3aGVuIGdvaW5nIHRvIFJFQURZLiBUaGlzIHNldHMgaGlnaF9sZXZlbCBhbmQgZnJpZW5kcyB0bwoJICBhIG1vcmUgdXNlZnVsIHZhbHVlLgoKMjAxMC0wMi0yMyAxNzoxOToxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgcnRwaml0dGVyYnVmZmVyOiBSZXR1cm4gMTAwIGlmIGhpZ2gtbGV2ZWwgaXMgMCBpbnN0ZWFkIG9mIGRpdmlkaW5nIGJ5IHplcm8KCjIwMTAtMDItMjIgMTI6MjQ6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJICBydHBtcDRnZGVwYXk6IGF2b2lkIGRpdmlzaW9uIGJ5IDAKCSAgQXZvaWQgYSBkaXZpc2lvbiBieSAwIHdoZW4gbm8gY29uc3RhbnREdXJhdGlvbiB3YXMgc3BlY2lmaWVkIGFuZCB3aGVuIG91dCB0d28KCSAgdGltZXN0YW1wcyBhcmUgZXF1YWwuCgkgIEZpeGVzICM2MTAyNjUKCjIwMTAtMDItMjIgMTg6MjA6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdmRlcGF5Lmg6CgkgIGR2ZGVwYXk6IGRvbid0IG91dHB1dCBmcmFtZXMgdW50aWwgd2UgaGF2ZSBhIGhlYWRlcgoJICBXYWl0IGZvciB0aGUgY29tcGxldGUgZmlyc3QgNiBoZWFkZXIgRElGIHBhY2tldHMgYmVmb3JlIG91dHB1dHRpbmcgYSBmcmFtZS4KCSAgRGVjb2RlcnMgbmVlZCB0aGlzIGluZm8gdG8gY29ycmVjdGx5IGRlY29kZSB0aGUgZGF0YS4KCSAgRml4ZXMgIzYxMDU1NgoKMjAxMC0wMi0yMiAyMDo1NToyOSArMDEwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IEZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgYnkgZmlyc3QgY2hlY2tpbmcgYW5kIHRoZW4gcmVhZGluZwoJICBGaXhlcyBidWcgIzYxMDQ4My4KCjIwMTAtMDItMTggMDk6MDU6NTAgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxAYmFzZS1hcnQubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGdzdF9wdWxzZXNpbmtfZ2V0X211dGU6IHNldCByZXN1bHQgZWFybGllci4KCSAgSW4gdGhlIGNhc2VzIHdoZXJlIG5vIGJ1ZmZlciB3YXMgcHJvY2VzcyB5ZXQgb3IgdGhlIGluZGV4IGlzIG5vdAoJICBhdmFpbGFibGUsIGdldF9wdWxzZXNpbmtfZ2V0X211dGUoKSB3b3VsZCB1bmNvbmRpdGlvbmFsbHkgcmV0dXJuCgkgIEZBTFNFLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEwMzM3CgoyMDEwLTAyLTE5IDEyOjM1OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItcGx1Z2lucy1nb29kLXVuaW5zdGFsbGVkLnBjLmluOgoJICBwa2djb25maWc6IGZpeCBnc3RyZWFtZXItcGx1Z2lucy1nb29kIHVuaW5zdGFsbGVkIC5wYyBmaWxlCgkgIEZpeCBnc3QtcGx1Z2lucy1iYXNlIHJlZmVyZW5jZS9yZXF1aXJlbWVudC4gVGhpcyBjYXVzZWQgc3B1cmlvdXMKCSAgcHJvYmxlbXMgd2l0aCB1bmluc3RhbGxlZCAtdWdseS8tYmFkIG5vdCBmaW5kaW5nIC1nb29kIHBsdWdpbnMgaW4KCSAgdGhlaXIgdW5pdCB0ZXN0cyAod2hlbiBkaXN0Y2hlY2tpbmcpLgoKMjAxMC0wMi0xOSAwMTowMzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2x2LnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTguMiBwcmUtcmVsZWFzZQoKMjAxMC0wMi0xOSAwMDo1NDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvLmdpdGlnbm9yZToKCSAgTWFrZSBnaXQgaWdub3JlIHNoYXBld2lwZSBleGFtcGxlcyBhbmQgdGVzdHMKCjIwMTAtMDItMTkgMDA6NDY6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZkZW11eDogbWlub3IgbWljcm8tb3B0aW1pc2F0aW9uCgkgIFdlIGtub3cgdGhlc2UgdmFsdWVzIGRvbid0IGNoYW5nZSBkdXJpbmcgdGhlIGxvb3AsIGJ1dCB0aGUgY29tcGlsZXIKCSAgZG9lc24ndCBhbmQgaGFzIHRvIHJlLWNoZWNrIHRoZW0gZm9yIGV2ZXJ5IGl0ZXJhdGlvbi4KCjIwMTAtMDItMTkgMDA6Mzk6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZkZW11eDogcmVtb3ZlIHN0YXRpYyBrZXl3b3JkIGZyb20gdmFyaWFibGVzIHRoYXQgc2hvdWxkbid0IGJlIHN0YXRpYwoJICBNdWx0aXBsZSBmbHZwYXJzZS9mbHZkZW11eCBpbnN0YW5jZXMgc2hvdWxkIGJlIGFibGUgdG8gb3BlcmF0ZSB3aXRob3V0CgkgIHRyYW1wbGluZyBvdmVyIGVhY2ggb3RoZXIgYnkgYWNjaWRlbnRhbGx5IHJlLXVzaW5nIHRoZSBzYW1lIChzdGF0aWMpCgkgIHZhcmlhYmxlcy4gKFNwb3R0ZWQgYnkgTWFyayBOYXV3ZWxhZXJ0cykKCjIwMTAtMDItMTYgMDI6MDc6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGRvY3M6IGFkZCBTaW5jZTogbWFya2VycyBmb3IgbmV3IGppdHRlcmJ1ZmZlciBwcm9wZXJ0aWVzCgoyMDEwLTAyLTE4IDE4OjIwOjI0ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEZpeCBvZmYtYnktb25lIGxvZ2ljIGVycm9yIGluIGZyYW1lIHJhdGUgY2FwIHJlZ3Jlc3Npb24gY29tbWl0CgoyMDEwLTAyLTE3IDE2OjI3OjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogVXNlIHRoZSBjb3JyZWN0IGR1cmF0aW9uIHdoZW4gY29tcGFyaW5nIHNlZ21lbnRzCgkgIERvIG5vdCBjb25mdXNlIFF0RGVtdXhTZWdtZW50cyB3aXRoIEdzdFNlZ21lbnRzIHdoZW4KCSAgY29tcGFyaW5nIHRoZSB0b3RhbCBmaWxlIGR1cmF0aW9uIHdpdGggdGhlIHNlZ21lbnQgZHVyYXRpb24KCSAgRml4ZXMgIzYxMDI5NgoKMjAxMC0wMi0xNyAxODowNjoyOSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhZGQgZHVyYXRpb25zIG1vZHVsbyAxPDwzMgoJICBGb3IgY2FsY3VsYXRpbmcgdGhlIGR1cmF0aW9ucyBvZiBlYWNoIHNhbXBsZSwgd2UgYXJlIHN1cHBvc2VkIHRvIGFkZCBlYWNoCgkgIGR1cmF0aW9uIG1vZHVsbyAxPDwzMiBzbyBtYWtlIHRoZSBlbGFwc2VkIHRpbWUgY291bnRlciBhIHVpbnQzMi4KCSAgRml4ZXMgIzYxMDI4MAoKMjAxMC0wMi0xNiAyMTowNToyNCArMDEwMCAgQW5kZXJzIFNrYXJncmVuIDxhbmRlcnMuc2thcmdyZW4gYXQgYXhpcy5jb20+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgIG11bHRpcGFydGRlbXV4OiBpbXByb3ZlIGhlYWRlciBtaW1lLXR5cGUgcGFyc2luZwoJICBNYWtlIHRoZSBoYW5kaW5nIG9mIHRoZSBtaW1lIHR5cGUgd2l0aGluIHRoZSAiYm91bmRhcnkiIGEgYml0IGxlc3MgbmFpdmUuCgkgIFRoZSBzdGFuZGFyZCBmb3IgTUlNRSBhbGxvd3MgcGFyYW1ldGVycyB0byBmb2xsb3cgdGhlICJ0eXBlIiAvICJzdWJ0eXBlIgoJICBjbGF1c2Ugc2VwYXJhdGVkIGZyb20gdGhlIG1pbWUgdHlwZSBieSAnOycuCgkgIE1vZGlmaWVzIHRoZSBtdWx0aXBhcnRkZW11eGVyJ3MgaGVhZGVyIHBhcnNpbmcgc28gaXQgZG9lc250IGFzc3VtZQoJICB0aGUgd2hvbGUgbGluZSBhZnRlciAiY29udGVudC10eXBlOiIgaXMgdGhlIG1pbWUgdHlwZSBhbmQgdGh1cyBtYWtlcyBpdCBhIGJpdAoJICBtb3JlIHJlc2lsaWVudCB0byBmaW5kaW5nIGFic3VyZCBtaW1lIHR5cGVzIGluIHRoZSBjYXNlIHdoZXJlIHBhcmFtZXRlcnMgYXJlCgkgIGFkZGVkLgoJICBGaXhlcyAjNjA0NzExCgoyMDEwLTAyLTE2IDE5OjUzOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhdm9pZCBzdG9wcGluZyBOVUxMIHRhc2tzCgkgIENoZWNrIHRoZSB0YXNrIGZvciBOVUxMLCBpdCBjb3VsZCBiZSBwYXVzZWQgYW5kIHNldCB0byBOVUxMIGJlZm9yZS4KCjIwMTAtMDItMTYgMTY6MjI6MjggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggQUxBQyBjb2RlYy1kYXRhIGhhbmRsaW5nCgkgIEFMQUMgY29kZWMtZGF0YSBhcHBhcmVudGx5IGNvbWVzIGluIChhdCBsZWFzdCkgdHdvIGZsYXZvdXJzIChtb3YsIG1wNCksCgkgIHNvIHVzZSBhdG9tIGJhc2VkIHBhcnNpbmcgdG8gcmV0cmlldmUgcmVxdWlyZWQgZGF0YSwgcmF0aGVyIHRoYW4KCSAgYWltaW5nIGZvciBhIHNwZWNpZmljIG9mZnNldC4KCSAgU2VlIGFsc28gIzU4MDczMS4KCjIwMTAtMDItMTYgMTU6NTA6MjMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggZGVidWcgbWVzc2FnZQoKMjAxMC0wMi0xMSAxOTozOTowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuaDoKCSAgcXRkZW11eDogaGFuZGxlIHNpZ25lZCB2YWx1ZXMgaW4gM0dQUCBsb2NhdGlvbiB0YWcKCjIwMTAtMDItMDggMjE6MzU6NTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDEwLTAyLTE2IDE1OjAwOjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHJlc2V0IHNvbWUgbW9yZSBzdHJlYW0gc3RhdGUgYWZ0ZXIgc2VlawoJICBJbiBwYXJ0aWN1bGFyLCBmaXhlcyBub24tZmx1c2hpbmcgc2Vlay4KCjIwMTAtMDItMTYgMTQ6NDQ6MTEgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRml4IGZyYW1lIHJhdGUgY2FwIHJlZ3Jlc3Npb24KCSAgTG9vayBmb3IgYSBub24temVybyBtaW5fZHVyYXRpb24gZHVyaW5nIGluaXRpYWxpc2F0aW9uIHRvIGF2b2lkCgkgIGluY29ycmVjdCBmcmFtZSByYXRlIGNhcHMuCgoyMDEwLTAyLTE2IDEwOjEzOjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBzeXMvdjRsMi9nc3R2NGwyYnVmZmVycG9vbC5jOgoJICB2NGwyOiBsb2cgbW9yZSBkZXRhaWxzIGluIGJ1ZmZlciBwb29sIGZpbmFsaXplCgkgIEhlbHBzIHRvIGFsaWduIHdpdGggdGhlIGxvZ2dpbiBmcm9tIGxpYnY0bC4KCjIwMTAtMDItMTYgMTA6MTE6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogaW5pdCBkYXRhc3RydWN0dXJlcyBhZnRlciBwcmUtY29uZGl0aW9ucyBjaGVja3MKCjIwMTAtMDItMTYgMTA6MTA6NDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogYWRkIGEgZml4bWUgZm9yIGhhbmRsaW5nIG90aGVyIFlVViB2YXJpYW50cwoKMjAxMC0wMi0xNiAwMTo0MDoxOSArMDAwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thOiBmaXggR1NUX0VMRU1FTlRfRVJST1IgdXNhZ2UKCSAgRml4ZXMgIzYxMDA1My4KCjIwMTAtMDItMTYgMDA6NTA6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCB1cCBHU1RfQ1hYRkxBR1MgcHJvcGVybHkKCSAgV2UgZG9uJ3Qgd2FudCBDIHNwZWNpZmljIGZsYWdzIGluIEdTVF9DWFhGTEFHUywgc28gYmFzZSBpdCBvbiB0aGUKCSAgR1NUX0NGTEFHUyB0aGF0IG9ubHkgY29udGFpbnMgdGhlIHBrZy1jb25maWcgQ0ZMQUdTIGJ1dCBub25lIG9mCgkgIHRoZSBHU1RfT1BUSU9OX0NGTEFHUy4gQWxzbywgd2Ugb25seSBuZWVkIHRoZSBsb2NhbCBpbmNsdWRlcyBvbmNlLgoJICBGaXggdHlwbyBhcyB3ZWxsIChHU1RfRkxBR1MgLT4gR1NUX0NGTEFHUykuCgoyMDEwLTAyLTE1IDIzOjEzOjQ2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYmFzZSBHU1RfQ1hYRkxBR1Mgb24gLS1jZmxhZ3MgZnJvbSBwa2ctY29uZmlnCgkgIHBrZy1jb25maWcgc2V0cyBHU1RfQ0ZMQUdTIGFuZCBHU1RfTElCUy4gV2UgbmVlZCB0byB1c2UgQ0ZMQUdTIGFzIGEgc3RhcnRpbmcKCSAgcG9pbnQgZm9yIGZvciBib3RoIEMgYW5kIENYWCBzZXR0aW5ncy4KCjIwMTAtMDEtMjAgMTg6NTI6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBiaW46IHJlbW92ZSB1c2Ugb2YgbnRwX25zX2Jhc2UKCjIwMTAtMDEtMjAgMTg6MjI6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBydHBiaW46IHJlbW92ZSBtb3JlIG50cG5zdGltZSBhbmQgY2xlYW51cHMKCSAgUmVtb3ZlIHNvbWUgY29kZSB3aGVyZSB3ZSBwYXNzIG50cG5zdGltZSBhcm91bmQsIHdlIGNhbiBkbyBtb3N0IHRoaW5ncyB3aXRoIHRoZQoJICBydW5uaW5nX3RpbWUganVzdCBmaW5lLgoJICBSZW5hbWUgYSB2YXJpYWJsZSBpbiB0aGUgQXJyaXZhbFN0YXRzIHN0cnVjdCBzbyB0aGF0IGl0J3MgY2xlYXIgdGhhdCB0aGlzIGlzIHRoZQoJICBjdXJyZW50IHN5c3RlbSB0aW1lLgoKMjAxMC0wMS0yMCAxODoxOTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBydHBzb3VyY2U6IHVzZSBydW5uaW5nX3RpbWUgZm9yIGppdHRlcgoJICBVc2UgdGhlIHJ1bm5pbmdfdGltZSB0byBjYWxjdWxhdGUgdGhlIGppdHRlciBpbnN0ZWFkIG9mIHRoZSBudHAgdGltZS4gUGFydCBvZgoJICB0aGUgcGxhbiB0byBnZXQgcmlkIG9mIG50cG5zYmFzZS4KCjIwMTAtMDEtMjAgMTc6MDQ6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIHJ0cGJpbjogY2hhbmdlIGhvdyBOVFAgdGltZSBpcyBjYWxjdWxhdGVkIGluIFJUQ1AKCSAgRG9uJ3QgY2FsY3VsYXRlIHRoZSBOVFAgdGltZSBiYXNlZCBvbiB0aGUgcnVubmluZ190aW1lIG9mIHRoZSBwaXBlbGluZSBidXQgZnJvbQoJICB0aGUgc3lzdGVtY2xvY2suIFRoaXMgYWxsb3dzIHVzIHRvIGdlbmVyYXRlIG1vcmUgYWNjdXJhdGUgTlRQIHRpbWVzdGFtcHMgaW4gY2FzZQoJICB0aGUgc3lzdGVtY2xvY2sgaXMgc3luY2hyb25pemVkIHdpdGggTlRQIG9yIHNpbWlsYXIuCgoyMDEwLTAyLTE1IDEyOjEyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMjogcHJpbnRmIGZvcm1hdCBzdHJpbmcgZml4CgkgIFRoZSBjb21waWxlciB3YW50cyBhIGNhc3QgaGVyZSBldmVuIHRob3VnaCB0aGUgdHlwZSBpcyBhbHJlYWR5CgkgIHR5cGVkZWZlZCBhcyA2NC1iaXQgaW50ZWdlciAocHJlc3VtYWJseSBiZWNhdXNlIGdsaWIgaGFzIHR5cGVkZWZlZAoJICBndWludDY0IHRvIHVuc2lnbmVkIGxvbmcgaGVyZSkuCgoyMDEwLTAyLTE1IDEwOjMzOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYTogZml4IHByaW50ZiBmb3JtYXQgc3RyaW5nCgoyMDEwLTAyLTE1IDAwOjUwOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9yYXcxMzk0L2dzdDEzOTRjbG9jay5oOgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5oOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuaDoKCSAgcmF3MTM5NCwgbWF0cm9za2EsIHJ0cG1hbmFnZXI6IHJlbW92ZSBwYWRkaW5nIGZyb20gc3RydWN0dXJlcwoJICBOb25lIG9mIHRoZXNlIGVsZW1lbnQgYW5kIGNsYXNzIHN0cnVjdHVyZXMgYXJlIGluIHB1YmxpYyBoZWFkZXJzLAoJICBzbyBkb24ndCBuZWVkIHBhZGRpbmcuCgoyMDEwLTAyLTE1IDAwOjQ3OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdG9yIGNvbW1lbnQKCjIwMTAtMDItMTUgMDA6NDU6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGFkZCBjb21tZW50IGZvciB0cmFuc2xhdG9ycyBmb3IgJ3ggYnkgeScgbWVzc2FnZQoJICBGaXhlcyAjNjA5NzI0LgoKMjAxMC0wMi0xNSAwMToyODo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSAgY2Fpcm9yZW5kZXI6IEZpeCBsZWFraW5nIG9mIHBhZCB0ZW1wbGF0ZXMKCjIwMTAtMDItMTUgMDA6NTA6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2hhcGV3aXBlLmM6CgkgIHNoYXBld2lwZTogRml4IHVuaXQgdGVzdCBmb3IgbGF0ZXN0IGNoYW5nZXMKCSAgTm93IHRoZSBhbHBoYSBpcyBtdWx0aXBsaWVkIHdpdGggdGhlIGFscmVhZHkgZXhpc3RpbmcgYWxwaGEKCSAgdmFsdWUgaW5zdGVhZCBvZiBzaW1wbHkgaWdub3JpbmcgaXQgYW5kIHRoZSBsdW1hL2Nocm9tYSB2YWx1ZXMKCSAgYXJlIGtlcHQsIGV2ZW4gaWYgdGhlIG91dHB1dCBpcyAxMDAlIHRyYW5zcGFyZW50LgoKMjAxMC0wMi0xNSAwMDo0NzowOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zaGFwZXdpcGUuYzoKCSAgc2hhcGV3aXBlOiBJbXByb3ZlIHVuaXQgdGVzdCBvdXRwdXQgb24gZXJyb3JzCgoyMDEwLTAyLTE0IDIzOjE3OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTZkYzc5MyB0byA0NGVjY2U3CgoyMDEwLTAyLTEzIDIzOjI4OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIC1iYXNlIHJlcXVpcmVtZW50IHRvIGdpdAoJICBGb3IgR1NUX1JJRkZfVEFHX0pVTlEuCgoyMDEwLTAyLTEyIDE2OjExOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSAgdjRsMnNpbms6IGNoYW5nZSByYW5rIHRvIE5PTkUgc28gaXQgaXMgbmV2ZXIgYXV0b3BsdWdnZWQKCjIwMTAtMDItMTMgMTg6MTg6NDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIGZsdmRlbXV4OiBBdWRpbyB0YWdzIHdpdGhvdXQgYW55IGNvbnRlbnQgYXJlIHZhbGlkLgoJICBXZSBzaWxlbnRseSBpZ25vcmUgdGhlbSBpbnN0ZWFkIG9mIGVycm9yaW5nIG91dC4KCjIwMTAtMDItMTMgMTg6MDc6NTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIGZsdmRlbXV4OiBGaXggR1NUX0NMT0NLX0RJRkYgdXNhZ2UuCgkgIEl0IHdhcyBwcmV2aW91c2x5IGNoZWNraW5nIGZvciBESUZGKGEsIGIgPiA2ICogR1NUX1NFQ09ORCkgaW5zdGVhZCBvZgoJICB0aGUgcHJvcGVyIERJRkYoYSxiKSA+IDYgKiBHU1RfU0VDT05ECgoyMDEwLTAyLTEzIDE2OjI3OjA3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogRG9uJ3QgZm9yZ2V0IHRvIHJlc2V0IHRoZSBpbmRleGVkIHZhcmlhYmxlIHdoZW4gY2xlYW5pbmcgdXAKCjIwMTAtMDItMTMgMTE6MDE6NTMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIGZsdmRlbXV4OiBTcGVlZHVwIEdzdEluZGV4IHVzYWdlCgkgIFVzZWQgdGhlIF9hZGRfYXNzb2NpYXRpb252IHZhcmlhbnQgb2YgR3N0SW5kZXggc2luY2Ugd2Uga25vdyBob3cgbWFueQoJICBhc3NvY2lhdGlvbnMgd2UncmUgYWRkaW5nLiBUcmltcyB1cCB0byA1MCUgZnJvbSBpbmRleCBnZW5lcmF0aW9uIHRpbWUuCgkgIE5vdGUgOiBJdCB3b3VsZCBiZSBncmVhdCBpZiB0aGUgaW5kZXggY291bGQgYmUgZ2VuZXJhdGVkIG9uIHRoZSBmbHkgb3IKCSAgb24gcmVxdWVzdCBhcyBvcHBvc2VkIHRvIGJlaW5nIGZ1bGx5IGNyZWF0ZWQgYXQgc3RhcnR1cC4KCjIwMTAtMDItMTIgMTk6MzI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBkb24ndCByZXN5bmMgdG8gaW52YWxpZCB0aW1lc3RhbXBzCgkgIElmIHdlIGRldGVjdCBiYWNrd2FyZCB0aW1lc3RhbXBzIG9uIHRoZSBzZXJ2ZXIsIGRvbid0IHRyeSB0byByZXN5bmMgd2hlbiB3ZQoJICBkb24ndCBoYXZlIGFuIGlucHV0IHRpbWVzdGFtcCAoc3VjaCBhcyB3aGVuIHVzaW5nIFJUU1Agb3ZlciBUQ1ApIGluc3RlYWQsIGRvCgkgIG5vdGhpbmcgYnV0IGFzc3VtZSB0aGUgdGltZXN0YW1wIHdhcyBvaywgaXQgd2lsbCBjb3JyZWN0IGl0c2VsZiB3aGVuIHRpbWUgZ29lcwoJICBmb3J3YXJkcy4KCjIwMTAtMDItMTIgMTc6MjE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBmaXggdHlwbwoKMjAxMC0wMi0xMiAxNjo0NzoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IHN0YXJ0IG91dCBhY3RpdmUgYW5kIG5vdCBidWZmZXJpbmcKCSAgVGhlcmUgaXMgbm8gbmVlZCB0byBzZXQgdGhlIGxhdGVuY3kgaW4gdGhlIGppdHRlYnVmZmVyIGluIF9pbml0LCB3ZSB3aWxsIHNldAoJICB0aGF0IGxhdGVyIHdoZW4gZ29pbmcgdG8gUEFVU0VELgoJICBTZXQgdGhlIGppdHRlcmJ1ZmZlciBhY3RpdmUgYW5kIG5vdCBidWZmZXJpbmcgd2hlbiBzdGFydGluZy4KCjIwMTAtMDEtMjcgMTc6NTc6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuaDoKCSAgcnRwYmluOiBtb3JlIGJ1ZmZlcmluZyB3b3JrCgkgIFdoZW4gZGVhY3RpdmF0aW5nIGppdHRlcmJ1ZmZlcnMgd2hlbiB0aGUgYnVmZmVyaW5nIHN0YXJ0cywga2VlcCB0aGUgY3VycmVudAoJICBwZXJjZW50IG9mIHRoZSBqaXR0ZXJidWZmZXIgYW5kIGFsc28gc2V0IHRoZSBqaXR0ZXJidWZmZXIgaW4gdGhlIGJ1ZmZlcmluZyBzdGF0ZQoJICBzbyB0aGF0IHdlIGtub3cgd2hlbiBpdCdzIGZpbGxlZCBhZ2Fpbi4KCSAgQWRkIHByb3BlcnR5IHRvIGdldCB0aGUgYnVmZmVyaW5nIHBlcmNlbnRhZ2Ugb2YgdGhlIGppdHRlcmJ1ZmZlci4KCjIwMDktMTAtMTQgMTY6Mjk6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgcnRwaml0dGVyYnVmZmVyOiBhZGp1c3QgbGF0ZW5jeSBpbiBidWZmZXIgbW9kZQoJICBXaGVuIHdlIGFyZSBpbiBidWZmZXIgbW9kZSwgYWRqdXN0IHRoZSBidWZmZXJpbmcgbG93L2hpZ2ggdGhyZXNob2xkcyBiYXNlZCBvbgoJICB0aGUgdG90YWwgY29uZmlndXJlZCBsYXRlbmN5LiBJZiB3ZSBkb24ndCBhbmQgdGhlcmUgaXMgYSBodWdlIHF1ZXVlIG9yIGVsZW1lbnQKCSAgd2l0aCBhIGJpZyBsYXRlbmN5IGRvd25zdHJlYW0gd2UgbWlnaHQgZHJhaW4gdGhlIGNvbXBsZXRlIHF1ZXVlIGltbWVkaWF0ZWx5IGFuZAoJICBzdGFydCBidWZmZXJpbmcgYWdhaW4uCgoyMDA5LTEwLTEyIDExOjU0OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogYWRkIHRzLW9mZnNldCB0byB0aW1lc3RhbXAKCSAgQWRkIHRoZSB0cy1vZmZzZXQgdG8gdGhlIGJ1ZmZlciB0aW1lc3RhbXAgdG8gZ2V0IHRoZSBmaW5hbCBvdXRwdXQgdGltZXN0YW1wIG9mCgkgIHRoZSBidWZmZXIuCgoyMDA5LTEwLTA4IDE5OjIzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLW1hcnNoYWwubGlzdDoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHJ0cGJpbjogZG8gbW9yZSBhY2N1cmF0ZSBidWZmZXIgb2Zmc2V0cwoJICBSZXR1cm4gdGhlIG5leHQgdGltZXN0YW1wIGluIHRoZSBqaXR0ZXJidWZmZXIuCgkgIFVzZSB0aGUgbWluLXRpbWVzdGFtcCBvZiB0aGUgaml0dGVyYnVmZmVycyB0byBjYWxjdWxhdGUgYW4gb2Zmc2V0IHNvIHRoYXQgdGhlCgkgIG5leHQgdGltZXN0YW1wIGlzIHB1c2hlZCB3aXRoIGEgdGltZXN0YW1wIGVxdWFsIHRvIHJ1bm5pbmdfdGltZS4KCSAgU3RhcnQgcHJvZHVjaW5nIHRpbWVzdGFtcHMgZnJvbSAwIGluIHRoZSBidWZmZXJpbmcgY2FzZSB0b28uCgoyMDA5LTEwLTA4IDE4OjQyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogb25seSBzdGFydCBidWZmZXJpbmcgd2hlbiA8IDEwMCUKCSAgT25seSBzdGFydCBidWZmZXJpbmcgd2hlbiB0aGUgcGVyY2VudGFnZSBtZXNzYWdlIGlzIDwgMTAwICUuCgoyMDA5LTEwLTA2IDEzOjM0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBydHBiaW46IGtlZXAgdHJhY2sgb2YgZWxhcHNlZCBwYXVzZSB0aW1lCgkgIEtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgd2Ugc3BlbmQgcGF1c2luZyB0aGUgaml0dGVyYnVmZmVycyB3aGVuIHRoZXkgd2VyZQoJICBidWZmZXJpbmcgYW5kIGRpc3RyaWJ1dGUgdGhpcyBlbGFwc2VkIHRpbWUgdG8gdGhlIGppdHRlcmJ1ZmZlcnMuCgkgIEFsc28ga2VlcCB0aGUgbGF0ZW5jeSBpbiBuYW5vc2Vjb25kIHByZWNpc2lvbi4KCjIwMDktMTAtMDYgMTM6MzM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmg6CgkgIGppdHRlcmJ1ZmZlcjoga2VlcCB0cmFjayBvZiBvZmZzZXQKCSAgS2VlcCB0cmFjayBvZiBhbiBvdXRnb2luZyBvZmZzZXQgdGhhdCB3ZSBhZGQgdG8gZWFjaCBvdXRnb2luZyBidWZmZXIgdG8KCSAgY29tcGVuc2F0ZSBmb3IgUEFVU0Ugd2hlbiBidWZmZXJpbmcuCgkgIEFkanVzdCB0aGUgb2Zmc2V0IHdoZW4gYWN0aXZhdGluZy4KCjIwMDktMTAtMDYgMTM6MzA6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiByZXBvcnQgbGV2ZWwgdXNpbmcgaGlnaCB3YXRlcm1hcmsKCjIwMDktMTAtMDUgMjE6MzE6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0cGJpbjogcGFzcyBydW5uaW5nX3RpbWUgdG8gaml0dGVyYnVmZmVyIHBhdXNlCgkgIFBhc3MgdGhlIGN1cnJlbnQgcnVubmluZyB0aW1lIHRvIHRoZSBqaXR0ZXJidWZmZXIgd2hlbiBwYXVzaW5nIG9yIHJlc3VtaW5nIHNvCgkgIHRoYXQgaXQgY2FsY3VsYXRlIHRoZSByaWdodCBvZmZzZXRzLgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgY29tbWVudHMuCgkgIFNldCB0aGUgZGVmYXVsdCBydHNwc3JjIGxhdGVuY3kgdG8gMiBzZWNvbmRzLgoKMjAwOS0xMC0wNSAyMDowOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgcnRwYmluOiBhZGQgc29tZSBjb21tZW50cwoKMjAwOS0xMC0wNSAxOTo0NTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmxpc3Q6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5oOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmg6CgkgIHJ0cGJpbjogbW9yZSBidWZmZXJpbmcgdXBkYXRlcwoJICBBZGQgc2lnbmFsIHRvIHBhdXNlIHRoZSBqaXR0ZXJidWZmZXIuIFRoaXMgd2lsbCBiZSBlbWl0dGVkIGZyb20gZ3N0cnRwYmluIHdoZW4KCSAgb25lIG9mIHRoZSBqaXR0ZXJidWZmZXJzIGlzIGJ1ZmZlcmluZy4KCSAgTWFrZSBydHBiaW4gY29sbGVjdCB0aGUgYnVmZmVyaW5nIG1lc3NhZ2VzIGFuZCBwb3N0IGEgbmV3IGJ1ZmZlcmluZyBtZXNzYWdlIHdpdGgKCSAgdGhlIG1pbiB2YWx1ZS4KCSAgUmVtb3ZlIHRoZSBzdGF0cyBjYWxsYmFjayBmcm9tIGppdHRlcmJ1ZmZlciBidXQgcGFzcyBhIHBlcmNlbnQgaW50ZWdlciB0bwoJICBmdW5jdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGJ1ZmZlcmluZyBzdGF0ZSBvZiB0aGUgaml0dGVyYnVmZmVyLiBUaGlzIGFsbG93cyB1cwoJICB0aGVuIHRvIHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2VzIGZyb20gb3V0c2lkZSBvZiB0aGUgaml0dGVyYnVmZmVyIGxvY2suCgoyMDA5LTEwLTA1IDEzOjMyOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBydHBiaW46IHByb3BhZ2F0ZSBidWZmZXItbW9kZSBwcm9wZXJ0eQoJICBQcm9wYWdhdGUgYnVmZmVyLW1vZGUgcHJvcGVydHkgdG8gdGhlIGppdHRlcmJ1ZmZlcnMuCgkgIEludGVyY2VwdCBCVUZGRVJJTkcgbWVzc2FnZXMgaW4gcnRwYmluCgoyMDA5LTEwLTAxIDE3OjE0OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuaDoKCSAgaml0dGVyYnVmZmVyOiBkbyBtb3JlIGJ1ZmZlcmluZyBpbXBsZW1lbnRhdGlvbgoJICBBZGQgY2FsbGJhY2sgZm9yIGJ1ZmZlcmluZyBzdGF0cy4KCSAgQ29uZmlndXJlIHRoZSBsYXRlbmN5IGluIHRoZSBqaXR0ZXJidWZmZXIgaW5zdGVhZCBvZiBwYXNzaW5nIGl0IHdpdGggX2luc2VydC4KCSAgQ2FsY3VsYXRlIGJ1ZmZlcmluZyBsZXZlbHMgd2hlbiBwdXNoaW5nIGFuZCBwb3BwaW5nCgkgIFBvc3QgYnVmZmVyaW5nIG1lc3NhZ2VzLgoKMjAwOS0xMC0wMSAxMjo0NjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmg6CgkgIGppdHRlcmJ1ZmZlcjogZmxlc2ggb3V0IGJ1ZmZlcmluZyBtb2RlIHNvbWUgbW9yZQoJICBBZGQgYSBidWZmZXJpbmcgc3RhdGUgdG8gdGhlIGppdHRlcmJ1ZmZlciBhbmQgd2FpdCB1bnRpbCBidWZmZXJpbmcgZW5kcyBiZWZvcmUKCSAgcHVzaGluZyBvdXQgcGFja2V0cy4KCjIwMDktMTAtMDEgMTI6MDk6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogaG9vayB1cCB0aGUgbW9kZSBwcm9wZXJ0eQoJICBFeHBvc2UgYSBtb2RlIHByb3BlcnR5IG9uIHRoZSBqaXR0ZXJidWZmZXIuCgkgIEZpeCB0aGUgY2FzZSB3aGVyZSB0aW1lc3RhbXBzIGFyZSAtMSBpbiB0aGUgY2hlY2sgZm9yIG91dGdvaW5nIHRpbWVzdGFtcHMuCgoyMDA5LTEwLTAxIDExOjIwOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBqaXR0ZXJidWZmZXI6IGFkZCBidWZmZXJpbmcgbW9kZSBvcHRpb25zCgkgIEFkZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBkaWZmZXJlbnQgYnVmZmVyaW5nIG1vZGVzIHRoYXQgdGhlIGppdHRlcmJ1ZmZlciB3aWxsCgkgIHN1cHBvcnQuIERlZmF1bHQgdG8gdGhlIGN1cnJlbnQgc2xhdmUgbW9kZS4KCjIwMTAtMDItMTIgMTU6NTQ6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMi5jOgoJICB2NGxzaW5rOiBsb3dlciByYW5rIHRvIE1BUkdJTkFMCgoyMDEwLTAyLTEyIDE2OjA2OjQ1ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZkZW11eDogT2J0YWluIHRoZSBpbmRleCBmcm9tIHRoZSBlbmQgb2YgYW4gZmx2IGZpbGUgaW4gcHVzaCBtb2RlCgkgIEFsbG93cyBmb3IgYmV0dGVyIHN1cHBvcnQgb2Ygc2Vla2luZyBpbiBmbHYgZmlsZXMgd2hlbiBpbiBwdXNoIG1vZGUKCjIwMTAtMDEtMjEgMTE6NTU6MTUgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogRHJvcCB2aWRlbyBmcmFtZXMgdXAgdG8gdGhlIGRlc2lyZWQga2V5ZnJhbWUgYWZ0ZXIgYSBzZWVrCgkgIFRoZSBhdWRpbyBwYWNrZXRzIGluIEFWSSBhcmUgZ2VuZXJhbGx5IG11eGVkIH4wLjVzIGJlZm9yZSB0aGUKCSAgY29ycmVzcG9uZGluZyB2aWRlbyBwYWNrZXQuIFRoaXMgY2hhbmdlcyBjYXVzZXMgZG93bnN0cmVhbSB0byBvbmx5CgkgIHJlY2VpdmUgcGFja2V0cyB3aXRoIHJvdWdobHkgY29ycmVzcG9uZGluZyB0aW1lc3RhbXBzLgoKMjAxMC0wMS0xOSAxODozNTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IG1vcmUgRElTQ09OVCBoYW5kbGluZwoJICBBZGQgc29tZSBkZWJ1ZyBpbiB0aGUgRElTQ09OVCBoYW5kbGluZyBjb2RlLgoJICBXaGVuIHdlIHJlY2VpdmUgYSBESVNDT05UIGluIHB1c2ggbW9kZSwgbWFyayBhbGwgc3RyZWFtcyBhcyBESVNDT05ULgoKMjAxMC0wMS0xOSAxMDo1MTowOCArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogRml4IF9oYW5kbGVfc2Vla19wdXNoICgpIGFuZCBuZXcgc2VnZW1lbnQgYmVoYXZpb3VyCgoyMDEwLTAxLTE4IDE3OjEzOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogY2xlYW51cHMKCSAgTWFrZSBzdXJlIHdlIHJlc2V0IHRoZSBkZW11eGVyIGNvcnJlY3RseSB3cnQgcGFyc2luZyB0aGUgaW5kZXguCgkgIERvbid0IGxlYWsgcGVuZGluZyBzZWVrIGV2ZW50cy4KCSAgUmVuYW1lIHNvbWUgbWV0aG9kcyB0byByZWZsZWN0IHdoYXQgdGhleSBkbyBhbmQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggc2ltaWxhcgoJICBtZXRob2QgbmFtZXMuCgkgIFRyeSB0byBtYWtlIHRoZSBzZWVraW5nIHRocmVhZHNhZmUgYnkgcHJvdGVjdGluZyB0aGUgc2V0dXAgY29kZSB3aXRoIGEgbG9jay4KCSAgTWFrZSBzdXJlIHdlIHBvc3QgZXJyb3JzIHdoZW4gYSBzZWVrIGZhaWxzLgoKMjAxMC0wMS0xOCAxMTo0NTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogcmVuYW1lIHNvbWUgdmFyaWFibGVzCgkgIHNlZWtfZXZlbnQgLT4gc2VnX2V2ZW50CgkgIGV2ZW50X3NlZWsgLT4gc2Vla19ldmVudAoKMjAxMC0wMS0xNSAxODowMDo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHRha2UgZmFsbGJhY2sgZHVyYXRpb24gZnJvbSBhdmloCgkgIFdoZW4gd2UgaGF2ZSBub3QgcGFyc2VkIGFueSBpbmRleGVzIHlldCwgd2UgZG9uJ3Qga25vdyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJlYW1zCgkgIGFuZCB3ZSBtdXN0IHRha2UgdGhlIGxlbmd0aCBnaXZlbiBpbiB0aGUgYXZpaCBhcyBhIGZhbGxiYWNrLgoJICBBdm9pZCBzb21lIHR5cGVjaGVja2luZy4KCjIwMDktMTItMDQgMTU6MTM6MTIgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogUHVzaCBtb2RlIHNlZWtpbmcgc3VwcG9ydAoKMjAxMC0wMi0wMSAxNjowNDo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogY2xlYW51cCBwcm9wZXJ0aWVzCgkgIFVzZSBtb3JlIGRlZmF1bHQgY29uc3RhbnRzLgoJICBVc2Ugc3RhdGljIHN0cmluZ3MgcGFyYW0gZmxhZy4KCSAgSW5pdCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgaW5zdGVhZCBvZiBsZXR0aW5nIGdvYmplY3QgZG8gdGhpcy4KCjIwMTAtMDItMTIgMTU6MzQ6MzggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJICBzcGVleDogYWRkIG1pc3NpbmcgaW5jbHVkZQoKMjAxMC0wMi0wNSAxMzoyODo1MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0dGFnaW5qZWN0LmM6CgkgIHRhZ2luamVjdDogZml4IG11bHRpLXZhbHVlIHRhZyBleGFtcGxlCgkgIFdlIG5lZWQgdG8gdXNlIHt9IHRvIHNwZWNpZnkgYSBsaXN0LgoKMjAxMC0wMi0wMSAxNDo0MzowNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgYXZpLHdhdjogYWxzbyBoYW5kbGUgSlVOUSBjaHVuayBpbiBhZGRpdGlvbiB0byBKVU5LCgoyMDEwLTAyLTA0IDE1OjU5OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJICBydHBwYXk6IGRvbid0IGlnbm9yZSByZXN1bHQgZnJvbSBzZXRfb3V0Y2FwcwoJICBzZXRfb3V0Y2FwcyBjYW4gZmFpbCBhbmQgd2UgbmVlZCB0byBwcm9wYWdhdGUgdGhlIHJlc3VsdCB1cHN0cmVhbS4KCjIwMTAtMDItMDQgMTU6MzY6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIGZsdnBhcnNlOiBmaXggY29uZnVzaW5nIGRlYnVnIG1lc3NhZ2VzCgoyMDEwLTAxLTI3IDEzOjI4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogYWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvCgoyMDEwLTAxLTI3IDEzOjI2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGF2b2lkIHNlZ2ZhdWx0IHdoZW4gc2h1dHRpbmcgZG93bgoJICB3aGVuIHdlIGFyZSBzaHV0dGluZyBkb3duLCB3ZSBtaWdodCBzdGlsbCByZWNlaXZlIHN0YXRlIHVwZGF0ZXMgZnJvbSBwdWxzZWF1ZGlvCgkgIGJ1dCBzaW5jZSB3ZSBhcmUgdW5wYXJlbnRlZCB3ZSBzaG91bGQgbm90IGRvIGFueXRoaW5nIHdpdGggdGhlIE5VTEwgcGFyZW50CgkgIGFueW1vcmUuCgoyMDEwLTAxLTI2IDE4OjMzOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIHZpZGVvbWl4ZXI6IGZpeCB0aW1lc3RhbXAgcHJvYmxlbXMKCSAgV2hlbiB0aGUgcGFkIHdpdGggdGhlIGhpZ2hlc3QgZnJhbWVyYXRlIGdvZXMgRU9TLCBpbnN0ZWFkIG9mIG5vdCB0aW1lc3RhbXBpbmcKCSAgb3V0cHV0IGJ1ZmZlcnMsIGludGVwb2xsYXRlIHRpbWVzdGFtcHMgYW5kIGR1cmF0aW9ucyBmcm9tIHRoZSBsYXN0IHNlZW4gb25lcy4KCSAgRml4ZXMgIzYwODAyNgoKMjAxMC0wMi0xMiAxMTozMjo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkgIGRvY3M6IFVwZGF0ZSBkb2N1bWVudGF0aW9uCgoyMDEwLTAyLTEyIDExOjE4OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaGFwZXdpcGUueG1sOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIE1vdmVkICdzaGFwZXdpcGUnIGZyb20gLWJhZCB0byAtZ29vZAoJICBGaXhlcyBidWcgIzU4NDUzNi4KCjIwMTAtMDItMTAgMTA6NTI6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDI5LzI5XSBzaGFwZXdpcGU6IFByZXNlcnZlIHRoZSBpbnB1dCBjb2xvciB2YWx1ZXMgaW4gYWxsIGNhc2VzCgoyMDEwLTAyLTEwIDEwOjUwOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAyOC8yOV0gc2hhcGV3aXBlOiBTY2FsZSBtYXNrIGFscGhhIHZhbHVlcyBieSB0aGUgc291cmNlIGFscGhhIHZhbHVlcwoKMjAxMC0wMi0xMCAxMDo0MjozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMjcvMjldIHNoYXBld2lwZTogRml4IEFSR0IgcHJvY2Vzc2luZwoKMjAxMC0wMi0xMCAxMDozNDoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvc2hhcGV3aXBlLWV4YW1wbGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDI2LzI5XSBzaGFwZXdpcGU6IFByaW50IHNvbWUgbW9yZSBkZXRhaWxzIG9uIGVycm9yL3dhcm5pbmcgbWVzc2FnZXMKCjIwMTAtMDItMDggMDg6MjY6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDI1LzI5XSBzaGFwZXdpcGU6IEltcHJvdmUvYWRkIGRlYnVnIG91dHB1dAoKMjAxMC0wMi0wOCAwODoyMDo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMjQvMjldIHNoYXBld2lwZTogQWx3YXlzIGhvbGQgdGhlIG1hc2sgbXV0ZXggYmVmb3JlIHNpZ25hbGxpbmcgdGhlIEdDb25kCgoyMDEwLTAyLTA4IDA4OjE5OjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAyMy8yOV0gc2hhcGV3aXBlOiBNb3ZlIGNoYWluIGZ1bmN0aW9uIGVycm9yIGNhc2VzIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uIGFuZCBhZGQgdXNlZnVsIGRlYnVnIG91dHB1dAoKMjAxMC0wMi0wOCAwODoxMjoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMjIvMjldIHNoYXBld2lwZTogRml4IHJhY2UgY29uZGl0aW9uIGR1cmluZyBzaHV0ZG93biB0aGF0IGNhbiBsZWFkIHRvIGEgZGVhZGxvY2sKCjIwMTAtMDItMDggMDg6MTE6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDIxLzI5XSBzaGFwZXdpcGU6IERyb3AgbWFzayBidWZmZXIgb24gRkxVU0ggZXZlbnRzCgoyMDEwLTAyLTA4IDA4OjA5OjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCAyMC8yOV0gc2hhcGV3aXBlOiBVcGRhdGUgY29weXJpZ2h0IHllYXIKCjIwMTAtMDItMDggMDg6MDg6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDE5LzI5XSBzaGFwZXdpcGU6IERvbid0IHJlc2V0IHByb3BlcnRpZXMgd2hlbiBnb2luZyBQQVVTRUQtPlJFQURZCgkgIEFsc28gdXNlIGRlZmluZXMgZm9yIHRoZSBkZWZhdWx0IHZhbHVlcyBvZiB0aGUgcHJvcGVydGllcy4KCjIwMTAtMDEtMTYgMTY6NTI6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDE4LzI5XSBzaGFwZXdpcGU6IFJlcGxhY2UgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBpbiB0aGUgaW5uZXIgcHJvY2Vzc2luZyBsb29wcyBieSBpbnRlZ2VyIGFyaXRobWV0aWMKCjIwMDktMTItMTAgMTA6NDA6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDE3LzI5XSBzaGFwZXdpcGU6IERvbid0IGRvIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBwcm9jZXNzaW5nIGxvb3AKCSAgTG93ZXJzIHRoZSB0aW1lIHRha2VuIHRoZXJlIGluIG15IHRlc3RjYXNlIGZyb20gNi45MSUgdG8gNi4yMCUKCSAgYXMgbWVhc3VyZWQgYnkgY2FsbGdyaW5kLgoKMjAwOS0wNy0wOCAxNzo1OToyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTYvMjldIHNoYXBld2lwZTogQWRkIEJHUkEgc3VwcG9ydCBmb3IgdmlkZW8gaW4vb3V0cHV0CgoyMDA5LTA3LTAyIDExOjI0OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxNS8yOV0gc2hhcGV3aXBlOiBBZGQgc3VwcG9ydCBmb3IgQVJHQiB2aWRlbyBpbnB1dC9vdXRwdXQKCjIwMDktMDYtMjMgMTg6MjM6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDE0LzI5XSBzaGFwZXdpcGU6IENvcnJlY3RseSBoYW5kbGUgMC8xIGZwcwoKMjAwOS0wNi0wOSAxOToxNDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5oOgoJICBbTU9WRUQgRlJPTSBCQUQgMTMvMjldIHNoYXBld2lwZTogSW1wbGVtZW50IGJhc2ljIFFvUwoJICBUaGlzIGNoYW5nZSBpcyBiYXNlZCBvbiBUaW0ncyBRb1MgaW1wbGVtZW50YXRpb24KCSAgZm9yIGpwZWdkZWMuCgoyMDA5LTA2LTA5IDE4OjQ1OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMi8yOV0gc2hhcGV3aXBlOiBQcm94eSBxdWVyaWVzIG9uIHRoZSB2aWRlbyBwYWRzIHRvIHRoZSBjb3JyZWN0IHBlZXJzCgoyMDA5LTA2LTA5IDE4OjM3OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAxMS8yOV0gc2hhcGV3aXBlOiBQcm94eSBidWZmZXJhbGxvYyBvbiB0aGUgdmlkZW8gc2lua3BhZAoKMjAwOS0wNi0wOSAxODoyNToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMTAvMjldIHNoYXBld2lwZTogVHJ5IHRvIHdvcmsgaW5wbGFjZSBpZiBwb3NzaWJsZQoJICBUaGlzIHNhdmVzIG9uZSBuZXcsIGxhcmdlIGFsbG9jYXRpb24gcGVyIGZyYW1lIGZvciB0aGUKCSAgbW9zdCBjYXNlcy4KCjIwMDktMDYtMDQgMDg6NTY6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2hhcGV3aXBlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwOS8yOV0gc2hhcGV3aXBlOiBJbmNyZWFzZSB0aW1lb3V0IG9mIHRoZSB1bml0IHRlc3QKCjIwMDktMDYtMDEgMjE6MjQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDA4LzI5XSBzaGFwZXdpcGU6IEZpeCBzb21lIGlzc3VlcyB0aGF0IHdlcmUgZXhwb3NlZCBieSB0aGUgbmV3IHVuaXQgdGVzdAoKMjAwOS0wNi0wMSAyMToyNDoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDA3LzI5XSBzaGFwZXdpcGU6IEFkZCB1bml0IHRlc3QgZm9yIHNoYXBld2lwZQoKMjAwOS0wNS0zMSAyMTozMzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDYvMjldIHNoYXBld2lwZTogQWRkIGRvY3VtZW50YXRpb24gYW5kIGludGVncmF0ZSBpbnRvIHRoZSBidWlsZCBzeXN0ZW0KCjIwMDktMDUtMjkgMjE6MDc6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSAgW01PVkVEIEZST00gQkFEIDA1LzI5XSBzaGFwZXdpcGU6IEFkanVzdCBib3JkZXIgdG8gc3RpbGwgaGF2ZSBldmVyeXRoaW5nIHRyYW5zcGFyZW50IGF0IDEuMCBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQKCjIwMDktMDUtMjkgMTY6NTU6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3NoYXBld2lwZS9nc3RzaGFwZXdpcGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvc2hhcGV3aXBlL3NoYXBld2lwZS1leGFtcGxlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCAwNC8yOV0gc2hhcGV3aXBlOiBEaXZpZGUgdGhlIGJvcmRlciB2YWx1ZSBieSB0d28sIG90aGVyd2lzZSB3ZSB1c2UgYSB0d2ljZSBhIHdpZGUgYm9yZGVyCgoyMDA5LTA1LTI5IDE2OjUxOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmM6CgkqIGdzdC9zaGFwZXdpcGUvZ3N0c2hhcGV3aXBlLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9zaGFwZXdpcGUtZXhhbXBsZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDMvMjldIHNoYXBld2lwZTogQWRkIGJvcmRlciBwcm9wZXJ0eSB0byBhbGxvdyBzbW9vdGggYm9yZGVycwoJICAuLi5hbmQgdXNlIGEgYm9yZGVyIG9mIDAuMDEgaW4gdGhlIGV4YW1wbGUgYXBwbGljYXRpb24uCgoyMDA5LTA1LTI5IDE2OjAwOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9NYWtlZmlsZS5hbToKCSAgW01PVkVEIEZST00gQkFEIDAyLzI5XSBzaGFwZXdpcGU6IEZpeCBNYWtlZmlsZSBvZiB0aGUgZXhhbXBsZSBhcHBsaWNhdGlvbgoKMjAwOS0wNS0yOSAxNTozMjoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvc2hhcGV3aXBlL01ha2VmaWxlLmFtOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5jOgoJKiBnc3Qvc2hhcGV3aXBlL2dzdHNoYXBld2lwZS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9zaGFwZXdpcGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3NoYXBld2lwZS9zaGFwZXdpcGUtZXhhbXBsZS5jOgoJICBbTU9WRUQgRlJPTSBCQUQgMDEvMjldIHNoYXBld2lwZTogQWRkIGEgc2ltcGxlIHNoYXBld2lwZSB0cmFuc2l0aW9uIGZpbHRlciAmIGV4YW1wbGUgYXBwbGljYXRpb24KCjIwMTAtMDItMDYgMTg6MTk6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBPbmx5IGZsdXNoIHRoZSBGTEFDIGRlY29kZXIgaWYgaXQgd2Fzbid0IGNyZWF0ZWQgcmlnaHQgYmVmb3JlCgkgIElmIHRoZSBGTEFDIGRlY29kZXIgaXMgZmx1c2hlZCwgaXRzIHN0YXRlIHdpbGwgYmUgc2V0IHRvIGZyYW1lLXN5bmMgbW9kZSwKCSAgd2hpY2ggd2lsbCBzeW5jIHRvIHRoZSBuZXh0ICphdWRpbyogZnJhbWUgYW5kIG1ha2VzIGl0IGlnbm9yZSBhbGwgaGVhZGVycy4KCSAgVGhpcyBwcmV2ZW50ZWQgdGFncyBhbmQgZXZlcnl0aGluZyBlbHNlIHRvIHNob3cgdXAgd2hlbiB1c2luZyBmbGFjZGVjCgkgIGluIHB1c2ggbW9kZS4KCSAgRml4ZXMgYnVnICM2MDg4NDMuCgoyMDEwLTAyLTExIDAxOjEyOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1BSU5UQUlORVJTOgoJICBVcGRhdGUgTUFJTlRBSU5FUlMKCjIwMTAtMDItMTIgMDA6MDM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCSAgU2x1c2h5IGZyZWV6ZSByZW1haW5zIGluIGVmZmVjdC4KCj09PSByZWxlYXNlIDAuMTAuMTggPT09CgoyMDEwLTAyLTEwIDIzOjE4OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXk0bWVuYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTgKCjIwMTAtMDItMTAgMjM6MTc6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMi0xMCAyMDozNjo1NiArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiB0ZW1wb3Jhcnkgc2FmZXR5IGNoZWNrIHRvIGF2b2lkIGNyYXNoZXMgd2l0aCBhIGNlcnRhaW4gZmlsZQoJICBBZGQgdGVtcG9yYXJ5IGNoZWNrIHRvIGF2b2lkIGNyYXNoZXMgd2l0aCBhIGNlcnRhaW4gZmlsZSB3aGVuIHNlZWtpbmcKCSAgdW50aWwgdGhlIHJlYWwgY2F1c2Ugb2YgdGhpcyBpcyBmaWd1cmVkIG91dC4gU2VlICM2MDk0MDUuCgoyMDEwLTAyLTA1IDE4OjA1OjM5ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogc2tpcCB1bmtub3duIGF0b21zIHdoZW4gbG9va2luZyBmb3IgbW9vdgoJICBGaXhlcyBidWcgIzYwOTEwNwoKMjAxMC0wMi0wNSAwMjoxMzozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy4zIHByZS1yZWxlYXNlCgoyMDEwLTAyLTA0IDE5OjEwOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9odS5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDItMDQgMTQ6NDY6NTYgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5oOgoJICBxdGRlbXV4OiBTZXQgdGhlIHNlZ21lbnQgc3RhcnQgdGltZSB0byB0aGUgcmVxdWVzdGVkIHNlZWsgdGltZSBmb3Igbm9uLWtleWZyYW1lIHNlZWtzCgoyMDEwLTAyLTA0IDEyOjAwOjAzICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEZpeCB0aW1lIHJldHVybmVkIGZvciBpbmRleCBhdCBhIGJ5dGUgb2Zmc2V0CgkgIFRoZSBsb2dpYyBmb3Igc2VhcmNoaW5nIGZvcndhcmRzL2JhY2t3YXJkcyB3YXMgc3dhcHBlZAoKMjAxMC0wMi0wMSAxOToyMjoyNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSAgc3BlZXhkZWM6IGluaXRpYWxpemUgc3RlcmVvIGRlY29kaW5nIHN0YXRlCgoyMDEwLTAxLTI4IDE4OjU4OjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBpbXByb3ZlIHN0cmVhbSBzeW5jaHJvbml6YXRpb24KCSAgSW4gcGFydGljdWxhciwgZG8gbm90IG1ha2UgaXQgc2VuZCBuZXdzZWdtZW50IHVwZGF0ZXMgdGhhdAoJICBzb3J0LW9mIGNvbnRyYWRpY3QgdGhlIGluZGVudGVkIHBsYXliYWNrIHNlZ21lbnQgKGUuZy4gc3RhcnQgdGltZSkuCgoyMDEwLTAxLTI4IDE4OjUzOjE4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBmaXggYnJpZGdpbmcgKHRpbWUpIGdhcHMgaW4gc3RyZWFtcwoJICBBcyBhIHNpZGUgZWZmZWN0LCBhdm9pZCBzZW5kaW5nIG5ld3NlZ21lbnQgdXBkYXRlcyB3aXRoIHN0YXJ0IHRpbWVzCgkgIHRoYXQgZ28gYmFjayBhbmQgZm9ydGgsIHdoaWNoIGxlYWRzIHRvIGJvZ3VzIGRvd25zdHJlYW0gcnVubmluZ190aW1lLgoJICBBbHNvIGZpeGVzIHNlZWtpbmcgaW4gYnVnICM2MDY3NDQuCgoyMDEwLTAxLTI4IDE4OjQ5OjU3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBmaXggc3RyZWFtIHN5bmNocm9uaXphdGlvbgoJICAuLiBieSBpbml0aWFsaXppbmcgc3RyZWFtcyBzdGFydGluZyBhdCAwLCBhcyB0aGF0IGlzIGJhc2ljYWxseQoJICB3aGVyZSB3ZSAnc2VlayB0bycgYXQgdGhlIHN0YXJ0IGFuZCBhc3N1bWUgc3RyZWFtcyB0byBzdGFydCBlbHNld2hlcmUuCgkgIEFsc28gZW5hYmxlcyBuZXdzZWdtZW50IHVwZGF0ZSBldmVudHMgZm9yIHN1YnRpdGxlIHN0cmVhbXMuCgoyMDEwLTAyLTAyIDEzOjQxOjAzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWc6IGRvbid0IGRpcmVjdGx5IGFjY2VzcyBtZXNzYWdlLCBzb21lIG1lc3NhZ2UgaGF2ZSBhcmdzCgkgIFRoaXMgY2F1c2VkIGJvZ3VzIG1lc3NhZ2VzLCBzdWNoIGFzIHJlcG9ydGVkIGluIGJ1ZyAjNjA3NDcxLgoKMjAxMC0wMi0wMiAwMDowMjozNCArMDAwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICBwbmc6IGZpeCBjb21waWxhdGlvbiB3aXRoIGxpYnBuZyAxLjQKCSAgcG5nX3NldF9ncmF5XzFfMl80X3RvXzgoKSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciBhIHdoaWxlIGFuZCB3YXMKCSAgZmluYWxseSByZW1vdmVkIGluIGxpYnBuZyAxLjQueC4gVXNlIHBuZ19zZXRfZXhwYW5kX2dyYXlfMV8yXzRfdG9fOCgpCgkgIGluc3RlYWQuCgkgIEZpeGVzICM2MDg2MjkuCgoyMDEwLTAyLTAxIDE2OjQ2OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmcmVlIHRyYW5zcG9ydHMgb24gZXJyb3JzCgkgIFNlZSAjNjA4NTY0CgoyMDEwLTAyLTAxIDA5OjE4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgdjRsMjogZml4IHVucG9ydGFibGUgcHJpbnRmIGZvcm1hdAoKMjAxMC0wMS0zMCAxNToxODo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE1ZDQ3YTYgdG8gOTZkYzc5MwoKMjAxMC0wMS0yNyAxNzo1MzowNyArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBpbmRleCB0aW1lc3RhbXBzIHNob3VsZCBiZSBpbiBzZWNvbmRzLCBub3QgbWlsbGlzZWNvbmRzCgoyMDEwLTAxLTI3IDE1OjI0OjUyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJICBzcGVleGRlYzogZnJlZSBzb21lIG1vcmUgd2hlbiByZXNldHRpbmcKCSAgRml4ZXMgIzYwODI1NS4KCjIwMTAtMDEtMjcgMTU6MjQ6MjQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJICBydHBzcGVleHBheTogZml4IG9jY2FzaW9uYWwgYnVmZmVyIGxlYWsKCSAgRml4ZXMgIzYwODI1NS4KCjIwMTAtMDEtMjcgMTU6MjI6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4ZW5jOiBwcmV2ZW50IGludmFsaWQgYXJpdGhtZXRpYyBpZiBub3Qgc2V0dXAgeWV0CgkgIEZpeGVzICM2MDgyNTUuCgoyMDEwLTAxLTI3IDE2OjM0OjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX21teC5oOgoJICB2aWRlb21peGVyOiBGaXggYXNzZW1ibHkgcmVnaXN0ZXIgY29uc3RyYWludHMKCSAgRml4ZXMgYnVnICM2MDgyMDkuCgoyMDEwLTAxLTI3IDAxOjU2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE3LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDEtMjcgMDE6NTI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDEtMjcgMDE6NDk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgY2hlY2tzOiBpZ25vcmUgZGVpbnRlcmxhY2UgY2hlY2sgYmluYXJ5CgoyMDEwLTAxLTI3IDAxOjE4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBwdXJnZSBhbGwgbWVudGlvbiBvZiBDVlMKCjIwMTAtMDEtMjYgMTE6MTg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBpZ25vcmUgc3RyZWFtcyB0aGF0IGZpbmlzaGVkCgkgIFdoZW4gd2UgcmVjZWl2ZSBhbiBVTkVYUEVDVEVEIGZyb20gYSBzdHJlYW0sIG1vdmUgdG8gdGhlIG5leHQgc3RyZWFtIGFuZCBvbmx5IGdvCgkgIEVPUyB3aGVuIGFsbCBzdHJlYW1zIGFyZSBFT1MuIFdoZW4gc2VsZWN0aW5nIGEgc3RyZWFtIHRvIHB1c2gsIGlnbm9yZSBzdHJlYW1zCgkgIHRoYXQgd2VudCBFT1MuCgkgIEZpeGVzICM2MDc5NDkKCjIwMTAtMDEtMjUgMTc6MjM6NDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMnNyYzogZG9uJ3QgZGVyZWYgTlVMTAoJICBFcnJvciBvdXQgd2hlbiB0aGUgcG9vbCBnZXRzIHNodXRkb3duLgoKMjAxMC0wMS0yNSAxNzoyMToxMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBSZXZlcnQgInY0bDJzcmM6IGRvbid0IGRlcmVmIE5VTEwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgM2Q5ZDM0YmQ2MGZhZWI5NDBiMzZkOTkyYTQ3MTY4ZmM4OTUwMzZiYS4KCjIwMTAtMDEtMjUgMTQ6MTY6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdjRsMnNyYzogZG9uJ3QgZGVyZWYgTlVMTAoJICBFcnJvciBvdXQgd2hlbiB0aGUgcG9vbCBnZXRzIHNodXRkb3duLgoKMjAxMC0wMS0yMyAxNTozMjo0OCAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiB3aGVuIGNyZWF0aW5nIGFuIG92ZXJmbG93IGJ1ZmZlciwgY29weSB0aW1lc3RhbXBzLgoKMjAxMC0wMS0yMyAxNDo0Nzo1NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZG1iMSBpcyBhIHZhbGlkIGZvdXJjYyBmb3IgTW90aW9uLUpQRUcKCjIwMTAtMDEtMjMgMTQ6MjA6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGV1eDogSVYzMiBpcyBhbHNvIHVzZWQgZm9yIEluZGVvIDMgdmlkZW8gc3RyZWFtcwoKMjAxMC0wMS0yMiAxNjo0ODowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvaWNsZXMveGltYWdlc3JjLXRlc3QuYzoKCSAgYnVpbGQ6IG5vIHVudXNlZCB2YXJpYWJsZXMgd2hlbiBkaXNhYmxpbmcgYXNzZXJ0cwoKMjAxMC0wMS0yMSAyMzoxNzo0MCAtMDMwMCAgUm9sYW5kIEtyaWthdmEgPHJrcmlrYXZhQGdtYWlsLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQXZvaWQgbmVnYXRpdmUgb3ZlcmZsb3cgb24ga2V5ZnJhbWUgc2VhcmNoCgkgIERvIG5vdCBvdmVyZmxvdyBuZWdhdGl2ZWx5IHdoZW4gc2VhcmNoaW5nIGEgcHJldmlvdXMKCSAgImtleWZyYW1lIiBvbiBhdWRpbyBzdHJlYW1zLiBDb3VsZCBjYXVzZSBpbmZpbml0ZSBsb29wcwoJICBvbiBiYWNrd2FyZHMgcGxheWJhY2sKCSAgRml4ZXMgIzYwNzcxOAoKMjAxMC0wMS0yMSAxNzoyMjozOCAtMDgwMCAgUGV0ZXIgdmFuIEhhcmRlbmJlcmcgPHB2aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmg6CgkgIGpwZWdlbmM6IGVubGFyZ2UgYnVmZmVyIGlmIGxpYmpwZWcgdGVsbHMgdXMgaXQncyBvdXQgb2Ygc3BhY2UuIEZpeGVzIGJ1ZmZlciBvdmVyZmxvdyBvbiBzb21lIGhpZ2gtcXVhbGl0eSwgbG93LXJlc29sdXRpb24ganBlZyBlbmNvZGVzLgoKMjAxMC0wMS0yMSAxOToyNDoyMiArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBjb21waWxlciB3YXJuaW5ncyB1bmRlciBPUyBYLgoKMjAxMC0wMS0yMSAxNzo1NzozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGRvbid0IHBhcnNlIE5VTEwgaW5kZXhlcwoJICBmb3Igc29tZSBzdHJlYW1zIHdlIG1pZ2h0IGZhaWwgdG8gZmV0Y2ggdGhlIGluZGV4IG9mZnNldHMuIERvbid0IHRyeSB0byBwYXJzZQoJICBOVUxMIGluZGV4ZXMgaW4gdGhvc2UgY2FzZXMuCgoyMDEwLTAxLTE4IDIxOjE1OjUxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwZzcyOXBheTogcHRpbWUgc2hvdWxkIGlzIGluIG5hbm9zZWNvbmRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc0MDMKCjIwMTAtMDEtMjAgMTU6MTE6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuaDoKCSAgd2F2ZW5jOiBQb3N0IHdhcm5pbmcgaWYgZmlsZSBpc250IGZpbmlzaGVkIHByb3Blcmx5CgkgIFdoZW4gdGhlIHBpcGVsaW5lIGlzIHNodXQgZG93biBhbmQgdGhlIGZpbGUgaXNuJ3QKCSAgZmluaXNoZWQgcHJvcGVybHksIHdhdmVuYyBzaG91bGQgcG9zdCBhIHdhcm5pbmcuCgkgIEZpeGVzICM2MDc0NDAKCjIwMDktMDUtMjcgMTM6NTE6NDQgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBtYXRyb3NrYW11eDogbWFrZSBpbmRleCBzaXplIGNvbmZpZ3VyYWJsZS4KCSAgQWRkZWQgdGhlICdtaW4taW5kZXgtaW50ZXJ2YWwnIHByb3BlcnR5IHRvIG1hdHJvc2thbXV4LAoJICB3aGljaCBkZXRlcm1pbmVzIGhvdyBtdWNoIHRpbWUgKG5hbm9zZWNvbmRzKSBpcyBsZWZ0CgkgIGJldHdlZW4ga2V5ZnJhbWVzIHN0b3JlZCBpbiB0aGUgaW5kZXguCgkgIEZpeGVzICM1ODM5ODUuCgoyMDEwLTAxLTIwIDE2OjI4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIHJ0cGgyNjRwYXk6IHNjYWxlIHNwc3Bwc19pbnRlcnZhbCB0byBtaWxsaXNlY29uZHMKCSAgVGhlIHNwc3Bwc19pbnRlcnZhbCBpcyBrZXB0IGluIHNlY29uZHMuIENvbnZlcnQgaXQgdG8gbWlsbGlzZWNvbmRzIGJlZm9yZQoJICBjb21wYXJpbmcgaXQgdG8gYW5vdGhlciB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuCgoyMDEwLTAxLTIwIDE1OjE4OjQ3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYWx3YXlzIGtlZXAgbWVkaWEgc2VnbWVudHMgd2l0aGluIHRvdGFsIGR1cmF0aW9uCgkgIC4uLiBhcyBvcHBvc2VkIHRvIG9ubHkgZG9pbmcgc28gZm9sbG93aW5nIGEgc2Vlay4KCjIwMTAtMDEtMjAgMTU6NDQ6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogcmVuYW1lIHNwc3Bwcy1pbnRlcnZhbCBwcm9wZXJ0eQoJICBSZW5hbWUgdGhlIHNwc3Bwcy1pbnRlcnZhbCBwcm9wZXJ0eSB0byBjb25maWctaW50ZXJ2YWwgYmVjYXVzZSBpdCBpcyBuaWNlci4KCjIwMTAtMDEtMTkgMTg6Mzc6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBza2lwIFJJRkYgYW5kIGluZGV4IGluIHB1c2ggbW9kZQoJICBXaGVuIHdlIGFyZSBpbiBwdXNoIG1vZGUsIHdlIGNhbiBlbmNvdW50ZXIgUklGRiBhbmQgaWR4IHRhZ3MgaW4gdGhlIGRhdGEgY2h1bmsKCSAgd2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIE9ETUwgZmlsZXMuIEluIHRoZXNlIGNhc2VzLCBzaW1wbHkgc2tpcCB0aGUgY2h1bmtzIGFuZAoJICBjb250aW51ZSBzdHJlYW1pbmcgaW5zdGVhZCBvZiBnb2luZyBFT1MuCgoyMDEwLTAxLTIwIDExOjI3OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogbW9yZSBESVNDT05UIGhhbmRsaW5nCgkgIEFkZCBzb21lIGRlYnVnIGluIHRoZSBESVNDT05UIGhhbmRsaW5nIGNvZGUuCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIERJU0NPTlQgaW4gcHVzaCBtb2RlLCBtYXJrIGFsbCBzdHJlYW1zIGFzIERJU0NPTlQuCgoyMDEwLTAxLTIwIDExOjI2OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogcmVzZXQgb24gZmx1c2ggZXZlbnRzCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIGZsdXNoIGV2ZW50IG9uIHRoZSBzaW5rcGFkLCByZXNldCB0aGUgRU9TIHN0YXRlIGFuZCB0aGUKCSAgZmxvd3JldHVybiBvZiBhbGwgc3RyZWFtcy4gQWxzbyBtYXJrIHRoZSBzdHJlYW1zIHdpdGggYSBESVNDT05ULgoKMjAxMC0wMS0yMCAxMToyMjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogcmVuYW1lIHNvbWUgdmFyaWFibGUKCSAgUmVuYW1lIHRoZSBzZWVrX2V2ZW50IHZhcmlhYmxlIHRvIHNlZ19ldmVudCBiZWNhdXNlIGl0IHJlYWxseSBjb250YWlucyB0aGUKCSAgbmV3c2VnbWVudCBldmVudCB0aGF0IG5lZWRzIHRvIGJlIHB1c2hlZC4KCjIwMTAtMDEtMjAgMDA6NTQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNGNlYzg5IHRvIDE1ZDQ3YTYKCjIwMTAtMDEtMTggMTQ6NDk6MjYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgcnRwaDI2NHBheTogRG9uJ3Qgc2V0IHByb2ZpbGUtbGV2ZWwtaWQgaW4gb3V0IGNhcHMKCSAgVGhlIHByb2ZpbGUtbGV2ZWwtaWQgcmVwcmVzZW50cyByZXN0cmljdGlvbnMgb24gd2hhdCBjYW4gYmUgc2VudCwgaXQgZG9lcyBub3QKCSAgZGVzY3JpYmUgdGhlIHN0cmVhbS4gU28gaXQgc2hvdWxkIGJlIHJlZmxlY3RlZCBpbiB0aGUgc2luayBjYXBzIG9mIHRoZQoJICBwYXlsb2FkZXIsIG5vdCB0aGUgc3JjIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDczNTMKCjIwMTAtMDEtMTggMTQ6NDE6MTAgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHNldF9vdXRjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDczNTMKCjIwMTAtMDEtMTggMTc6NDM6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHlobWFjcm9zLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvbGluZWFyLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvbGluZWFyYmxlbmQuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmUuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZWJmZi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZldGZmLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggbGljZW5zZSBhbmQgY29weXJpZ2h0IGhlYWRlcnMKCjIwMTAtMDEtMTggMTQ6NTc6NDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkgIHY0bDI6IG1vdmUgR19FTkRfREVDTFMgdG8gdGhlIGVuZAoKMjAxMC0wMS0xOCAxNDo1NTozOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuaDoKCSAgdjRsMjogZml4IGJ1ZmZlcnBvb2wgZmlsZSBuYW1lcyBpbiBoZWFkZXIgY29tbWVudAoKMjAxMC0wMS0xNSAxODoxNToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGF2b2lkIHNvbWUgdHlwZWNhc3RpbmcKCjIwMTAtMDEtMTUgMTg6MTM6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBhdm9pZCBzb21lIHR5cGUgY2hlY2tzCgoyMDEwLTAxLTE1IDE4OjA5OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aWRlbXV4OiBmYWxsYmFjayB0byBhdmloIGR1cmF0aW9uCgkgIHdoZW4gd2UgaGF2ZSBub3QgeWV0IHBhcnNlZCB0aGUgaW5kZXhlcyAoaW4gcHVzaCBtb2RlLCBmb3IgZXhhbXBsZSkgdXNlCgkgIHRoZSBkdXJhdGlvbiBhcyBnaXZlbiBpbiB0aGUgYXZpaCBoZWFkZXIgaW5zdGVhZCBvZiAtMS4KCjIwMTAtMDEtMTUgMTM6MzI6MzIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBnX2ZyZWUgaXMgTlVMTCBzYWZlCgoyMDEwLTAxLTE1IDEzOjI3OjQwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogdXNlIERFTVVYIGVycm9ycywgaW5zdGVhZCBvZiBERUNPREUKCSAgcXRkZW11eCBzaG91bGQgdXNlIERFTVVYIGVycm9ycywgYW5kIG5vdCBERUNPREUKCSAgQ29uZmxpY3RzOgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmMKCjIwMTAtMDEtMTQgMTk6MTY6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBNaW5vciByZWZhY3RvcgoJICBSZXBsYWNlIHJlcGVhdGVkIGNvZGUgd2l0aCBhIGZ1bmN0aW9uIGNhbGwKCjIwMTAtMDEtMTQgMTc6MTE6MTMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBIYW5kbGUgYW5vdGhlciBraW5kIG9mIHJlZGlyZWN0IHRyYWsKCSAgU29tZSB0cmFrcyBtaWdodCBjb250YWluIGEgcmVkaXJlY3QgcnRzcCB1cmkgaW5zaWRlCgkgIGhuZGwgYXRvbSAod2hpY2ggaXMgYSBkcmVmIGF0b20gZW50cnkpLiBUaGlzIGNvbW1pdCBtYWtlcyBxdGRlbXV4CgkgIHBvc3QgYSBtZXNzYWdlIHdoZW4gaXQgZmluZHMgb25lIG9mIHRoZXNlIHRyYWtzIGFuZCB0aGVyZSBhcmUKCSAgbm8gb3RoZXIgdHJha3MuCgkgIEZpeGVzICM1OTc0OTcKCjIwMTAtMDEtMTQgMTY6MTM6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgIHF0ZGVtdXg6IFBvc3QgZXJyb3Igd2hlbiByZWFjaGluZyBFT1Mgd2l0aG91dCBwYWRzCgkgIFBvc3QgYW4gZXJyb3Igd2hlbiBFT1MgaXMgcmVhY2hlZCBhbmQgdGhlcmUgYXJlIG5vIHNyYyBwYWRzCgoyMDEwLTAxLTE0IDE0OjEzOjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRG8gbm90IHBvc3QgZW1wdHkgcmVkaXJlY3QgbWVzc2FnZXMKCSAgU29tZSBtaXNpbnRlcnByZXRlZCBkYXRhIGNvdWxkIHJlc3VsdCBpbiBwb3N0aW5nIHJlZGlyZWN0IG1lc3NhZ2VzCgkgIHdpdGggZW1wdHkgcmVkaXJlY3Qgc3RyaW5ncy4gSXQgaXMgYmV0dGVyIG5vdCB0byBwb3N0IHRoZW0uCgkgIEFuIGV4YW1wbGUgaXMgdGhlIGZpbGUgb24gYnVnICM1OTc0OTcKCjIwMTAtMDEtMTQgMTg6MTk6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IHBvbGlzaCBsYXN0IGJ1ZmZlciBlbmQgdGltZSB1c2FnZQoJICBUaGF0IGlzLCByZXNldCBpdCB1cG9uIHNlZWssIGFuZCBub3RlIHRoYXQgKHJhcmVseSkgbGFzdCBwdXNoZWQgYnVmZmVyCgkgIHRpbWUgbWlnaHQgcHJlY2VkZSBzZWdtZW50IHN0YXJ0LgoKMjAxMC0wMS0xMyAxNjo0ODo0NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfbW14Lmg6CgkgIHZpZGVvbWl4ZXI6IHVzZSAncScgY29uc3RyYWludCBpbnN0ZWFkIG9mICdyJwoJICBUaGlzIGF2b2lkcyB0aGUgImJhZCByZWdpc3RlciBuYW1lIGAlZGlsJyIgY29tcGlsYXRpb24gZXJyb3JzIG9uIDMyYml0IHdoZXJlCgkgIGJlY2F1c2Ugb2YgJ3InIGdjYyBwdXRzIHRoZSB2YWx1ZSBpbiBhIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlciBhbmQgdGhlbiB0cmllcwoJICB0byBhY2Nlc3MgdGhlIGxvd2VyIHBhcnQgYXMgJWRpbC8lc2lsIHdoaWNoIGlzIG5vdCBleGlzdGluZyBvbiAzMmJpdC4gJ3EnIHJlcXVlc3RzCgkgIGEtZCByZWdpc3RlcnMKCjIwMTAtMDEtMTMgMTY6NDQ6NTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpOiBhZGQgbWlzc2luZyBpbmNsdWRlIGZvciBzc2NhbmYKCjIwMTAtMDEtMTMgMDk6MzY6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkgIGVxdWFsaXplcjogRml4IHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciB0aGUgM3JkIGJhbmQgb2YgdGhlIDEwYmFuZCBlcXVhbGl6ZXIKCSAgVGhlIGZyZXF1ZW5jeSBpcyBhY3R1YWxseSAyMzcgSHosIG5vdCAyMjcgSHouCgkgIEZpeGVzIGJ1ZyAjNjA2NjkyLgoKMjAxMC0wMS0xMyAwOToyMjoyMCArMDEwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5jOgoJICBhdWRpb2FtcGxpZnk6IEFsbG93IG5lZ2F0aXZlIGFtcGxpZmljYXRpb25zCgkgIEZpeGVzIGJ1ZyAjNjA2ODA3LgoKMjAxMC0wMS0xMyAwOToxNzowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvdGFnbGliL2dzdGFwZXYybXV4LmNjOgoJICBhcGV2Mm11eDogRG9uJ3QgY2FsbCBjb25zdHJ1Y3RvcnMgZGlyZWN0bHksIHRoaXMgbGVhZHMgdG8gY29tcGlsZXIgZXJyb3JzIHdpdGggZ2NjIDQuNQoKMjAxMC0wMS0xMiAxNzozOTowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogdXNlIEdfR1NJWkVfRk9STUFUIGZvciBwbGF0Zm9ybSBpbmRlcGVuZGVudCBnc2l6ZSBxdWFsaWZpZXIKCSAgRml4ZXMgYnVpbGQgb24gbWFjb3N4CgoyMDEwLTAxLTExIDE5OjAyOjM0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiByZWZhY3RvciBlb3Mgc2VuZGluZyB3aGVuIHBhdXNpbmcgbG9vcAoJICBBbHNvLCBwcmV2ZW50IGhhbmdpbmcgaWYgbm8gcGFkcyB5ZXQgb24gd2hpY2ggdG8gc2VuZCBlb3MgYnkKCSAgcG9zdGluZyBhIG1lc3NhZ2UgaW5zdGVhZC4KCjIwMTAtMDEtMTEgMTc6NTA6MzUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IHN0YW5kYXJkaXplIHNlZWsgaGFuZGxpbmcKCSAgLi4uIHdoaWNoIGltcGxpZXMgZml4aW5nIHNvbWUgY29ybmVyIGNhc2VzLgoKMjAxMC0wMS0xMSAxNToxNDowNiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiB1c2UgbW9yZSBnZW5lcmljIHhpcGhOX3N0cmVhbWhlYWRlcl90b19jb2RlY2RhdGEgaGVscGVyCgoyMDEwLTAxLTExIDE3OjUwOjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IHJlZmxvdyBhdWRpbyBhbmQgdmlkZW8gc2V0Y2FwcyBhbmQgaW1wcm92ZSBsb2dnaW5nCgkgIEFsc28gZW5zdXJlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGF2YWlsYWJsZSBhcyB0aGV5IGFyZSBtYW5kYXRvcnkKCSAgaW4gbWF0cm9za2Egc3BlY3MuCgoyMDEwLTAxLTExIDExOjQyOjQzIC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IG9mZnNldCBmb3IgdHlwZSAyIG1wNGEgc291bmQgc2FtcGxlIGRlc2NyaXB0aW9ucy4KCSAgQWxsb3dzIHVzIHRvIGNvcnJlY3RseSBmaW5kIHRoZSBlc2RzIChhbmQgdGh1cyB0aGUgY29kZWMgZGF0YSkgZm9yIHN1Y2gKCSAgbXA0YSBmaWxlcy4KCjIwMTAtMDEtMTEgMTU6NDU6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkgIHJ0cG1wNGcoZGUpcGF5OiBPbmx5IGhhbmRsZSByYXcgYWFjCgkgIHJ0cG1wNGcoZGUpcGF5IHNob3VsZCBvbmx5IGhhbmRsZSByYXcgQUFDIHN0cmVhbXMKCjIwMTAtMDEtMTEgMTg6NTk6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIHZpZGVvbWl4ZXI6IEltcGxlbWVudCBiYXNpYyBRb1MKCSAgVGhpcyBkcm9wcyBmcmFtZXMgaWYgdGhleSdyZSB0b28gbGF0ZSBhbnl3YXkgYmVmb3JlIGJsZW5kaW5nIGFuZCBhbGwKCSAgdGhhdCBzdGFydHMgYnV0IFFvUyBldmVudHMgYXJlIG5vdCBmb3J3YXJkZWQgdXBzdHJlYW0uIEluIHRoZSBmdXR1cmUKCSAgdGhlIFFvUyBldmVudHMgc2hvdWxkIGJlIHRyYW5zZm9ybWVkIHNvbWVob3cgYW5kIGZvcndhcmRlZCB1cHN0cmVhbS4KCjIwMTAtMDEtMTEgMTQ6NDg6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6CgkgIHJ0cG1wNGEoZGUpcGF5OiBPbmx5IGFjY2VwdCByYXcgYWFjCgkgIHJ0cG1wNGEoZGUpcGF5IHNob3VsZCBvbmx5IGhhbmRsZSByYXcgYWFjIHRvIGNvbmZvcm0gdG8gdGhlIFJGQwoKMjAxMC0wMS0xMSAxODozNTo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZC5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9tbXguaDoKCSAgdmlkZW9taXhlcjogQWRkIE1NWCBpbXBsZW1lbnRhdGlvbnMgZm9yIEk0MjAgYW5kIGFsbCBub24tYWxwaGEgUkdCIGZvcm1hdHMKCjIwMTAtMDEtMDQgMTA6MjQ6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kLmg6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2F5dXYuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYmdyYS5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9pNDIwLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX21teC5oOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9yZ2IuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIHZpZGVvbWl4ZXI6IFJlZmFjdG9yIHByb2Nlc3NpbmcgZnVuY3Rpb25zCgkgIFRoaXMgYWxsb3dzIGVhc2llciBwbHVnZ2luZyBvZiBvcHRpbWl6ZWQgcHJvY2Vzc2luZyBmdW5jdGlvbnMKCSAgaW4gdGhlIGZ1dHVyZSwgbGlrZSBmb3IgU1NFIG9yIEFsdGlWZWMuCgoyMDEwLTAxLTExIDEzOjI2OjMyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgYXZpbXV4OiBtYXRyb3NrYW11eDogcmVuYW1lIGFhYydzIHN0cmVhbS1mb3JtYXQgdG8gcmF3CgkgIEFBQydzIG5vbmUgc3RyZWFtLWZvcm1hdCBoYXMgYmVlbiByZW5hbWVkIHRvIHJhdywgcmVuYW1lCgkgIG9uIGF2aW11eCBhbmQgbWF0cm9za2FtdXggYXMgd2VsbAoKMjAxMC0wMS0xMSAxMjowNzoyOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thbXV4OiBPbmx5IGFjY2VwdCByYXcgYWFjCgkgIG1ha2VzIG1hdHJvc2thbXV4IHJlamVjdCBhYWMgc3RyZWFtcyB0aGF0IGFyZSBub3QKCSAgaW4gcmF3IGZvcm1hdCAoc3RyZWFtLWZvcm1hdD1ub25lKQoJICBGaXhlcyAjNTk4MzUwCgoyMDEwLTAxLTExIDEyOjA4OjU1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogT25seSBhY2NlcHQgcmF3IGFhYwoJICBtYWtlcyBhdmltdXggcmVqZWN0IGFhYyBzdHJlYW1zIHRoYXQgYXJlIG5vdAoJICBpbiByYXcgZm9ybWF0IChzdHJlYW0tZm9ybWF0PW5vbmUpCgkgIEZpeGVzICM1OTgzNTAKCjIwMTAtMDEtMTEgMTA6Mzg6MTAgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogT29wcy4gVGhlIGdwb2ludGVyIGNhc3QgaXMgbmVlZGVkIGJlY2F1c2Ugb2YgdGhlIGNvbnN0IHF1YWxpZmllcnMgb24gdGhlIGRhdGEgZWxlbWVudHMKCjIwMTAtMDEtMTEgMTA6MTc6NTQgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRGVidWcgLT4gaW5mbyBsZXZlbCBmb3IgYSBtZXNzYWdlIGZvciBiZW5jaG1hcmtpbmcgaW5kZXggcGFyc2luZwoJICBUaGUgZXh0cmEgbWVzc2FnZSBvdXRwdXQgYXQgaGlnaGVyIGxldmVscyBhZmZlY3RzIHRoZSBhY2N1cmFjeSBvZiB0aGUKCSAgYmVuY2htYXJrLgoKMjAxMC0wMS0xMSAxMDowNToxMCArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBEb24ndCBjaGVjayBmb3IgTlVMTCBwb2ludGVycyBvciBjYXN0IHRvIGdwb2ludGVyIGFzIHRoaXMgaXMgbm90IG5lZWRlZAoKMjAxMC0wMS0wOCAxMzo1NTowNSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBSZWZhY3RvciBzdGJsIHN1Yi1hdG9tIGZyZWVpbmcuIEZyZWUgd2hlbiBpbmRleCBoYXMgYmVlbiBjb21wbGV0ZWx5IHBhcnNlZC4KCjIwMTAtMDEtMDggMTQ6MzI6MDYgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQXZvaWQgd2hpdGVzcGFjZSBjb21taXRzIGR1ZSB0byBpbmNvbnNpc3RlbnQgR05VIGluZGVudCBiZWhhdmlvdXIKCjIwMTAtMDEtMTEgMDA6MTA6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiByZW1vdmUgbmV3bGluZSBhdCBlbmQgb2YgZGVidWcgc3RhdGVtZW50CgoyMDEwLTAxLTA4IDE5OjI2OjIxICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICBtdWx0aXVkcHNpbms6IENvbXBpbGVyIHdhcm5pbmcgZml4ZXMgZm9yIFdpbmRvd3MKCSAgSnVzdCBzaW1wbGUgbWlzc2luZyBjYXN0cwoJICBGaXhlcyBidWcgIzYwNjQzOC4KCjIwMTAtMDEtMDggMTg6MDQ6MTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjZW5jOiBmaXggc2Vla3BvaW50cyBwcm9wZXJ0eSBjb3B5LWFuZC1wYXN0ZSBkb2N1bWVudGF0aW9uCgoyMDEwLTAxLTA2IDE3OjA2OjUzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5oOgoJICBmbGFjZW5jOiBvcHRpb25hbGx5IGFkZCBhIHNlZWsgdGFibGUKCSAgQVBJOiBHc3RGbGFjRW5jOnNlZWtwb2ludHMKCSAgRml4ZXMgIzM1MTU5NS4KCjIwMTAtMDEtMDggMTE6MzM6MDIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogVXNlIG1vcmUgZ2xpYiBhbmQgYmUgc2FmZXIKCSAgQmUgc2FmZXIgb24gc3NjYW5mIGJ5IGxpbWl0aW5nIHN0cmluZyBmb3JtYXQgc2l6ZXMuCgkgIFJlbW92ZSB1c2VsZXNzIHBhcmFtZXRlciBhbmQgdXNlIGdfc3RybmR1cC4KCjIwMTAtMDEtMDggMTA6NDQ6NDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogU2ltcGxpZnlpbmcgY29kZQoJICBHcmVhdGx5IHNpbXBsaWZ5IHRoZSBJRElUIGNodW5rIGhhbmRsaW5nIGJ5IHVzaW5nIHNzY2FuZgoJICBpbnN0ZWFkIG9mICdtYW51YWxseScgcGFyc2luZy4gQWxzbyByZXBsYWNlcyBzdHJuY2FzZWNtcCBhbmQKCSAgaXNfYWxwaGEvaXNfZGlnaXQgd2l0aCBnbGliIHZlcnNpb25zLgoKMjAxMC0wMS0wOCAxMDoxODozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBpdCdzIGZlYiBmb3IgZmVicnVhcnkKCSAgRml4IHR5cG8gaW4gbGFzdCBjb21taXQuCgoyMDEwLTAxLTA4IDA5OjE3OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IFBhcnNlIGFuZCBwb3N0IElESVQgZGF0ZXMKCSAgUGFyc2VzIGFuZCBwb3N0IGRhdGUgdGFncyBjb250YWluZWQgaW4gSURJVCBjaHVua3MuCgkgIEZpeGVzICM1MDM1ODIKCjIwMTAtMDEtMDcgMTc6MjU6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9maXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuaDoKCSAgYXVkaW9meGJhc2VmaXJmaWx0ZXI6IEFkZCBwcm9wZXJ0eSBmb3Igbm90IGRyYWluaW5nIHRoZSBoaXN0b3J5IG9uIGtlcm5lbCBjaGFuZ2VzCgkgIEN1cnJlbnRseSB0aGlzIG9ubHkgd29ya3MgaWYgdGhlIGtlcm5lbCBzaXplIGRvZXNuJ3QgY2hhbmdlLCBpbiB0aGUgZnV0dXJlCgkgIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBrZXJuZWwgc2l6ZSB0b28gd2l0aG91dCBkcmFpbmluZwoJICB0aGUgY29tcGxldGUgaGlzdG9yeSBhbmQgd2l0aG91dCBsb29zaW5nIGFueXRoaW5nLgoJICBQYXJ0aWFsbHkgYmFzZWQgb24gYSBwYXRjaCBieQoJICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCjIwMTAtMDEtMDcgMTY6NTg6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgcnRwaDI2NHBheTogcmVtb3ZlIHdlaXJkIG1lbWNtcCBjb2RlCgkgIFVzZSBwbGFpbiBtZW1jbXAgZm9yIGNvbXBhcmluZyBtZW1vcnkgaW5zdGVhZCBvZiB0aGUgY3VzdG9tIGJ1Z2d5IG9uZS4KCSAgRml4ZXMgIzYwNjE5OAoKMjAxMC0wMS0wNyAxNTozODozNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBsZXZlbDogZml4IHR5cG8gaW4gJ21lc3NhZ2UnIHByb3BlcnR5IGRlc2NyaXB0aW9uCgoyMDEwLTAxLTA2IDE0OjA2OjE0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogcmVhbGx5IHVzZSB1cHN0cmVhbSB0aW1lc3RhbXAgaWYgdGhlcmUgaXMgb25lCgkgIFNlZS9maXhlcyAjNjAzNDcxLgoKMjAxMC0wMS0wNiAxMzo0NTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJICBydHBnNzI4cGF5OiByZW1vdmUgdW51c2VkIGFkYXB0ZXIgcGVlawoKMjAxMC0wMS0wNSAxOTowMDozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogSW1wcm92ZSBwYXNzdGhyb3VnaCB0ZXN0cwoJICBJbXByb3ZlIHBhc3N0aHJvdWdoIHRlc3RzIGJ5IGZvcmNpbmcgbW9yZSBzcGVjaWZpYwoJICBpbnRlcmxhY2VkL2RlaW50ZXJsYWNlZCBjYXBzIHRvIGJlIHRlc3RlZAoKMjAxMC0wMS0wNSAxODoyMjo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogQWRkcyBzb21lIGRvY3MgdG8gdGhlIG5ldyB0ZXN0cwoJICBBZGRzIHNvbWUgZG9jcyBleHBsYWluaW5nIHRoZSB1dGlsaXR5IGZ1bmN0aW9ucyBvZiB0aGUgY2hlY2sKCSAgdGVzdHMgb2YgZGVpbnRlcmxhY2UKCjIwMTAtMDEtMDUgMTg6MTQ6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IEFkZHMgdGVzdHMgZm9yIHBhc3N0aHJvdWdoCgkgIEFkZHMgdGVzdHMgZm9yIGNoZWNraW5nIGlmIHRoZSBlbGVtZW50IHJlYWxseSBkb2VzCgkgIHBhc3N0aHJvdWdoIGluIGRpc2FibGVkIG1vZGUgYW5kIGluIGF1dG8gKGlmIHRoZSBpbnB1dCBpcwoJICBub3QgaW50ZXJsYWNlZCkKCjIwMTAtMDEtMDUgMDc6NTA6NTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBBZGRzIHRlc3RzIGZvciBjYXBzIGFjY2VwdGFuY2UKCSAgQWRkcyBjaGVjayB1bml0IHRlc3RzIGZvciBkZWludGVybGFjZSBmb3IgdmFsaWRhdGluZwoJICBjYXBzIGFjY2VwdGluZyBhbmQgdGhlIGV4cGVjdGVkIGNhcHMgb3V0cHV0IG9uIHRoZQoJICBvdGhlciBwYWQKCjIwMTAtMDEtMDQgMTM6NDM6MDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBBZGRzIGJhc2ljIGNoZWNrIHRlc3QKCSAgQWRkcyBhIGJhc2ljIGNoZWNrIHRlc3QgZm9yIGRlaW50ZXJsYWNlIGVsZW1lbnQKCjIwMTAtMDEtMDQgMTU6NDQ6MjggLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQWRkIHN1cHBvcnQgZm9yIHdhdmUtc3R5bGUgYXVkaW8gaW4gcXQuCgkgIFVzZXMgZ3N0cmlmZiB0byBwYXJzZSB0aGUgd2F2ZSBoZWFkZXJzIGFwcHJvcHJpYXRlbHkuIFRlc3RlZCB3aXRoIE1TLUFEUENNCgkgIGNvbnRlbnQuCgoyMDA5LTEyLTMxIDE3OjA5OjAzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJICB0ZXN0czogQWRkIEcuNzI5IFJUUCBwYXlsb2FkZXIvZGVwYXlsb2FkZXIgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2MDUwCgoyMDA5LTEyLTMxIDE2OjUyOjMwIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwZzcyOXBheTogU2ltcGxpZnkgYWRhcHRlciB1c2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2MDUwCgoyMDA5LTEyLTMxIDE2OjI3OjMwIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwZzcyOXBheTogU3VwcG9ydCBwdGltZSBmcm9tIGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjA1MAoKMjAwOS0xMi0wMiAxOTozNToyMSArMDUzMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9SRUFETUU6CgkgIHJ0cDogQWRkIG1heHB0aW1lIHRvIHRoZSBSRUFETUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjA1MAoKMjAxMC0wMS0wNSAxOTowMzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM2RlcGF5Lmg6CgkgIHJ0cGc3MjNkZXBheTogYWRkIEc3MjMgZGVwYXlsb2FkZXIKCjIwMTAtMDEtMDUgMTk6MDI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5oOgoJICBydHBnNzI5ZGVwYXk6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDEtMDUgMTg6MzM6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzcGF5Lmg6CgkgIHJ0cGc3MjNwYXk6IHJld3JpdGUgcGF5bG9hZGVyCgkgIEhhbmRsZSBhbGwgMyBwYWNrZXQgc2l6ZXMgYWNjb3JkaW5nIHRvIFJGQyAzNTUxLgoJICBUb3RhbGx5IHVudGVzdGVkLCB3ZSBkb24ndCBoYXZlIGEgRzcyMyBlbmNvZGVyLgoJICBGaXhlcyAjNjA1ODgyCgoyMDEwLTAxLTA1IDExOjQ3OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggY2h1bmsgY291bnRlcgoKMjAxMC0wMS0wNCAxOTo0NDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbW9yZSB3b3JrIGF0IHJlZHVjaW5nIGxvb3Agb3ZlcmhlYWQKCSAgVHJ5IHRvIGF2b2lkIGRlcmVmcyB3aGVuIHBhcnNpbmcgdGhlIGluZGV4LiBTYXZlIHRoZSBzdGF0ZSBpbnRvIHRoZSBzdHJ1Y3R1cmVzCgkgIHdoZW4gd2UgZXhpdCB0aGUgbG9vcCBpbnN0ZWFkIG9mIGZvciBlYWNoIGl0ZXJhdGlvbi4KCjIwMTAtMDEtMDQgMTY6MzM6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGNsZWFudXBzIGFuZCBtYWtlIGR1cmF0aW9uIG1vcmUgYWNjdXJhdGUKCSAgTWFrZSB0aGUgUXREZW11eFNhbXBsZSBzdHJ1Y3Qgc21hbGxlciBieSBrZWVwaW5nIHRoZSBkdXJhdGlvbiBhbmQgdGhlIHB0c19vZmZzZXQKCSAgYXMgdGhlaXIgMzIgYml0IHZhbHVlcy4KCSAgTWFrZSBzb21lIG1hY3JvcyB0byBjYWxjdWxhdGUgUFRTLCBEVFMgYW5kIGR1cmF0aW9uIG9mIGEgc2FtcGxlLgoJICBEZXJlZiB0aGUgc2FtcGxlIGluZGV4IGxlc3Mgb2Z0ZW4gYnkga2VlcGluZyBhIHJlZiB0byB0aGUgc2FtcGxlIHdlJ3JlIGRlYWxpbmcKCSAgd2l0aC4KCjIwMTAtMDEtMDQgMTM6NDE6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHNpbXBsaWZ5IGxvZ2ljIHRvIGNhbGN1bGF0ZSBkdXJhdGlvbgoJICBTaW5jZSB3ZSBubyBsb25nZXIgc3RvcmUgdGhlIHRpbWVzdGFtcCBhbmQgZHVyYXRpb24gaW4gbmFub3NlY29uZHMsIHdlIGNhbiBub3cKCSAgc2ltcGx5IHN0b3JlIHRoZSBkdXJhdGlvbiBhcy1pcy4KCjIwMTAtMDEtMDEgMTY6NDI6NTcgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogU3RvcmUgdGltZXN0YW1wcyBpbiBtb3YgZm9ybWF0IGluIHRoZSBpbmRleAoJICBUaGlzIGFsbG93cyBmYXN0ZXIgYnVpbGRpbmcgb2YgdGhlIGluZGV4IHVwb24gc2Vla3Mgc28gdGhhdCBzY2FsaW5nIG9mCgkgIHRpbWVzdGFtcHMgb25seSBvY2N1cnMgd2hlbiBhY3R1YWxseSBuZWVkZWQuCgoyMDA5LTEyLTE4IDEzOjU0OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBtYWtlIHNlZWtpbmcgaW4gcHVzaCBtb2RlIHdvcmsKCSAgTW92ZSBzYW1wbGUgcG9zaXRpb24gY2hlY2tzIGludG8gcXRkZW11eF9wYXJzZV9zYW1wbGVzIHdoZXJlIHdlIGNhbiBwcm90ZWN0IGl0CgkgIHdpdGggYSBsb2NrLgoJICBSZWZhY3RvciBhbmQgbWFrZSBhbiBxdGRlbXV4X2Vuc3VyZV9pbmRleCBmdW5jdGlvbi4KCSAgUmVuYW1lIHF0ZGVtdXhfZG9fcHVzaF9zZWVrIHRvIHF0ZGVtdXhfc2Vla19vZmZzZXQgaW4gb3JkZXIgdG8gYXZvaWQgY29uZnVzaW9uCgkgIHdpdGggZ3N0X3F0ZGVtdXhfZG9fcHVzaF9zZWVrLgoKMjAwOS0xMi0xOCAxMjo0NDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbW92ZSBlcnJvciBjb2RlIG91dCBvZiBub3JtYWwgZmxvdwoKMjAwOS0xMS0yNCAxNjoyNzoyNiArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgIHF0ZGVtdXg6IEFkZCBwdXNoIG1vZGUgc2VlayBzdXBwb3J0IGZvciBzZWVraW5nIHRvIG9idGFpbiB0aGUgbW9vdiBhdG9tCgoyMDEwLTAxLTA1IDEyOjIyOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBmaXggb24tbnB0LXN0b3Agc2lnbmFsIHdhcm5pbmdzIGZvciBSRFQKCSAgVGhlIFJEVCBtYW5hZ2VyIGRvZXMgbm90IGltcGxlbWVudCB0aGlzIHNpZ25hbCBzbyB3ZSBuZWVkIHRvIGNoZWNrIGZvciBpdCBiZWZvcmUKCSAgdHJ5aW5nIHRvIGNvbm5lY3QgdG8gaXQuCgoyMDEwLTAxLTA1IDA5OjQ3OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogZml4IG1lbW9yeSBsZWFrIGluIG5ldyB1cmkgaGFuZGxlciBjb2RlCgkgIERvbid0IGxlYWsgYSBzdHJpbmcgZXZlcnl0aW1lIGdldF91cmkoKSBpcyBjYWxsZWQgYW5kIGEgZGV2aWNlCgkgIGhhcyBiZWVuIHNldC4gVGhlcmUncyBhIGxpbWl0ZWQgbnVtYmVyIG9mIGRldmljZXMsIHNvIGp1c3QKCSAgaW50ZXJuIHRoZSBzdHJpbmcgaW5zdGVhZCBvZiBkb2luZyBtb3JlIGVsYWJvcmF0ZSBob3VzZWtlZXBpbmcKCSAgYW5kIHN0b3JpbmcgaXQgaW4gdGhlIGluc3RhbmNlIHN0cnVjdCBvciBzby4KCjIwMTAtMDEtMDEgMTQ6MTA6NDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogZml4IHR5cG8gaW4gd2FybmluZyBtZXNzYWdlCgoyMDEwLTAxLTA0IDA5OjI4OjM2IC0wMzAwICBSb2JlcnQgV2VpZGxpY2ggPGdub21lYnVnemlsbGFAcm9iZXJ0LndlaWRsaWNoLmNjPgoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuaDoKCSAgc2hvdXQyc2VuZDogQWRkICdwdWJsaWMnIHByb3BlcnR5CgkgIEFkZHMgYSBwcm9wZXJ0eSB0byBzZXQgJ3B1YmxpYycgZmxhZyBvbiBsaWJzaG91dCwgbWFraW5nCgkgIHRoZSBzdHJlYW0gbGlzdGVkIG9uIHRoZSBzZXJ2ZXIncyBzdHJlYW0gZGlyZWN0b3J5LgoJICBGaXhlcyAjNjA1MjY5CgoyMDA5LTEyLTMwIDE0OjE0OjU1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQWRkIHRhZ3MgZm9yIGF2ZXJhZ2UgYW5kIG1heGltdW0gYml0cmF0ZQoJICBGaXhlcyAjNTk5MzAwLgoKMjAwOS0xMi0yNiAxNjo1OToxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJICBhdWRpb2Z4YmFzZWZpcmZpbHRlcjogZG8gbm90IHRyeSB0byBhbGxvYyByZWFsbHkgbGFyZ2UgYnVmZmVycwoJICBXaGVuIG5zYW1wbGVzX291dCBpcyBsYXJnZXIgdGhhbiBuc2FtcGxlc19pbiwgdXNpbmcgdW5zaWduZWQKCSAgaW50cyBsZWFkIHRvIGEgb3ZlcmZsb3cgYW5kIHRoZSByZXN1bHRpbmcgdmFsdWUgaXMgd3JvbmcgYW5kCgkgIHdheSB0b28gbGFyZ2UgZm9yIGFsbG9jYXRpbmcgYSBidWZmZXIuIFVzZSBzaWduZWQgaW50ZWdlcnMKCSAgYW5kIHJldHVybmluZyBpbW1lZGlhdGVsbHkgd2hlbiB0aGF0IGhhcHBlbnMuCgoyMDA5LTEyLTI1IDEyOjM4OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYXl1di5jOgoJICB2aWRlb21peGVyOiBvcHRpbWl6ZSBibGVuZCBjb2RlIHNvbWUgbW9yZQoJICBVc2UgbW9yZSBlZmZpY2llbnQgZm9ybXVsYSB0aGF0IHVzZXMgbGVzcyBtdWx0aXBsaWVzLgoJICBSZWR1Y2UgdGhlIGFtb3VudCBvZiBzY2FsYXIgY29kZSwgdXNlIE1NWCB0byBjYWxjdWxhdGUgdGhlIGRlc2lyZWQKCSAgYWxwaGEgdmFsdWUuCgkgIFVucm9sbCBhbmQgaGFuZGxlIDIgcGl4ZWxzIGluIG9uZSBpdGVyYXRpb24gZm9yIGltcHJvdmVkIHBhaXJpbmcuCgoyMDA5LTEyLTI0IDIyOjU5OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYXl1di5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9iZ3JhLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2k0MjAuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfcmdiLmM6CgkgIHZpZGVvbWl4ZXI6IHNjYWxlIGFuZCBjbGFtcAoJICBTY2FsZSBhbmQgY2xhbXAgdG8gdGhlIG1heCBhbHBoYSB2YWx1ZXMuCgoyMDA5LTEyLTI0IDIyOjUwOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgIGFscGhhOiBzY2FsZSBhbmQgY2xhbXAgYWxwaGEgdG8gaXRzIGZ1bGwgZXh0ZW5kCgkgIENvbnZlcnQgdGhlIGFscGhhIHZhbHVlIHRvIDAtPjI1NSB3aGVuIHNldHRpbmcgYW5kIHRvIDAtPjI1NiB3aGVuIHVzaW5nIGFzCgkgIGEgc2NhbGluZyBmYWN0b3IuIFRoaXMgbWFrZXMgc3VyZSB3ZSBjYW4gcmVhY2ggdGhlIGZ1bGwgb3BhY2l0eSB2YWx1ZSBvZiAweGZmIGluCgkgIGFsbCBjYXNlcy4KCjIwMDktMTItMjQgMjI6MjM6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBzb21lIGNvbW1lbnRzLCByZW1vdmUgcHJvcGVydHkgY2hlY2sKCSAgRml4IHNvbWUgY29tbWVudHMsIGNsYXJpZnkgc29tZSBGSVhNRXMKCSAgUmVtb3ZlIHRoZSBvbi1udHAtc3RvcCBzaWduYWwgY2hlY2sgbm93IHRoYXQgdGhlIGppdHRlcmJ1ZmZlciBpcyBpbgoJICAtZ29vZCBhbmQgd2Uga25vdyB0aGF0IGl0IHN1cHBvcnRzIHRoaXMgc2lnbmFsLgoKMjAwOS0xMi0yNCAyMDoyNzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogc29tZSB0cml2aWFsIGNsZWFudXBzCgoyMDA5LTEyLTI0IDE3OjA0OjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogUGFyc2UgYWxsIHJ0cGluZm8gZW50cmllcwoJICBEbyBub3QgZm9yZ2V0IHRvIHBhcnNlIGFsbCBydHAtaW5mbyBlbnRyaWVzLCBpbnN0ZWFkIG9mCgkgIHBhcnNpbmcgdGhlIGZpcnN0IG9uZSBvbmx5LgoJICBGaXhlcyAjNjA1MjIyCgoyMDA5LTEyLTIyIDEyOjQ0OjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogcGVyZiB0YWcgc2hvdWxkIG1hcCB0byBHU1RfVEFHX0FSVElTVAoKMjAwOS0xMi0yNCAxNzowMzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSAgaW50ZXJsZWF2ZTogZml4IHdlaXJkIGluZGVudGF0aW9uCgoyMDA5LTEyLTI0IDE3OjAxOjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJICBydHBoMjYzcHBheTogdXNlIGZhc3RlciBfYWRhcHRlcl9jb3B5KCkgd2hlbSBwb3NzaWJsZQoKMjAwOS0xMi0yNCAxNzowMToxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2F1ZGlvZngvZmlyZmlsdGVyLWV4YW1wbGUuYzoKCSAgdGVzdHM6IHVzZSByaWdodCB0eXBlIHdoZW4gcGFzc2luZyB2YXJhcmcgdmFsdWUKCjIwMDktMTItMjMgMTc6NTA6MzQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIGZsYWNkZWM6IHVzZSBhIHNpbmdsZSBkZWNvZGVyIGZpZWxkIGZvciBib3RoIHB1c2ggYW5kIHB1bGwgbW9kZQoKMjAwOS0xMi0yMyAxNzowMzozMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGZpeCBwb3NzaWJsZSBoYW5naW5nIGluIHB1bGwgbW9kZSBzZWVraW5nCgkgIEEgc2VlayBpbiBtdWx0aS1zaW5rIHBpcGVsaW5lIHR5cGljYWxseSBsZWFkcyB0byBzZXZlcmFsIHNlZWsgZXZlbnRzIGluIGEgcm93LAoJICB3aGljaCBjb3VsZCBsZWFkIHRvIHNlbmRpbmcgc2V2ZXJhbCBuZXdzZWdtZW50cyBpbiBhIHJvdyB3aXRob3V0IGludGVybWVkaWF0ZQoJICBmbHVzaGluZy4gIFRoZXNlIHdvdWxkIHRoZW4gYWNjdW11bGF0ZSwgZGlzdG9ydCByZW5kZXJpbmcgdGltZXMgYW5kIGFzIHN1Y2gKCSAgbGVhZCB0byAnaGFuZ2luZycuCgoyMDA5LTEyLTIzIDE5OjM5OjA1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICBydHBoMjY0cGF5OiBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAwOS0xMi0yMyAxMzowOTo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHJ0cDogdXNlIGJvaWxlcnBsYXRlCgoyMDA5LTEyLTIzIDAwOjM4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXkuaDoKCSAgcnRwTDE2cGF5OiBjb252ZXJ0IHRvIGJhc2VhdWRpb3BheWxvYWQKCSAgVXNlIEdzdFJUUEJhc2VBdWRpb1BheWxvYWQgYXMgdGhlIGJhc2UgY2xhc3MuIFRoaXMgc2F2ZXMgYSBsb3Qgb2YgY29kZSBhbmQgZml4ZXMKCSAgYSBidW5jaCBvZiBwcm9ibGVtcyB0aGF0IHdlcmUgYWxyZWFkeSBzb2x2ZWQgaW4gdGhlIGJhc2UgY2xhc3MuCgkgIEZpeGVzICM4NTMzNjcKCjIwMDktMTItMjMgMDA6MzA6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSAgcnRwcGNtYXBheTogdGhlIGJvaWxlcnBsYXRlIG1hY3JvIHNldHMgcGFyZW50X2NsYXNzCgoyMDA5LTEyLTIyIDIyOjI3OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIHJ0cGJpbjogYXZvaWQgc29tZSBzdHJ1Y3R1cmUgY29waWVzCgkgIERvbid0IG1ha2UgY29waWVkIGluIHRoZSBnZXR0ZXIgYW5kIHNldHRlciBmb3IgU0RFUyBpbiB0aGUgUlRQU291cmNlLiBUaGlzCgkgIGF2b2lkcyBhIGNvdXBsZSBvZiBjb3BpZXMgb2YgdGhlIFNERVMgc3RydWN0dXJlIHdoZW4gZ2VuZXJhdGluZyBSVENQCgkgIHBhY2tldHMuCgoyMDA5LTA4LTMxIDE4OjQyOjI1ICswMjAwICBQYXNjYWwgQnVobGVyIDxwYXNjYWwuYnVobGVyQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBydHBtYW5hZ2VyOiBpbXByb3ZlIFNERVMgaGFuZGxpbmcKCSAgU3RvcmUgU0RFUyBpbnRlcm5hbGx5IGFzIGEgc3RydWN0IHRvIHN1cHBvcnQgbXVsdGlwbGUgUFJJViB2YWx1ZXMuCgkgIEluY2x1ZGUgYWxsIHZhbHVlcyBzZXQgaW4gU0RFUyBzdHJ1Y3Qgd2hlbiBzZW5kaW5nIFJUQ1AgU0RFUy4KCjIwMDktMTItMjIgMTQ6NDE6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOgoJICBydHBoMjYzZGVwYXk6IGFkZCBzb21lIGZpeG1lcwoKMjAwOS0xMi0yMiAxNDozNToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkgIHJ0cGgyNjNkZXBheTogYmFzZWNsYXNzIGhhbmRsZXMgdGltZXN0YW1wcyBmb3IgdXMKCjIwMDktMTItMjIgMTQ6Mjc6NDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOgoJICBydHBoMjYzZGVwYXk6IHJlc2V0IHN0YXJ0IHZhcmlhYmxlIHByb3Blcmx5CgoyMDA5LTA1LTI5IDE1OjQ5OjI3ICswMzAwICBNYXJjbyBCYWxsZXNpbyA8bWFyY28uYmFsbGVzaW9Abm9raWEuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuaDoKCSAgRHJvcCB0aGUgd2hvbGUgZnJhbWUgaWYgYSBwYWNrZXQgaXMgbG9zdC4KCSAgRml4ZXMgIzU4MjU3NQoKMjAwOS0xMi0yMSAyMDozOTo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgcnRwaDI2NHBheTogYWRkIG9wdGlvbiB0byBpbnNlcnQgUFBTL1NQUyBpbiBzdHJlYW1zCgkgIEFkZCBhIG5ldyBzcHNwcHMtaW50ZXJ2YWwgcHJvcGVydHkgdG8gaW5zdHJ1Y3QgdGhlIHBheWxvYWRlciB0byBpbnNlcnQKCSAgU1BTIGFuZCBQUFMgYXQgcGVyaW9kaWMgaW50ZXJ2YWxzIGluIHRoZSBzdHJlYW0uCgkgIFJld29yayB0aGUgU1BTL1BQUyBoYW5kbGluZyBzbyB0aGF0IGJ5dGVzdHJlYW0gYW5kIEFWQyBzYW1wbGUgY29kZSBib3RoIHVzZSB0aGUKCSAgc2FtZSBjb2RlIHBhdGhzIHRvIGhhbmRsZSBzcHJvcC1wYXJhbWV0ZXItc2V0cy4gVGhpcyBhbHNvIGFsbG93cyB0byBoYXZlIHRoZSBBVkMKCSAgY29kZSB0byBpbnNlcnQgU1BTL1BQUyBsaWtlIHRoZSBieXRlc3RyZWFtIGNvZGUuCgkgIEZpeGVzICM2MDQ5MTMKCjIwMDktMTItMjEgMTk6MTI6MjIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0N2NiMjNhIHRvIDE0Y2VjODkKCjIwMDktMTItMjEgMTI6MDE6NTMgLTAzMDAgIEpvbmF0aGFuIENvbmRlciA8akBza3Vydnkubm8taXAub3JnPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmM6CgkgIHF0ZGVtdXg6IEFkZHMgbmV3IHRhZ3MKCSAgQWRkcyBzb21lIG5ldyB0YWdzIG1hcHBpbmcgdG8gcXRkZW11eC4KCSAgRml4ZXMgIzU5OTc1OQoKMjAwOS0xMi0yMSAxNTowNTowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGFkZCBwcm9wZXJ0eSB0byByZW1vdmUgcGFkcyBhdXRvbWF0aWNhbGx5CgkgIEFkZCBhIHByb3BlcnR5IGNhbGxlZCBhdXRvcmVtb3ZlIHRvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBwYWRzIG9mIHNvdXJjZXMKCSAgdGhhdCB0aW1lZCBvdXQuCgkgIEZpeGVzICM1NTQ4MzkKCjIwMDktMTItMjEgMTQ6NTU6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgc3NyY2RlbXV4OiBmaXggY29tcGFyaXNvbgoJICBBIE5VTEwgbWVhbnMgbm8gcGFkIHdhcyBmb3VuZC4KCjIwMDktMTEtMDggMTE6NDk6MTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIHY0bDJzcmM6IEFkZCBHc3RVUklIYW5kbGVyIGludGVyZmFjZS4gRml4ZXMgIzYwMTE0MwoJICBUaGlzIGFsbG93cyB1c2luZyB2NGwyOi8vWzxkZXZpY2U+XQoKMjAwOS0xMi0yMCAxNzoyNDo0NyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgbXVsdGl1ZHBzaW5rOiBwYXNzIGxlbmd0aCBwYXJhbWV0ZXIgdG8gZ19jb252ZXJ0CgoyMDA5LTEyLTE4IDEyOjQ0OjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thOiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUuCgkgIFllcywgaXQncyBzdHVwaWQsIGJ1dCBtYWNvc3ggY29tcGlsZXJzIGFyZSBldmVuIG1vcmUgc3R1cGlkLgoKMjAwOS0xMi0xNyAxNjowMToyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9heXV2LmM6CgkgIHZpZGVvbWl4ZXI6IEZpeCBhc3NlbWJseSBjb21waWxhdGlvbiBvbiB4ODYKCSAgRml4ZXMgYnVnICM2MDQ4MTQuCgoyMDA5LTEyLTE3IDE3OjM3OjAzICswMTAwICBCcmFua28gxIxpYmVqIDxicmFuZSBhdCB4YmMubnU+CgoJKiBnc3QvcmVwbGF5Z2Fpbi9yZ2FuYWx5c2lzLmM6CgkgIHJnYW5hbHlzaXM6IGZpeCB0aW1lc3RhbXAgcm91bmRpbmcKCSAgVXNlIHNjYWxpbmcgZnVuY3Rpb24gdG8gcm91bmQgYW5kIGF2b2lkIG92ZXJmbG93cy4KCSAgRml4ZXMgIzYwNDM1MgoKMjAwOS0xMi0xNyAxNzoyNzo0MiArMDEwMCAgVGlhZ28gS2F0Y2lwaXMgPHRpYWdvLmthdGNpcGlzQGRpZ2l0cm8uY29tLmJyPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzIzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcyM3BheS5oOgoJICBydHA6IGFkZCBHNzIzIHBheWxvYWRlcgoJICBGaXhlcyAjNTk3ODIzCgoyMDA5LTEyLTE3IDE2OjIyOjU2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmM6CgkgIHF0ZGVtdXg6IEZpeCBBTEFDIGNvZGVjX2RhdGEgcGFyc2luZwoJICBGaXhlcyAjNjA0NjExCgoyMDA5LTEyLTE2IDE3OjI4OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogUmVtb3ZlIGNwcCBzdHlsZSBjb21lbnRzCgkgIFJlbW92ZXMgLy8gY29tbWVudHMgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIC8qICovIGNvbW1lbnRzCgoyMDA5LTEyLTE2IDEyOjQ4OjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgbWF0cm9za2FkZW11eDogYWxzbyBjb25zaWRlciBCbG9ja051bWJlciBpbmRpY2F0ZWQgaW4gaW5kZXggd2hlbiBzZWVraW5nCgoyMDA5LTEyLTE2IDEyOjQzOjI3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IHN1cHBvcnQgcHVzaCBiYXNlZCBtb2RlCgkgIEZpeGVzICM1OTg2MTAuCgoyMDA5LTEyLTE2IDEyOjQ0OjM2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSAgbWF0cm9za2FkZW11eDogZml4IGVibWwgcmVhZCBjYWNoZSB1c2FnZQoKMjAwOS0xMi0xNiAxMDo1MDozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9heXV2LmM6CgkgIHZpZGVvbWl4ZXI6IFVzZSBtb3Z6YmwgaW5zdGVhZCBvZiBtb3Z6eGIgZm9yIG1vdmluZyBvbmUgYnl0ZSB0byBhIGwgcmVnaXN0ZXIKCSAgRm9yIHNvbWUgcmVhc29uIGxhdGVzdCBnY2MvYmludXRpbHMgYWNjZXB0IG1vdnp4YiBoZXJlIHdoaWxlCgkgIG1vdnpibCB3b3VsZCBiZSBjb3JyZWN0IGFuZCBpcyB0aGUgb25seSB0aGluZyBhY2NlcHRlZCBieSBvbGRlcgoJICBnY2MvYmludXRpbHMuCgkgIEZpeGVzIGJ1ZyAjNjA0Njc5LgoKMjAwOS0xMi0xNiAwNjo1OTowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9heXV2LmM6CgkgIHZpZGVvbWl4ZXI6IHNyYy9kZXN0IGFyZSBpbnB1dCBhbmQgb3V0cHV0IG9mIHRoZSBBWVVWIGJsZW5kaW5nIE1NWCBhc3NlbWJsZXIKCjIwMDktMTItMTUgMTg6MTg6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzoKCSAgYXVkaW93c2luY2JhbmQ6IFVzZSB0aGUgc2FtZSB1cHBlciBsZW5ndGggbGltaXQgYXMgYXVkaW93c2luY2xpbWl0CgoyMDA5LTEyLTEyIDE3OjAwOjUwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJICBhdWRpb3dzaW5je2xpbWl0LGJhbmR9OiBBbGxvdyBtdWNoIGxhcmdlciBmaWx0ZXIgbGVuZ3RocyBub3cKCjIwMDktMTItMTEgMTI6Mjc6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSAgYXVkaW9meGJhc2VmaXJmaWx0ZXI6IEZpeCBmcmVxdWVuY3kgcmVzcG9uc2UgY2FsY3VsYXRpb24KCjIwMDktMTItMDggMTQ6NTc6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSAgYXVkaW9meGJhc2VmaXJmaWx0ZXI6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTEyLTA2IDE2OjU4OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkgIGF1ZGlvZnhiYXNlZmlyZmlsdGVyOiBBZGQgc3BlY2lhbCBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBmb3IgTW9uby9TdGVyZW8KCSAgVGhpcyBwcm92aWRlcyBhbm90aGVyIDclIHNwZWVkdXAgZm9yIHRoZSB0aW1lIGRvbWFpbiBjb252b2x1dGlvbiBhbmQgMS41JQoJICBzcGVlZHVwIGZvciB0aGUgRkZUIGNvbnZvbHV0aW9uIG9uIE1vbm8gaW5wdXQuCgkgIFRoaXMgb3B0aW1pemF0aW9uIGFzc3VtZXMgdGhhdCB0aGUgY29tcGlsZXIgc2ltcGxpZmllcyBjYWxjdWxhdGlvbnMKCSAgYW5kIGNvbmRpdGlvbnMgb24gY29uc3RhbnQgbnVtYmVycyBhbmQgdW5yb2xscyBsb29wcyB3aXRoIGEgY29uc3RhbnQKCSAgbnVtYmVyIG9mIHJlcGVhdHMuCgoyMDA5LTEyLTA0IDA5OjI1OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmg6CgkgIGF1ZGlvZnhiYXNlZmlyZmlsdGVyOiBBZGQgYSAibG93LWxhdGVuY3kiIG1vZGUKCSAgVGhpcyB3aWxsIGFsd2F5cyB1c2UgdGltZS1kb21haW4gY29udm9sdXRpb24sIHdoaWNoIGxvd2VycyB0aGUgbGF0ZW5jeS4KCSAgV2l0aCBGRlQgY29udm9sdXRpb24gaXQncyBhbHdheXMgYSBtdWx0aXBsZSBvZiB0aGUga2VybmVsIGxlbmd0aCwKCSAgd2l0aCB0aW1lIGRvbWFpbiBjb252b2x1dGlvbiBpdCdzIG9ubHkgdGhlIHByZS1sYXRlbmN5IG9mIHRoZSBmaWx0ZXIga2VybmVsLgoKMjAwOS0xMi0wNCAwOTowMDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJICBhdWRpb2Z4YmFzZWZpcmZpbHRlcjogUmVtb3ZlIG9ic29sZXRlIFRPRE8gY29tbWVudHMKCjIwMDktMTItMDMgMjA6MTI6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSAgYXVkaW9meGJhc2VmaXJmaWx0ZXI6IFVzZSBzYW1wbGVzIGV2ZXJ5d2hlcmUgaW5zdGVhZCBvZiBzYW1wbGVzKmNoYW5uZWxzIHNvbWV0aW1lcwoKMjAwOS0xMi0wMyAxNzoyNzoxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuaDoKCSAgYXVkaW9meGJhc2VmaXJmaWx0ZXI6IEZGVCBjb252b2x1dGlvbiBpbXBsZW1lbnRhdGlvbgoJICBUaGlzIHByb3ZpZGVzIGEgZ3JlYXQgc3BlZWR1cCwgZXNwZWNpYWxseSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4ga2VybmVsCgkgIGxlbmd0aCBhbmQgcHJvY2Vzc2luZyBzaXplIGlzIG5vdyBsb2dhcml0aG1pYyBpbnN0ZWFkIG9mIGxpbmVhci4gQmVsb3cgYQoJICBrZXJuZWwgc2l6ZSBvZiAzMiBpdCdzIGEgYml0IHNsb3dlciwgYWZ0ZXJ3YXJkcyBpdCdzIG11Y2ggZmFzdGVyOgoJICAxNyAgICAgMC43ODgwMDAgLT4gMC45NTAwMDAKCSAgMzMgICAgIDEuMjA4MDAwIC0+IDEuMTQ2MDAwCgkgIDY1ICAgICAyLjE2NjAwMCAtPiAxLjE0NjAwMAoJICAuLi4KCSAgNDA5NyAxMDcuNDQ0MDAwIC0+IDEuNTA4MDAwCgkgIEZvciBzaXplcyBzbWFsbGVyIDMyIHRoZSBub3JtYWwgdGltZS1kb21haW4gY29udm9sdXRpb24gaXMgY2hvc2VuLAoJICBmb3IgbGFyZ2VyIHNpemVzIHRoZSBGRlQgY29udm9sdXRpb24gaXMgYXV0b21hdGljYWxseSB1c2VkLgoJICBGaXhlcyBidWcgIzU5NDM4MS4KCjIwMDktMTEtMjcgMjA6MzM6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuaDoKCSAgYXVkaW9meGJhc2VmaXJmaWx0ZXI6IE1ha2UgbW9zdCBjb2RlIHBhcnRzIGluZGVwZW5kZW50IG9mIHRoZSBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBhbmQgdXNlZCBjb252b2x1dGlvbiBhbGdvcml0aG0KCSAgT25seSByZW1haW5pbmcgcGFydCBpcyB0aGUgcmVzaWR1ZSBwdXNoaW5nLCB3aGljaCB3aWxsIGJlIGZpeGVkIGxhdGVyLgoKMjAwOS0xMS0yNiAxNToxNzoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJICBhdWRpb2Z4YmFzZWZpcmZpbHRlcjogT3B0aW1pemUgdGltZS1kb21haW4gY29udm9sdXRpb24KCSAgUmVtb3ZlIHNvbWUgcmVkdW5kYW50IGNhbGN1bGF0aW9ucywgbW92ZSBjb21wYXJpc2lvbnMgb3V0IG9mCgkgIGlubmVyIGxvb3BzLCBldGMuCgkgIFRoaXMgbWFrZXMgdGhlIGNvbnZvbHV0aW9uIGFib3V0IDMgKCEpIHRpbWVzIGZhc3RlciBidXQKCSAgcHJvY2Vzc2luZyB0aW1lIGlzIG9mIGNvdXJzZSBzdGlsbCBwcm9wb3J0aW9uYWwgdG8gdGhlCgkgIGZpbHRlciBzaXplLgoKMjAwOS0xMS0yNiAxMDo0NTozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJICBhdWRpb2Z4YmFzZWZpcmZpbHRlcjogVXNlIF9DQVNUIG1hY3JvcyBpbiBzb21lIHBsYWNlcyBhbmQgZG8gc29tZSBjYWxjdWxhdGlvbnMgb25seSBvbmNlCgoyMDA5LTExLTI1IDE4OjEyOjA1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmg6CgkgIGF1ZGlvZnhiYXNlZmlyZmlsdGVyOiBSZXdyaXRlIHRpbWVzdGFtcCB0cmFja2luZwoJICBJdCdzIG11Y2ggc2ltcGxlciBub3cgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFjY3VtdWxhdGluZyByb3VuZGluZwoJICBlcnJvcnMuCgoyMDA5LTExLTI1IDE3OjM5OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmg6CgkgIGF1ZGlvZnhiYXNlZmlyZmlsdGVyOiBSZW5hbWUgc29tZSB2YXJpYWJsZXMgYW5kIGNoYW5nZSBjb21tZW50cwoKMjAwOS0xMS0yNCAyMDowNjoyNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4YmFzZWZpcmZpbHRlci5oOgoJICBhdWRpb2Z4YmFzZWZpcmZpbHRlcjogQWRkIGNvbnN0IHF1YWxpZmllciB0byB0aGUgc291cmNlIGRhdGEgYXJyYXkKCjIwMDktMTItMTQgMjA6MDg6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2F5dXYuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBBZGQgTU1YIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgQVlVViBibGVuZGluZyBhbmQgY29sb3IgZmlsbGluZyBmdW5jdGlvbnMKCSAgVGhpcyBwcm92aWRlcyBhIDIwJSBzcGVlZHVwIGZvciBibGVuZGluZyBhbmQgMTAwJSBmb3IgY29sb3IgZmlsbGluZy4KCSAgVGhlIGJsZW5kaW5nIGNhbiBwcm9iYWJseSBiZSBvcHRpbWl6ZWQgZXZlbiBtb3JlLgoKMjAwOS0xMi0xMyAxMzoxOTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzoKCSAgaWQzZGVtdXg6IHByZWZlciB0d28gbGV0dGVyIElTTyA2MzktMSBjb2RlIGZvciBleHRlbmRlZCBjb21tZW50CgoyMDA5LTEyLTEzIDEzOjEwOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IHVwIGxhbmd1YWdlIGNvZGUgZXh0cmFjdGlvbiBzb21lIG1vcmUKCSAgUXVpY2t0aW1lIHVzZXMgSVNPIDYzOS0yIGZvciBsYW5ndWFnZSBjb2RlcywgYnV0IEdTVF9UQUdfTEFOR1VBR0UKCSAgaXMgc3VwcG9zZWQgdG8gaG9sZCBhIElTTyA2MzktMSBjb2RlLCBzbyBjb252ZXJ0IGFzIG5lZWRlZCB1c2luZwoJICB0aGUgbmV3IEFQSSBmcm9tIC1iYXNlLgoJICBTZWUgIzYwMjEyNi4KCjIwMDktMTItMTMgMTI6NDU6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2E6IGZpeCBsYW5ndWFnZSBjb2RlIHdyaXRpbmcgYW5kIGV4dHJhY3Rpb24KCSAgTWF0cm9za2EgdXNlcyB0aHJlZS1sZXR0ZXIgSVNPIDYzOS0yQiBjb2RlcywgYnV0IEdTVF9UQUdfTEFOR1VBR0UgaXMKCSAgc3VwcG9zZWQgdG8gY29udGFpbiB0d28tbGV0dGVyIElTTyA2MzktMSBjb2Rlcywgc28gdXNlIG5ldyBsYW5ndWFnZQoJICBjb2RlIG1hcHBpbmcgZnVuY3Rpb25zIGluIC1iYXNlIHRvIGNvbnZlcnQgYmV0d2VlbiB0aG9zZSB0d28gYXMKCSAgbmVlZGVkLgoJICBGaXhlcyAjNTA1ODIzLgoKMjAwOS0xMi0wNyAyMDo1NDowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBtaW5vciBkZWJ1ZyBtZXNzYWdlIGNoYW5nZXMKCSAgRml4IHVwIGEgZmV3IGRlYnVnIG1lc3NhZ2VzIHNvIHRoYXQgaXQncyBjbGVhcmVyIHdoYXQgdGhleSBtZWFuLgoKMjAwOS0xMi0xMiAxNzo0NDowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIFJldmVydCAicXRkZW11eDogQ29ycmVjdGx5IHBhcnNlIGNsYXNzaWZpY2F0aW9uIHRhZ3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgY2Q4ODNhYTYwYzExMzMxOTZhNmFlMDUyODg0ZDE1YzI5NWMzN2RkZS4KCSAgUHJldmlvdXMgY29kZSB3YXMgY29ycmVjdCwgNCBpcyBkdWUgdG8gdGFibGUgYW5kIGxhbmd1YWdlIGNvZGUsCgkgIG5vdCBvbmx5IGxhbmd1YWdlIGNvZGUKCjIwMDktMTItMTIgMTY6Mjg6MzYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBDb3JyZWN0bHkgcGFyc2UgY2xhc3NpZmljYXRpb24gdGFncwoJICBJbiBjbHNmIGF0b21zLCB0aGUgbGFuZ3VhZ2UgY29kZSBpcyAyIGJ5dGVzIGxvbmcsIG5vdCA0LgoKMjAwOS0xMi0xMiAxNjo1NToxMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IERlcXVldWUgY3VycmVudCBidWZmZXIgb24gRkxVU0hfU1RPUCBhbmQgZG9uJ3QgdW5yZWYgTlVMTCBidWZmZXJzCgkgIC4uLiBOVUxMIGJ1ZmZlcnMgc2hvdWxkbid0IHJlYWxseSBoYXBwZW4gYW55bW9yZSB3aGVuIHBvcHBpbmcgdGhlCgkgIGJ1ZmZlciBmcm9tIEdzdENvbGxlY3RQYWRzIGJ1dCBiZXR0ZXIgY2hlY2sgZm9yIHRoaXMgYW5kIHByaW50IGEgd2FybmluZy4KCjIwMDktMTItMTEgMTM6MTE6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfaTQyMC5jOgoJICB2aWRlb21peGVyOiBGaXggc3R1cGlkIG1pc3Rha2UgaW4gbGFzdCBjb21taXQKCjIwMDktMTItMTEgMTI6MzU6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfaTQyMC5jOgoJICB2aWRlb21peGVyOiBEb24ndCBkbyBmbG9hdGluZyBwb2ludCBtYXRoIGluIHRoZSBpbm5lciBwcm9jZXNzaW5nIGxvb3AgZm9yIEk0MjAgYmxlbmRpbmcKCjIwMDktMTItMTAgMTg6NDM6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGhhbmRsZSBOVUxMIGFuZCBlbXB0eSB0cmFuc3BvcnQgc3RyaW5ncwoJICBXaGVuIGFuIFJUU1AgZXh0ZW5zaW9uIHJldHVybnMgTlVMTCBvciBhbiBlbXB0eSB0cmFuc3BvcnQgc3RyaW5nLCBqdXN0IGlnbm9yZSBpdAoJICBhbmQgdHJ5IHRvIGdldCB0aGUgbmV4dCBwb3NzaWJsZSB0cmFuc3BvcnQuIEZpeGVzIHBsYXliYWNrIG9mIFJlYWxNZWRpYSBzdHJlYW1zLgoKMjAwOS0xMi0xMCAxODo0Mjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogaW5zdGFsbCBldmVudCBmdW5jdGlvbiBvbiBpbnRlcm5hbCBSVENQIHBhZAoJICBJbnN0YWxsIGEgY3VzdG9tIGV2ZW50IGZ1bmN0aW9uIG9uIHRoZSBpbnRlcm5hbCBSVENQIHBhZCBzbyB0aGF0IHdlIGNhbiByZXBseQoJICBUUlVFIHRvIGEgbGF0ZW5jeSBldmVudC4KCjIwMDktMTItMTAgMTA6NDg6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYXl1di5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9iZ3JhLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX3JnYi5jOgoJICB2aWRlb21peGVyOiBSZW1vdmUgd3JvbmcgY29tbWVudHMsIGNvcGllZCBmcm9tIHRoZSBJNDIwIGJsZW5kIGZ1bmN0aW9uCgoyMDA5LTEyLTA5IDIxOjE1OjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogVGhlIHF1ZXVlZCBkdXJhdGlvbiBpcyBhIHNpZ25lZCBpbnRlZ2VyCgkgIC4uLmFuZCBpdCB3aWxsIHJlYWxseSBiZSBuZWdhdGl2ZSBzb21ldGltZXMuCgoyMDA5LTEyLTA5IDIxOjAzOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogT25seSBwb3AgYnVmZmVycyBmcm9tIGNvbGxlY3RwYWRzIGFmdGVyIHRoZXkncmUgZnVsbHkgY29uc3VtZWQKCSAgVGhpcyBkZWNyZWFzZXMgbGF0ZW5jeSBhbmQgbWVtb3J5IHVzYWdlIGJlY2F1c2UgbmV3IGJ1ZmZlcnMgYXJlIG9ubHkKCSAgYWNjZXB0ZWQgYnkgY29sbGVjdHBhZHMgaWYgdGhlcmUncyBubyBxdWV1ZWQgYnVmZmVyLgoKMjAwOS0xMi0wOSAyMDo0Mjo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIG1hdHJvc2thZGVtdXg6IENsZWFuIHVwIHBvc2l0aW9uL2R1cmF0aW9uIGhhbmRsaW5nCgkgIEFsc28gdXNlIHRoZSBsYXN0IGVuZCB0aW1lIGZvciBjbG9zaW5nIHRoZSBzZWdtZW50LCBub3QgdGhlCgkgIHN0YXJ0IHRpbWUgb2YgdGhlIGxhc3QgYnVmZmVyLgoKMjAwOS0xMi0wOSAxNjo1MDowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogQ2xvc2UgdGhlIHNlZ21lbnQgb24gRU9TIGlmIHRoZSByZWFsIGR1cmF0aW9uIGlzIGtub3duCgoyMDA5LTEyLTA5IDE2OjQ2OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBVcGRhdGUgZHVyYXRpb24gaWYgY3VycmVudCBidWZmZXIgaXMgYWxyZWFkeSBhZnRlciB0aGUgb2xkIGR1cmF0aW9uCgoyMDA5LTEyLTA5IDE2OjQzOjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBEcm9wIGJ1ZmZlcnMgdGhhdCBhcmUgYWZ0ZXIgc2VnbWVudCBzdG9wCgkgIC4uLmFuZCBpZiB0aGlzIGhhcHBlbmVkIGZvciBhbGwgc3RyZWFtcyBnbyBFT1MuCgoyMDA5LTEyLTA5IDE2OjQxOjA0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBGaXggcG9zaXRpb24gdHJhY2tpbmcgYW5kIHNlbmRpbmcgb2YgZmlsbGVyIHNlZ21lbnRzCgoyMDA5LTEyLTA5IDE2OjE1OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogVXNlIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQoKSBmb3IgZnBzIHRvIHNlY29uZHMgcGVyIGZyYW1lIGNhbGN1bGF0aW9ucwoKMjAwOS0xMi0wOCAxNzozNDoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogS2VlcCB0aGUgc2VnbWVudCBzdG9wIHBvc2l0aW9uIGZvciB1cGRhdGUgbmV3c2VnbWVudCBldmVudHMKCjIwMDktMTItMDQgMTQ6NDI6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvTWFrZWZpbGUuYW06CgkqIGV4dC9sYWRzcGEvTWFrZWZpbGUuYW06CgkqIGV4dC9sYWRzcGEvZ3N0bGFkc3BhLmM6CgkqIGV4dC9sYWRzcGEvZ3N0bGFkc3BhLmg6CgkqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmM6CgkqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmg6CgkqIGV4dC9sYWRzcGEvbG9hZC5jOgoJKiBleHQvbGFkc3BhL3NlYXJjaC5jOgoJKiBleHQvbGFkc3BhL3V0aWxzLmg6CgkgIGxhZHNwYTogUmVtb3ZlIHRoZSBzb3VyY2VzIGZyb20gZ3N0LXBsdWdpbnMtZ29vZAoJICBJdCdzIGRpc2FibGVkIGFueXdheSBhbmQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGl0IGlzIGluCgkgIGdzdC1wbHVnaW5zLWJhZC4gRml4ZXMgYnVnICM2MDM3NzkuCgoyMDA5LTEyLTA0IDEzOjUwOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogaW5pdCBjdXJyZW50X2VudHJ5IGluIHB1c2ggbW9kZQoJICBTZXQgdGhlIGN1cnJlbnRfZW50cnkgdG8gMCAoaW5zdGVhZCBvZiAtMSkgaW4gcHVzaCBtb2RlIHNvIHRoYXQgd2UgY29ycmVjdGx5CgkgIGNhbGN1bGF0ZSB0aGUgY3VycmVudCBmcmFtZSBudW1iZXIgYW5kIHRpbWVzdGFtcC4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvIGFuZCBmaWMgdGhlIGR1cmF0aW9uIGRlYnVnLgoKMjAwOS0xMi0wNCAxMToxNDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBtYWpvciBtZW1vcnkgbGVhayB3aGVuIHBsYXlpbmcgYmFjayBydHNwIHZpZGVvIHN0cmVhbXMKCSAgRG9uJ3QgZm9yZ2V0IHRvIHVucmVmIFFvUywgbmF2aWdhdGlvbiBhbmQgbGF0ZW5jeSBldmVudHMgd2hlbgoJICBkcm9wcGluZyB0aGVtLgoKMjAwOS0xMi0wMyAwODo1ODowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogb25seSBzZW5kIHBlbmRpbmcgdGFncyB3aXRoIG5ld3NlZ21lbnQgZXZlbnRzCgkgIFNlbmQgcGVuZGluZyB0YWdzIG9ubHkgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCwganVzdCBhZnRlciB3ZSd2ZSBzZW50CgkgIHRoZSBuZXdzZWdtZW50IGV2ZW50LCBub3Qgd2l0aCBlLmcuIGZsdXNoLXN0YXJ0LiBUaGlzIG5vdCBvbmx5IGRvZXMgdGhlCgkgIHJpZ2h0IHRoaW5nLCBidXQgYWxzbyBtYWtlcyBzdXJlIHdlJ3JlIG5vdCB0cmFtcGxpbmcgb3ZlciB2YXJpYWJsZXMgc2V0CgkgIHVwIGluIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGZyb20gdGhlIHNlZWtpbmcgdGhyZWFkIGluIGNhc2Ugc29tZW9uZSB0cmllcwoJICB0byBpc3N1ZSBhIHNlZWsganVzdCBhcyB0aGUgZGVtdXhlciBpcyBwYXJzaW5nIHRoZSBoZWFkZXJzLgoJICBGaXhlcyAjNjAxNjE3LiBTcG90dGVkIGJ5IE9nbnlhbiBUb25jaGV2LgoKMjAwOS0xMi0wMyAxNzo0OTo1NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBkZWJ1ZyBtZXNzYWdlIHByaW50ZiBhcmdzCgkgIEZpeGVzIGRlYnVnIG1lc3NhZ2UgcHJpbnRmIGZvcm1hdCB0byBtYWtlIGl0IGJ1aWxkIGluIG1hYydzIGdjYwoKMjAwOS0xMi0wMiAxMzozMzoyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOgoJICBzaG91dDI6IENvbnZlcnQgZGVsYXkgY29ycmVjdGx5CgkgIFVzZSBHU1RfTVNFQ09ORCB0byBjb252ZXJ0IGRlbGF5IGluIG1zZWNzIHRvIG5hbm9zZWNzCgkgIEZpeGVzICM2MDM1NDcKCjIwMDktMTItMDEgMTk6MjQ6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IHJlc2V0IHNlZ21lbnQgaW5mbyBhZnRlciBmbHVzaAoJICBSZXNldCB0aGUgc2VnbWVudCBpbmZvIGFmdGVyIGEgZmx1c2guIFdlIHVzZSB0aGUgc2VnbWVudCBmb3IgaGFuZGxpbmcgUW9TIGFuZCBpZgoJICB3ZSBkb24ndCByZXNldCB0aGUgc2VnbWVudCwgUW9TIGlzIGJhc2ljYWxseSBkaXNhYmxlZCBhZnRlciBhIGZsdXNoaW5nIHNlZWsuCgoyMDA5LTEyLTAxIDE1OjA3OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODdiZjQyOCB0byA0N2NiMjNhCgoyMDA5LTEyLTAxIDE0OjE1OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGE0Yzc1YyB0byA4N2JmNDI4CgoyMDA5LTExLTMwIDE1OjU5OjUwICswMTAwICBBdXJlbGllbiBHcmltYXVkIDxnc3RlbHp6IGF0IHlhaG9vIGRvdCBmcj4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogYXZvaWQgYnVmZmVyIHJlZi91bnJlZiBwYWlycyBmb3IgQ1NSQ3MKCSAgV2UgcmVmIHRoZSBidWZmZXIgYmVmb3JlIHB1c2hpbmcgaXQgZG93bnN0cmVhbSBpbiBvcmRlciB0byBnZXQgdGhlIENTUkNzIG9mIGl0CgkgIGFmdGVyIHB1c2hpbmcuIFRoaXMgY2F1c2VzIHBlcmZvcm1hbmNlIHByb2JsZW1zIHdoZW4gZG93bnN0cmVhbSBlbGVtZW50cyB3YW50IHRvCgkgIGNoYW5nZSB0aGUgbWV0YWRhdGEgYmVjYXVzZSB0aGUgYnVmZmVyIG5lZWRzIHRvIGJlIHN1YmJ1ZmZlcmVkLgoJICBJbnN0ZWFkLCByZWFkIGFuZCBzdG9yZSB0aGUgQ1NSQ3Mgb2YgdGhlIGJ1ZmZlciBpbiBhbiBhcnJheSBiZWZvcmUgcHVzaGluZyBpdAoJICBhbmQgcHJvY2VzcyB0aGUgYXJyYXkgYWZ0ZXIgcHVzaGluZyB0aGUgYnVmZmVyLiBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUgdGhlCgkgIHJlZi91bnJlZiBwYWlyLgoJICBGaXhlcyAjNjAzMzc2CgoyMDA5LTExLTI4IDE5OjIzOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuaDoKCSAgc2hvdXQyOiB1c2UgZ3N0cG9sbCBmb3IgdGltZW91dHMKCSAgVXNlIG91ciBvd24gR3N0UG9sbCBiYXNlZCB0aW1lb3V0IGluc3RlYWQgb2YgdGhlIHNob3V0IHNsZWVwIHNvIHRoYXQgd2UgY2FuCgkgIGludGVycnVwdCB3aGVuIGRvaW5nIGEgc3RhdGUgY2hhbmdlIGFuZCBzaHV0dGluZyBkb3duLgoJICBGaXhlcyAjNjAyODg3CgoyMDA5LTExLTI4IDEyOjI1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwaml0dGVyYnVmZmVyLmM6CgkgIGNoZWNrOiBmaXggaml0dGVyYnVmZmVyIGNoZWNrCgkgIE1ha2Ugc3VyZSB3ZSBzZXQgYSBiYXNlX3RpbWUgb24gdGhlIGVsZW1lbnQuCgkgIEZpeCB0aGUgdGltZW91dCB0byBhdCBsZWFzdCB0d2ljZSB0aGUgaml0dGVyYnVmZmVyIGxhdGVuY3kuCgkgIEVuYWJsZSBwcmV2aW91c2x5IGZhaWxpbmcgdGVzdHMuCgkgIFJlbW92ZSBpbXBvc3NpYmxlIGNoZWNrcy4KCjIwMDktMTEtMjcgMTg6NTU6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDUzYTI0ODUgdG8gZGE0Yzc1YwoKMjAwOS0xMS0yNiAxNjoxNDozMCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5oOgoJICBydHBoMjY0ZGVwYXk6IG9wdGlvbmFsbHkgbWVyZ2UgTkFMVXMgaW50byBBY2Nlc3MgVW5pdHMKCSAgLi4uIHdoaWNoIG1heSBiZSBleHBlY3RlZC9kZXNpcmVkIGJ5IHNvbWUgZG93bnN0cmVhbSBkZWNvZGVycwoJICAoYW5kIHNwZWMtd2lzZSBoaWdobHkgcmVjb21tZW5kZWQgZm9yIGF0IGxlYXN0IG5vbi1ieXRlc3RyZWFtIG1vZGUpLgoKMjAwOS0xMS0yNiAxNzoyOTowMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCB0aW1lc3RhbXAgZGF0YXR5cGUKCjIwMDktMTEtMjUgMTA6Mzg6MjMgLTA2MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBhdm9pZCB1c2luZyB3cm9uZyBjbG9jay1yYXRlCgkgIENoZWNrIGZvciBhIHZhbGlkIGNsb2NrLXJhdGUgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZXN0aW1hdGUgdGhlIG5wdAoJICBzdG9wIHRpbWUuCgoyMDA5LTExLTI1IDEwOjM3OjMwIC0wNjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogZml4IHR5cG8gaW4gY29tbWVudHMKCjIwMDktMTEtMjUgMTY6MDU6MTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGppdHRlcmJ1ZmZlci5jOgoJICBydHBqaXR0ZXJidWZmZXJ0ZXN0OiBhZGQgb25lIG1vcmUgdGVzdCBhbmQgZmlsZSBhIGJ1ZyBub3cKCSAgQ0hhbmdlIHRoZSBiYWNrd2FyZHMgdGVzdCB0byBhbHdheXMgc2VuZCBmaXJzdCBidWZmZXIgZmlyc3QgdG8gaGF2ZSBhIGRlZmluZQoJICBiYXNldGltZS4gQWRkIGFub3RoZXIgdGVzdCB0aGF0IHNlbmRzIGJ1ZmZlcnMgYmFja3dhcmRzIHRvIGFzc2VydCB0aGF0IG9ubHkKCSAgZmlyc3Qgc2VudCBidWZmZXIgaXMga2VlcCBhbmQgdXNlZCBhcyBiYXNldGltZS4gRGlzYWJsZWQgdGhvc2UgdGVzdHMgc3RpbGwsCgkgIGFzIGl0cyBub3QgcGFzc2luZy9mYWlsaW5nIGNvbnNpdGVudGx5IGFuZCBmaWxlIGEgYnVnIGZvciBqaXR0ZXJidWZmZXIuCgoyMDA5LTExLTI1IDEwOjE3OjM0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVydGVzdDogaW1wcm92ZSB0aGUgdGVzdAoJICB0aGUgdGVzdHMgYXJlIGEgYml0IG1vcmUgc29saWQgbm93IGJ1dCBzdGlsbCBub3QgcHJvZHVjZSByZWxpYWJsZSByZXN1bHRzLgoJICBXb25kZXIgaWYgdGhleSBhcmUgc3RpbGwgZmxhd2t5IG9yIGlmIGl0cyBhIGJ1ZyBpbiBqaXR0ZXJidWZmZXIuCgoyMDA5LTExLTI0IDExOjEzOjA2IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIG11bHRpdWRwc2luazogcmV0dXJuIGVycm9yIG1lc3NhZ2Ugb24gd2luZG93cyB0b28uCgoyMDA5LTExLTI0IDEwOjU4OjQ5IC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIG11bHRpdWRwc2luazogZmlyc3QgcGhhc2Ugb2YgZml4aW5nIHVwIGVycm9yIHJlcG9ydGluZyBmb3Igd2luZG93cy4KCjIwMDktMTAtMzAgMDM6MTM6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgYXZpbXV4OiBhbHNvIHNldCB0aGUgc3VnZ2VzdGVkIGJ1ZiBzaXplIGZvciBhdWRpbwoJICBXZSB3ZXJlIG9ubHkgc2V0dGluZyB0aGUgc3VnZ2VzdGVkIGJ1ZiBzaXplIGZvciB2aWRlbywKCSAgd2UgY2FuIHNldCBpdCBmb3IgYXVkaW8gYXMgd2VsbC4KCSAgVGhpcyBhbmQgMTk1ZTE0NTI5ZDgwZWYzMThjZTNhNzc4YzE5OTVlZmIxMWYyNjZjZAoJICBmaXggYW4gaXNzdWUgdGhhdCBwcmV2ZW50ZWQgc2Vla2luZyBvbiBsYXJnZSBhdmkgZmlsZXMKCSAgb24gV01QIChub24tcmVjZW50IHZlcnNpb25zKS4KCjIwMDktMTEtMDQgMTY6MTA6MjMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguaDoKCSAgYXZpbXV4OiBmaXggaW5keCBkdXJhdGlvbiBmb3IgUENNIGF1ZGlvCgkgIEdzdEJ1ZmZlcnMgZm9yIFBDTSBhdWRpbyB1c3VhbGx5IGNvbnRhaW5zIG1vcmUgdGhhbgoJICAxIHNhbXBsZSwgd2UgbmVlZCB0byBnZXQgdGhlIHRvdGFsIG51bWJlciBvZiBzYW1wbGVzIHRvIHNldAoJICB0aGUgaW5keCBkdXJhdGlvbi4KCjIwMDktMTEtMDQgMTY6MDQ6MTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgYXZpbXV4OiBBdWRpbyBidWZmZXJzIHNob3VsZCBiZSBwaWNrZWQgZWFybGllcgoJICBBZGRzIGEgMC41cyBhZHZhbnRhZ2UgZm9yIGF1ZGlvIGJ1ZmZlcnMgdG8gYmVpbmcKCSAgcGlja2VkIGVhcmxpZXIgZm9yIG11eGluZy4KCjIwMDktMTEtMjQgMTY6NDA6MTkgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRml4IHB1c2ggbW9kZSBieSBtYWtpbmcgc3VyZSBzdGJsIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBuZXh0X2VudHJ5X3NpemUgKCkKCjIwMDktMTEtMjQgMTY6MzU6MjAgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRml4IG9yZGVyIG9mIGFyZ3VtZW50cyBpbiBsb2cgbWVzc2FnZQoKMjAwOS0xMS0yNCAxNTo1MToyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBmaXggc3BlbGxpbmcgaW4gY29tbWVudAoKMjAwOS0xMS0yMyAxNzo1ODoxNyArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBidWlsZCBzeXN0ZW06IEZpeCB3cm9uZ2x5IGNvbW1pdHRlZCBjaGFuZ2UgdG8gY29tbW9uLwoKMjAwOS0xMS0xMCAxMDoyNjowNyArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBFYXNlIGRlYnVnZ2luZyBieSByZW1vdmluZyBhIGdvdG8gZm9yIGFuIGVycm9yIG1lc3NhZ2UKCjIwMDktMTEtMTQgMTU6NTI6MDkgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBQYXJzZSBwZXIgc2FtcGxlIHJhdGhlciB0aGFuIGFsbCBhdCBvbmNlIGJ1dCBidWlsZCBjb21wbGV0ZSBpbmRleCB3aGVuIHNlZWtpbmcKCjIwMDktMTEtMDQgMTc6MzE6MTUgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogU2F2ZSBhdG9tIGRhdGEgZm9yIGxhdGVyIHVzZSBzbyBpdCBkb2Vzbid0IGdldCBmcmVlZCBhZnRlciBpbml0aWFsIHBhcnNpbmcKCjIwMDktMTEtMDYgMTE6MDA6MDQgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogUGFyc2UgZnJvbSB0aGUgcHJldmlvdXNseSBwYXJzZWQgc2FtcGxlIHVwIHRvIHNhbXBsZSBuCgoyMDA5LTExLTA0IDE3OjA0OjIyICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IE1ha2UgcXRkZW11eF9wYXJzZV9zYW1wbGVzICgpIHBhcnNlIHVwIHRvIG4gc2FtcGxlcwoKMjAwOS0xMC0yOCAxNzo0OTowMiArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBTZXBhcmF0ZSBvZmYgc3RibCBzdWItYXRvbSBpbml0aWFsaXNhdGlvbgoKMjAwOS0xMC0yNiAyMjo0MjozNiArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBNb3ZlIHZhcmlhYmxlcyBpbnRvIGNvbnRleHQgaW4gcHJlcGFyYXRpb24gZm9yIHJlZmFjdG9yaXNhdGlvbgoKMjAwOS0xMC0yNiAyMDozNjowOCArMDAwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggYnVnIHdoZXJlIHN0cHMgaXMgbmV2ZXIgcGFyc2VkIGR1ZSB0byBsb2dpYyBlcnJvcgoKMjAwOS0xMS0wNCAxNzozMToxNSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBQb3J0IGN0dHMgZnJvbSBHbm9kZSAqIHRvIEdzdEJ5dGVSZWFkZXIKCjIwMDktMTAtMjMgMTM6MDY6NDQgKzAxMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGdtYWlsLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0YXRvbXBhcnNlci5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuaDoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF90eXBlcy5oOgoJICBxdGRlbXV4OiBTd2l0Y2ggZnJvbSBRdEF0b21QYXJzZXIgdG8gR3N0Qnl0ZVJlYWRlcgoKMjAwOS0xMS0yMyAxMjo1Mzo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IHR5cG8gYW5kIGdyYW1tYXIKCjIwMDktMTEtMjAgMTA6MzA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBmaXggdHlwbyBpbiBtb2RlIGVudW0gZGVzY3JpcHRpb24KCjIwMDktMTEtMjAgMTE6MjU6NDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBkb2NzOiBtb3JlIGxpbmtzIGFuZCBiZXR0ZXIgc2hvcnQgZGVzY3JpcHRpb24KCSAgRml4IHNwZWxsaW5nIG9mIEdzdFJ0cFNzcmNEZW11eCB0byBnZXQgaXQgbGlua2VkLiBBZGQgbW9yZSBsaW5rcy4gQ2hhbmdlCgkgIHRoZSBzaG9ydCBkZXNjcmlwdGlvbiB0byBiZSBtb3JlIG1lYW5pbmdmdWwuCgoyMDA5LTExLTIwIDA5OjU4OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2twYXJzZS5jOgoJICB3YXZwYWNrcGFyc2U6IEZpeCB1bml0IHRlc3QgZm9yIHJlY2VudCBwb3NpdGlvbiByZXBvcnRpbmcgY2hhbmdlcwoKMjAwOS0xMS0xOSAxNjowOTozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgd2F2cGFja3BhcnNlOiBBZnRlciBwdXNoaW5nIGEgZnJhbWUsIHVwZGF0ZSBsYXN0X3N0b3AgdG8gdGhlIGVuZCBvZiB0aGUgZnJhbWUKCSAgVGhpcyBpbXByb3ZlcyBwb3NpdGlvbiByZXBvcnRpbmcsIGVzcGVjaWFsbHkgYmVjYXVzZSBvZiB0aGUgZmFjdCB0aGF0CgkgIFdhdlBhY2sgZnJhbWVzIGFyZSB1c3VhbGx5IDAuNS0xLjAgc2Vjb25kcyBsb25nLgoKMjAwOS0xMS0xOSAxNjowODozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgd2F2cGFja3BhcnNlOiBBbGxvdyBwdWxsaW5nIHRoZSBsYXN0IFdhdlBhY2sgZnJhbWUgb2YgYSBmaWxlCgkgIEJlY2F1c2Ugb2YgYSA+PSBpbnN0ZWFkIG9mIGEgPiwgdGhhdCBsYXN0IGZyYW1lIG9mIGEgV2F2UGFjayBmaWxlCgkgIHdvdWxkIG5ldmVyIGJlIHBhcnNlZCBpbiBwdWxsIG1vZGUuCgoyMDA5LTExLTE5IDEwOjMwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDcwMmZlMSB0byA1M2EyNDg1CgoyMDA5LTEwLTI5IDA4OjI5OjM4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSAgcXRkZW11eDogQWRkIG1vcmUgZmllbGRzIHRvIFNWUTMgY2FwcwoJICBxdGRlbXV4IG9ubHkgYWRkZWQgdGhlIHdob2xlIHN0c2QgYXRvbSBhcyAnY29kZWNfZGF0YScKCSAgaW4gaXRzIG91dHB1dCBjYXBzIGZvciBTVlEzLiBUaGlzIHBhdGNoIG1ha2VzIGl0IGFkZAoJICB0aGUgU0VRSCAoaW5zaWRlIGEgU01JIGF0b20pIGFuZCBhIGdhbW1hIGZpZWxkICh0YWtlbgoJICBmcm9tIHRoZSBnYW1hIGF0b20pIGlmIGF2YWlsYWJsZS4KCSAgRml4ZXMgIzU4NzkyMgoKMjAwOS0xMS0xOCAxNzo1NTo0MiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6CgkgIHdhdmVuYzogUmFpc2UgcmFuayBvZiBtdXhlciB0byBQUklNQVJZCgoyMDA5LTExLTE4IDE3OjU0OjE2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgeTRtOiBSYWlzZSByYW5rIG9mIGVuY29kZXIgdG8gUFJJTUFSWQoKMjAwOS0xMS0xOCAxNzo1NDowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9sYXcvYWxhdy5jOgoJKiBnc3QvbGF3L211bGF3LmM6CgkgIGxhdzogUmFpc2UgcmFuayBvZiBlbmNvZGVycyB0byBQUklNQVJZCgoyMDA5LTExLTEyIDE5OjExOjE4ICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgQWRkIHVzZXItaWQgYW5kIHVzZXItcHcgcHJvcGVydGllcwoJICBTbyB0aGF0IG9uZSBkb2Vzbid0IG5lZWQgdG8gbW9kaWZ5IHRoZSBVUkwgdG8gaGF2ZSBhY2Nlc3MKCSAgdG8gYXV0aGVudGljYXRlZCBSVFNQIHN0cmVhbXMuCgkgIGZpeGVzICM2MDE3MjgKCjIwMDktMTEtMTggMTI6MjI6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogdXNlIGFjcXVpcmVkIGZsYWcgd2hlbiBjaGVja2luZyB2YWxpZCBzdGF0ZQoJICBVc2UgdGhlIGFjcXVpcmVkIGZpZWxkIG9mIHRoZSByaW5nYnVmZmVyIGluIGdldF90aW1lIHRvIGtub3cgd2hlbiB3ZSBhcmUgaW4gYW4KCSAgaW52YWxpZCBzdGF0ZS4gV2UgZG9uJ3QgY2xlYXIgdGhlIHJhdGUgZmxhZyB3aGVuIHJlbGVhc2luZyB0aGUgcmluZ2J1ZmZlciBzbwoJICB0aGlzIHZhbHVlcyBpcyBub3QgdXNhYmxlLgoJICBBdm9pZHMgc29tZSBlcnJvciBtZXNzYWdlcyBiZWluZyBwb3N0ZWQgYmVjYXVzZSB0aGUgcHVsc2VhdWRpbyBjb25uZWN0aW9uIGlzCgkgIGRvd24uCgoyMDA5LTExLTE4IDEwOjE3OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIGNvcmUgcmVxdWlyZW1lbnQgdG8gMC4xMC4yNS4xIGFzIHdlbGwKCSAgTWFrZSBpbXBsaWNpdCByZXF1aXJlbWVudCBleHBsaWNpdC4KCjIwMDktMTEtMTggMTI6NTM6NDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggYm9ndXMgbWVtb3J5IGNodW5rIHNpemUgY2hlY2sKCjIwMDktMTEtMTggMTI6MDE6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogaW1wbGVtZW50IHNvbWUgbW9yZSBjYWxsYmFja3MKCSAgSW1wbGVtZW50IHNvbWUgbW9yZSBjYWxsYmFja3MgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KCjIwMDktMTEtMTEgMTU6NTA6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiByZWxlYXNlIGxvY2sgYmVmb3JlIGVtaXRpbmcgc2lnbmFscwoJICBSZWxlYXNlIHRoZSBqYnVmIGxvY2sgYmVmb3JlIGVtaXRpbmcgdGhlIHJlcXVlc3QtcHQtbWFwIHNpZ25hbCB0byBhdm9pZAoJICBkZWFkbG9ja3MuIFdlIGFsc28gbmVlZCB0byBjYXRjaCB0aGUgc2h1dGRvd24gY2FzZSB3aGVuIGxvY2tpbmcgYWdhaW4uCgkgIEZpeGVzICM1OTMzNTQKCjIwMDktMTEtMTEgMTE6NTk6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdHJ0cC5jOgoJKiBnc3QvcnRwL2dzdHJ0cGJ2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidmRlcGF5Lmg6CgkgIHJ0cDogYWRkIEJyb2FkY29tVm9pY2UgZGVwYXlsb2FkZXIKCjIwMDktMTEtMTEgMTE6Mzg6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGJ2cGF5LmM6CgkgIHJ0cGJ2cGF5OiBhZGQgcmZjIHJlZmVyZW5jZQoKMjAwOS0xMS0xMSAxMTozNzowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYnZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBidnBheS5oOgoJICBydHA6IGFkZCBCcm9hZGNvbVZvaWNlIHBheWxvYWRlcgoKMjAwOS0xMS0wOSAxMjoxNzozNCArMDEwMCAgSmFuIFVyYmHFhHNraSA8d3VsY3plckB3dWxjemVyLm9yZz4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogcHJvcGVybHkgZmluaXNoIHRoZSBFQ01BIGFycmF5CgkgIFRoZSBFQ01BIGFycmF5IHdpdGggdGhlIGZpbGUgaW5kZXggd2FzIG1pc3NpbmcgYSBtYW5kYXRvcnkgZW5kIG1hcmtlci4KCSAgRml4ZXMgYnVnICM2MDEyNDIuCgoyMDA5LTExLTE4IDAyOjE1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgVXNlIG5ldyBzdGlsbC1mcmFtZSBBUEkgZnJvbSBnc3QtcGx1Z2lucy1iYXNlCgoyMDA5LTExLTE4IDAyOjE0OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgZ3N0LXBsdWdpbnMtYmFzZSByZXF1aXJlbWVudCB0byAwLjEwLjI1LjEKCjIwMDktMTEtMTcgMTc6NTk6MTMgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBpZGVudGlmeSBJTUEgYWRwY20gaW4gcXQgcHJvcGVybHkuCgoyMDA5LTExLTE4IDAxOjI3OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjE3LjEKCjIwMDktMTEtMTcgMDE6NTM6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSAgQWRkIHJlbGVhc2UgMC4xMC4xNyB0byB0aGUgZG9hcCBmaWxlCgo9PT0gcmVsZWFzZSAwLjEwLjE3ID09PQoKMjAwOS0xMS0xNyAwMToyNTozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJICBSZWxlYXNlIDAuMTAuMTcKCjIwMDktMTEtMTcgMDA6MTg6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0xMS0xMyAwMjowNzoyNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNi4zIHByZS1yZWxlYXNlCgoyMDA5LTExLTEwIDExOjUyOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgdjRsMjogTWFrZSBzdXJlIHRvIGluaXRpYWxpemUgdmFyaWFibGVzIGJlZm9yZSB1c2luZyB0aGVtCgoyMDA5LTExLTA5IDIwOjA2OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9sdi5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTYuMiBwcmUtcmVsZWFzZQoKMjAwOS0xMS0wOSAxNToyMDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZyZWUgdGVtcG9yYXJ5IGJ1ZmZlciB3aGVuIGNoYW5naW5nIHN0YXRlIHRvIE5VTEwKCSAgRnJlZSB0ZW1wb3JhcnkgYWxsb2NhdGlvbnMgaW4gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhbmQgbm90CgkgIG9ubHkgd2hlbiB0aGUgb2JqZWN0IGlzIGZpbmFsaXNlZC4KCjIwMDktMTEtMDkgMTE6NDA6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIGpwZWdkZWM6IG9ubHkgYWxsb2NhdGUgYXMgbXVjaCB0ZW1wb3JhcnkgbWVtb3J5IGFzIG5lZWRlZCBmb3IgaW5kaXJlY3QgZGVjb2RpbmcKCSAgV2hlbiB3ZSBjYW4ndCBkZWNvZGUgZGlyZWN0bHkgaW50byB0aGUgb3V0cHV0IGJ1ZmZlciwgbWFrZSBvdXIgdGVtcCBidWZmZXJzCgkgIG9ubHkgYXMgYmlnIGFzIG5lZWRlZCBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgZm9yIHRoZSB3b3JzdCBjYXNlIHNjZW5hcmlvICh3ZWxsLAoJICB3ZSBzdGlsbCBhbGxvYyBtb3JlIHRoYW4gc3RyaWN0bHkgbmVlZGVkIGZvciBzb21lIGNhc2VzLCBidXQgc2lnbmlmaWNhbnRseQoJICBsZXNzIHRoYW4gYmVmb3JlKS4KCjIwMDktMTEtMDUgMjM6NDY6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHByaW50ZiBmb3JtYXQgZml4CgoyMDA5LTExLTA1IDIzOjQ0OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9yYXcxMzk0L2dzdDEzOTRjbG9jay5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkgIHJhdzEzOTQ6IHByaW50ZiBmb3JtYXQgZml4ZXMKCjIwMDktMTEtMDUgMjM6NDA6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgZXF1YWxpemVyOiBwcmludGYgZm9ybWF0IGZpeAoKMjAwOS0xMS0wNSAxMjoxMzo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IGRvIG5vdCB3cml0ZSBlbXB0eSBJTkZPIGxpc3QKCSAgYXZvaWQgd3JpdGluZyBhbiBlbXB0eSBJTkZPIGxpc3QgY2h1bmssIGJvdGggYmVjYXVzZQoJICBpdCBpcyB1c2VsZXNzIGFuZCBiZWNhdXNlIHZsYyByZWZ1c2VzIHRvIHBsYXkgdGhlCgkgIHJlc3VsdGluZyBmaWxlLgoKMjAwOS0xMS0wNSAxMDo1NDoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICBlcXVhbGl6ZXI6IE5vdGlmeSBhYm91dCBiYW5kIHByb3BlcnR5IGNoYW5nZXMgY2F1c2VkIGJ5IGNoYW5naW5nIG51bWJlciBvZiBiYW5kcwoKMjAwOS0xMS0wNSAxMDo0NTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5oOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcm5iYW5kcy5jOgoJICBlcXVhbGl6ZXI6IE1ha2UgY2hhbmdlcyB0byBiYW5kIHByb3BlcnRpZXMgYW5kIHRoZSBudW1iZXIgb2YgYmFuZHMgdGhyZWFkc2FmZQoKMjAwOS0xMS0wNSAxMDozMDo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICBlcXVhbGl6ZXI6IEZpeCBzdHVwaWQgb2ZmIGJ5IHR3byBidWcKCjIwMDktMTEtMDUgMDg6MTg6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgZXF1YWxpemVyOiBBZGQgYmFuZCBwcm9wZXJ0eSB0byBzZWxlY3QgdGhlIGJhbmQgZmlsdGVyIHR5cGUKCSAgVGhpcyBhbGxvd3MgcGVyIGJhbmQgY29uZmlndXJhdGlvbiBvZiBhIHBlYWssIGxvdyBzaGVsZiBvcgoJICBoaWdoIHNoZWxmIGZpbHRlciwgd2hpY2ggY2FuIGJlIHZlcnkgdXNlZnVsIGlmIHRoZSBiYW5kIGZyZXF1ZW5jaWVzCgkgIGFuZCB3aWR0aHMgYXJlIG1hbnVhbGx5IGNvbmZpZ3VyZWQuCgoyMDA5LTExLTA1IDA4OjE3OjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogRml4IGNvZGUgc3R5bGUKCjIwMDktMTEtMDUgMDg6MDM6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVybmJhbmRzLmM6CgkgIGVxdWFsaXplcjogU29tZSBjbGVhbnVwCgoyMDA5LTEwLTA3IDA5OjMxOjE5IC0wNDAwICBHYWJyaWVsIE1pbGxhaXJlIDxnYWJyaWVsLm1pbGxhaXJlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwY2VsdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5jOgoJICBjZWx0cGF5L2RlcGF5IDogY2hhbmdlIEdTVF9ERUJVR19PQkpFQ1QgdG8gR1NUX0xPR19PQkpFQ1QgaW4gcGF5X2hhbmRsZV9idWZmZXIgYW5kIGRlcGF5X3Byb2Nlc3MKCjIwMDktMTAtMDIgMTc6MDQ6NDMgLTA0MDAgIEdhYnJpZWwgTWlsbGFpcmUgPGdhYnJpZWwubWlsbGFpcmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBjZWx0cGF5LmM6CgkgIGNlbHRwYXkvZGVwYXk6IE5lZ290aWF0ZSBwYXJhbWV0ZXJzIHRocm91Z2ggY2FwcwoJICBjZWx0ZGVwYXkgOiBhZGRlZCBkZWZhdWx0IGZyYW1lc2l6ZSg0ODApIGNoYW5uZWxzKDEpIGFuZCBjbG9ja3JhdGUoMzIwMDApCgkgIGRlcGF5X3NldGNhcHMgOiBub3cgZ2V0cyBjaGFubmVscyBhbmQgZnJhbWVzaXplIGZyb20gc3RyaW5nIHdpdGggZGVmYXVsdCB2YWx1ZQoJICBkZXBheV9wcm9jZXNzIDogbm93IGFkZHMgdGltZXN0YW1wIHRvIG91dGJ1ZgoJICBBZGRlZCBmcmFtZV9zaXplIHRvIEdzdFJ0cENlbHREZXBheQoJICBDaGFuZ2VkIHNvbWUgR1NUX0RFQlVHIHRvIEdTVF9ERUJVR19PQkpFQ1Qgb3IgR1NUX0xPR19PQkpFQ1QKCSAgY2VsdHBheSA6IGdldGNhcHMgOiBnZXRzIGNoYW5uZWwgYW5kIGZyYW1lc2l6ZSBhbmQgc2V0cyBjYXBzCgkgIEFkZGVkIGZyYW1lLXNpemUgdG8gc3RhdGljIGNhcHMgZm9yIGF1ZGlvL3gtY2VsdAoKMjAwOS0xMS0wNCAxNTo1ODozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJICBkZWludGVybGFjZTogUHVsbCBpbiBDRkxBR1MgYW5kIExJQlMgZmxhZ3MgZnJvbSAtYmFzZSBiZWZvcmUgY29yZSBiZWZvcmUgc3lzdGVtLgoKMjAwOS0xMC0xNSAxNjozMzoyNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBEb24ndCBjcmVhdGUgYmFja3VwIC5wbyBmaWxlcwoJICBBcyB3ZWxsIGFzIHByZXZlbnRpbmcgY3JlYXRpb24gb2YgdXNlbGVzcyBiYWNrdXAgZmlsZXMsIGl0IHdvcmtzCgkgIGFyb3VuZCBhIGJ1ZyBpbiBnZXR0ZXh0IDAuMTcgb24gT1MvWAoKMjAwOS0xMS0wNCAxNjo0Nzo0MiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBpaGF0ZXN0ZXZlLmxvY2FsPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmM6CgkgIHF0ZGVtdXg6IGluaXQgdmFyaWFibGVzIHRvIG1ha2UgY29tcGlsZXIgb24gb3N4IGJ1aWxkIGJvdCBoYXBweQoKMjAwOS0xMS0wMyAxNjowNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuYzoKCSAgcXRkZW11eDogaW5pdCB2YXJpYWJsZXMgdG8gbWFrZSBjb21waWxlciBvbiBvc3ggYnVpbGQgYm90IGhhcHB5CgoyMDA5LTExLTAzIDE3OjM1OjE1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogZG9uJ3QgYWxsb2NhdGUgYmlnIGFycmF5cyBvbiB0aGUgc3RhY2sKCSAgQWRkIHRoZSBhcnJheXMgdG8gdGhlIGluc3RhbmNlIGRhdGEgYW5kIGFsbG9jYXRlIG9uIGZpcnN0IHVzZS4KCjIwMDktMTEtMDEgMTU6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiByZW1vdmUgcG9pbnRsZXNzIGNhbGwgdG8gZ3N0X2VsZW1lbnRfbm9fbW9yZV9wYWRzKCkKCjIwMDktMTEtMDEgMDA6Mjk6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBsZXZlbDogZml4IGRlY2F5IHRvIGJlIHNtb290aAoJICBUaGUgbGVuZ3RoIG5vdCBoYXZpbmcgYW55IGZyYWN0aW9uYWwgcGFydCBhcyBpdCB3YXMgcHJvbW90ZWQgdG8gZ2RvdWJsZSBhZnRlcgoJICBkaXZpZGluZyB0d28gZ3VpbnQ2NC4KCjIwMDktMTEtMDEgMDA6Mjk6MjQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSAgbGV2ZWw6IGNhbGN1bGF0ZSB0aGUgbWVzc2FnZS1pbnRlcnZhbGwgd2hlbiBpdCBjaGFuZ2VzCgoyMDA5LTExLTAxIDAwOjE0OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgbGV2ZWw6IGNsb2NrdGltZSBpcyBhIGd1aW50NjQsIHVzZSByaWdodCBtYWNybyB0byBpbml0IGZpZWxkcwoKMjAwOS0xMS0wMSAwMDoxMDowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkgIGxldmVsOiB1c2UgbW9yZSBnLXN0eWxlIHR5cGVzCgoyMDA5LTEwLTMwIDA5OjI3OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IE9ubHkgc2V0IHRoZSB2b2x1bWUgb24gc3RyZWFtIGNvbm5lY3Rpb24gaWYgcHVsc2UgPj0gMC45LjIwIGlzIGF2YWlsYWJsZQoJICBJbiBvbGRlciB2ZXJzaW9ucyB0aGUgdm9sdW1lIHNldCBkdXJpbmcgc3RyZWFtIGNvbm5lY3Rpb24gaGFkCgkgIG5vIGRlZmluZWQgc2VtYXRpYyBhbmQgdXN1YWxseSBpdCB3YXMgYSByZWxhdGl2ZSB2b2x1bWUuIFdoYXQKCSAgd2FzIG5lZWRlZCBmb3Igb3VyIHVzZSBjYXNlIGlzIGFuIGFic29sdXRlIHZvbHVtZSB0aG91Z2gsIG90aGVyd2lzZQoJICB0aGUgdm9sdW1lIHdpbGwgYmUgYWx3YXlzIGRlY3JlYXNlZCBvbiBzdHJlYW0gY29ubmVjdGlvbiBpZiBpdCdzCgkgIGxlc3MgdGhhbiAxMDAlLgoJICBTaW5jZSBwdWxzZSAwLjkuMjAgdGhhdCB2b2x1bWUgaXMgYWx3YXlzIGFuIGFic29sdXRlIHZvbHVtZSBpZgoJICBmbGF0IHZvbHVtZXMgYXJlIHVzZWQgYW5kIHJlbGF0aXZlIG90aGVyd2lzZSwgd2hpY2ggaXMgdGhlIHNhbWUKCSAgYXMgZm9yIHBhX2NvbnRleHRfc2V0X3NpbmtfaW5wdXRfdm9sdW1lKCkuCgkgIFJlbGV2YW50IHB1bHNlIGNoYW5nZXNldHM6CgkgIGh0dHA6Ly9naXQuMHBvaW50ZXIuZGUvP3A9cHVsc2VhdWRpby5naXQ7YT1jb21taXQ7aD1mMjdhNTA2OTFjOGZlNDViYWM3ZGQ2YjIxZmFjOTFhMzU5ZGVmM2ExCgkgIGh0dHA6Ly9naXQuMHBvaW50ZXIuZGUvP3A9cHVsc2VhdWRpby5naXQ7YT1jb21taXQ7aD0yNTAxNjg3NTc5ZTM1OWQ1MDMyYTRkMTY1YjJmZmM4ZjViMWI4YmE2CgoyMDA5LTEwLTI3IDE4OjA3OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogdXNlIHNlZ21lbnRfZnVsbCB3aGVuIHdlIGNhbgoJICBVc2Ugc2VnbWVudF9mdWxsIHNvIHRoYXQgd2UgY2FuIHBhc3MgdGhlIGFwcGxpZWQgcmF0ZSB0byB0aGUgc2VnbWVudCB2YWx1ZXMuIFdlCgkgIHdpbGwgY2hhbmdlIHRoZSBhcHBsaWVkIHJhdGUgd2hlbiB3ZSBpbXBsZW1lbnQgc2tpcCBtb2RlLgoKMjAwOS0xMC0xOCAwMDoxNjowNiArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AZ21haWwuY29tPgoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSAgd2F2ZW5jOiBGaXggYnVmZmVyIG9mZnNldCBieSBtb3ZpbmcgbGVuZ3RoIGluY3JlbWVudGF0aW9uCgoyMDA5LTEwLTIzIDE4OjMxOjE0IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBDcmVhdGUgdGhlIHZpZGVvIE5TVmlldyBpbiBSRUFEWS0+UEFVU0VEIHJhdGhlciB0aGFuIE5VTEwtPlJFQURZCgoyMDA5LTEwLTIzIDE4OjI4OjIyIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHN5cy9vc3h2aWRlby9NYWtlZmlsZS5hbToKCSAgb3N4dmlkZW86IGV4cGxpY2l0bHkgbGluayB0byBHU1RfTElCUwoKMjAwOS0xMC0yMyAxODowOTo0MyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvYXZpL01ha2VmaWxlLmFtOgoJKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkqIGdzdC93YXZwYXJzZS9NYWtlZmlsZS5hbToKCSAgQWRkIGRlcGVuZGVuY2llcyBvZiBnc3RyaWZmIHRvIHRoaW5ncyB0aGF0IGxpbmsgdG8gZ3N0cmlmZiwgbmVlZGVkIG9uIFdpbjMyLgoKMjAwOS0xMC0yMyAxNzoyNToxNyAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuYzoKCSogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1hbHNhc3JjLVBDTUEuYzoKCSAgcnRwIGV4YW1wbGVzOiByZW1vdmUgZXhlY3V0YWJsZSBiaXRzIGZyb20gQyBmaWxlcy4KCjIwMDktMTAtMjMgMTE6MjE6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHRlc3RzOiBkaXNhYmxlIGFsbCBqaXR0ZXJidWZmZXIgdGVzdHMgZm9yIG5vdwoJICBTaW5jZSBldmVuIHRoZSBvbmUgZW5hYmxlZCBzZWVtcyB0byBmYWlsLgoKMjAwOS0xMC0yMiAxMzozOTo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwaml0dGVyYnVmZmVyLmM6CgkgIHRlc3RzOiBhbHNvIGluY2x1ZGUgdGhlIG5ldyB0ZXN0IGZvciBwcmV2IGNvbW1pdAoKMjAwOS0xMC0yMiAxMzoxOTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICB0ZXN0czogYWRkIGEgaml0dGVyYnVmZmVyIHRlc3QKCSAgVGVzdHMgcHVzaGluZyBhIGZldyBidWZmZXJzIGluIHZhcmlvdXMgb3JkZXIgYW5kIGFzc2VydGluZyB0aGUgb3JkZXIgc2VudCBieSB0aGUKCSAgaml0dGVyYnVmZmVyLiBDb250YWlucyB0d28gZGlzYWJsZWQgdGVzdHMgdGhhdCBuZWVkIG1vcmUgd29yay4KCjIwMDktMTAtMjIgMTI6MzA6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogRGlyYWMgIm11eGluZyIgdW5pdHMgZW5kIG9uIEVPUyB0b28KCSAgQSBEaXJhYyBtdXhpbmcgdW5pdCBhcmUgYWxsIG5vbi1waWN0dXJlLCBub24tZW5kLW9mLXNlcXVlbmNlCgkgIHBhY2tldHMgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgZmlyc3QgcGljdHVyZSBvciBlb3MgcGFja2V0LgoJICBTZWUgaHR0cDovL3d3dy5kaXJhY3ZpZGVvLm9yZy93aWtpL2luZGV4LnBocC9Db250YWluZXJGb3JtYXRNYXBwaW5nR3VpZGVsaW5lcwoKMjAwOS0xMC0yMiAwMjowOTowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBmaXggY29tcGlsYXRpb24gd2l0aCBkZWJ1Z2dpbmcgZGlzYWJsZWQKCSAgdG90YWxfaWR4IGlzIGFsd2F5cyBldmFsdWF0ZWQuCgoyMDA5LTEwLTE5IDIxOjU5OjQ2ICswMzAwICBQcmlpdCBMYWVzIDxwbGFlc0BwbGFlcy5vcmc+CgoJKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5oOgoJICBjYWNhc2luazogbWlub3IgY2xlYW51cHMgZm9yIGhlYWRlci4KCSAgVXNlIEdfQkVHSU5fREVDTFMgbWFjcm9zLCByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgZml4IHR5cG8uCgkgIFNlZSAjNTk5MDE4LgoKMjAwOS0xMC0xOSAyMTo1OToyMyArMDMwMCAgUHJpaXQgTGFlcyA8cGxhZXNAcGxhZXMub3JnPgoKCSogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuYzoKCSAgY2FjYXNpbms6IGV4aXQgcHJvcGVybHkgd2hlbiBpbnZhbGlkIGRyaXZlciBoYXMgYmVlbiBzZWxlY3RlZC4KCSAgU2VlICM1OTkwMTguCgoyMDA5LTEwLTIwIDE4OjIzOjI4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogU3RvcCBzY2FubmluZyBhdCB0aGUgbGFzdCBlbnRyeS4uLiBhbmQgbm90IHRoZSBvbmUgYmVmb3JlIDopCgkgIFRoaXMgZW5zdXJlcyB3ZSBhY3R1YWxseSBwdXNoIG91dCBldmVyeXRoaW5nCgoyMDA5LTEwLTIwIDE3OjIwOjU1ICswMjAwICBBbmR5IFdpbmdvIDx3aW5nb0BvYmxvbmcubmV0PgoKCSAgcXRkZW11eDogdW5wYWNrIG1vcmUgaW5mb3JtYXRpb24gaW50byBpbWFnZS94LWoyYyBjYXBzCgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDogQWRkIG5ldyBmb3VyY2NzIGZvciB1c2UgYnkgdGhlIG1qMgoJICB1bnBhY2tlci4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmMgKHF0ZGVtdXhfcGFyc2VfdHJhayk6IFVucGFjayBKUEVHMjAwMCBjb21wb25lbnQKCSAgbWFwcGluZyBhbmQgY2hhbm5lbCBkZWZpbml0aW9ucyBmcm9tIHRoZSBqcDJoIGhlYWRlci4gV2lsbCBhZGQKCSAgY29tcG9uZW50LW1hcCBhbmQgY2hhbm5lbC1kZWZpbml0aW9ucyBlbGVtZW50cyB0byB0aGUgY2FwcyBpZiB0aGUKCSAgY29tcG9uZW50IG1hcHMgb3IgY2hhbm5lbCBkZWZpbml0aW9ucyBhcmUgbm9uc3RhbmRhcmQsIHdoZXJlIHN0YW5kYXJkCgkgIG9yZGVyIG1lYW5zIFJHQiwgNDQ0IHBhY2tlZCBZVVYsIG9yIGdyZXlzY2FsZSwgd2l0aCBubyBhbHBoYSBjaGFubmVsLgoJICBGaXhlcyAjNTk4OTE1LgoKMjAwOS0xMC0yMCAxNzozMzo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxlYXZlLmM6CgkgIHRlc3RzOiBpbmNsdWRlIHN0ZGlvLmggZm9yIHNzY2FuZgoKMjAwOS0xMC0xOSAxNToyMTo1NyArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBGaXggdGhlIFN0cmVhbVZvbHVtZSBpbnRlcmZhY2Ugbm90IGJlaW5nIGFkdmVydGlzZWQKCSAgZ3N0X3B1bHNlc2lua19pbnRlcmZhY2Vfc3VwcG9ydGVkKCkgd2FzIG1pc3NpbmcgYSBjaGVjayBmb3IgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTg5MzMKCjIwMDktMTAtMTYgMjE6MTQ6MTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBsZXZlbDogY29kZSBjbGVhbnVwCgkgIFVzZSBnZG91YmxlIGluc3RlYWQgb2YgZG91YmxlLiBDYWxjdWxhdGUgZmFsbG9mZl90aW1lIG9uY2UgaW5zdGVhZCBvZiB0d2ljZS4KCjIwMDktMTAtMTggMTU6NTI6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBNRU1EVU1QIHRoZSBqdW5rIGJsb2JzCgkgIEl0IHdpbGwgb25seSBhY3R1YWxseSBwdWxsIHRoZSBqdW5rIGJsb2JzIGZyb20gdXBzdHJlYW0gaWYgdGhlIG1lbWR1bXAKCSAgbGV2ZWwgaXMgYWN0aXZhdGVkCgoyMDA5LTEwLTE4IDE1OjUxOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogU29tZSBhdmkgZmlsZXMgaGF2ZSBJTkZPIGxpc3RzIGluIHRoZSBoZWFkZXJzLgoKMjAwOS0xMC0xOCAxNjowMjowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IERvbid0IHNlZWsgb24gZW1wdHkgc3RyZWFtcwoKMjAwOS0xMC0xOCAxNTo1MDozOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IEVuc3VyZSBfY2FsY3VsYXRlX2R1cmF0aW9uc19mcm9tX2luZGV4IG9ubHkgdXNlcyB2YWxpZCBzdHJlYW1zCgoyMDA5LTEwLTE4IDE1OjQ5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogT25seSBjYWxsIGNvbnZlcnQgZnVuY3Rpb24gaWYgd2UgaGF2ZSBzdHJmLmF1ZHMKCjIwMDktMTAtMTggMTU6NDg6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgYXZpZGVtdXg6IFVzZSBmaXJzdCBpbmRleGVkIHN0cmVhbSBmb3Igc2Vla2luZy4KCSAgSW4gdGhlIGZ1dHVyZSwgbWFpbl9zdHJlYW0gY2FuIGJlIGFkanVzdGVkIHRvIGNvbnRhaW4gdGhlIG9wdGltYWwgc3RyZWFtCgkgIGFzIG1lbnRpb25uZWQgaW4gdGhlIEZJWE1FIGxpbmUgMzQ0MAoKMjAwOS0xMC0xOCAxNTo0Njo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogT25seSBleHBvc2Ugc3RyZWFtcyB0aGF0IGFjdHVhbGx5IGhhdmUgc29tZXRoaW5nIGluIGl0LgoJICBUaGlzIGd1YXJhbnRlZXMgdGhhdCBpbiBwdWxsLW1vZGUsIGFsbCBzdHJlYW1zIGhhdmUgYSB2YWxpZCBpbmRleCB0bwoJICB3b3JrIHdpdGguCgoyMDA5LTEwLTE4IDE1OjQwOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogUHJvcGVybHkgbWFyayBwcmVzZW5jZSBvZiBpbmRleC4KCSAgSW5zdGVhZCBvZiBibGluZGx5IHNheWluZyB3ZSBoYXZlIGFuIGluZGV4LCBvbmx5IGRvIHNvIGlmIHdlIGhhdmUgYQoJICBub24tZW1wdHkgaW5kZXguCgoyMDA5LTEwLTE3IDAyOjE4OjUzICswMjAwICBMZW5uYXJ0IFBvZXR0ZXJpbmcgPGxlbm5hcnRAcG9ldHRlcmluZy5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlOiBuZXZlciBhcHBseSB2b2x1bWUgbW9yZSB0aGFuIG9uY2UKCSAgR2VuZXJhbGx5IGRlY2lzaW9ucyBvbiB0aGUgdm9sdW1lIG9mIHRoZSBzdHJlYW0gc2hvdWxkIGJlIGRvbmUgaW5zaWRlIG9mCgkgIFBBLCBub3QgaW5zaWRlIG9mIEdzdC4gT25seSBQQSBrbm93cyBob3cgdm9sdW1lcyB0cmFuc2xhdGUgYmV0d2VlbgoJICBkZXZpY2VzIGFuZCBzIG9uLgoJICBUaGlzIHBhdGNoIG1ha2VzIHN1cmUgdGhhdCBhbGwgdm9sdW1lcyBzZXQgdmlhIHRoZSB2b2x1bWUgcHJvcGVydHkgYXJlCgkgIG9ubHkgYXBwbGllZCAqb25jZSogdG8gdGhlIHVuZGVybHlpbmcgc3RyZWFtLiBBZnRlciBhcHBseWluZyB0aGVtIHRoZQoJICBjbGllbnQgc2lkZSB3aWxsIG5vdCBzdG9yZSB0aGVtIGFueW1vcmUuIFRoaXMgc2hvdWxkIG1ha2Ugc3VyZSB0aGF0CgkgIHJlYWxseSBvbmx5IHVzZXItdHJpZ2dlcmVkIHZvbHVtZSBjaGFuZ2VzIGFyZSBmb3J3YXJkZWQgdG8gc2VydmVyLCBidXQKCSAgdGhlIGNsaWVudCBuZXZlciB0cmllcyB0byBzYXZlL3Jlc3RvcmUgdGhlIHZvbHVtZSBpbnRlcm5hbGx5LgoJICBGaXhlcyBidWcgIzU5NTIzMS4KCjIwMDktMTAtMTcgMDg6NTU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3BsdWdpbi5jOgoJICBwdWxzZXNpbms6IEluaXRpYWxpemUgZ2V0dGV4dCBmb3IgdGhlIHRyYW5zbGF0ZWQgc3RyaW5ncyBpbiBwbHVnaW5faW5pdCgpCgoyMDA5LTEwLTE3IDAwOjEwOjMwICswMjAwICBMZW5uYXJ0IFBvZXR0ZXJpbmcgPGxlbm5hcnRAcG9ldHRlcmluZy5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlOiB1c2UgJ3BlcmZvcm1lcicgYXMgYSBmYWxsYmFjayBmb3IgJ2FydGlzdCcgdGFnCgoyMDA5LTEwLTE3IDAwOjA5OjM2ICswMjAwICBMZW5uYXJ0IFBvZXR0ZXJpbmcgPGxlbm5hcnRAcG9ldHRlcmluZy5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIHBvL1BPVEZJTEVTLmluOgoJICBwdWxzZTogd2hlbiBjb25zdHJ1Y3RpbmcgYSBzdHJlYW0gdGl0bGUgZnJvbSB0YWcgZGF0YSBtYWtlIHN1cmUgaXQgaXMgdHJhbnNsYXRhYmxlCgoyMDA5LTEwLTE3IDAwOjA2OjE1ICswMjAwICBMZW5uYXJ0IFBvZXR0ZXJpbmcgPGxlbm5hcnRAcG9ldHRlcmluZy5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuYzoKCSAgcHVsc2U6IGxvb3Agd2hpbGUgY29ubmVjdGluZyB0byBzZXJ2ZXIKCSAgcHRocmVhZCBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGVyZSBhcmUgbm8gc3B1cmlvdXMgY29uZGl0aW9uIHZhcmlhYmxlCgkgIHdha2V1cHMsIG5laXRoZXIgZG9lcyBwYV90aHJlYWRlZF9tYWlubG9vcF94eHgoKSB3aGljaCBpcyBhIHdyYXBwZXIKCSAgYXJvdW5kIGl0LiBTbyB3ZSBuZWVkIHRvIGxvb3AgYXJvdW5kIHRoZSBfd2FpdCgpIGZ1bmN0aW9uIHRvIG1ha2Ugc3VyZQoJICB3ZSBnZXQgdGhlIHJpZ2h0IHdha2V1cC4KCSAgQWxzbywgdW5pZnkgdGhlIG9yZGVyIG9mIHRoZSB3YWl0IGxvb3BzIGFjcm9zcyB0aGUgZmlsZS4KCjIwMDktMTAtMTcgMDA6MDU6MTAgKzAyMDAgIExlbm5hcnQgUG9ldHRlcmluZyA8bGVubmFydEBwb2V0dGVyaW5nLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5jOgoJKiBleHQvcHVsc2UvcHVsc2Vwcm9iZS5jOgoJICBwdWxzZTogbWFpbmxvb3AgY3JlYXRpb24gY2FuIGZhaWwgdG9vLCBzbyBoYW5kbGUgdGhhdAoKMjAwOS0xMC0xNyAwMDowMzowNiArMDIwMCAgTGVubmFydCBQb2V0dGVyaW5nIDxsZW5uYXJ0QHBvZXR0ZXJpbmcubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkgIHB1bHNlOiBhZGp1c3QgQ0hFQ0tfREVBRF9HT1RPIG1hY3JvIHRvIGdsaWIgc3R5bGUKCjIwMDktMTAtMTYgMTc6Mjg6NDIgKzAyMDAgIExlbm5hcnQgUG9ldHRlcmluZyA8bGVubmFydEBwb2V0dGVyaW5nLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5jOgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuaDoKCSogZXh0L3B1bHNlL3B1bHNlcHJvYmUuYzoKCSogZXh0L3B1bHNlL3B1bHNlcHJvYmUuaDoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5oOgoJICBwdWxzZTogbWFrZSBhIGZldyB0aGluZ3Mgc21hbGxlciBieSBtYWtpbmcgdGhlbSBiaXRmaWVsZHMKCjIwMDktMTAtMTYgMTc6MjY6NDEgKzAyMDAgIExlbm5hcnQgUG9ldHRlcmluZyA8bGVubmFydEBwb2V0dGVyaW5nLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcHVsc2U6IGJ1bXAgbWluaW11bSBsaWJwdWxzZSB2ZXJzaW9uIHRvIDAuOS4xMAoJICBPbGRlciB2ZXJzaW9ucyB0aGFuIDAuOS4xMCBhcmUgcmVhbGx5IHJlYWxseSBvbGQgYW5kIGJ1Z2d5LiBEcm9wCgkgIGNvbXBhdGliaWxpdHkgd2l0aCB0aGVtLiBOb2JvZHkgc2hvdWxkIHJ1biBhbnl0aGluZyB0aGF0IG9sZC4KCSAgQWxzbyBzZWU6IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTUwMjkKCjIwMDktMTAtMTYgMTg6MTg6MzEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0ZGVidWcuYzoKCSAgZGVidWd1dGlsczogcmVnaXN0ZXIgcHVzaGZpbGVzcmMgZWxlbWVudAoKMjAwOS0xMC0xNiAxNzoyODowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICBhdmltdXg6IHN1cHBvcnQgKHNvbWUpIFZCUiBhdWRpbyBtdXhpbmcKCSAgQVZJIGZvcm1hdCBjYW4gaGFuZGxlIFZCUiBhdWRpbyBwcm92aWRlZCBhdWRpbyBjaHVua3MgYXJlIG9mIGZpeGVkIGR1cmF0aW9uCgkgIChjZnIgZml4ZWQgZHVyYXRpb24gdmlkZW8gZnJhbWVzKS4gIEFwcGx5IHRoaXMgYXBwcm9hY2ggdG8gKGFsd2F5cykgcGFyc2VkCgkgIHJhdyBBQUMgYW5kIChpZiBwYXJzZWQpIHRvIE1QRUctMS8yIGF1ZGlvLgoJICBTZWUgIzM2ODY4MS4KCjIwMDktMTAtMTYgMTM6NDE6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBmaXggYnJhbmNoIGhpbnRzCgkgIFJlbW92ZSBpbmFwcHJvcHJpYXRlIGJyYW5jaGluZyBoaW50cyBhbmQgYWRkIHNvbWUgbmV3IG9uZXMuCgoyMDA5LTEwLTE2IDEyOjMzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogZml4IHJlZ3Jlc3Npb24gaW4gaW5kaXJlY3QgZGVjb2RlIHBhdGgKCSAgUmV2ZXJ0IHZhcmlhYmxlIG5hbWUgYmFjayB0byB3aGF0IGl0IHdhcyBiZWZvcmUgdGhlIEdfTElLRUxZIHdhcwoJICBhZGRlZCAoaW4gY29tbWl0IDY5YzI0ZmI5KS4gVGhlIGNvZGUgd29ya3MgYmV0dGVyIHRoYXQgd2F5LgoKMjAwOS0xMC0xNiAwMjo0NzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZpeCByZWdyZXNzaW9uIHdpdGggY2VydGFpbiBmb3JtYXRzCgkgIEZpeCByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgcHJldmlvdXMgY29tbWl0ICgjNTk4NTE3KS4KCjIwMDktMTAtMTUgMTk6NDk6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBkb24ndCB1c2UgZGVjb21wcmVzcyBzdHJ1Y3R1cmUgbWVtYmVycyB3ZSBzaG91bGRuJ3QgYmUgdXNpbmcKCjIwMDktMTAtMTQgMTc6NTM6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJICBqcGVnZGVjOiByZW1vdmUgc29tZSB1bnVzZWQgbWVtYmVycyBmcm9tIGpwZWdkZWMgaW5zdGFuY2Ugc3RydWN0dXJlCgoyMDA5LTEwLTE2IDExOjUzOjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRwbWFuYWdlci9NYWtlZmlsZS5hbToKCSogZ3N0L3VkcC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHVzZSBnc3QtZ2xpYi1nZW4ubWFrIHRvIGZpeCB0aGUgZ2xpYiBidWlsZCBydWxlcy4KCSAgVGhlIGJ1aWxkIHJ1bGVzIGluIGdsaWItZ2VuLm1hayB3ZXJlIHVzaW5nIHBhdHRlcm4gcnVsZXMgaW4gYSBub24gc2F2ZSB3YXkuCgoyMDA5LTEwLTE2IDEwOjE1OjM1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg1ZDE1MzAgdG8gMDcwMmZlMQoKMjAwOS0xMC0xNSAyMTowNDowMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBhZGp1c3QgZmxvdyByZXR1cm4gYWdncmVnYXRpb24gdG8gdXBkYXRlZCBsb29wX2RhdGEKCSAgSW4gcGFydGljdWxhciwgZWFjaCBzdHJlYW0gaXMgbm93IHRyZWF0ZWQgc2VwYXJhdGVseSwgYW5kIG9uZSBzdHJlYW0ncwoJICBFT1Mgc2hvdWxkIG5vdCBsZWFkIHRvIG92ZXJhbGwgRU9TLgoKMjAwOS0xMC0xNSAxMTo1MjozNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGNoZWNrIHNvbWUgbW9yZSBhdG9tIHNpemVzIHByaW9yIHRvIHBhcnNpbmcKCjIwMDktMTAtMTUgMTM6MTk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3A6IGhhbmRsZSBldmVudHMgaW4gVENQIG1vZGUKCSAgV2UgbmVlZCB0byBoYW5kbGUgZXZlbnRzIGluIFRDUCBtb2RlIHNvIHRoYXQgd2UgY2FuIHJlcGx5IHRvIHRoZSBMQVRFTkNZIGV2ZW50CgkgIHdpdGggVFJVRS4KCjIwMDktMTAtMTUgMTE6MjQ6NDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogYWRkIG1pc3NpbmcgYXJndW1lbnQgaW4gZGVidWcgbWVzc2FnZQoKMjAwOS0xMC0xNCAxODo1ODowNiArMDIwMCAgTWFydmluIFNjaG1pZHQgPG1hcnZAZXhoZXJiby5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mbHZtdXguYzoKCSAgZmx2bXV4OiBVc2UgbG9vcCB0ZXN0IHRvIHByZXZlbnQgdGltZW91dCBvbiBzbG93IG1hY2hpbmVzCgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU5NzczOS4KCjIwMDktMTAtMTQgMTY6MTU6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZvcndhcmQgZXZlbnRzIGludG8gdGhlIHJ0cGJpbgoJICBPbmx5IGNhdGNoIHRoZSBTRUVLIGV2ZW50IG9uIHRoZSBzcmNwYWQgYW5kIGxldCBvdGhlciBldmVudHMgZW50ZXIgdGhlIHJ0cGJpbi4KCjIwMDktMTAtMTQgMTE6MzM6MjQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IEZpeCBsYXRlIHRhZ3MgZmluZGluZwoJICBVc2UgdGhlIGNvcnJlY3QgdGFnbGlzdCB2YXJpYWJsZSB3aGVuIG5vdGlmeWluZyBvZiBsYXRlIHRhZ3MuCgoyMDA5LTEwLTE0IDEzOjA5OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogdXNlIEdzdEluZGV4IGZvciAobGltaXRlZCkgc2Vla2luZyBpbiBwdXNoIG1vZGUKCSAgLi4uIGJ1dCBkaXNhYmxlIHRoaXMgZm9yIG5vdy4gIEFsdGhvdWdoIGl0IGJhc2ljYWxseSB3b3JrcyBmaW5lLAoJICB1c2VyIGV4cGVyaWVuY2UgbWlnaHQgYmUgc2hha3kgKGRlcGVuZGluZyBvbiB0YXN0ZSksIHNpbmNlIHRoZXJlCgkgIGlzIG5vIGtleWZyYW1lIGluZm8gaW4gcHVzaCBtb2RlLgoKMjAwOS0xMC0xNCAxMzowODo0NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgYXZpZGVtdXg6IGFkZCBHc3RJbmRleCBzdXBwb3J0CgoyMDA5LTEwLTE0IDExOjU1OjMzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGFsc28gZGV0ZXJtaW5lIGR1cmF0aW9uIGluIHB1c2ggbW9kZQoKMjAwOS0xMC0xNCAxMTo1NDo0NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogYWRkIEdzdEluZGV4IHN1cHBvcnQKCjIwMDktMTAtMTQgMDc6Mzg6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICB2NGwyc3JjOiBTZXQgZHVyYXRpb24gb24gYnVmZmVycwoJICBVc2UgZnJhbWVyYXRlIHRvIGVzdGltYXRlIGR1cmF0aW9uIG9mIGJ1ZmZlcnMuCgkgIEZpeGVzICM1OTAzNjIKCjIwMDktMTAtMTQgMTI6Mjg6NTUgKzAyMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZiBhdCB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgIHJ0cHB0ZGVtdXg6IG9ubHkgZm9yd2FyZCB0aGUgbG9zdC1ldmVudCB0byB0aGUgbGFzdCBzZWVuIHB0LW51bWJlcgoJICBmb3J3YXJkIGFsbCBldmVudHMgb24gYWxsIHBhZHMgZXhjZXB0IGZvciB0aGUgUGFja2V0TG9zdCBldmVudCwgd2hpY2ggd2Ugd2FudCB0bwoJICBmb3J3YXJkIHRvIHRoZSBsYXN0IHNlZW4gcHQgcGFkLgoJICBGaXhlcyAjNTk4Mzc3CgoyMDA5LTEwLTA2IDIyOjI4OjUwICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHNldCBkZXNpcmVkIG1pbnJlcSB2YWx1ZSB0byBzZWdzaXplL2xhdGVuY3ktdGltZQoJICBJZiB3ZSBsZXQgdGhlIGRhZW1vbiBkZWNpZGUgZnJlZWx5IGJ5IHBhc3NpbmcgLTEsIHdlIGVuZCB1cCBhbHdheXMgZ2V0dGluZyAyMG1zLgoJICBXZSB3YW50IHRvIHNldCB0aGlzIHZhbHVlIGJlY2F1c2UgaW4gc29tZSBjYXNlcyB3ZSB3YW50IHRvIHNlbGVjdCBhIGhpZ2hlcgoJICBsYXRlbmN5LXRpbWUgaW4gb3JkZXIgdG8gc2F2ZSBwb3dlci4KCSAgRml4ZXMgIzU5NzYwMQoKMjAwOS0xMC0xNCAxMDo0MToyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTNlM2NlNCB0byA4NWQxNTMwCgoyMDA5LTEwLTEzIDE4OjMzOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSAgdGVzdHMvcGlwZWxpbmUvZmxhYzogRml4IGJ1aWxkIG9uIG1hY29zeCAxMC41CgoyMDA5LTEwLTEzIDE4OjE5OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZGVtb3RlIHNvbWUgd2FybmluZ3MgdG8gZGVidWcKCjIwMDktMTAtMTMgMTc6NDc6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2F2aS1pZHMuaDoKCSAgYXZpOiBhZGQgbmV3IGF2aSBmbGFnIHdlIG1pZ2h0IHdhbnQgdG8gdXNlCgoyMDA5LTEwLTEzIDE3OjQ2OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgYXZpbXV4OiBjYWxjdWxhdGUgc3VnZ2VzdGVkIGJ1ZmZlciBzaXplCgkgIENhbGN1bGF0ZSB0aGUgc3VnZ2VzdGVkIGJ1ZmZlciBzaXplIGJhc2VkIG9uIHRoZSBsYXJnZXN0IGNodW5rIGluIHRoZSBmaWxlLgoJICBTZWUgIzU5Nzg0NwoKMjAwOS0xMC0xMyAxNzo0NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIGF2aW11eDogYWRkIGpwZWcyMDAwIHRvIGFsbG93ZWQgY2FwcwoKMjAwOS0xMC0xMyAxNzo0MToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGFkZCBkZWJ1ZyBmb3IgdGhlIHN1cGVyaW5kZXggb2Zmc2V0cwoKMjAwOS0xMC0xMyAxNjowMjozNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nCgkgIEZpeCBhbm90aGVyIGJvZ3VzIG1heS1iZS11c2VkLXVuaW5pdGlhbGl6ZWQgd2FybmluZyBpbiBxdGRlbXV4CgoyMDA5LTEwLTEzIDEzOjA4OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSogZ3N0L2F2aS9nc3RhdmltdXguaDoKCSAgYXZpOiBsb3dlciBtYXggZmlsZSBzaXplCgkgIE1ha2UgYSBjb25zdGFudCBvZiB0aGUgbWF4IGZpbGUgc2l6ZSBhbmQgbG93ZXIgdGhlIHZhbHVlIHRvIHdoYXQgZmZtcGVnIGRvZXMsCgkgIGhvcGVmdWxseSBpbXByb3ZpbmcgY29tcGF0aWJpbGl0eSB3aXRoIHdpbmRvd3MgbWVkaWEgcGxheWVyLgoJICBTZWUgIzU5Nzg0NwoKMjAwOS0xMC0xMyAwMTowMjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZpeCBib2d1cyB3YXJuaW5nIGFib3V0IGRpc2NvbnQgZmxhZyBvbiBmaXJzdCBidWZmZXIKCSAgVGhlIHZlcnkgZmlyc3QgYnVmZmVyIHNob3VsZCBhbHdheXMgaGF2ZSB0aGUgRElTQ09OVCBmbGFnIHNldCwgbm8KCSAgbmVlZCB0byB3YXJuIGFib3V0IHRoYXQuIE9ubHkgd2FybiBpZiB3ZSBnZXQgYSBESVNDT05UIGJ1ZmZlciBpbgoJICBub24tcGFja2V0aXNlZCBtb2RlIGFuZCB3ZSBhbHJlYWR5IGhhdmUgc29tZSBkYXRhLgoKMjAwOS0xMC0xMyAwMDo0MTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZpeCBjcmFzaCBmb3IgdW51c3VhbCB2ZXJ0aWNhbCBjaHJvbWEgc3Vic2FtcGxpbmcgZmFjdG9ycwoJICBGaXhlcyAjNTk3MzUxLgoKMjAwOS0xMC0xMyAwMDoxMjo0MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5ncwoJICBUaGUgZ2NjIG9uIHRoZSBPUy9YIGJ1aWxkYm90IGNvbXBsYWlucyBhYm91dCB0aGVzZSB2YXJpYWJsZXMgbm90IGJlaW5nCgkgIGluaXRpYWxpemVkLCBldmVuIHRob3VnaCB0aGV5IGNhbid0IHBvc3NpYmx5IGFjdHVhbGx5IGJlIHVzZWQKCSAgdW5pbml0aWFsaXplZC4KCjIwMDktMTAtMTAgMDA6Mzc6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogZml4ZXMgd2FybmluZyBidWlsZGluZyBpbiBzbm93IGxlb3BhcmQKCjIwMDktMTAtMDkgMTc6MTI6NDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhbHNvIGNvbnNpZGVyIFF1aWNrdGltZSB0ZXh0IHN1YnRpdGxlcwoKMjAwOS0xMC0wOSAxNzowMjo1NyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHByb3ZpZGUgbGFuZ3VhZ2UgdGFnIGZvciBzdHJlYW0KCjIwMDktMTAtMDkgMTY6MzA6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiByZWZhY3RvciBjb21tb24gcGFydHMgaW4gdHJhY2sgcGFyc2luZwoKMjAwOS0xMC0wOSAxNjoyMTowMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogcmVmYWN0b3IgYnVmZmVyIHByb2Nlc3NpbmcgYW5kIHNlbmRpbmcKCSAgLi4uIHNvIGl0IGNhbiBiZSB1c2VkIGluIGJvdGggcHVsbCBhbmQgcHVzaCBiYXNlZCBtb2RlLgoKMjAwOS0xMC0wOCAxMzozOToyNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGV4dHJhY3QgcGFsZXR0ZSBkYXRhIGZvciBkdmQgc3VicGljdHVyZSBzdHJlYW1zCgkgIC4uLiBhbmQgc2VuZCBpdCBkb3duc3RyZWFtIHVzaW5nIGN1c3RvbSBkdmQgZXZlbnQKCjIwMDktMTAtMDcgMTQ6MDM6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IHN1cHBvcnQgM0dQUCB0aW1lZCB0ZXh0IHN1YnRpdGxlcwoJICBJbiBwYXJ0aWN1bGFyLCBhbHNvIG1ha2Ugc3VidGl0bGUgc3VwcG9ydCBsZXNzIHN1YnAoaWN0dXJlKS1jZW50cmljLgoKMjAwOS0xMC0wNyAxNjoxNTo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IE5VTEwgaXMgbm90IGEgdmFsaWQgdGFnbGlzdAoKMjAwOS0wOS0yMyAxNzoyMDoyNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IHJlY29nbml6ZSBzb21lIG1vcmUgZW5jeXB0ZWQgdHJhY2sgY2FzZXMKCjIwMDktMTAtMDkgMTU6NTk6MjUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkgIGlkMzogZml4ZXMgd2FybmluZ3MgYnVpbGRpbmcgb24gbWFjb3N4CgkgIEFub3RoZXIgcm91bmQgb24gdGhlIGZvcm1hdGluZyBvZiB0aGF0IGRlYnVnIGxpbmUuCgoyMDA5LTEwLTA5IDE0OjQ0OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOgoJICBpZDM6IGNhc3QgcG9pbnRlciBtYXRoIHJlc3VsdHMgdG8gZ2xvbmcKCjIwMDktMTAtMDkgMTQ6Mzc6MzIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhYzogYXBwYXJlbnRseSBvbiBzb21lIHBsYXRmb3JtcyBhIEZMQUNfX3VpbnQ2NCE9Z3VpbnQ2NAoKMjAwOS0xMC0wOSAxNDoyMTowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJICBidWlrZDogZXhwbGljaXRlbHkgY2FzdCwgdG8gdGVsbCBzb21lIGNvbXBpbGVycyB0aGF0IHRoaXMgaXMgbm90IGxvbmcgaW50CgoyMDA5LTEwLTA5IDEzOjM4OjE3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSAgYnVpbGQ6IGRvbid0IGNhc3QsIGJ1dCB1c2UgdGhlIHJpZ2h0IGZvcm1hdCBzcGVjaWZpZWQgaW5zdGVhZAoJICBUaGlzIGNvcnJlY3Qgc29tZSBvZiB0aGUgcHJldmlvdXMgbWFjb3MgZml4ZXMuCgoyMDA5LTEwLTA5IDEyOjQwOjQ3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJICBkdjogZml4IHdhcm5pbmdzIG9uIG1hY29zeAoKMjAwOS0xMC0wOSAxMjoyNToxOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIGZsYWM6IGZpeCB3YXJuaW5ncyBvbiBtYWNvc3gKCjIwMDktMTAtMDkgMTI6MTk6MzUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJICBhbm5vZGV4OiBmaXggd2FybmluZ3MgaW4gbWFjb3N4CgoyMDA5LTEwLTA5IDEyOjE0OjIyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubToKCSAgb3N4dmlkZW86IGZpeCBhIHdhcm5pbmcgZG9pbmcgYSBjYXN0CgoyMDA5LTEwLTA5IDEyOjExOjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5jOgoJICBvc3hhdWRpbzogZml4IHdhcm5pbmdzIG9uIG1hY29zeAoKMjAwOS0xMC0wOSAxMjowMToxMCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHJ0cHZyYXdwYXk6IGZpeCB3YXJuaW5nIG9uIG1hY29zeAoKMjAwOS0xMC0wOSAxMTo1Nzo1OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkgIHJ0cGgyNjNwYXk6IGZpeCB3YXJuaW5nIG9uIG1hY29zeAoKMjAwOS0xMC0wOSAxMTo1NDowMyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggd2FybmluZ3MgYnVpbGRpbmcgb24gbWFjb3N4CgoyMDA5LTEwLTA5IDExOjQyOjM2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOgoJICBpZDNkZW11eDogZml4IHByaW50ZiB3YXJuaW5ncyBvbiBtYWNvc3gKCjIwMDktMTAtMDkgMTE6MzA6MDAgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCB3YXJuaW5nIGluIG1hY29zeCBtYWtpbmcgdGhlIGZvcm1hdCBwb3J0YWJsZQoKMjAwOS0xMC0wOSAxMDo1MToyOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSAgYXVkaW9meDogdXNlIEdfR1VJTlQ2NF9GT1JNQVQgdG8gZml4IHdhcm5pbmdzIG9uIE9TWAoKMjAwOS0xMC0wOSAxMDoxMTozOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuYzoKCSAgb3N4YXVkaW86IEZpeGVzIGJ1aWxkIG9uIG1hY29zeCBzbm93IGxlb3BhcmQuCgoyMDA5LTEwLTA5IDExOjM0OjE2ICswMjAwICBQYXUgR2FyY2lhIGkgUXVpbGVzIDxwZ3F1aWxlc0BlbHBhdWVyLm9yZz4KCgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSAgdjRsMjogSW5jbHVkZSBzeXMvaW9jdGwuaCBmb3IgdGhlIFY0TCBpb2N0bCByZXF1ZXN0cwoJICBPbGQgdmlkZW9kZXZpY2UyLmgga2VybmVsIGhlYWRlcnMgdXNlZCBpb2N0bCBzdHVmZiB3aXRob3V0CgkgIGluY2x1ZGluZyBpb2N0bC5oLCBtYWtpbmcgY29tcGlsYXRpb24gZmFpbCBvbiBvbGRlciBzeXN0ZW1zLgoJICBOb3RlOiBJbmNsdWRpbmcgaW9jdGwuaCBoZXJlIGlzIG9ubHkgYSB3b3JrYXJvdW5kIGZvciBvbGQga2VybmVsCgkgIGhlYWRlcnMsIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgZXZlcnlib2R5IGhhcyBuZXcgZW5vdWdoIGhlYWRlcnMuCgkgIEZpeGVzIGJ1ZyAjNTk3ODY3LgoKMjAwOS0xMC0wOSAwMDoxNDowNyArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIGNoZWNrOiBNYWtlIHRoZSBsZXZlbCB1bml0IHRlc3Qgc3VjY2VlZCBvbiBTb2xhcmlzIDEwCgkgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayBmb3IgZnVuY3Rpb25hbCBpc2luZigpIGFuZCBmcGNsYXNzKCksIGFuZAoJICB1c2UgZnBjbGFzcygpIHdoZXJlIHBvc3NpYmxlIHdoZW4gaXNpbmYoKSBpcyBub3QgYXZhaWxhYmxlLgoKMjAwOS0wNS0xNiAxMzo1Mjo1MCArMDMwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQG5va2lhLmNvbT4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBmaXggc3Ryc3RyKCkgdXNhZ2Ugb24gcG9zc2libHkgdW50ZXJtaW5hdGVkIHN0cmluZwoKMjAwOS0xMC0wOCAxNjoxNjoxNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIGNoZWNrOiBMaW5rIGFnYWluc3QgTElCTSBhbmQgaW5jbHVkZSBtYXRoLmggZm9yIGlzaW5mKCkKCjIwMDktMTAtMDcgMjE6NTE6MzggKzAxMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL29zcy9nc3Rvc3NhdWRpby5jOgoJICBvc3M6IERvd25ncmFkZSB0aGUgcmFuayBvZiBvc3NzcmMgdG8gU0VDT05EQVJZCgkgIHdoaWNoIGlzIHRoZSBzYW1lIHJhbmsgYXMgb3Nzc2luayBoYXMuCgkgIEZpeGVzIGJ1ZyAjNTk3NzMwLgoKMjAwOS0xMC0wOCAxMDo1OTo1MyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxOWZhNGYzIHRvIGEzZTNjZTQKCjIwMDktMTAtMDggMTA6MjA6MDkgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgYXZpL3dhdjogRml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgaW5jb21wYXRpYmxlIHBvaW50ZXJzLgoKMjAwOS0xMC0wNSAxNzozNjo1NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGUuYzoKCSAgbXVsdGlmaWxlOiBGaXggcGx1Z2luIGRlc2NyaXB0aW9uCgoyMDA5LTEwLTA3IDE0OjAzOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvYW5ub2RleC9nc3RjbW1sdXRpbHMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmg6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2RlYnVndXRpbHMvdGVzdHMuYzoKCSogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLWF1ZGlvdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9zcGVjdHJ1bS1leGFtcGxlLmM6CgkgIGJ1aWxkOiBmcHJpbnRmLCBzcHJpbnRmLCBzc2NhbmYgbmVlZCBzdGRpby5oCgoyMDA5LTEwLTA3IDAwOjMzOjQ5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICBlcXVhbGl6ZXI6IHVzZSBzaGVsZmluZyBmaWx0ZXJzIGZvciBmaXJzdCBhbmQgbGFzdCBiYW5kCgkgIFJlZmFjdG9yIHRoZSBmaWx0ZXIgc2V0dXAuIEFkZCB0d28gbmV3IGZpbHRlcnMgd2l0aCBzaGVsZiBjaGFyYWN0ZXJpc3RpY3MgZm9yCgkgIGZpcnN0IGFuZCBsYXN0IGJhbmQuIENoYW5nZSBnYWluIGNhbGN1bGF0aW9uIGFzIHJlY29tbWVuZGVkIGluIHRoZSBxdW90ZWQKCSAgZG9jdW1lbnQgKG5vIHFydCBuZWVkZWQpLiBSZW5hbWUgdmFyaWFibGVzIHRvIG1hdGNoIHRoZSBmb3JtdWxhcyBpbiB0aGUKCSAgZG9jdW1lbnQuCgoyMDA5LTEwLTAyIDIzOjUxOjI5ICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBndWFyZCBmcmFnbWVudCBzaXplIHdpdGggYSBsb3dlciBsaW1pdCBiYXNlZCBvbiBsYXRlbmN5LXRpbWUKCSAgSW4gY2FzZSB0aGF0IHRoZSBwdWxzZSBkYWVtb24gcnVucyB0aGUgc291cmNlIGRldmljZSBhdCBhIHJlbGF0aXZlbHkgbG93IGZpeGVkCgkgIGZyYWdtZW50IHNpemUgY29tcGFyZWQgdG8gdGhlIHJlcXVlc3RlZCBsYXRlbmN5LXRpbWUsIGNvbmZpZ3VyZSB0aGUgcmluZyBidWZmZXIKCSAgc2Vnc2l6ZSB0byB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG11bHRpcGxlIG9mIHRoZSBmcmFnbWVudCBzaXplIHRoYXQgaXMgc3RpbGwKCSAgc21hbGxlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZXF1ZXN0ZWQgbGF0ZW5jeS10aW1lLgoJICBGaXhlcyBidWcgIzU5NzQ2My4KCjIwMDktMTAtMDYgMTc6NDA6NDcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAganBlZ2RlYzogY29tbWVudC9sb2dnaW5nIGNsZWFudXBzIGFuZCBtb3JlIGJyYW5jaCBndWlkZXMKCjIwMDktMTAtMDUgMjI6NDM6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogZml4IGZpbHRlciBoaXN0b3J5IHVzYWdlLiBGaXhlcyAjNTk3Mzk3CgkgIFRoZSBwcm9jZXNzIGZ1bmN0aW9ucyB3aGVyZSBvdmVyd3JpdGluZyB0aGUgaGlzdG9yeSBmb3IgZWFjaCBjaGFubmVsLiBBbHNvIHB1bGwKCSAgc29tZSBzdGF0aWMgdGhpbmdzIG91dCBvZiB0aGUgaW5uZXIgbG9vcC4KCjIwMDktMTAtMDUgMTY6MDc6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiB1c2UgbG9ja2luZyBhcm91bmQgdGhlIHNlc3Npb25zCgoyMDA5LTEwLTA1IDExOjQ2OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbWFrZSBzdXJlIGNvbXBhdGlibGUgYnJhbmRzIGJ1ZmZlciBleGlzdHMgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQKCjIwMDktMTAtMDQgMjE6NTk6MjQgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGdtYWlsLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZml4IHByaW50ZiB3YXJuaW5ncyBvbiBPU1gKCSAgQ2FzdCB2YXJpYWJsZXMgcGFzc2VkIHRvIHByaW50ZiB0byBhdm9pZCB3YXJuaW5ncyBhYm91dCBpbmNvcnJlY3QKCSAgZm9ybWF0cyAobW9zdCBsaWtlbHkgY2F1c2VkIGJ5IHNpemVvZiByZXR1cm5pbmcgYSBzaXplX3QpLgoJICBGaXhlcyAjNTk3MzQ4LgoKMjAwOS0xMC0wMiAwMDoyMzozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHJlbW92ZSBpbnRlcm5hbCBnZW5yZSB0YWJsZQoJICBObyBuZWVkIHRvIG1haW50YWluIG91ciBvd24gZ2VucmUgdGFibGUgaW4gcXRkZW11eC4gVGhlIGdlbnJlcyBhcmUKCSAgaWRlbnRpY2FsIHRvIHRoZSBJRDMgZ2VucmVzLCBzbyB3ZSBjYW4ganVzdCB1c2UgbGliZ3N0dGFnJ3MKCSAgZ3N0X3RhZ19pZDNfZ2VucmVfZ2V0KCkgdG8gbG9vayB0aGVtIHVwLgoKMjAwOS0xMC0wMyAxNzoxODoyOCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AZ21haWwuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBGaXggcHJpbnRmIGZvcm1hdHMgdG8gYXZvaWQgd2FybmluZ3MgaW4gYXZpZGVtdXguIEZpeGVzICM1OTcyMTQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzIxNAoKMjAwOS0xMC0wMyAwOTo1Mjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogQ2hhbmdlIG9uZSBHU1RfV0FSTklORyB0byBhIEdTVF9ERUJVRwoKMjAwOS0xMC0wMiAxNDozNzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZkZW11eDogSWYgdGhlcmUncyBubyBhdWRpbyBzdHJlYW0gYWZ0ZXIgNiBzZWNvbmRzIG9mIHZpZGVvIHNpZ25hbCBuby1tb3JlLXBhZHMKCSAgLi4uYW5kIHRoZSBvdGhlciB3YXkgYXJvdW5kLiBBbHNvIGlnbm9yZSBhbnkgYXVkaW8vdmlkZW8gc3RyZWFtcyB0aGF0IGFwcGVhcgoJICBhZnRlciBuby1tb3JlLXBhZHMuCgkgIEZpeGVzIGJ1ZyAjNTk3MDkxLgoKMjAwOS0xMC0wMiAxNDozNzo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZkZW11eDogTWFrZSBzdXJlIHRvIG9ubHkgc2lnbmFsIG5vLW1vcmUtcGFkcyBhIHNpbmdsZSB0aW1lCgoyMDA5LTEwLTAyIDIyOjU1OjQ1ICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2U6IHJlbmFtZSBwYV9idWZmZXJfYXR0ciB2YXJpYWJsZXMKCSAgTWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gc2VlIHdoYXQgaXMgZ29pbmcgb24gYW5kIGlzIGEgbG90IGxlc3MgZXJyb3IgcHJvbmUuCgoyMDA5LTEwLTAyIDE4OjI1OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJICBydHA6IGFkZCBtaXNzaW5nIGluY2x1ZGUgdG8gZml4IHRoZSBidWlsZAoKMjAwOS0xMC0wMiAxMzoxNTo1OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgdmlkZW9maWx0ZXI6IGFkZCBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgdG8gcHJvcGVydHkgc2V0dGVyCgoyMDA5LTEwLTAyIDEzOjEwOjQ0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgbGV2ZWw6IGRvbid0IGdpdmUgd3JvbmcgbnVtYmVyIG9mIGZpZWxkcyBpbiB0aGUgbWVzc2FnZSBkb2NzCgoyMDA5LTEwLTAxIDEyOjUyOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIGppdHRlcmJ1ZmZlcjogY2FjaGUgbGF0ZW5jeSBpbiBuYW5vc2Vjb25kcwoJICBDYWNoZSB0aGUgbGF0ZW5jeSBpbiBuYW5vc2Vjb25kcyB1bml0cyB0byBhdm9pZCBoYXZpbmcgdG8gY29udmVydCB0aGUKCSAgbWlsbGlzZWNvbmRzIHZhbHVlIHRvIG5hbm9zZWNvbmRzIGFsbCB0aGUgdGltZS4KCjIwMDktMTAtMDEgMTI6MTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBoYW5kbGUgLTEgaW5wdXQgdGltZXN0YW1wcwoJICBEb24ndCB0cnkgdG8gY2hlY2sgYSAtMSB0aW1lc3RhbXAgYWdhaW5zdCB0aGUgbWF4IGRlbGF5LgoKMjAwOS0xMC0wMSAxMDo1NDo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IGRvbid0IG1pc3VlcyBwZXJmLWNhdGVnb3J5IGFuZCByZW1vdmUgdW51c2VkIGV4dCBjYXRlZ29yeQoJICBUaGUgcGVyZm9ybWFuY2UgY2F0ZWdvcnkgaXMgbWVhbnQgdG8gYmUgdXNlZCB0byBhdWRpdCBjb2RlcGF0aHMgdGhhdCBsZWFkIHRvIGJhZAoJICBwZXJmb3JtYW5jZSAoZS5nLiBjb3BpZXMsIGNvbnZlcnNpb24gdGhhdCBjYW4gYmUgYXZvaWRlZCkuCgkgIFJlbW92ZSB0aGUgZXZlbnQgY2F0ZWdvcnkgd2hpY2ggaXMgbm90IHVzZWQuCgoyMDA5LTA5LTE2IDE0OjIzOjI0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwZzcyOXBheS9kZXBheTogRGVtb3RlIHBlci1idWZmZXIgZGVidWcgbWVzc2FnZXMgdG8gbG9nIGxldmVsCgoyMDA5LTA5LTE2IDE0OjE2OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwZzcyOXBheTogRG9uJ3QgbGVhayBpbmNvbWluZyBidWZmZXJzIGFmdGVyIHN1YmJ1ZmZlcmluZyB0aGVtCgoyMDA5LTA5LTE2IDEzOjU3OjA1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgcnRwZzcyOXBheS9kZXBheTogQWRkIGRlYnVnIGNhdGVnb3JpZXMKCjIwMDktMDktMTYgMTM6NTU6MTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJICBydHBnNzI5cGF5OiBSZW1vdmUgbG9uZyB1bm5lZWRlZCBkZWZpbmUgcmVwbGFjZW1lbnQKCjIwMDktMDktMzAgMTg6MDY6MDcgKzAxMDAgIENocmlzdGlhbiBGLksuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L01ha2VmaWxlLmFtOgoJICBVcGRhdGUgbWFrZWZpbGUgd2l0aCBtaXNzaW5nIGhlYWRlciBmaWxlCgoyMDA5LTA5LTMwIDE4OjQ1OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtQU1SLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItYWxzYXNyYy1QQ01BLnNoOgoJKiB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLXY0bDItSDI2M3AtYWxzYXNyYy1BTVIuc2g6CgkqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjY0LWFsc2FzcmMtUENNQS5zaDoKCSAgcnRwOiBVc2UgYXV0b2F1ZGlve3Npbmssc3JjfSBpbnN0ZWFkIG9mIGFsc2EgaW4gdGhlIGV4YW1wbGVzCgoyMDA5LTA5LTI5IDE3OjUxOjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGRvbid0IGxlYWsgb3V0cHV0IGJ1ZmZlcnMgb24gZGVjb2RpbmcgZXJyb3JzCgkgIFRoZSBzZXRqbXAgaGFuZGxlcyBsaWJqcGVnIGVycm9yLiBGcmVlIHRoZSBvdXRwdXRiZmZlciBpZiB3ZSBkb24ndCBuZWVkIGl0LgoKMjAwOS0wOS0yOSAwMDowMTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZpeCAndW51c2VkIHZhcmlhYmxlJyBjb21waWxlciB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIHdpdGggR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgoyMDA5LTA5LTIzIDE0OjI1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IHNtYWxsIGNsZWFudXBzCgoyMDA5LTA5LTIzIDEzOjU3OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IGZpeCB0aW1lc3RhbXBpbmcgaW4gc29tZSBhdWRpbyBzdHJlYW1zCgkgIEZvciB2YnIgYXVkaW8gc3RyZWFtcyB3ZSBuZWVkIHRvIHVzZSB0aGUgbnVtYmVyIG9mIGJsb2NrcyB0byBjYWxjdWxhdGUgdGhlCgkgIHRpbWVzdGFtcHMuCgkgIFdoZW4gdGhlIGFsbG9jYXRpb24gb2YgYWRkaXRpb25hbCBpbmRleCBtZW1vcnkgZmFpbHMsIGRvbid0IHRocm93IGF3YXkgd2hhdAoJICB3ZSBoYWQgYmVmb3JlLgoJICBWYXJpb3VzIGNsZWFudXBzLgoKMjAwOS0wOS0yMyAxMjo1NjowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpOiBhZGQgc3VwcG9ydCBmb3IgT0RNTCBpbmRleGVzIGFnYWluCgoyMDA5LTA5LTIyIDIyOjEyOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aTogaW1wbGVtZW50IGluZGV4IHNjYW5uaW5nCgkgIEltcGxlbWVudCBzY2FubmluZyBvZiB0aGUgZmlsZSB3aGVuIHdlIGNhbiBwYXJzZSB0aGUgaW5kZXguCgkgIFNvbWUgcmVmYWN0b3Jpbmcgb2YgY29tbW9uIGNvZGUuCgkgIENsZWFudXBzIGFuZCBjb21tZW50cy4KCSAgUmVtb3ZlIHNvbWUgcmVpbXBsZW1lbnRlZCBjb2RlLgoJICBSZW1vdmUgaW5kZXggbWFzc2FnZSBjb2RlIGFuZCBwdXQgYSBGSVhNRSB3aGVyZSB3ZSBzaG91bGQgZG8gc29tZXRoaW5nCgkgIGVxdWl2YWxlbnQgbGF0ZXIuCgoyMDA5LTA5LTIyIDE4OjE4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IGZpeCByZXZlcnNlIHBsYXliYWNrCgoyMDA5LTA5LTIyIDE3OjQyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IGZpeCBwcmV2IGtleWZyYW1lIHNlYXJjaCBhbmQgY2xlYW51cHMKCjIwMDktMDktMjIgMTQ6NTE6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aTogcmVtb3ZlIGNvZGUgdGhhdCBnb3QgY29udmVydGVkCgoyMDA5LTA5LTIyIDE0OjQ0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aTogbW9yZSBjbGVhbnVwcwoJICBSZW1vdmUgc29tZSBkdXBsaWNhdGUgY291bnRlcnMuCgkgIEJlIHNtYXJ0ZXIgd2hlbiB1cGRhdGVpbmcgdGhlIGN1cnJlbnQgdGhlIHRpbWVzdGFtcCBhbmQgb2Zmc2V0IGluIHRoZSBzdHJlYW0KCSAgYmVjYXVzZSB3ZSBjYW4gcmV1c2UgcHJldmlvdXNseSBjYWxjdWxhdGVkIHZhbHVlcyB3aGVuIHNpbXBseSBnbyBmb3J3YXJkIG9uZQoJICBzdGVwLgoJICBDb3JyZWN0bHkgc2V0IG1ldGFkYXRhIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgoyMDA5LTA5LTIyIDEyOjM1OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aWRlbXV4OiBzbWFsbCBjbGVhbnVwcwoKMjAwOS0wOS0yMiAwMToyODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpOiBmaXggcmVhZCBvZmZzZXQgYW5kIGNsZWFudXBzCgoyMDA5LTA5LTIxIDE4OjA0OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aTogcmV3cml0ZSBpbmRleCBwbGF5YmFjawoJICBkaXNhYmxlIGNvZGUsIHN0YXJ0IG9uIHJlaW1wbGVtZW50aW5nIGxvb3AgYmFzZWQgb3BlcmF0aW9uLgoJICBSZXdyaXRlIHRoZSBpbmRleCBoYW5kbGluZyBzbyB0aGF0IGFsbCBzdHJlYW1zIHVzZSB0aGVpciBvd24gaW5kZXggZm9yIGRlY29kaW5nCgkgIG1lZGlhLgoKMjAwOS0wOS0yMSAxNTozNTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBhdmlkZW11eDogYWRkIG5ldyBpbmRleCBwYXJzaW5nIGNvZGUKCSAgQWRkIGEgbmV3IGZ1bmN0aW9uIGFuZCBkYXRhc3RydWN0dXJlIHRvIHBhcnNlIGFuZCBob2xkIHRoZSBpbmRleCBlbnRyaWVzIG9uIGEKCSAgcGVyIHN0cmVhbSBiYXNlLiBBbHNvIGF2b2lkIGRvaW5nIHRvbyBtdWNoIHdvcmsgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlCgkgIHRpbWVzdGFtcHMgYW5kIGR1cmF0aW9ucyBhcyB3ZSBjYW4gdHJpdmlhbGx5IGRvIHRoYXQgbGF0ZXIuCgkgIExlc3MgaW5mb3JtYXRpb24gaW4gdGhlIGVudHJpZXMgbWFrZXMgdGhlbSAyIHRpbWVzIHNtYWxsZXIgYW5kIG5vdCBkb2luZyB0b28KCSAgbXVjaCB3b3JrIG1ha2VzIHRoaXMgY29kZSBhYm91dCAxMiB0aW1lcyBmYXN0ZXIgdGhhbiB0aGUgcmVndWxhciBjYXNlLgoJICBIb29rIGluIHRoZSBuZXcgZnVuY3Rpb24gYWxvbmdzaWRlIHRoZSBleGlzdGluZyBmdW5jdGlvbiBmb3IgY29tcGFyaXNvbiB1bnRpbAoJICB0aGUgcmVzdCBvZiB0aGUgY29kZSBpcyB1cGRhdGVkIHRvIGhhbmRsZSB0aGUgbmV3IGluZGV4IGRhdGFzdHJ1Y3R1cmUuCgoyMDA5LTA5LTI4IDE2OjI5OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWc6IGhhbmRsZSBtb3JlIGxpYmpwZWcgcmV0dXJuIHZhbHVlcywgYWRkIHNvbWUgbW9yZSBicmFuY2ggaGludHMKCSAgQWxzbyByZW1vdmUgdW51c2VkIHNpemUgdmFyaWFibGUgaW4gX2NoYWluKCkuCgoyMDA5LTA5LTI1IDE5OjIxOjMyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogc29tZSBvcHRpb25hbCBRVCBzcGVjaWZpZWQgc3RzZCBNUEVHLTQgYXRvbXMgYWxzbyBhcHBseSB0byBIMjY0CgkgIEZpeGVzICM1OTYzMTkuCgoyMDA5LTA5LTI1IDE2OjQwOjMxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogb25seSBzZW5kIHRhZyBldmVudHMgZG93bnN0cmVhbSBhZnRlciBuZXdzZWdtZW50CgoyMDA5LTA5LTI1IDE0OjE0OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogaWYgdHJhbnNwb3J0IHByb3RvY29sIHVuc3VwcG9ydGVkLCB0cnkgYW5vdGhlciBvbmUKCSAgQWxzbyBjaGFuZ2UgZXJyb3IgbWVzc2FnZSB0byBtb3JlIGFjY3VyYXRlbHkgcmVmbGVjdCBjYXNlcyBpbiB3aGljaAoJICBpdCBjYW4gb2NjdXIuCgoyMDA5LTA5LTI1IDExOjU0OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhZGQgZHVyYXRpb25zIG1vZHVsbyAxPDwzMgoJICBGb3IgY2FsY3VsYXRpbmcgdGhlIGR1cmF0aW9ucyBvZiBlYWNoIHNhbXBsZSwgd2UgYXJlIHN1cHBvc2VkIHRvIGFkZCBlYWNoCgkgIGR1cmF0aW9uIG1vZHVsbyAxPDwzMiBzbyBtYWtlIHRoZSBlbGFwc2VkIHRpbWUgY291bnRlciBhIHVpbnQzMi4KCSAgRml4ZXMgIzU5NTk0MgoKMjAwOS0wOS0yNCAyMDozODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogc21hbGwgY2xlYW51cAoKMjAwOS0wOS0yNCAxOTozMzozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGF0b21wYXJzZXIuaDoKCSAgcXRkZW11eDogZG9uJ3QgdXNlIGNvcmUgQVBJIHRoYXQgZG9lc24ndCBleGlzdCB5ZXQKCSAgVGhlcmUncyBubyBnc3RfYnl0ZV9yZWFkZXJfaGFzX3JlbWFpbmluZygpIHlldC4gRml4ZXMgYnVpbGQuCgoyMDA5LTA5LTI0IDEzOjIwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0YXRvbXBhcnNlci5oOgoJICBxdGRlbXV4OiBtYXAgc29tZSBhdG9tcGFyc2VyIGZ1bmN0aW9ucyB0byB0aGVpciBuZXcgYnl0ZXJlYWRlciBlcXVpdmFsZW50cwoJICBOb3cgdGhhdCBHc3RCeXRlUmVhZGVyIGhhcyB1bmNoZWNrZWQgYW5kIGlubGluZWQgdmFyaWFudHMgYXMgd2VsbCwgbWFwCgkgIGF0b21wYXJzZXIgZnVuY3Rpb25zIHRvIHRoZWlyIHJlc3BlY3RpdmUgYnl0ZXJlYWRlciBlcXVpdmFsZW50cy4KCjIwMDktMDgtMjUgMTI6MTE6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRhdG9tcGFyc2VyLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmM6CgkgIHF0ZGVtdXg6IGFkZCBxdF9hdG9tX3BhcnNlcl9oYXNfY2h1bmtzKCkgYW5kIGZpeCBpbmRlbnRhdGlvbgoKMjAwOS0wOC0yMCAxODoyMTo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGJhaWwgb3V0IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFsbG9jIHNpbGx5IGluZGV4IHNpemVzCgkgIElmIGl0IGxvb2tzIGxpa2Ugd2Ugd291bGQgYmUgYWxsb2NhdGluZyBhIHNpbGx5IHNpemUgZm9yIG91ciBzYW1wbGUKCSAgaW5kZXgsIGp1c3QgYmFpbCBvdXQgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWxsb2NhdGUgaXQuIEhlbHBzIHdpdGgKCSAgYnJva2VuIG9yIGZ1enplZCBmaWxlcyB3aGVyZSB3ZSBtaWdodCBlbmQgdXAgdHJ5aW5nIHRvIG1hbGxvYyBhCgkgIGNvdXBsZSBvZiBodW5kcmVkIE1CcyBvdGhlcndpc2UuCgoyMDA5LTA4LTIwIDE2OjQ3OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZXJyb3Igb3V0IGNvcnJlY3RseSBpZiB3ZSBkb24ndCBldmVuIGhhdmUgZW5vdWdoIGJ5dGVzIGZvciBhbiBhdG9tIGhlYWRlcgoKMjAwOS0wOC0yMCAxNTozOTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGluaXQgZm91cmNjIHRvIDAgYXMgd2VsbCB0byBhdm9pZCBpbnZhbGlkIHJlYWRzIHdoZW4gcHJpbnRmJ2luZyBlcnJvciBtZXNzYWdlCgoyMDA5LTA4LTIwIDAxOjM5OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0YXRvbXBhcnNlci5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5jOgoJICBxdGRlbXV4OiBhZGQgcXRfYXRvbV9wYXJzZV9oYXNfcmVtYWluaW5nKCkgdG8gYXZvaWQgb3ZlcmZsb3dzIHdpdGggX2dldF9yZW1haW5pbmcoKQoKMjAwOS0wOC0yMCAwMToyMTowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHVzZSBHc3RCeXRlUmVhZGVyIHdoZW4gcGFyc2luZyB0a2hkIGF0b20KCjIwMDktMDgtMTkgMTk6MTM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiB1c2UgdW5zaWduZWQgaW50cyBmb3Igbm9kZSBsZW5ndGggYW5kIGRvIG1vcmUgc2FuaXR5IGNoZWNraW5nIG9mIHRoZSBhdG9tIGxlbmd0aAoKMjAwOS0wOC0xOSAwMTozNjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGF0b21wYXJzZXIuaDoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5oOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmg6CgkgIHF0ZGVtdXg6IHVzZSBHc3RCeXRlUmVhZGVyIGZvciBhdG9tIGR1bXBpbmcgYW5kIGZpeCBhIGZldyBidWdzCgoyMDA5LTA4LTIxIDE0OjIxOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbW92ZSBzdGNvLCBzdHRzLCBzdHNzIGFuZCBzdHBzIGF0b20gcGFyc2luZyBvdmVyIHRvIEdzdEJ5dGVSZWFkZXIKCSAgTWFrZSBzdXJlIHdlIGRvbid0IHJlYWQgYmV5b25kIHRoZSBhdG9tIGJvdW5kYXJ5LiBOb3RlIHRoYXQgdGhlIGNvZGUKCSAgYmVoYXZlcyBzbGlnaHRseSBkaWZmZXJlbnRseSBpbiB0aGUgY29ybmVyIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm90CgkgIGVub3VnaCBhdG9tIGRhdGEgZm9yIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHNhbXBsZXMgKG5fc2FtcGxlc190aW1lKQoJICBpbiB0aGUgYXRvbSwgYnV0IHN0aWxsIGVub3VnaCBkYXRhIHRvIGZpbGwgdGhlIHByZS1hbGxvY2F0ZWQgaW5kZXggb2YKCSAgbl9zYW1wbGVzIGVudHJpZXM6IGJlZm9yZSB3ZSB3b3VsZCBqdXN0IHN0b3AgcGFyc2luZyB0aGUgc3R0cyBkYXRhCgkgIGFuZCBjb250aW51ZSwgd2hlcmVhcyBub3cgd2Ugd2lsbCBsaWtlbHkgZXJyb3Igb3V0LiBUaGlzIHNob3VsZCBub3QKCSAgYmUgYSBwcm9ibGVtIGluIHByYWN0aWNlIHRob3VnaC4gV2UgY291bGQgbWFpbnRhaW4gdGhlIG9sZCBiZWhhdmlvdXIKCSAgYnkgZG9pbmcgcmVhZHMgd2l0aCBhIHNpemUgY2hlY2sgaW5zaWRlIHRoZSBsb29wIGlmIG5lZWRlZC4KCjIwMDktMDYtMzAgMTk6NTE6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiB1c2UgYnl0ZXJlYWRlciB0byBwYXJzZSBzdHN6IGFuZCBzdHNjIGF0b21zCgkgIFVzZSBHc3RCeXRlUmVhZGVyIHRvIHBhcnNlIHN0c3ogYW5kIHN0c2MgY2h1bmtzLCBhbmQgY2hlY2sgc2l6ZSBvZgoJICBhdmFpbGFibGUgZGF0YSBiZWZvcmUgcGFyc2luZyBpdCwgaW5zdGVhZCBvZiBibGluZGx5IGFzc3VtaW5nIHRoZXJlCgkgIHdpbGwgYmUgZW5vdWdoIGRhdGEuIEZpeGVzIGNyYXNoZXMgd2l0aCBzb21lIGZ1enplZC9icm9rZW4gZmlsZXMuCgoyMDA5LTA4LTE1IDIwOjM4OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0YXRvbXBhcnNlci5oOgoJICBxdGRlbXV4OiBhZGQgcXRfYXRvbV9wYXJzZXJfZ2V0X29mZnNldCgpIGFuZCBvcHRpbWlzZSBfcGVla19zdWIoKQoKMjAwOS0wNy0wMSAxMzo0OTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9NYWtlZmlsZS5hbToKCSogZ3N0L3F0ZGVtdXgvcXRhdG9tcGFyc2VyLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogYWRkIFF0QXRvbVBhcnNlciwgYW4gaW5saW5lZCBHc3RCeXRlUmVhZGVyIHZhcmlhbnQKCjIwMDktMDktMjMgMTc6MTk6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICBtYXRyb3NrYWRlbXV4OiB1c2UgcHJvcGVyIG9yZGVyIGZvciBuby1tb3JlLXBhZHMgYW5kIG5ld3NlZ21lbnQgYW5kIHRhZyBzZW5kaW5nCgoyMDA5LTA5LTIzIDA5OjUwOjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBzcHJpbmtsZSBhIGZldyBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MKCjIwMDktMDktMjIgMTU6MDM6MjAgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6CgkgIEZpeCBjb21waWxlIHdhcm5pbmdzIHdpdGggZ2NjIDQuMC4xLgoKMjAwOS0wOS0yMiAxMTo0ODo1MCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYW11eDogRG9uJ3QgZ2V0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3Agd2l0aCBEaXJhYwoJICBBdCB0aGUgZW5kLCBEaXJhYyBzdHJlYW1zIGhhdmUgYW4gRU9TIHBhY2tldCB3aXRoIDAgbGVuZ3RoLgoJICBEb24ndCBldmVyIHNpdCBpbiBhbiBpbmZpbml0ZSBsb29wIHdoZW4gcHJvY2Vzc2luZyBvbmUuIEFsbG93cwoJICBtdXhpbmcgRGlyYWMgaW50byBta3YgdG8gY29tcGxldGUgc3VjY2Vzc2Z1bGx5LgoKMjAwOS0wOS0yMiAxMTowMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBVcGRhdGUgLmdpdGlnbm9yZQoKMjAwOS0wOS0yMiAxMTowMjowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSAgdmlkZW9taXhlcjogZml4IHVwIE1ha2VmaWxlIHNvbWUgbW9yZQoJICBSZW1vdmUgQ0ZMQUdTIGZyb20gTElCQUREIGFuZCBtYWtlIG9yZGVyIG9mIHRoZSB2YXJpb3VzIENGTEFHUyBhbmQKCSAgTElCUyBhdCBsZWFzdCBjb25zaXN0ZW50IHdpdGggZWFjaCBvdGhlci4KCjIwMDktMDktMjIgMDg6MDI6NDggKzAyMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJICB2aWRlb21peGVyOiBBZGQgJChHU1RfUExVR0lOU19CQVNFX0xJQlMpIHRvIExERkxBR1MgZm9yIGxpbmtpbmcgbGliZ3N0dmlkZW8KCSAgRml4ZXMgYnVnICM1OTU4OTcuCgoyMDA5LTA5LTIxIDE4OjA5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmk6IGZpeCB0aW1lc3RhbXBzIGluIHB1c2ggbW9kZQoKMjAwOS0wOS0xOCAxNzoyNjo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBhZGQgYSBHX1VOTElLRUxZIGFuZCBwdXQgcGVyZi1jYXQgbG9nIHRvIGNvZGUgcGF0aCB0aGF0IGNvcGllcwoKMjAwOS0wOS0yMSAxMjozMjo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpOiBhZGQgc29tZSBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMKCSAgTWVhc3VyZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdmFyaW91cyBpbmRleCBhbmQgaGVhZGVyIHBhcnNpbmcgc3RlcHMgdG8gdGhlCgkgIFBFUkZPUk1BTkNFIGRlYnVnIGNhdGVnb3J5LgoKMjAwOS0wOS0xOCAxMTo1MzoxMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSAgc3BlZXhkZWM6IGFsbG93IGZvciB1bmtub3duIHZhcnlpbmcgbnVtYmVyIG9mIGZyYW1lcyBwZXIgYnVmZmVyCgkgIEluIHBhcnRpY3VsYXIsIHRoaXMgY2F0ZXJzIGZvciBSVFAgcGF5bG9hZHMgd2l0aCBtdWx0aXBsZSBmcmFtZXMKCSAgcGVyIHBhY2tldC4KCjIwMDktMDktMTggMTE6NDU6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkgIHNwZWV4ZGVjOiB1c2UgY29ycmVjdCBzYW1wbGUgc2l6ZSBpbiBjb252ZXJzaW9ucwoKMjAwOS0wOS0xOCAxMTo0Mzo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSAgc3BlZXhlbmM6IGZpeCBidWZmZXIgdGltZSBhbmQgZHVyYXRpb24gZm9yIG11bHRpcGxlIGZyYW1lcyBwZXIgcGFja2V0CgoyMDA5LTA5LTE4IDE0OjIyOjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBzb21lIGxvZ2dpbmcgY2xlYW51cCB0byBoZWxwIHVuZGVyc3RhbmRpbmcgdGhlIGluZGV4IHBhcnNpbmcgb3ZlcmhlYWQKCjIwMDktMDktMTYgMTM6Mjg6MjcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogc3lzL29zeGF1ZGlvL01ha2VmaWxlLmFtOgoJICBvc3hhdWRpbzogbGluayBhZ2FpbnN0IEdTVF9CQVNFX0xJQlMKCjIwMDktMDktMTUgMTc6MjQ6MjQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOgoJICBydHBnNzI5cGF5OiBGaXggYWRhcHRlciBsZWFrCgkgIFRoZSBhZGFwdGVyIHdvdWxkIGJlIGxlYWtlZCBpZiBpdCB3YXMgZW1wdHkgYW5kIHRoZSBkYXRhIGNvdWxkIGJlIHB1c2hlZCBvdXQgZGlyZWN0bHkuCgoyMDA5LTA5LTE1IDEwOjA0OjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZXNyYzogRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVycwoJICBwYV9zdHJlYW1fZ2V0X3RpbWluZ19pbmZvKCkgY2FuIHJldHVybiBOVUxMLgoJICBGaXhlcyBidWcgIzU5NTIyMC4KCjIwMDktMDktMTUgMTA6MDE6NTQgKzAyMDAgIERhdmlkIEhlbm5pbmdzc29uIDxnbm9tZS53ZWJAZXBvc3QuZGl3aWMuc2U+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVycwoJICBwYV9zdHJlYW1fZ2V0X3RpbWluZ19pbmZvKCkgY2FuIHJldHVybiBOVUxMLgoJICBGaXhlcyBidWcgIzU5NTIyMC4KCjIwMDktMDktMTQgMTY6MDU6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogaGFuZGxlIHN0cmVhbSBldmVudHMKCSAgSGFuZGxlIHN0cmVhbSBldmVudHMgYW5kIHJlcXVlc3QgYSBQQVVTRS9QTEFZIHN0YXRlIGNoYW5nZSBmcm9tIHRoZSBhcHBsaWNhdGlvbgoJICB3aGVuIHdlIHJlY2VpdmUgYSBDT1JLL1VOQ09SSyBldmVudC4KCjIwMDktMDktMTMgMTI6MzA6MzQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5oOgoJICBtdWx0aWZpbGVzaW5rOiBBZGQgbmV4dC1maWxlIHByb3BlcnR5CgkgIEFkZCBhIHByb3BlcnR5IHRvIGFsbG93IGNvbnRyb2wgb3ZlciB3aGF0IGV2ZW50IGNhdXNlcyBhIGZpbGUKCSAgdG8gZmluaXNoIGJlaW5nIHdyaXR0ZW4gYW5kIGEgbmV3IGZpbGUgc3RhcnQuICBUaGUgZGVmYXVsdCBpcwoJICB0aGUgc2FtZSBhcyBiZWZvcmUgLS0gZWFjaCBidWZmZXIgY2F1c2VzIGEgbmV3IGZpbGUgdG8gYmUKCSAgd3JpdHRlbi4gIEFkZGVkIGlzIGEgY2FzZSB3aGVyZSBidWZmZXJzIGFyZSB3cml0dGVuIHRvIHRoZQoJICBzYW1lIGZpbGUgdW50aWwgYSBkaXNjb250aW51aXR5IGluIHRoZSBzdHJlYW0uCgoyMDA5LTA5LTEzIDE1OjU1OjAyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9kdi9nc3RkdmRlbXV4Lmg6CgkgIGR2ZGVtdXg6IFVzZSB2YWx1ZXMgZnJvbSBkZWNvZGVyIHN0cnVjdHVyZSBkaXJlY3RseQoJICBEb24ndCBzdG9yZSB0aGUgc2FtZSB2YWx1ZXMgaW4gdGhlIEdzdER2RGVtdXguICBUaGlzCgkgIGZpeGVzIGEgYnVnIHdoZXJlIGR2ZGVtdXggd291bGQgZGV0ZWN0IGEgc3RyZWFtIGFzIFBBTAoJICBpbnN0ZWFkIG9mIE5UU0MsIGFuZCBzaWxlbnRseSBwYXJzZSBpdCB3cm9uZy4KCjIwMDktMDktMTMgMTI6MjA6MjMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L2R2L01ha2VmaWxlLmFtOgoJKiBleHQvZHYvZ3N0c21wdGV0aW1lY29kZS5jOgoJKiBleHQvZHYvZ3N0c21wdGV0aW1lY29kZS5oOgoJKiBleHQvZHYvc21wdGVfdGVzdC5jOgoJICBkdmRlbXV4OiBBZGQgY29kZSB0byBwYXJzZSBTTVBURSB0aW1lIGNvZGVzCgkgIENvZGUgdG8gY29udmVydCB0aW1lIGNvZGVzIHRvL2Zyb20gdGltZXN0YW1wcyBhbmQgZnJhbWUgbnVtYmVycy4KCjIwMDktMDktMTMgMTI6MDE6MjcgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2R2L2dzdGR2ZGVtdXguaDoKCSAgZHZkZW11eDogRml4IGRldGVjdGlvbiBvZiBuZXcgbWVkaWEKCSAgVGhlcmUgYXJlIDUgb3IgNiBBQVVYIHNvdXJjZSBjb250cm9sIHBhY2tzIGluIGEgZnJhbWUsIGFuZCBhbnkKCSAgb2YgdGhlbSBjb3VsZCBoYXZlIFJFQ19TVCBjbGVhcmVkLCBpbmRpY2F0aW5nIGEgcmVjb3JkaW5nIHN0YXJ0CgkgIHBvaW50LiAgbGliZHYgb25seSBjaGVja3MgdGhlIGZpcnN0LgoKMjAwOS0wOS0xMiAxOToyNTozNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkgIGR2ZGVtdXg6IFNldCBESVNDT05UIGZsYWcgb24gYnVmZmVycyB3aGVuIFJFQ19TVCBmbGFnIGlzIHNldC4KCSAgQWxzbyBhZGQgYSBmZXcgYnJhbmNoIHByZWRpY3Rpb24gbWFjcm9zCgoyMDA5LTA5LTEyIDAwOjEzOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy95NG1lbmMuYzoKCSAgY2hlY2s6IEZpeCBhIGNvdXBsZSBvZiB0ZXN0cy4KCSAgVGhlIHNvdXBodHRwc3JjIHRlc3Qgd2Fzbid0IGNvbXBpbGluZy4gVGhlIHNvdXAtbWlzYy5oIGhlYWRlciBpcyBuZWVkZWQgZm9yCgkgIHNvdXBfc3NsX3N1cHBvcnRlZC4KCSAgRml4IHRoZSB5NG1lbmMgdGVzdCB0byB1c2UgYSAncHJvZ3Jlc3NpdmUnIGhlYWRlciBmb3IgdGhlIHRlc3QgZGF0YSBub3cgdGhhdAoJICB0aGUgZWxlbWVudCBvdXRwdXRzIGNvcnJlY3QgaW50ZXJsYWNpbmcgaW5mby4KCjIwMDktMDktMTEgMTM6MzI6MzkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiB0cmVhdCBhIHplcm8tc2l6ZWQgZGF0YSBjaHVuayBhcyBleHRlbmRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZS4KCSAgVGhpcyBmaXhlcyBwbGF5YmFjayBvZiBzb21lIGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIHZhbGlkIGRhdGEgY2h1bmsgbGVuZ3RoLAoJICBhcHBhcmVudGx5IHNvbWUgcHJvZ3JhbSBjcmVhdGVzIHRoZXNlLgoKMjAwOS0wOS0xMSAyMjoyNDo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkgIHY0bDJzcmM6IGFkZCBhIGZ1bmN0aW9uIHBvaW50ZXIgZm9yIGdldF9mcmFtZSBmdW5jdGlvbiBhbmQgb3B0aW1pemUgYSBiaXQKCSAgVXNlIGEgZnVuY3Rpb24tcG9pbnRlciBmb3IgbW1hcC9yZWFkLCBhcyB0aGlzIGNhbid0IGNoYW5nZSBkdXJpbmcgY2FwdHVyZS4gQWxzbwoJICBzcHJpbmtsZSBhIGZldyBHX0xJS0VMWS9VTkxJS0VMWSB0byBpbXByb3ZlIHRoZSBlcnJvci1sZXNzIGNvZGUgcGF0aC4KCjIwMDktMDktMTEgMjI6MTU6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyOiBsb2cgYnVmZmVyIGNvcGllcyBvbiBxdWV1ZSB1bmRlcnJ1biBpbiBwZXJmIGNhdGVnb3J5CgkgIHY0bDJzcmMgaGFzIGEgc2xvdyBwYXRoIHdoZXJlIGl0IGRvZXMgYnVmZmVyLWNvcGllcyB3aGVuIGl0IHJ1bnMgb3V0IG9mIHF1ZXVlZAoJICBidWZmZXJzLiBMb2cgdGhpcyB0byBwZXJmb3JtYW5jZSBjYXRlZ29yeSB0byBoZWxwIG1vbml0b3JpbmcgaXQuCgoyMDA5LTA5LTExIDE1OjE0OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBJbXBsZW1lbnQgR3N0U3RyZWFtVm9sdW1lIGludGVyZmFjZQoKMjAwOS0wOS0xMSAxNjowOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgcHVsc2VzaW5rOiBJbXBsZW1lbnQgbXV0ZSBwcm9wZXJ0eQoKMjAwOS0wOS0xMSAxMzozMzozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSAgZ2RrcGl4YnVmc2luazogZml4IGRvY3MgcmVmZXJpbmcgdG8gc2VuZC1tZXNzYWdlcwoKMjAwOS0wOS0xMSAxMzoyODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgc3BlY3RydW06IGFkZCBwb3N0LW1lc3NhZ2VzIHByb3BlcnR5CgkgIEFkZCBhIHBvc3QtbWVzc2FnZXMgcHJvcGVydHkgYW5kIGRlcHJlY2F0ZSB0aGUgbGVzcyBkZXNjcmlwdGl2ZSBtZXNzYWdlCgkgIHByb3BlcnR5LgoKMjAwOS0wOS0xMSAxMzoyMDowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmc2luay5oOgoJICBwaXhidWZzaW5rOiBhZGQgcG9zdC1tZXNzYWdlcyBwcm9wZXJ0eQoJICBBZGQgcG9zdC1tZXNzYWdlcyBhbmQgZGVwcmVjYXRlIHNlbmQtbWVzc2FnZXMgYXMgdGhlIGZvcm1lciBpcyBtb3JlCgkgIGRlc2NyaXB0aXZlIG9mIHdoYXQgYWN0dWFsbHkgaGFwcGVucy4KCjIwMDktMDktMTEgMTM6MTI6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmg6CgkgIG11bHRpZmlsZXNpbms6IHJlbmFtZSBzaWxlbnQgdG8gcG9zdC1tZXNzYWdlcwoJICBVc2UgdGhlIHBvc3QtbWVzc2FnZXMgcHJvcGVydHkgbmFtZSBpbnN0ZWFkIG9mIHNpbGVudCBhcyBpdCBpcyBtb3JlCgkgIGRlc2NyaXB0aXZlLgoKMjAwOS0wOS0xMSAxMjoxNjoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuaDoKCSAgbXVsdGlmaWxlc2luazogcG9zdCBtZXNzYWdlcyBmb3IgZWFjaCBidWZmZXIKCSAgQWRkIGEgc2lsZW50IHByb3BlcnR5IHRoYXQgY2FuIGJlIHNldCB0byBGQUxTRSB0byBwb3N0IG1lc3NhZ2VzIG9uIHRoZSBidXMgZm9yCgkgIGVhY2ggd3JpdHRlbiBmaWxlLgoJICBEbyBzb21lIG1vcmUgY2xlYW51cHMuCgkgIEFkZCBzb21lIGRvY3MuCgkgIEZpeGVzICM1OTQ2NjMKCjIwMDktMDktMDkgMTg6MTM6MjkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJICBydHBoMjYzcGF5OiBBbGxvY2F0ZSBCb3VuZHJ5IHN0cnVjdHMgb24gdGhlIHN0YWNrIGluc3RlYWQgb2YgdGhlIGhlYXAgdG8gYXZvaWQgbGVha3MKCSAgRml4ZXMgYnVnICM1OTQ2OTEuCgoyMDA5LTA5LTEwIDEwOjI4OjQ4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOgoJICBkb2NzOiBmaXggZ3RrLWRvYyB3YXJuaW5ncwoKMjAwOS0wOS0xMCAxMDoyNjoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMmJ1ZmZlcnBvb2wuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5oOgoJICBkb2NzOiBmaXggZ3RrLWRvYyB3YXJuaW5ncwoKMjAwOS0wOS0wOSAxNzo1MToxOSAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvcmF3MTM5NC9NYWtlZmlsZS5hbToKCSogZXh0L3JhdzEzOTQvZ3N0MTM5NGNsb2NrLmM6CgkqIGV4dC9yYXcxMzk0L2dzdDEzOTRjbG9jay5oOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmg6CgkgIGR2MTM5NHNyYzogQWRkIGEgY2xvY2sgYmFzZWQgb24gaXNvY2hyb25vdXMgY3ljbGUgY291bnRlcgoJICBQYXJ0aWFsIGZpeCBmb3IgIzE2OTM4My4KCjIwMDktMDktMDkgMTY6MDI6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBGaXggQVlVVi0+STQyMCBjb252ZXJzaW9uCgkgIEZvciB0aGlzIGZpeCB0aGUgYXZlcmFnaW5nIG9mIHRoZSBjaHJvbWEgdmFsdWVzLiBJdCBzaG91bGQndCBiZSAoYS8yICsgYikvMgoJICBidXQganVzdCAoYSArIGIpLzIuCgkgIEZpeGVzIGJ1ZyAjNTk0NTk5LgoKMjAwOS0wOS0wOSAxNjoyNTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHJlbW92ZSByaW5nYnVmZmVyIHJlc2V0IGNvbXBlbnNhdGlvbgoJICBSZW1vdmUgdGhlIGNvZGUgdG8gZGVhbCB3aXRoIGEgcmluZ2J1ZmZlciByZXNldCBhcyB0aGlzIGNvZGUgaXMgbm93IGluIHRoZSBiYXNlCgkgIGNsYXNzLgoJICBCdW1wIHRoZSAtYmFzZSByZXF1aXJlbWVudCBhcyB3ZSBuZWVkIHRoZSBuZXcgYmFzZWF1ZGlvc2luayBjb2RlIHRvIGZ1bmN0aW9uCgkgIHByb3Blcmx5LgoKMjAwOS0wOS0wOSAxNjoyNDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgcHVsc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTA5IDEwOjI3OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTA4IDE5OjM0OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXByb2JlLmM6CgkgIHB1bHNlOiBzbWFsbCBjbGVhbnVwcwoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvCgkgIEZpeCB0aGUgc3RhdGUgY2hhbmdlcwoKMjAwOS0wOS0wOCAxODoyOTozNSArMDIwMCAgTWFyYy1BbmRyw6kgTHVyZWF1IDxtbHVyZWF1QGZsdW1vdGlvbi5jb20+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJICBtdWx0aXBhcnRtdXg6IG1hcmsgZGF0YSBidWZmZXIgYXMgZGVsdGEtdW5pdAoJICBTbyB0aGF0IG11bHRpZmRzaW5rIGFsd2F5cyBzdGFydCBzZW5kaW5nIGhlYWRlciBidWZmZXIgZmlyc3QKCSAgRml4ZXMgIzU5NDUyMAoKMjAwOS0wOS0wOCAxNzozNzoxNSArMDIwMCAgTWFyYyBMZWVtYW4gPG1hcmMubGVlbWFuQGdtYWlsLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgcnRwYmluOiBhZGQgaWdub3JlLXB0IHBhcmFtZXRlcgoJICBBZGQgYSBwYXJhbWV0ZXIgJ2lnbm9yZS1wdCcgdGhhdCBkaXNhYmxlcyBjcmVhdGluZyBhIGdzdHJ0cHB0ZGVtdXggbW9kdWxlIGFuZAoJICBnaG9zdHMgdGhlIHBhZHMgb2YgZ3N0cnRwaml0dGVyYnVmZmVyIGluc3RlYWQgb2YgdGhlIG9uZXMgb2YgZ3N0cnRwcHRkZW11eC4KCSAgRml4ZXMgIzU5NDQ5MAoKMjAwOS0wOS0wNCAxMzo1MTozNyArMDIwMCAgTWFydmluIFNjaG1pZHQgPG1hcnZpbl9zY2htaWR0QGdteC5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJICBjaGVja3M6IG9ubHkgcnVuIEhUVFBTIHRlc3QgaWYgbGlic291cCBoYXMgU1NMIHN1cHBvcnQKCjIwMDktMDktMDggMTM6NTk6NTYgKzAyMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkgIHJ0cGJpbjogcHJvcGFnYXRlIHBheWxvYWQtdHlwZS1jaGFuZ2Ugc2lnbmFsIGZyb20gZGVtdXhlcgoJICBmaXhlcyAjNTk0MjU0CgoyMDA5LTA4LTMxIDE4OjQ2OjI1ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBjaGFuZ2Ugc2V2ZXJpdHkgb2YgY2xvY2stcmF0ZSBjaGFuZ2UgZGVidWcKCSAgTWFrZSBsb2cgR1NUX0RFQlVHIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCBHU1RfV0FSTklORyBvdGhlcndpc2UuCgkgIEZpeGVzICM1OTQyNTMKCjIwMDktMDktMDggMTM6Mzk6MzEgKzAyMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBhdm9pZCB0aHJvd2luZyByZW9yZGVyZWQgYnVmZmVycyB3aXRoIHNhbWUgdGltZXN0YW1wcwoJICBXaGVuIHdlIHJlY2VpdmUgYSByZW9yZGVyZWQgcGFja2V0IHdpdGggdGhlIHNhbWUgdGltZXN0YW1wIGFzIHRoZSBwcmV2aW91cyBvbmUKCSAgKHdoaWNoIGNhbiBoYXBwZW4gZm9yIGZyYWdtZW50ZWQgcGFja2V0cykgZG9uJ3QgY29uc2lkZXIgdGhlIHBhY2tldCBhcyBsb3N0IGJ1dAoJICBpbnN0ZWFkIHdhaXQgZm9yIHRoZSByZW9yZGVyZWQgcGFja2V0IHRvIGFycml2ZS4KCSAgU3dpdGNoIHRoZSB3YXJuaW5nLWxldmVsLCBzbyB0aGF0IGEgcmVvcmRlcmluZyBkb2VzIG5vdCBnZXQgYSB3YXJuaW5nLCBvbmx5CgkgIGFuIGFjdHVhbCBwcm9kdWNlZCBsb3N0LXBhY2tldC4KCSAgRml4ZXMgIzU5NDI1MQoKMjAwOS0wOC0zMSAyMToxNjo1NCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSAgcnRwanBlZ2RlcGF5OiBhZGQgbWlzc2luZyBtYXRoLmggaW5jbHVkZQoJICBGaXhlcyAjNTk0MjQ3CgoyMDA5LTA5LTA4IDEzOjMwOjI5ICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBtZW1vcnkgbGVhawoJICBJbiBnc3RfcnRzcHNyY19wYXJzZV9kaWdlc3RfY2hhbGxlbmdlKCksIHJ0c3BzcmMgZG9lcyBhIGdfc3RybmR1cCBvZiB0aGUgYXV0aAoJICBoZWFkZXIgaXRlbXMgYW5kIHRoZW4gcGFzc2VzIHRoZW0gdG8gZ3N0X3J0c3BfY29ubmVjdGlvbl9zZXRfYXV0aF9wYXJhbSgpCgkgIHdpdGhvdXQgZnJlZWluZy4KCSAgRml4ZXMgIzU5NDEzMwoKMjAwOS0wOS0wOCAxMzoxODoyOSArMDIwMCAgU3RpZyBTYW5kbmVzIDxzdGlnLnNhbmRuZXNAdGFuZGJlcmcuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogbWFrZSBmcmVlX3Nlc3Npb24oKSByZW1vdmUgc3RyZWFtIHJlZmVyZW5jZXMKCSAgV2hlbiByZWNlaXZpbmcgYSBzeW5jLXBhY2tldCwgYWxsIHNlc3Npb25zIHdpdGggdGhlIHNhbWUgY25hbWUgd2lsbCBiZSBjb21wYXJlZAoJICBhbmQgc3luY2VkIHRvZ2V0aGVyLiBJbiB0aGlzIHByb2Nlc3MsIHRoZXJlIGNvdWxkIHN0aWxsIGJlIHJlZmVyZW5jZXMgdG8gYQoJICBzZXNzaW9uIHRoYXQgaGFzIGJlZW4gc2h1dCBkb3duIGluIHRoZSBtZWFud2hpbGUuCgkgIFRoaXMgcGF0Y2ggbWFrZXMgc3VyZSB0aGF0IHRoZXNlIHJlZmVyZW5jZXMgYXJlIHJlbW92ZWQgd2hlbiBzaHV0dGluZyBkb3duIGEKCSAgc2Vzc2lvbiwgc28gdGhhdCB0aGUgc3luY2luZyBjYW4gYmUgZG9uZSBzYWZlbHkuCgkgIEZpeGVzICM1OTQyODMKCjIwMDktMDgtMzEgMTg6NDY6NTEgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IHVzZSBsb2NrZWQgc3RhdGUgb24gaW50ZXJuYWwgYmlucwoJICBTZXQgdGhlIGxvY2tlZCBzdGF0ZSBvbiBpbnRlcm5hbCBlbGVtZW50cyB0byBtYWtlIHN1cmUgdGhhdCB0aGV5IGRvbid0IGNoYW5nZQoJICBiYWNrIHRvIGFub3RoZXIgc3RhdGUgd2hlbiBzaHV0dGluZyBkb3duLgoJICBGaXhlcyAjNTk0MjQ4CgoyMDA5LTA5LTA3IDE4OjI4OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMnNyYzogYWRkIHN1cHBvcnQgZm9yIG1wZWcgZm9ybWF0cwoKMjAwOS0wOS0wNSAyMDo1MToxNCAtMDcwMCAgWmFoZWVyIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmg6CgkgIHk0bWVuYzogQWRkIGludGVybGFjZWQgc3VwcG9ydAoJICBGaXhlcyAjNTkxNzEzCgkgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKMjAwOS0wOC0yNCAxMzo0Mjo0MiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuYzoKCSogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zcmMuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIFJlbW92ZSBSb25hbGQgQnVsdGplIGZyb20gQXV0aG9ycyBmaWVsZAoJICBSZXBsYWNlZCB3aXRoICJHU3RyZWFtZXIgbWFpbnRhaW5lcnMKCSAgPGdzdHJlYW1lci1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IiBvciBqdXN0IHJlbW92ZWQsCgkgIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIG90aGVyIGF1dGhvcnMuCgoyMDA5LTA5LTA1IDEwOjIxOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDBhODU5ZSB0byAxOWZhNGYzCgoyMDA5LTA5LTA0IDEzOjQyOjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogcHJldmVudCBhIHNwdXJpb3VzIGRlYnVnIHdhcm5pbmcKCjIwMDktMDktMDQgMDk6MzI6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBEZWZpbmUgVjRMMl9GTVRfRkxBR19FTVVMQVRFRCBpZiBpdCdzIG5vdCBkZWZpbmVkIHlldAoJICBsaWJ2NGwyIGFscmVhZHkgdXNlcyB0aGlzIGZsYWcsIGV2ZW4gb24gTGludXgga2VybmVsIHZlcnNpb25zCgkgIGJlZm9yZSAyLjYuMzIuCgoyMDA5LTA5LTA0IDA3OjEwOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBDb3JyZWN0bHkgaGFuZGxlIE5VTEwgR3N0SW5kZXgKCjIwMDktMDktMDMgMjA6NDA6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBGaXggc3R1cGlkIHR5cG8gaW4gbGFzdCBjb21taXQKCjIwMDktMDktMDMgMjA6Mzg6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICB2NGwyOiBQdXQgZW11bGF0ZWQgZm9ybWF0cyBiZWhpbmQgbmF0aXZlIGZvcm1hdHMKCSAgRml4ZXMgYnVnICM1OTM3NjQuCgoyMDA5LTA5LTAzIDE5OjM3OjEwICswMjAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGUgYXQgeWFob28uZnI+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBmaXggbWVtbGVhawoJICBEb24ndCBsZWFrIHRoZSBpbnB1dCBidWZmZXIgd2hlbiB0aGUgcmVjZWl2ZWQgYW5kIGV4cGVjdGVkIHNlcW51bSBhcmUgZGlmZmVyZW50IHdoZW4KCSAgaW4gcHJvYmF0aW9uLgoJICBmaXhlcyAjNTk0MDM5CgoyMDA5LTA5LTAyIDE1OjIxOjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgcnRwaml0dGVyYnVmZmVyOiBMb2NrIGNsb2NrX3JhdGUgdmFyaWFibGUKCSAgVGhlIHByaXYtPmNsb2NrX3JhdGUgdmFyaWFibGUgY291bGQgYmVjb21lIC0xIGJldHdlZW4gd2hlbiBpdHMgY2hlY2tlZCB0byBub3QKCSAgYmUgLTEgYW5kIHdoZW4gaXRzIHVzZWQsIGNhdXNpbmcgYW4gYXNzZXJ0aW9uLiBGaXhlZCBieSB0YWtpbmcgdGhlIG11dGV4CgkgIGVhcmxpZXIgaW4gdGhlIGNoYWluKCkgZnVuY3Rpb24uCgkgIEZpeGVzICM1OTM5NTUKCjIwMDktMDktMDMgMTk6MTI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAzIDE5OjA5OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgcnRwbXBhcGF5OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAzIDE5OjA4OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA5LTAzIDE3OjMzOjI4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBBdm9pZCB1bm5lY2Vzc2FyeSBwcm9jZXNzaW5nIHVudGlsIHdlIGhhdmUgYSBmdWxsIHBpY3R1cmUuCgkgIFRoaXMgaXMgZm9yIG5vbi1wYWNrZXRpemVkIG1vZGUsIHdoZW4gd2Uga25vdyB0aGUgdXBzdHJlYW0gc2l6ZSBpbiBieXRlcy4KCjIwMDktMDktMDMgMTQ6NDA6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIGZsdm11eDogZnVsbHkgdXNlIHRhZ3NldHRlciB0byBtYW5hZ2UgdGhlIHRhZ3MuIEZpeGVzICM1NjMyMjEKCSAgVGhlcmUgaXMgbm8gbmVlZCB0byBtYW5hZ2UgYSBzZXBhcmF0ZSB0YWdsaXN0LgoKMjAwOS0wOS0wMyAxNDoxMzo0MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIHNwZWV4ZW5jOiBzbWFsbCB0YWdsaXN0IGhhbmRsaW5nIGNsZWFudXAKCSAgRG9uJ3QgZXZlbnR1YWx5IGxlYWsgdGhlIGxpc3QgYW5kIGluc3RlYWQgYXNzZXJ0IChsaWtlIGluIG90aGVyIGVsZW1lbnRzKS4KCjIwMDktMDktMDIgMjM6MTI6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBhbHNvIGd1YXJkIHJlc2V0aW5nIHN1YnNjcmliZSBjYWxsYmFjayB3aXRoIGlmZGVmcwoJICBJdCBpcyBjb25kaXRpb25hbHkgc2V0LCBzbyBkbyB0aGUgc2FtZSB3aGVuIHVuc2V0dGluZy4KCjIwMDktMDktMDEgMTU6MDY6NDYgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBtYW5hZ2VyOiBGaXhlZCBhIGNvcHkgJiBwYXN0ZSBlcnJvcgoKMjAwOS0wOS0wMSAxMzoyMToyMyArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cG1hbmFnZXI6IFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlIHByaXYKCSAgVGhlIHZhcmlhYmxlIHByaXYgd2FzIGluaXRpYWxpemVkIGluIGEgbG90IG9mIGZ1bmN0aW9ucyBidXQgdGhlbiBuZXZlcgoJICB1c2VkIGZvciBhbnl0aGluZy4KCjIwMDktMDktMDEgMTM6MDM6NTcgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBtYW5hZ2VyOiBBIGxpdHRsZSBjbGVhbiB1cAoJICBNYWtlIHRoZSBjb2RlIGZsb3cgb2YgZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRjcCgpIGFuZAoJICBnc3RfcnRwX3Nlc3Npb25fc3luY19ydGNwKCkgaWRlbnRpY2FsLgoKMjAwOS0wOS0wMSAxMjo0Nzo1MSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cG1hbmFnZXI6IE1ha2Ugc3VyZSB0aGF0IHVzZWQgY2FwcyBhcmUgbm90IGZyZWVkIGFscmVhZHkgKHRha2UgMikKCSAgVGhpcyByZWludHJvZHVjZXMgdGhlIGZpeCBmb3IgYnVnICM1OTMzOTEuIEl0IGFsc28gYXBwbGllcyBpdCBpbgoJICBnc3RfcnRwX3Nlc3Npb25fc3luY19ydGNwKCkgd2hpY2ggaGFzIHZlcnkgc2ltaWxhciBjb2RlIHRvCgkgIGdzdF9ydHBfc2Vzc2lvbl9zZW5kX3J0Y3AoKS4KCjIwMDktMDktMDEgMTI6NDE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBqaXR0ZXJidWZmZXI6IG1ha2Ugc3VyZSB0aW1lIGRvZXMgbm90IGdvIGJhY2t3YXJkcwoJICBXaGVuIHdlIGNvbnN0cnVjdCBhIHRpbWVzdGFtcCB0aGF0IHdvdWxkIHJlc3VsdCBpbiBhIHRpbWVzdGFtcCB0aGF0IGlzIGVhcmxpZXIKCSAgdGhhbiB3aGVuIHRoZSBwYWNrZXQgd2FzIHJlY2VpdmVkLCByZXNldCB0aGUgc2tldyBjYWxjdWxhdGlvbiBhcyB0aGlzIGlzCgkgIHByb2JhYmx5IGEgc2lnbiB0aGF0IHRoZSBzZW5kZXIgcmVzdGFydGVkIG9yIHBhdXNlZC4KCSAgRml4ZXMgIzU5MzM1NAoKMjAwOS0wOS0wMSAxMTozMjo0MSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cG1hbmFnZXI6IFNldCBjYXBzIGluIGdzdF9ydHBfc2Vzc2lvbl9zZW5kX3J0Y3AoKSBjb3JyZWN0bHkgYWdhaW4KCSAgVGhlIHRlc3QgZm9yIHdoZW4gdG8gc2V0IGFuIFJUQ1AgY2FwcyBvbiB0aGUgb3V0cHV0IHBhZCBpbgoJICBnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydGNwKCkgYWNjaWRlbnRhbGx5IGdvdCBpbnZlcnRlZCBpbiB0aGUgbGFzdCBjb21taXQuCgoyMDA5LTA5LTAxIDEwOjI2OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogQWRkIHN1cHBvcnQgZm9yIFFDRUxQIGF1ZGlvCgkgIEZpeGVzIGJ1ZyAjNTkzNzU3LgoKMjAwOS0wOC0zMSAxODoxMDoxMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdG9wLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkqIGdzdC9lZmZlY3R2L2dzdHNoYWdhZGVsaWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJICBlZmZlY3R2OiBGaXggY29tcGlsYXRpb24gd2l0aCBnY2MgMwoJICBSZWNlbnQgY2hhbmdlcyBpbiBnc3QtcGx1Z2lucy1nb29kL2dzdC9lZmZlY3R2IHByZXZlbnRzIGl0IGZyb20gYmVpbmcgY29tcGlsZWQKCSAgd2l0aCBnY2MgMy4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgbmV3IGNvZGUgdXNlcyBwcmVwcm9jZXNzb3IgY29uZGl0aW9uYWxzCgkgIHdpdGhpbiBhIG1hY3JvIGNhbGwgd2hpY2ggZG9lcyBub3Qgd29yayB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIGdjYy4KCSAgRml4ZXMgYnVnICM1OTM2ODguCgoyMDA5LTA4LTMxIDE2OjIwOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBzbWFsbCBjbGVhbi11cHMgaW4gLXNlY3Rpb25zLnR4dAoJICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciB3YXJwdHY7IHRoZXJlIGlzIG5vIHRhZ2xpYm11eCBlbGVtZW50LgoKMjAwOS0wOC0yNyAxNTo0Njo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJICBydHBtcDRnZGVwYXk6IGNvbnNpZGVyIChvcHRpb25hbCkgYXV4aWxpYXJ5IGRhdGEgd2hlbiBwYXJzaW5nCgoyMDA5LTA4LTI3IDE1OjQ2OjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5Lmg6CgkgIHJ0cG1wNGdkZXBheTogaGFuZGxlIGJyb2tlbiBBVS1JbmRleCBpbiBub24taW50ZXJsZWF2ZWQgc3RyZWFtcwoJICBJbiBjYXNlIG9mIG5vbi1pbnRlcmxlYXZlZCAoPSBzZXF1ZW50aWFsbHkgcGF5bG9hZGVkKSBzdHJlYW1zLAoJICB0aGUgQVUtSW5kZXggc2VydmVzIGxpdHRsZSBwdXJwb3NlICh0aGF0IGlzIG5vdCBhbHJlYWR5IGNvdmVyZWQgYnkKCSAgUlRQIGZpZWxkcykuICAoQnJva2VuKSBQYXlsb2FkZXJzIG1pZ2h0IGNvbnNpZGVyIHRoaXMgZmllbGQgdGhlbgoJICB0byBiZSBkaXNyZWdhcmRlZCBhbmQgaGF2ZSBub24gc3BlYyBjb21wbGlhbnQgdmFsdWVzLCBlLmcuIGVhY2gKCSAgUlRQIHBhY2tldCBoYXZpbmcgQVUtSW5kZXggMiAocmF0aGVyIHRoYW4gMCkuICBBcyBzdWNoLCBlbnN1cmUvZm9yY2UKCSAgc2ltcGxlIHNlcXVlbnRpYWwgc2VuZGluZyBvZiBub24taW50ZXJsZWF2ZWQgc3RyZWFtcy4KCjIwMDktMDgtMTggMTc6MTc6MjggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhbHNvIGV4dHJhY3QgZnR5cCBpbmZvIGluIHB1c2ggbW9kZQoKMjAwOS0wOC0xMyAxNjoxMTo1OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgcXRkZW11eDogY29uc2lkZXIgM2dwcCBzdHlsZSB0YWcgcGFyc2luZyBpbiBzb21lIG1vcmUgY2FzZXMKCSAgM0dQUCBzcGVjcyBkZWZpbmUgYSBudW1iZXIgb2YgdGFncyBhbG9uZyB3aXRoIHByZWNpc2UgbGF5b3V0LiBXaGlsZSB0aGVzZQoJICBhcmUgbm9ybWFsbHkgZXhwZWN0ZWQgdG8gYmUgZm91bmQgaW4gYSBjb250YWluZXIgd2hvc2UgbWFqb3IgYnJhbmQgaXMgYQoJICAzR1BQIGJyYW5kLCB0aGlzIG1heSBhbHNvIGhhcHBlbiB3aGVuIGEgM0dQUCBicmFuZCBpcyBvbmx5IG1lbnRpb25lZCBhcyBhCgkgIGNvbXBhdGlibGUgYnJhbmQuICBBcHBseSBzb21lIGNoZWNrcywgaGV1cmlzdGljIGFuZCBmYWxsYmFja3MgdG8gZXh0cmFjdAoJICBzdWNoIHRhZ3MgYXMgd2VsbC4KCjIwMDktMDgtMTEgMTM6NTY6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiByZWZsb3cgZXhpdCwgYW5kIGZpeCBzb21lIGxlYWtzCgoyMDA5LTA4LTExIDEzOjU0OjU2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB3YXZwYXJzZTogcHVzaCBtb2RlOyBhZGQgcGFkIGlmIG5lZWRlZCBzbyBkb3duc3RyZWFtIGdldHMgRU9TCgoyMDA5LTA4LTEwIDE2OjE5OjAzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuaDoKCSAgd2F2cGFyc2U6IHB1c2ggbW9kZTsgZml4L2ltcHJvdmUgY2h1bmsgaGFuZGxpbmcKCSAgSGFuZGxlIGxhcmdlLCBpbnZhbGlkIG9yIG90aGVyd2lzZSB1bnVzdWFsIGNodW5rIHNpemVzLgoJICBWZXJpZnkgc29tZSBjaHVuayBzaXplcyB0byBiZSBhdCBsZWFzdCB0aGUgc2l6ZSB0aGV5IGFyZQoJICBleHBlY3RlZCB0byBiZSBhbmQgcm91bmQgdXAgc29tZSBzaXplcyB0byBldmVuIG51bWJlciBmb3IKCSAgZS5nLiBvZmZzZXQgYWRtaW5pc3RyYXRpb24sIHdoaWNoIG11c3QgYWxzbyBiZSBwcm9wZXJseQoJICB0cmFja2VkIGluIHB1c2ggbW9kZS4KCjIwMDktMDgtMDggMjE6NTQ6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIGF2aWRlbXV4OiBwdXNoIG1vZGU7IGNhdGVyIGZvciB1bnVzdWFsIGNodW5rIHNpemVzCgoyMDA5LTA4LTMxIDE2OjM0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiB1c2UgcHJvcGVyIGxvY2tpbmcgZm9yIHBhZHMgYW5kIGNhcHMKCSAgVXNlIHRoZSBzZXNpb24gbG9jayBhbmQgc2hvdGRvd24gdmFyaWFibGUgdG8gcHJvdGVjdCBhbmQgcmVmIHRoZSBwYWRzIHdlIGFyZQoJICBnb2luZyB0byBwdXNoIG9uLgoJICBmaXhlcyAjNTYxODI1CgoyMDA5LTA4LTMxIDE2OjMzOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0zMSAxMzozODowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGNsZWFuIHVwIGFkYXB0ZXIgcHJvcGVybHkKCSAgUmVmbG93IGNvZGUgc28gd2UgZG9uJ3QgdHJ5IHRvIGNsZWFyIG9yIHJlLXVzZSBhbiBhbHJlYWR5LWZyZWVkIGFkYXB0ZXIuCgoyMDA5LTA4LTMxIDEzOjA3OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIGZsYWN0YWcsIHdhdnBhcnNlOiBHc3RBZGFwdGVyIGlzIG5vdCBhIEdzdE9iamVjdAoKMjAwOS0wOC0zMSAxMjoyODo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVpbnRlcmxhY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSAgZG9jczogdXBkYXRlIHBsdWdpbiBkb2NzIHRvIGdpdCB2ZXJzaW9uCgoyMDA5LTA4LTMxIDExOjMyOjM5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkgIGZsdmRlbXV4OiBGaXggdGVzdHMgd2FybmluZyBmcm9tIHNldHRpbmcgYSBOVUxMIGluZGV4CgkgIFNldHRpbmcgYSBudWxsIGluZGV4IGluIHRoZSB0ZXN0cyB3YXMgY2F1c2luZyB3YXJuaW5ncyBieSB1bnJlZmZpbmcKCSAgTlVMTCBwb2ludGVycy4gVGhpcyBpcyBhIGJ1ZyBleHBvc2VkIGJ5IGEgcmVjZW50IGNoYW5nZSBpbiBjb3JlLCBpdAoJICBzZWVtcy4KCjIwMDktMDgtMzEgMTM6MDI6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBhZGQgc2xvcGUgZXN0aW1hdGlvbiBjb2RlIGFuZCBkZWJ1ZwoJICBBZGQgc29tZSBjb2RlIHRvIG1lYXN1cmUgdGhlIHNlbmRlciBzcGVlZCB2cyB0aGUgcmVjZWl2ZXIgc3BlZWQuIFRoaXMgY2FuIGJlCgkgIHVzZWQgdG8gZGV0ZWN0IGJ1cnN0cy4KCjIwMDktMDgtMzEgMTI6NTc6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiByZXNldCBza2V3IHdoZW4gdGltZXN0YW1wcyBjaGFuZ2UKCSAgUmVmYWN0b3IgdGhlIGppdHRlcmJ1ZmZlciByZXN5bmMgY29kZS4KCSAgUmVzZXQgdGhlIHNrZXcgY29ycmVjdGlvbiB3aGVuIHdlIGRldGVjdCBhIGJpZyB0aW1lc3RhbXAgZGlzY29udC4KCSAgU2VlICM1OTMzNTQKCjIwMDktMDgtMzEgMTI6NDc6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgaml0dGVyYnVmZmVyOiBtYWtlIHN1cmUgdGltZSBuZXZlciBnb2VzIGludmFsaWQKCSAgU2luY2UgdGhlIHNrZXcgY2FuIGJlIG5lZ2F0aXZlLCB3ZSBtaWdodCBlbmQgdXAgd2l0aCBpbnZhbGlkIHRpbWVzdGFtcHMuIENoZWNrCgkgIGZvciBuZWdhdGl2ZSByZXN1bHRzIGFuZCBjbGFtcCB0byAwLgoJICBTZWUgIzU5MzM1NAoKMjAwOS0wOC0zMSAxMjoxNjowMSArMDIwMCAgSmFya2tvIFBhbHZpYWluZW4gPGphcmtrby5wYWx2aWFpbmVuIGF0IHNlc2NhLmNvbT4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSAgdWRwc2luazogQWRkIHR0bCBtdWx0aWNhc3QgcHJvcGVydHkKCSAgQWRkIGEgbmV3IHR0bC1tYyBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBUVEwgb24gbXVsdGljYXN0IGFkZHJlc3Nlcy4KCSAgRml4ZXMgIzU4ODI0NQoKMjAwOS0wOC0zMSAxMjoxMzowNyArMDIwMCAgSmFya2tvIFBhbHZpYWluZW4gPGphcmtrby5wYWx2aWFpbmVuIGF0IHNlc2NhLmNvbT4KCgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICB1ZHA6IHNwbGl0IG91dCBUVEwgYW5kIGxvb3Agb3B0aW9ucwoJICBTcGxpdCBzZXR0aW5nIHRoZSBUVEwgYW5kIGxvb3AgcGFyYW1ldGVycyBpbiAyIG1ldGhvZHMgYXMgdGhleSBhcmUgbm90IHJlbGF0ZWQuCgkgIEZpeCBzZXR0aW5nIHRoZSBUVEwgY29ycmVjdGx5IGZvciBtdWx0aWNhc3Qgc3RyZWFtcy4KCSAgU2VlICM1ODgyNDUKCjIwMDktMDgtMjcgMTI6MzY6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkgIHJ0cDogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0xNCAxMzo0NToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgdmlkZW9ib3g6IENvcnJlY3RseSBhZGQgdG8gdGhlIGRvY3MKCjIwMDktMDgtMTQgMTM6NDA6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94Lmg6CgkgIHZpZGVvYm94OiBTcGxpdCBkZWNsYXJhdGlvbnMgaW50byBhIGhlYWRlciBmaWxlIGFuZCBhZGQgYXV0b2Nyb3Agc3R1ZmYgdG8gdGhlIGRvY3MKCjIwMDktMDgtMTQgMTM6MjY6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVvYm94OiBSZWNvbmZpZ3VyZSBiYXNldHJhbnNmb3JtIGlmIHNvbWV0aGluZyBjaGFuZ2VzIGFnYWluCgkgIEZvciB0aGlzIGludmVudCBhIG5ldyBsb2NrIGFuZCBkb24ndCBhYnVzZSB0aGUgYmFzZXRyYW5zZm9ybSBsb2NrLAoJICBvdGhlcndpc2Ugd2UnbGwgZW5kIHVwIGluIGRlYWRsb2Nrcy4KCjIwMDktMDgtMTQgMTM6MTU6NTcgKzAyMDAgIFN0ZXBoZW4gSnVuZ2VscyA8c3RlcGhlbkBqdW5nZWxzLm5ldD4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogQWRkIHN1cHBvcnQgZm9yIGF1dG9jcm9wcGluZyBhY2NvcmRpbmcgdG8gdGhlIGNhcHMKCSAgRml4ZXMgYnVnICM1ODIyMzguCgoyMDA5LTA4LTMwIDIxOjU3OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogTWFrZSBzdXJlIHRoYXQgdXNlZCBjYXBzIGFyZSBub3QgZnJlZWQgYWxyZWFkeQoJICBGaXhlcyBidWcgIzU5MzM5MS4KCjIwMDktMDgtMjYgMTc6MDI6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuYzoKCSAgcnRwOiBVc2UgbmV3IGdzdF9pdGVyYXRvcl9uZXdfc2luZ2xlKCkgZm9yIHRoZSBpbnRlcm5hbCBsaW5rZWQgcGFkcyBpdGVyYXRpb24KCjIwMDktMDgtMTkgMTY6NTc6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBVc2UgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0IGludGVybmFsIGxpbmtzCgoyMDA5LTA4LTE5IDE2OjQ4OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IFVzZSBpdGVyYXRlIGludGVybmFsIGxpbmtzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBnZXQgaW50ZXJuYWwgbGlua3MKCjIwMDktMDgtMTkgMTY6Mzc6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgIHJ0cHNzcmNkZW11eDogVXNlIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldCBpbnRlcm5hbCBsaW5rcwoKMjAwOS0wOC0zMCAyMzoyNzowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDgtMzAgMjM6MjY6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGhhY2tpbmcgLT4gMC4xMC4xNi4xCgo9PT0gcmVsZWFzZSAwLjEwLjE2ID09PQoKMjAwOS0wOC0yOSAxMjowNTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL2x2LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFJlbGVhc2UgMC4xMC4xNgoKMjAwOS0wOC0yNiAwMDo1ODo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuMTUuNSBwcmUtcmVsZWFzZQoKMjAwOS0wOC0yNSAxNjo1MzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBkb24ndCB1c2UgcmVsYXRpdmUgc2Vla3MKCSAgRG9uJ3QgdXNlIHJlbGF0aXZlIHNlZWtzLCBpdCdzIHRvbyBoYXJkIHRvIHRyYWNrIHdoZXJlIHdlIGFyZSBhZnRlciBhIGZsdXNoCgkgIGV0Yy4KCSAgZml4ZXMgIzU5MzAxNQoKMjAwOS0wOC0yNCAxNzo1MDoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL0xJTkdVQVM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbHYucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4xNS40IHByZS1yZWxlYXNlCgoyMDA5LTA4LTI0IDE2OjIyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBkb24ndCBkaXNjYXJkIHRoZSByZXN1bHQgb2YgX3NldF9jYXBzKCkKCSAgVXNlIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgYXNzdW1pbmcgc3VjY2Vzcy4KCSAgU2VlICM1OTA2NzgKCjIwMDktMDgtMjEgMTE6NDQ6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIHF0ZGVtdXg6IGFkZCBzdXBwb3J0IGZvciBhZ3NtCgkgIEZpeGVzICM1OTI1MzAKCjIwMDktMDgtMTggMTc6MTY6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggcXQgc3R5bGUgc3RyaW5nIHRhZyBleHRyYWN0aW9uCgkgIFFUIHN0eWxlIHRhZ3MgYXJlIHRlc3RlZCBvbiBzdGFydGluZyB3aXRoIChDKSBzeW1ib2wgdXNpbmcgPj4sCgkgIGFuZCAodW5zaWduZWQpIGludCAobWF5KSBoYXZlIGRpZmZlcmVudCA+PiBiZWhhdmlvdXIuCgkgIEZpeGVzICM1OTIyMzIuCgoyMDA5LTA4LTE3IDE1OjQ4OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL3Ntb2tlY29kZWMuYzoKCSAgc21va2VlbmM6IGRvbid0IGNyYXNoIHdoZW4gY29tcGlsZWQgYWdhaW5zdCBsaWJqcGVnNwoJICBTZXQgcGFyYW1ldGVycyBzbyB0aGF0IHdlIGRvbid0IGNyYXNoIHdpdGggbGlianBlZzcuIEJhc2VkIG9uCgkgIFN0ZWZhbiBLb3N0J3MgZml4IGZvciBqcGVnZW5jLiBGaXhlcyAjNTkxOTUxLgoKMjAwOS0wOC0xNCAyMDoxODowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjE1LjMgcHJlLXJlbGVhc2UKCjIwMDktMDgtMTQgMTM6NDU6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwYmluLmM6CgkgIGNoZWNrczogYWRkIHRlc3QgZm9yIGxlYWsgdG8gcnRwYmluIHVuaXQgdGVzdAoJICBTZWUgIzU5MTQ3Ni4KCjIwMDktMDgtMTEgMTQ6NDc6MTIgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IEZpeCByZWZlcmVuY2UgbGVhawoJICBGaXhlcyAjNTkxNDc2LgoKMjAwOS0wOC0xNCAxMzozNDo1MyArMDEwMCAgWmFoZWVyIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGV4dC9kdi9nc3RkdmRlYy5jOgoJICBkdmRlYzogc2V0IGJvdHRvbSBmaWVsZCBmaXJzdCBvbiBQQUwgaW50ZXJsYWNlZCBjb250ZW50LCBub3QgdG9wIGZpZWxkIGZpcnN0CgkgIERWIGludGVybGFjZWQgY29udGVudCBpcyBhbHdheXMgYm90dG9tIGZpZWxkIGZpcnN0LiBGaXhlcyAjNTkxNzEyLgoKMjAwOS0wOC0xNCAxMjo0NDowNiArMDEwMCAgSGFucyBkZSBHb2VkZSA8andyZGVnb2VkZUBmZWRvcmFwcm9qZWN0Lm9yZz4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogZml4ICdoYW5nJyB3aXRoIHNvbWUgY2FtZXJhcyBjYXVzZWQgYnkgYmFkIHRpbWVzdGFtcGluZyBpZiBubyBmcmFtZXJhdGUgaXMgYXZhaWxhYmxlCgkgIEZvciBjYW1lcmFzL2RyaXZlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGUuZy4gVklESU9DX0dfUEFSTSB3ZSdkIGVuZCB1cCB3aXRob3V0CgkgIGEgZnJhbWVyYXRlIGFuZCB3b3VsZCB0cnkgdG8gZGl2aWRlIGJ5IDAsIGNhdXNpbmcgcnVuLXRpbWUgd2FybmluZ3MgYW5kIGFsbAoJICBmcmFtZXMgdG8gYmUgdGltZXN0YW1wZWQgd2l0aCAwLCB3aGljaCBtYWtlcyBzaW5rcyB0aGF0IHN5bmMgYWdhaW5zdCB0aGUgY2xvY2sKCSAgZHJvcCB0aGVtLCBjYXVzaW5nICdoYW5ncycgKG9ic2VydmVkIHdpdGggdGhlIHB3YyBkcml2ZXIgYW5kIGEgTG9naXRlY2ggUXVpY2tDYW0KCSAgUHJvIDQwMDApLiBTbyBpZiB3ZSBkbyBub3Qga25vdyB0aGUgZnJhbWVyYXRlLCBzaW1wbHkgZG9uJ3QgYWRqdXN0IHRoZQoJICB0aW1lc3RhbXBzLiBGaXhlcyAjNTkxNDUxLgoKMjAwOS0wOC0xNCAxMDoxMToyNSArMDIwMCAgRmlsaXBwbyBBcmdpb2xhcyA8ZmlsaXBwby5hcmdpb2xhc0BnbWFpbC5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMnNyYzogY2xlYXIgZm9ybWF0IGxpc3QgaW4gUkVBRFktPk5VTEwKCSAgQ2xlYXIgZm9ybWF0IGxpc3QgYW5kIHByb2JlZCBjYXBzIHdoZW4gZ29pbmcgdG8gTlVMTCBzbyBpZiBhIG5ldyBkZXZpY2UKCSAgaXMgc2V0IHdlJ2xsIHByb2JlIHRoZSBmb3JtYXRzIGFnYWluIGluc3RlYWQgb2YgdXNpbmcgcHJldmlvdXNseQoJICBkZXRlY3RlZCBvbmVzLiBGaXhlcyBidWcgIzU5MTc0Ny4KCjIwMDktMDgtMTEgMTc6MzA6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9MSU5HVUFTOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4xNS4yIHByZS1yZWxlYXNlCgoyMDA5LTA4LTExIDE1OjI1OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1BSU5UQUlORVJTOgoJICBBZGQgbXlzZWxmIHRvIE1BSU5UQUlORVJTIGZpbGUgYW5kIHVwZGF0ZSBXaW0ncyBlLW1haWwuCgoyMDA5LTA4LTExIDAzOjA4OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJICB2NGwyOiBmaXggbWFrZSBkaXN0Y2hlY2sgYnkgZGlzdGluZyBzb21lIG1vcmUgaGVhZGVycwoKMjAwOS0wOC0xMSAwMjo0MjoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgIGRvY3M6IHVwZGF0ZQoKMjAwOS0wOC0xMSAwMjozMTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBNb3ZlIHJ0cG1hbmFnZXIgZnJvbSAtYmFkIHRvIC1nb29kLgoJICBIb29rIHVwIGJ1aWxkIGluZnJhc3RydWN0dXJlIChhdXRvdG9vbHMsIGRvY3MsIHVuaXQgdGVzdCkuCgoyMDA5LTA4LTA2IDE5OjI2OjIxICswMjAwICByaWMgPGNzeG5qdSBhdCBzb2dvdS5jb20+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBhdm9pZCBidWZmZXIgbGVhayBvbiBiYWQgc2VxbnVtCgkgIEZpeGVzICM1OTA3OTcKCjIwMDktMDctMjggMTg6MTg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBhbGxvdyBmb3IgTlVMTCBjYXBzIG9uIGJ1ZmZlcnMKCSAgQWRkIHRoZSBOVUxMIGNhcHMgY2hlY2sgd2hlcmUgaXQgbWF0dGVycyBhbmQgYWxzbyBjb3ZlciBhbm90aGVyIGNhc2Ugb2YKCSAgcG90ZW50aWFsIE5VTEwgY2Fwcy4KCSAgRml4ZXMgIzU5MDAzMAoKMjAwOS0wNy0yOCAxMTo1OTo1NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIHJ0cHNvdXJjZTogSW5jb21pbmcgYnVmZmVycyBkbyBub3QgYWx3YXlzIGhhdmUgY2FwcwoKMjAwOS0wNy0yNyAxNTo0NjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogYXZvaWQgZG9pbmcgbGlwLXN5bmMgaW4gQllFCgkgIFdoZW4gd2UgZ2V0IGEgQllFIHBhY2tldCwgZG9uJ3QgZG8gbGlwLXN5bmMgd2l0aCB0aGUgU1IgaW5zaWRlIGJlY2F1c2Ugc29tZQoJICBzZW5kZXJzIGhhdmUgdHJvdWJsZSBjb25zdHJ1Y3RpbmcgdmFsaWQgU1IgcGFja2V0cyBhZnRlciBCWUUuCgoyMDA5LTA3LTI3IDEzOjE3OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBiaW46IGRvbid0IGRvIGxpcC1zeW5jIGFmdGVyIGEgQllFCgkgIEFmdGVyIGEgQllFIHBhY2tldCBmcm9tIGEgc291cmNlLCBzdG9wIGZvcndhcmRpbmcgdGhlIFNSIHBhY2tldHMgZm9yIGxpcC1zeW5jCgkgIHRvIHJ0cGJpbi4gU29tZSBzZW5kZXJzIGRvbid0IHVwZGF0ZSB0aGVpciBTUiBwYWNrZXRzIGNvcnJlY3RseSBhZnRlciBzZW5kaW5nIGEKCSAgQllFIGFuZCB0aGVuIHdlIGJyZWFrIGxpcC1zeW5jLiBXZSBwcmVmZXIgdG8gbGV0IHRoZSBqaXR0ZXJidWZmZXJzIGRyYWluIHdpdGgKCSAgdGhlIGN1cnJlbnQgbGlwLXN5bmMgaW5zdGVhZC4KCjIwMDktMDctMjcgMTI6NDM6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cGJpbjogb25seSByZWNvbnNpZGVyIG9uY2UgZm9yIEJZRQoJICBXaGVuIGl0ZXJhdGluZyB0aGUgc291cmNlcyBvZiBhIEJZRSBwYWNrZXQsIGRvbid0IHNpZ25hbCBhIHJlY29uc2lkZXJhdGlvbiBmb3IKCSAgZWFjaCBvZiB0aGVtIGJ1dCBzaWduYWwgYWZ0ZXIgd2UgaGFuZGxlZCBhbGwgc291cmNlcy4KCjIwMDktMDctMjEgMTU6MzM6NDEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzoKCSAgcnRwc2Vzc2lvbjogRnJlZSBjb25mbGljdGluZyBhZGRyZXNzZXMgb24gZmluYWxpemUKCjIwMDktMDctMDEgMTI6NTU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwYmluOiB1c2UgbmV3IG1ldGhvZCBmb3IgbmV0YWRkcmVzcyB0byBzdHJpbmcKCjIwMDktMDYtMjkgMTg6NDg6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwYmluLmM6CgkgIHJ0cGJpbjogZG8gYmV0dGVyIGNsZWFudXAgb2YgdGhlIHNyYyBnaG9zdHBhZHMKCSAgQ29ubmVjdCB0byB0aGUgcGFkLXJlbW92ZWQgc2lnbmFsIG9mIHRoZSBwdGRlbXV4IGVsZW1lbnRzIHNvIHRoYXQgd2UgcmVtb3ZlIHRoZQoJICBnaG9zdHBhZHMgZm9yIHRoZW0uIEZpeGVzIGNsZWFudXAgd2hlbiBnb2luZyB0byBOVUxMIGFzIHdlbGwgYXMgd2hlbiByZWxlYXNpbmcKCSAgdGhlIHNpbmtwYWRzLgoJICBGaXhlcyAjNTYxNzUyCgoyMDA5LTA1LTI4IDE5OjA4OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBhZGQgYSBjb21tZW50CgoyMDA5LTA2LTI5IDE2OjM3OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cGJpbjogYWRkIFNERVMgcHJvcGVydHkKCSAgUmVtb3ZlIGFsbCBpbmRpdmlkdWFsIFNERVMgcHJvcGVydGllcyBhbmQgdXNlIG9uZSBzZGVzIHByb3BlcnR5IHRoYXQgdGFrZXMgYQoJICBHc3RTdHJ1Y3R1cmUgaW5zdGVhZC4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGFkZCBtb3JlIGN1c3RvbSBzdHVmZiB0byB0aGUgU0RFUwoJICBtZXNzYWdlcyBsYXRlci4KCjIwMDktMDYtMjkgMTY6MjE6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBydHBiaW46IGFkZCBTREVTIHByb3BlcnR5IHRoYXQgdGFrZXMgR3N0U3RydWN0dXJlCgkgIFJlbW92ZSBhbGwgaW5kaXZpZHVhbCBTREVTIHByb3BlcnRpZXMgYW5kIHVzZSBvbmUgc2RlcyBwcm9wZXJ0eSB0aGF0IHRha2VzIGEKCSAgR3N0U3RydWN0dXJlIGluc3RlYWQuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBhZGQgbW9yZSBjdXN0b20gc3R1ZmYgdG8gdGhlIFNERVMKCSAgbWVzc2FnZXMgbGF0ZXIuCgoyMDA5LTA2LTAyIDE3OjQ2OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuaDoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwbWFuYWdlci5jOgoJICBydHBiaW46IHJlbW92ZWQgb2xkIGdzdHJ0cGNsaWVudAoKMjAwOS0wNi0xOSAxOTowOToxOSArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBiaW5fYnVmZmVyX2xpc3QuYzoKCSAgcnRwYmluOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyLWxpc3QKCSAgQWRkIHN1cHBvcnQgZm9yIHNlbmRpbmcgYnVmZmVyLWxpc3RzLgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0ZXN0aW5nIHRoYXQgdGhlIGJ1ZmZlci1saXN0IHBhc3NlZCB0aHJvdWdoIHJ0cGJpbi4KCSAgZml4ZXMgIzU4NTgzOQoKMjAwOS0wNi0xOSAxNjoyMToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgTWFrZSBidWlsZCB3aXRob3V0IHdhcm5pbmdzIHdpdGggZGVidWdnaW5nIGRpc2FibGVkCgoyMDA5LTA1LTI4IDE3OjM3OjQ0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBUcmFuc2Zvcm0gdGhlIHJpZ2h0IHNlc3Npb24gc2RlcyBtZXNzYWdlCgkgIEZpeGVzICM1ODQxNjUKCjIwMDktMDUtMjggMTc6MzM6MTAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICBBZGQgc3NyYyB0byBhcHBsaWNhdGlvbi94LXJ0cC1zb3VyY2Utc2RlcyBzdHJ1Y3R1cmUKCjIwMDktMDUtMjcgMTE6MDM6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291Y2U6IHRoZSBuZXR3b3JrIGFkZHJlc3MgaXMgaW4gbmV0d29yayBvcmRlcgoJICBCcmluZyB0aGUgbmV0d29yayBhZGRyZXNzIGluIG5ldG93a3IgYnl0ZSBvcmRlciB0byB0aGUgaG9zdCBvcmRlci4KCjIwMDktMDUtMjYgMTU6NDA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBieXRlc3dhcCB0aGUgcG9ydCBmcm9tIEdzdE5ldEFkZHJlc3MKCSAgU2luY2UgdGhlIHBvcnQgaW4gR3N0TmV0QWRkcmVzcyBpcyBpbiBuZXR3b3JrIG9yZGVyIHdlIG1pZ2h0IG5lZWQgdG8gYnl0ZXN3YXAgaXQKCSAgYmVmb3JlIGFkZGluZyBpdCB0byB0aGUgc291cmNlIHN0YXRpc3RpY3MuCgoyMDA5LTA1LTI1IDEzOjQ2OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogcmVtb3ZlIHB0ZGVtdXggZ2hvc3RwYWRzCgoyMDA5LTA1LTI1IDEzOjMzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwYmluLmM6CgkgIHRlc3RzOiBhZGQgcmVjZWl2ZSBydHBiaW4gdW5pdCB0ZXN0CgoyMDA5LTA1LTIyIDE2OjQxOjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogYWRkIHRvIG5ldyBzaWduYWwgdG8gcmVtb3ZlIFNTUkMgcGFkcwoKMjAwOS0wNS0yMiAxNjozNToyMCArMDIwMCAgQWxpIFNhYmlsIDxhbGkuc2FiaWwgYXQgZ21haWwuY29tPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLW1hcnNoYWwubGlzdDoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5oOgoJICBzc3JjZGVtdXg6IGVtaXQgc2lnbmFsIHdoZW4gcGFkcyBhcmUgcmVtb3ZlZAoJICBBZGQgYWN0aW9uIHNpZ25hbCB0byBjbGVhciBhbiBTU1JDIGluIHRoZSBzc3JjIGRlbXV4ZXIuCgkgIEFkZCBzaWduYWwgdG8gbm90aWZ5IG9mIHJlbW92ZWQgc3NyYy4KCSAgU2VlICM1NTQ4MzkKCjIwMDktMDUtMjIgMTU6NDU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiB1c2Ugb3VyIGdob3N0cGFkcyBpbnN0ZWFkIG9mIGl0cyB0YXJnZXQKCSAgU2luY2Ugd2Uga2VlcCBhIHJlZmVyZW5jZSB0byBvdXIgZ2hvc3RwYWRzLCB3ZSBjYW4gdXNlIHRoZW0gdG8gdHJhY2sgc2Vzc2lvbnMuCgkgIFRoaXMgYXZvaWQgdXMgaGF2aW5nIHRvIG1lc3Mgd2l0aCB0aGUgdGFyZ2V0IG9mIHRoZSBnaG9zdHBhZC4KCjIwMDktMDUtMjIgMTU6Mzc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBiaW4uYzoKCSAgdGVzdHM6IG1vcmUgcnRwYmluIGNoZWNrcwoKMjAwOS0wNS0yMiAxNTozNjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IGRvbid0IHdhcm4gd2hlbiBnZXR0aW5nIHJlcXVlc3QgcGFkcyB0d2ljZQoJICBBbGxvdyBnZXR0aW5nIHRoZSByZXF1ZXN0IHBhZHMgbXVsdGlwbGUgdGltZXMsIGp1c3QgcmV0dXJuIHRoZSBwcmV2aW91c2x5CgkgIGNyZWF0ZWQgcGFkcy4KCjIwMDktMDUtMjIgMTM6NDc6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzoKCSAgcnRwc291cmNlOiBhZGQgUlRQIGFuZCBSVENQIHNvdXJjZSBhZGRyZXNzCgkgIEFkZCB0aGUgUlRQIGFuZCBSVENQIHNlbmRlciBhZGRyZXNzZXMgaW4gdGhlIHN0YXRzIHN0cnVjdHVyZS4KCjIwMDktMDUtMjIgMTM6NDU6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IHJldXNlIHNvdXJjZSBjb2RlIGZvciBTREVTCgkgIFJldXNlIHRoZSBSVFBTb3VyY2Ugb2JqZWN0IHByb3BlcnR5IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgY29kZS4KCjIwMDktMDUtMjIgMTM6NDQ6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBiaW4uYzoKCSAgdGVzdHM6IGFkZCBtb3JlIHJ0cGJpbiB0ZXN0cwoKMjAwOS0wNS0yMiAxMjoyMzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJpbi5jOgoJICB0ZXN0czogYWRkIHJ0cGJpbiB1bml0IHRlc3QKCSAgQWRkIHRoZSBiZWdpbm5pbmdzIG9mIGFuIHJ0cGJpbiB1bml0IHRlc3QKCSAgQWRkIHNvbWUgbW9yZSBzdHVmZiB0byAuZ2l0aWdub3JlCgoyMDA5LTA1LTIyIDEyOjIwOjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogc2V0IHRhcmdldCBzdGF0ZSBvbiBuZXcgZWxlbWVudHMKCSAgU2V0IHRoZSBzdGF0ZSBvbiBuZXdseSBhZGRlZCBlbGVtZW50cyB0byB0aGUgc3RhdGUgb2YgdGhlIHBhcmVudC4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbyBhbmQgZG8gc29tZSBjbGVhbnVwcwoKMjAwOS0wNS0yMiAxMTo1OToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IHVucmVmIHJlcXVlc3RzIHBhZHMgYWZ0ZXIgcmVsZWFzaW5nCgoyMDA5LTA1LTIyIDAxOjQzOjUwICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBJbXBsZW1lbnQgcmVsZWFzaW5nIHRoZSBzdHJlYW1zCgkgIFNlZSAjNTYxNzUyCgoyMDA5LTA1LTIyIDAxOjE2OjExICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBLZWVwIGpiIHNpZ25hbHMgaGFuZGxlcgoJICBLZWVwIHRoZSBzaWduYWwgaGFuZGxlcnMgc28gdGhleSBjYW4gYmUgZGlzY29ubmVjdGVkIGF0IHJlbGVhc2UgdGltZQoJICBTZWUgIzU2MTc1MgoKMjAwOS0wNS0yMiAwMToxMjo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IHVzZSB0aGUgcmlnaHQgbG9jayBmb3IgdGhlIHNlc3Npb25zCgkgIFVzZSB0aGUgcmlnaHQgbG9jayB3aGVuIGl0ZXJhdGluZyB0aGUgc2Vzc2lvbnMuCgoyMDA5LTA1LTIyIDAxOjAzOjU1ICswMjAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgcnRwYmluOiBGcmVlIHNlc3Npb24gaWYgcmVxdWVzdCBwYWRzIGFyZSByZWxlYXNlZAoJICBGcmVlIHRoZSBzZXNzaW9uIHdoZW4gYWxsIHRoZSByZXF1ZXN0IHBhZHMgYXJlIHJlbGVhc2VkLgoJICBEb24ndCBtZXNzIHdpdGggdGhlIHNlc3Npb24gbGlzdCBpbiBmcmVlX3Nlc3Npb24gYXMgaXQgaXMgY2FsbGVkIGZyb20gYSBmb3JlYWNoCgkgIG9uIHRoYXQgbGlzdC4KCSAgU2V0IHRoZSBzdGF0ZSBvZiB0aGUgdXBzdHJlYW0gZWxlbWVudCB0byBOVUxMIGZpcnN0LgoJICBTZWUgIzU2MTc1MgoKMjAwOS0wNS0yMiAwMDo1MTo1MyArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogSW1wbGVtZW50IHJlbGFzaW5nIG9mIHRoZSBydHAgcmVjdiBwYWQKCjIwMDktMDUtMjIgMDA6NDQ6NTEgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IEltcGxlbWVudCByZWxlYXNpbmcgb2YgcnRwIHNlbmQgcGFkcwoKMjAwOS0wNS0yMiAwMDozNDozNiArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIHJ0cGJpbjogSW1wbGVtZW50IHJlbGVhc2Ugb2YgdGhlIHJlY3YgcnRjcCBwYWQKCSAgU2VlICM1NjE3NTIKCjIwMDktMDUtMjIgMDA6MTY6MTkgKzAyMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBydHBiaW46IEltcGxlbWVudCByZWxlYXNpbmcgb2YgcnRjcCBzcmMgcGFkCgkgIFNlZSAjNTYxNzUyCgoyMDA5LTA1LTA1IDE2OjQ4OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgIHJ0cHNzcmNkZW11eDogZHJvcCB1bmV4cGVjdGVkIFJUQ1AgcGFja2V0cwoJICBXZSB1c3VhbGx5IG9ubHkgZ2V0IFNSIHBhY2tldHMgaW4gb3VyIGNoYWluIGZ1bmN0aW9uIGJ1dCBpZiBhbiBpbnZhbGlkIHBhY2tldAoJICBjb250YWlucyB0aGUgU1IgcGFja2V0IGFmdGVyIHRoZSBSUiBwYWNrZXQsIHdlIG11c3Qgbm90IGZhaWwgYnV0IHNpbXBseSBpZ25vcmUKCSAgdGhlIG1hbGZvcm1lZCBwYWNrZXQuCgkgIEZpeGVzICM1ODEzNzUKCjIwMDktMDQtMjcgMTE6MDk6MDggKzAyMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIHJ0cHNvdWNlOiBtYWtlIFdBUk5JTkcgaW50byBMT0cKCSAgU2luY2UgbmVpdGhlciBydHBtYW5hZ2VyIG5vciBhbnkgb2YgdGhlIHBheWxvYWRlcnMgcHJvcGVybHkgaW1wbGVtZW50CgkgIHBhZCBhbGxvY2F0aW9uLCB0aGVyZSBpcyBubyB3YXkgZm9yIHRoZSBydHBtYW5hZ2VyIHRvIGluZm9ybSBkb3duc3RyZWFtIGVsZW1lbnRzCgkgIG9mIHRoZSBuZXcgU1NSQyBpZiB0aGVyZSBpcyBhbiBTU1JDIGNvbGxpc2lvbi4gU28gdGhlIHdhcm5pbmcgaXMgZW1pdHRlZCBhbGwgdGhlCgkgIHRpbWUgYW5kIGl0IGlzIGNvbmZ1c2luZy4KCSAgRml4ZXMgIzU4MDE0NAoKMjAwOS0wNC0yNyAxMTowNjowMSArMDIwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgIHJ0cHNlc3Npb246IG5vdGlmeSB3aGVuIFNTUkMgY2hhbmdlcwoJICBFbWl0IGEgZ19vYmplY3Rfbm90aWZ5IHdoZW4gdGhlIFNTUmMgY2hhbmdlcyBiZWNhdXNlIG9mIGEgY29sbGlzaW9uLgoJICBGaXhlcyAjNTgwMTQ0CgoyMDA5LTA0LTE3IDE2OjE2OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBydHBzZXNzaW9uOiBqb2luIHRoZSBSVENQIHRocmVhZAoJICBBdm9pZCBhIGNhc2Ugd2hlcmUgYSBqb2luYWJsZSB0aHJlYWQgd291bGQgYmUgbGVmdCB1bmpvaW5lZCwgd2hpY2ggbGVha2VkIHRoZQoJICB0aHJlYWQgc3RydWN0dXJlLgoJICBGaXhlcyAjNTc3MzE4LgoKMjAwOS0wNC0xNSAxODoxNDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IHByZXZlbnQgb3ZlcmZsb3cgaW4gRU9TIGVzdGltYXRpb24KCSAgVXNlIGEgZ3VpbnQ2NCBpbnN0ZWFkIG9mIGEgZ3VpbnQgdG8gaG9sZCBhIDY0Yml0IHZhbHVlIHRvIHByZXZlbnQgY29tcGxldGVseQoJICBib2d1ZXMgRU9TIGVzdGltYXRpb24gdmFsdWVzIGR1ZSB0byBvdmVyZmxvd3MuCgoyMDA5LTA0LTE1IDE3OjQ0OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBydHBiaW46IHdlIHNob3VsZCBub3QgcHJvdmlkZSBhIGNsb2NrCgkgIFRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvdmlkZSBhIGNsb2NrLgoKMjAwOS0wNC0xNSAxNzoyODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IG1vcmUgZXN0aW1hdGVkIEVPUyBmaXhlcwoJICBEbyBtb3JlIGFjY3VyYXRlIEVPUyBlc3RpbWF0ZSBhbmQgZ3VhcmQgYWdhaW5zdCBiYWNrd2FyZCB0aW1lc3RhbXBzLgoKMjAwOS0wNC0xNSAxNzoyNTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBqaXR0ZXJidWZmZXI6IHJlbGVhc2UgbG9jayBiZWZvcmUgcHVzaGluZyBFT1MKCSAgTWFrZSBzdXJlIHdlIHJlbGVhc2UgdGhlIGppdHRlcmJ1ZmZlciBsb2NrIGJlZm9yZSB3ZSBzdGFydCBwdXNoaW5nIG91dCBkYXRhCgkgIGJlY2F1c2UgZWxzZSB3ZSBtaWdodCBkZWFkbG9jay4KCjIwMDktMDMtMjcgMTc6NDQ6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuaDoKCSAgcnRwYmluOiBhZGQgb25fbnB0X3N0b3Agc2lnbmFsCgkgIEFkZCB0aGUgb25fbnB0X3N0b3Agc2lnbmFsIHRvIHJ0cGJpbiBhbmQgcnRwaml0dGVyYnVmZmVyIHRvIG5vdGlmeSB0aGUKCSAgYXBwbGljYXRpb24gdGhhdCB0aGUgTlBUIHN0b3AgcG9zaXRpb24gaGFzIGJlZW4gcmVhY2hlZC4KCjIwMDktMDMtMTMgMTU6NTk6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIHJ0cGJpbjogZG9uJ3QgcmV0dXJuIEZBTFNFIG9uIHNlZWsgZXZlbnRzCgkgIFNpbGVudGx5IGlnbm9yZSB0aGUgc2VlayBldmVudCBpbnN0ZWFkIG9mIHJldHVybmluZyBGQUxTRS4KCjIwMDktMDItMjYgMTM6MTA6MjkgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgZ3N0cnRwYmluOiBEb24ndCBmb3J3YXJkIHJldmMgZXZlbnRzIHRvIHNlbmRlcgoJICBEb24ndCBzZW5kIGV2ZW50cyBmcm9tIHRoZSByZWNlaXZlciB0byB0aGUgc2VuZGVyIHNpZGUuCgkgIEZpeGVzICM1NzI5MDAuCgoyMDA5LTAyLTI1IDExOjQ1OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgZG9jczogdmFyaW91cyBkb2MgZml4ZXMKCSAgTm8gc2hvcnQtZGVzYyBhcyB3ZSBoYXZlIHRoZW0gaW4gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgQWxzbyBrZWVwIHRoaW5ncyAoTWFrZWZpbGUuYW0gYW5kIHNlY3Rpb25zLnR4dCkgc29ydGVkLgoJICBSZXdvcmQgYW1iaWdvdXMgcmV0dXJucy4gTm8gdGV4dCBhZnRlciBzaW5jZSBwbGVhc2UuCgoyMDA5LTAxLTIzIDEyOjEzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuYzoKCSAgU2VuZCBCWUUgcGFja2V0cyBpbW1lZGlhdGx5IGZvciBzbWFsbCBzZXNzaW9ucwoJICBXaGVuIHRoZSBudW1iZXIgb2YgcGFydGljaXBhbnRzIGlzIGxlc3MgdGhhbiA1MCwgdGhlIFJGQyBhbGxvd3MgZm9yIHNlbmRpbmcgdGhlCgkgIEJZRSBwYWNrZXQgaW1tZWRpYXRseSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSByZWd1bGFyIEJZRSB0aW1lb3V0LgoJICBGaXhlcyAjNTY3ODI4LgoKMjAwOS0wMS0yMiAxMzozMzoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICBVbmxvY2sgdGhlIGppdHRlcmJ1ZmZlciBiZWZvcmUgcHVzaGluZyBvdXQgdGhlIHBhY2tldC1sb3N0IGV2ZW50cy4gTW92ZSBzb21lIGNvZGUgYmVmb3JlIHdlIGRvIHRoZSB1bmxvY2sgdG8gbWFrZSB0aGUgaml0dGVyYnVmZmVyIHN0YXRlIGNvbnNpc3RlbnQgd2hpbGUgd2UgYXJlIHVubG9ja2VkLgoKMjAwOS0wMS0wMiAxNzo0MDowNiArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogV2hlbiBhbiBTU1JDIGlzIGZvdW5kIG9uIHRoZSBjYXBzIG9mIHRoZSBzZW5kZXIgUlRQLCB1c2UgdGhpcyBhcyB0aGUgaW50ZXJuYWwgU1NSQy4gRml4ZXMgIzU2NTkxMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIChnc3RfcnRwX3Nlc3Npb25fc2V0Y2Fwc19zZW5kX3J0cCksIChjcmVhdGVfc2VuZF9ydHBfc2luayk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fc2V0X2ludGVybmFsX3NzcmMpOgoJICBXaGVuIGFuIFNTUkMgaXMgZm91bmQgb24gdGhlIGNhcHMgb2YgdGhlIHNlbmRlciBSVFAsIHVzZSB0aGlzIGFzIHRoZQoJICBpbnRlcm5hbCBTU1JDLiBGaXhlcyAjNTY1OTEwLgoKMjAwOS0wMS0wMiAxNjo1MDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogUmVuYW1lIGEgbWV0aG9kIHRvIGJldHRlciByZWZsZWN0IHdoYXQgaXQgcmVhbGx5IGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgKGdzdF9ydHBfc2Vzc2lvbl9ldmVudF9zZW5kX3J0cF9zaW5rKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9nZXRjYXBzX3NlbmRfcnRwKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChjaGVja19jb2xsaXNpb24pLAoJICAocnRwX3Nlc3Npb25fc2NoZWR1bGVfYnllX2xvY2tlZCksIChydHBfc2Vzc2lvbl9zY2hlZHVsZV9ieWUpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgUmVuYW1lIGEgbWV0aG9kIHRvIGJldHRlciByZWZsZWN0IHdoYXQgaXQgcmVhbGx5IGRvZXMuCgoyMDA4LTEyLTI5IDE1OjQ5OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBVc2UgbWV0aG9kIHRvIGdldCB0aGUgaW50ZXJuYWwgU1NSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAoZ3N0X3J0cF9zZXNzaW9uX2dldGNhcHNfc2VuZF9ydHApOgoJICBVc2UgbWV0aG9kIHRvIGdldCB0aGUgaW50ZXJuYWwgU1NSQy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwKCSAgKHJ0cF9zZXNzaW9uX3NldF9wcm9wZXJ0eSksIChydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpOgoJICBBZGQgcHJvcGVydHkgdG8gY29uZ2l1cmUgdGhlIGludGVybmFsIFNTUkMgb2YgdGhlIHNlc3Npb24uCgkgIEZpeGVzICM1NjU5MTAuCgoyMDA4LTEyLTI5IDE1OjIxOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiBPbmx5IGNoYW5nZSB0aGUgU1NSQyBvZiB0aGUgc2Vzc2lvbiBhbmQgcmVzZXQgdGhlIGludGVybmFsIHNvdXJjZSB3aGVuIHRoZSBTU1JDIGFjdHVhbGx5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX3NldF9pbnRlcm5hbF9zc3JjKToKCSAgT25seSBjaGFuZ2UgdGhlIFNTUkMgb2YgdGhlIHNlc3Npb24gYW5kIHJlc2V0IHRoZSBpbnRlcm5hbCBzb3VyY2Ugd2hlbgoJICB0aGUgU1NSQyBhY3R1YWxseSBjaGFuZ2VkLiBTZWUgIzU2NTkxMC4KCjIwMDgtMTItMjkgMTQ6MjE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuKjogV2hlbiBubyBwYXlsb2FkIHdhcyBzcGVjaWZpZWQgb24gdGhlIGNhcHMgYnV0IHRoZXJlIHdhcyBhIGNsb2NrLXJhdGUsIGFzc3VtZSB0aGUgY2xvY2stcmEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2luaXQpLAoJICAocnRwX3NvdXJjZV91cGRhdGVfY2FwcyksIChnZXRfY2xvY2tfcmF0ZSk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIFdoZW4gbm8gcGF5bG9hZCB3YXMgc3BlY2lmaWVkIG9uIHRoZSBjYXBzIGJ1dCB0aGVyZSB3YXMgYSBjbG9jay1yYXRlLAoJICBhc3N1bWUgdGhlIGNsb2NrLXJhdGUgY29ycmVzcG9uZHMgdG8gdGhlIGZpcnN0IHBheWxvYWQgdHlwZSBmb3VuZCBpbiB0aGUKCSAgUlRQIHBhY2tldHMuIEZpeGVzICM1NjU1MDkuCgoyMDA4LTEyLTIzIDExOjM5OjU5ICswMDAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuKjogS2VlcCB0cmFjayBvZiB0aGUgbGFzdCBvdXRnb2luZyB0aW1lc3RhbXAgYW5kIG9mIHRoZSBsYXN0IHNlbmRlci1zaWRlIHRpbWUuICBUaW1lc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0IGF0IG1pbmQgZG90IGJlPgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiAocnRwX2ppdHRlcl9idWZmZXJfcmVzZXRfc2tldyksCgkgIChjYWxjdWxhdGVfc2tldyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmg6CgkgIEtlZXAgdHJhY2sgb2YgdGhlIGxhc3Qgb3V0Z29pbmcgdGltZXN0YW1wIGFuZCBvZiB0aGUgbGFzdCBzZW5kZXItc2lkZQoJICB0aW1lLiAgVGltZXN0YW1wcyBjYW4gb25seSBnbyBmb3J3YXJkIGlmIHRoZXkgZG8gYXQgdGhlIHNlbmRlcgoJICBzaWRlLCBjYW4gb25seSBnbyBiYWNrIGlmIHRoZXkgZG8gYXQgdGhlIHNlbmRlciBzaWRlLCBhbmQgcmVtYWluIHRoZQoJICBzYW1lIGlmIHRoZXkgcmVtYWluIHRoZSBzYW1lIGF0IHRoZSBzZW5kZXIgc2lkZS4gRml4ZXMgIzU2NTMxOS4KCjIwMDgtMTEtMjYgMTI6NDA6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IE1ha2Ugb2J0YWluX3NvdXJjZSByZXR1cm4gYW4gYWRpdGlvbmFsIHJlZiBzbyB0aGF0IHdlIGRvbid0IGxvc2Ugb3VyIHJlZiB0byBpdCB3aGVuIGEgc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAob2J0YWluX3NvdXJjZSksCgkgIChydHBfc2Vzc2lvbl9jcmVhdGVfc291cmNlKSwgKHJ0cF9zZXNzaW9uX3Byb2Nlc3NfcnRwKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc3IpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19yciksCgkgIChydHBfc2Vzc2lvbl9wcm9jZXNzX3NkZXMpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ieWUpOgoJICBNYWtlIG9idGFpbl9zb3VyY2UgcmV0dXJuIGFuIGFkaXRpb25hbCByZWYgc28gdGhhdCB3ZSBkb24ndCBsb3NlIG91ciByZWYKCSAgdG8gaXQgd2hlbiBhIHNlc3Npb24gY2xlYW51cCBvY2N1cnMgd2hlbiB3ZSBhcmUgZW1pdGluZyBhIHNpZ25hbC4KCSAgRW1pdCB0aGUgb25fbmV3X3NzcmMgc2lnbmFsIGZvciB0aGUgQ1NSQywgbm90IHRoZSBTU1JDLgoJICBGaXhlcyAjNTYyMzE5LgoKMjAwOC0xMS0yNiAxMjowMjoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBSZXNldCB0aGUgc3luYyBwYXJhbWV0ZXJzIHdoZW4gY2xlYXJpbmcgdGhlIHBheWxvYWQgdHlwZSBtYXAgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX3Jlc2V0X3N5bmMpLAoJICAoZ3N0X3J0cF9iaW5fY2xlYXJfcHRfbWFwKToKCSAgUmVzZXQgdGhlIHN5bmMgcGFyYW1ldGVycyB3aGVuIGNsZWFyaW5nIHRoZSBwYXlsb2FkIHR5cGUgbWFwIHRvby4KCSAgRml4ZXMgIzU2MjMxMi4KCjIwMDgtMTEtMjYgMTE6NDQ6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uKjogUmVtb3ZlIGEgbG90IG9mIHBlciBzdHJlYW0gc3RhdGUgdGhhdCBpcyBub3QgbmVlZGVkIGFuZCBwYXNzIG5ldyBpbmZvIGluIHRoZSBtZXRob2QgY2FsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnZXRfY2xpZW50KSwKCSAgKGdzdF9ydHBfYmluX3Jlc2V0X3N5bmMpLCAoZ3N0X3J0cF9iaW5fYXNzb2NpYXRlKSwKCSAgKGdzdF9ydHBfYmluX2hhbmRsZV9zeW5jKSwgKGNyZWF0ZV9zdHJlYW0pLAoJICAoZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCksIChuZXdfc3NyY19wYWRfZm91bmQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBSZW1vdmUgYSBsb3Qgb2YgcGVyIHN0cmVhbSBzdGF0ZSB0aGF0IGlzIG5vdCBuZWVkZWQgYW5kIHBhc3MgbmV3IGluZm8gaW4KCSAgdGhlIG1ldGhvZCBjYWxsLgoJICBBZGQgc2lnbmFsIHRvIHJlc2V0IHN5bmMgcGFyYW1ldGVycy4KCSAgQXZvaWQgcGFyc2luZyB0aGUgY2FwcyB0byBnZXQgYSBjbG9ja19iYXNlLCB3ZSBnZXQgdGhpcyBmcm9tIHRoZSBzeW5jCgkgIHNpZ25hbCBub3cuCgoyMDA4LTExLTI1IDE1OjEyOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBGaXggZXZlbnQgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3NlbmRfcnRjcF9zcmMpOgoJICBGaXggZXZlbnQgbGVhay4KCjIwMDgtMTEtMjIgMTU6MzE6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IEFkZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgdGhlIFJUQ1AgTVRVLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwKCSAgKHJ0cF9zZXNzaW9uX2luaXQpLCAocnRwX3Nlc3Npb25fc2V0X3Byb3BlcnR5KSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9wcm9wZXJ0eSk6CgkgIEFkZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgdGhlIFJUQ1AgTVRVLgoKMjAwOC0xMS0yMiAxNToyNDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogQWRkIEdfUEFSQU1fU1RBVElDX1NUUklOR1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2NsYXNzX2luaXQpLAoJICAoY29weV9zb3VyY2UpLCAocnRwX3Nlc3Npb25fY3JlYXRlX3NvdXJjZXMpLAoJICAocnRwX3Nlc3Npb25fZ2V0X3Byb3BlcnR5KToKCSAgQWRkIEdfUEFSQU1fU1RBVElDX1NUUklOR1MuCgkgIEFkZCBwcm9wZXJ0eSB0byByZXR1cm4gYSBHVmFsdWVBcnJheSBvZiBhbGwga25vd24gUlRQU291cmNlcyBpbiB0aGUKCSAgc2Vzc2lvbi4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKHJ0cF9zb3VyY2VfY2xhc3NfaW5pdCksCgkgIChydHBfc291cmNlX2NyZWF0ZV9zZGVzKSwgKHJ0cF9zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKHJ0cF9zb3VyY2VfZ2V0X3Byb3BlcnR5KToKCSAgUmVtb3ZlIHByb3BlcnRpZXMgdG8gc2V0IHRoZSB2YXJpb3VzIFNERVMgaXRlbXMsIGFuIGFwcGxpY2F0aW9uIGlzIG5ldmVyCgkgIHN1cHBvc2VkIHRvIGNoYW5nZSB0aGUgUlRQU291cmNlIGRhdGEuCgkgIENoYW5nZSB0aGUgU0RFUyBnZXR0ZXIgcHJvcGVydGllcyB0byBvbmUgU0RFUyBwcm9wZXJ0eSB0aGF0IHJldHVybnMgYWxsCgkgIFNERVMgaXRlbXMgaW4gYSBHc3RTdHJ1Y3R1cmUuCgoyMDA4LTExLTIyIDEzOjE3OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEFsc28gdW5yZWYgdGhlIHRhcmdldCBwYWQgZm9yIHVua25vd24gcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9yZWxlYXNlX3BhZCk6CgkgIEFsc28gdW5yZWYgdGhlIHRhcmdldCBwYWQgZm9yIHVua25vd24gcGFkcy4KCjIwMDgtMTEtMjEgMTY6MTc6MjIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUmVsZWFzZSB0aGUgcmlnaHQgcGFkcyBvbiBydHBiaW4uIEZpeGVzICM1NjE3NTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9yZWxlYXNlX3BhZCk6CgkgIFJlbGVhc2UgdGhlIHJpZ2h0IHBhZHMgb24gcnRwYmluLiBGaXhlcyAjNTYxNzUyLgoKMjAwOC0xMS0yMCAxODo0MTozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogUGFzcyB0aGUgcnVubmluZyB0aW1lIHRvIHRoZSBzZXNzaW9uIHdoZW4gcHJvY2Vzc2luZyBSVFAgcGFja2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAoZ2V0X2N1cnJlbnRfdGltZXMpLAoJICAocnRjcF90aHJlYWQpLCAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRwKToKCSAgUGFzcyB0aGUgcnVubmluZyB0aW1lIHRvIHRoZSBzZXNzaW9uIHdoZW4gcHJvY2Vzc2luZyBSVFAgcGFja2V0cy4KCSAgSW1wcm92ZSB0aGUgdGltZSBmdW5jdGlvbiB0byBwcm92aWRlIG1vcmUgaW5mby4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwKCSAgKHJ0cF9zZXNzaW9uX2luaXQpLCAodXBkYXRlX2Fycml2YWxfc3RhdHMpLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19zZGVzKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3NfcnRjcCksIChzZXNzaW9uX3N0YXJ0X3J0Y3ApLAoJICAocnRwX3Nlc3Npb25fb25fdGltZW91dCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBNYXJrIHRoZSBpbnRlcm5hbCBzb3VyY2Ugd2l0aCBhIGZsYWcuCgkgIFVzZSBydW5uaW5nX3RpbWUgaW5zdGVhZCBvZiB0aGUgbW9yZSB1c2VsZXNzIHRpbWVzdGFtcC4KCSAgVmFsaWRhdGUgYSBzb3VyY2Ugd2hlbiBhIHZhbGlkIFNERVMgaGFzIGJlZW4gcmVjZWl2ZWQuCgkgIFBhc3MgdGhlIGN1cnJlbnQgc3lzdGVtIHRpbWUgd2hlbiBwcm9jZXNzaW5nIFNSIHBhY2tldHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2NsYXNzX2luaXQpLAoJICAocnRwX3NvdXJjZV9pbml0KSwgKHJ0cF9zb3VyY2VfY3JlYXRlX3N0YXRzKSwKCSAgKHJ0cF9zb3VyY2VfZ2V0X3Byb3BlcnR5KSwgKHJ0cF9zb3VyY2Vfc2VuZF9ydHApLAoJICAocnRwX3NvdXJjZV9wcm9jZXNzX3JiKSwgKHJ0cF9zb3VyY2VfZ2V0X25ld19yYiksCgkgIChydHBfc291cmNlX2dldF9sYXN0X3JiKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSAgQWRkIHByb3BlcnR5IHRvIGdldCBzb3VyY2Ugc3RhdHMuCgkgIE1hcmsgcGFyYW1zIGFzIFNUQVRJQ19TVFJJTkdTLgoJICBDYWxjdWxhdGUgdGhlIGJpdHJhdGUgYXQgdGhlIHNlbmRlciBTU1JDLgoJICBBdm9pZCBuZWdhdGl2ZSB2YWx1ZXMgaW4gdGhlIHJvdW5kIHRyaXAgdGltZSBjYWxjdWxhdGlvbnMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuaDoKCSAgVXBkYXRlIHNvbWUgZG9jcyBhbmQgY2hhbmdlIHNvbWUgdmFyaWFibGUgbmFtZSB0byBtb3JlIGNsb3NlbHkgcmVmbGVjdAoJICB3aGF0IGl0IGNvbnRhaW5zLgoKMjAwOC0xMS0yMCAwODoxOToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IEluaXRpYWxpemUgcmV0dXJuIHZhbHVlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nIGFib3V0IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYWluX3J0Y3ApOgoJICBJbml0aWFsaXplIHJldHVybiB2YWx1ZSB0byBmaXggY29tcGlsZXIgd2FybmluZyBhYm91dCB1bmluaXRpYWxpemVkCgkgIHZhcmlhYmxlLgoKMjAwOC0xMS0xOSAxNjo0ODozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBNYXJrIHNpZ25hbCBhcmcgYXMgc3RhdGljIHNjb3BlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jbGFzc19pbml0KToKCSAgTWFyayBzaWduYWwgYXJnIGFzIHN0YXRpYyBzY29wZS4KCjIwMDgtMTEtMTkgMDk6MDY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUmVtb3ZlIGludGVybmFsIHN5bmMgcGFkLCB1c2Ugc2lnbmFscyBpbnN0ZWFkIHRvIGdldCBsaXAtc3luYyBub3RpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2Fzc29jaWF0ZSksCgkgIChnc3RfcnRwX2Jpbl9oYW5kbGVfc3luYyksIChjcmVhdGVfc3RyZWFtKSwgKGZyZWVfc3RyZWFtKSwKCSAgKG5ld19zc3JjX3BhZF9mb3VuZCk6CgkgIFJlbW92ZSBpbnRlcm5hbCBzeW5jIHBhZCwgdXNlIHNpZ25hbHMgaW5zdGVhZCB0byBnZXQgbGlwLXN5bmMKCSAgbm90aWZpY2F0aW9ucy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2ludGVybmFsX2xpbmtzKSwgKGNyZWF0ZV9ydGNwX3NpbmspLAoJICAocmVtb3ZlX3J0Y3Bfc2luayksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfc2lua19ydGNwX2V2ZW50KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbl9ydGNwKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5oOgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHNlbmQgU1IgcGFja2V0cyB0byB0aGUgaml0dGVyYnVmZmVyLgoJICBDaGVjayBpZiB0aGUgU1IgdGltZXN0YW1wcyBhcmUgdmFsaWQgYnkgY29tcGFyaW5nIHRoZW0gdG8gdGhlIFJUUAoJICB0aW1lc3RhbXBzLgoJICBTaWduYWwgdGhlIFNSIHBhY2tldCBhbmQgdGhlIHRpbWluZyBpbmZvcm1hdGlvbiB0byBsaXN0ZW5lcnMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6IChjcmVhdGVfZGVtdXhfcGFkX2Zvcl9zc3JjKSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9ydGNwX2NoYWluKSwgKGdzdF9ydHBfc3NyY19kZW11eF9zcmNfcXVlcnkpOgoJICBSZW1vdmUgc29tZSB1bnVzZWQgY29kZS4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX3Jlc2V0X3NrZXcpLAoJICAoY2FsY3VsYXRlX3NrZXcpLCAocnRwX2ppdHRlcl9idWZmZXJfZ2V0X3N5bmMpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IHNlZW4gUlRQIHRpbWVzdGFtcCBzbyB0aGF0IHdlIGNhbiBmaWx0ZXIgb3V0CgkgIGludmFsaWQgU1IgcGFja2V0cy4KCjIwMDgtMTEtMTcgMTk6NDc6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiBGaXggR1NUX0RFQlVHIGNhbGwgdG8gb25seSBoYXZlIGFzIG1hbnkgYXJndW1lbnRzIGFzIHJlcXVpcmVkIGJ5IHRoZSBmb3JtYXQgc3RyaW5nLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKGdldF9jbG9ja19yYXRlKToKCSAgRml4IEdTVF9ERUJVRyBjYWxsIHRvIG9ubHkgaGF2ZSBhcyBtYW55IGFyZ3VtZW50cyBhcyByZXF1aXJlZAoJICBieSB0aGUgZm9ybWF0IHN0cmluZy4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0xMS0xNyAxNToxNzo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBEbyBub3QgdHJ5IHRvIGtlZXAgdHJhY2sgb2YgdGhlIGNsb2NrLXJhdGUgb3Vyc2VsdmVzIGJ1dCBzaW1wbHkgZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBqaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2Fzc29jaWF0ZSksCgkgIChnc3RfcnRwX2Jpbl9zeW5jX2NoYWluKSwgKGNyZWF0ZV9zdHJlYW0pLCAobmV3X3NzcmNfcGFkX2ZvdW5kKToKCSAgRG8gbm90IHRyeSB0byBrZWVwIHRyYWNrIG9mIHRoZSBjbG9jay1yYXRlIG91cnNlbHZlcyBidXQgc2ltcGx5IGdldCB0aGUKCSAgdmFsdWUgZnJvbSB0aGUgaml0dGVyYnVmZmVyLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X2ppdHRlcl9idWZmZXJfc2lua19wYXJzZV9jYXBzKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZ2V0X3N5bmMpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5oOgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvLgoJICBQYXNzIHRoZSBjbG9jay1yYXRlIHRvIHRoZSBqaXR0ZXJidWZmZXIuCgkgIEFsc28gcGFzcyB0aGUgY2xvY2stcmF0ZSBhbG9uZyB3aXRoIHRoZSBydHAgdGltZXN0YW1wIHdoZW4gZ2V0dGluZyB0aGUKCSAgc3luYyBwYXJhbWV0ZXJzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzogKGdzdF9ydHBfcHRfZGVtdXhfY2hhaW4pOgoJICBGaXggc29tZSBkZWJ1Zy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX3Jlc2V0X3NrZXcpLAoJICAoY2FsY3VsYXRlX3NrZXcpLCAocnRwX2ppdHRlcl9idWZmZXJfZ2V0X3N5bmMpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBLZWVwIHRyYWNrIG9mIGNsb2NrLXJhdGUgY2hhbmdlcyBhbmQgcmV0dXJuIHRoZSBjbG9jay1yYXRlIHRvZ2V0aGVyIHdpdGgKCSAgdGhlIHJ0cCB0aW1lc3RhbXBzIHVzZWQgZm9yIHN5bmMuCgkgIERvbid0IHRyeSB0byBjb25zdHJ1Y3QgdGltZXN0YW1wcyB3aGVuIHdlIGhhdmUgbm8gYmFzZV90aW1lLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAoZ2V0X2Nsb2NrX3JhdGUpOgoJICBSZXF1ZXN0IGEgbmV3IGNsb2NrLXJhdGUgd2hlbiB0aGUgcGF5bG9hZCB0eXBlIGNoYW5nZXMuCgkgIFJlc2V0IHRoZSBqaXR0ZXIgY2FsY3VsYXRpb24gd2hlbiB0aGUgY2xvY2stcmF0ZSBjaGFuZ2VzLgoKMjAwOC0xMS0xMyAxNTo0ODo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogU21hbGwgY2xlYW51cHMgYW5kIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9qaXR0ZXJfYnVmZmVyX3NpbmtfcGFyc2VfY2FwcyksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZmx1c2hfc3RvcCksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiAocnRwX2ppdHRlcl9idWZmZXJfcmVzZXRfc2tldyksCgkgIChjYWxjdWxhdGVfc2tldyk6CgkgIFNtYWxsIGNsZWFudXBzIGFuZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDgtMTEtMTAgMTU6MjY6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogQWxzbyBjb25maWd1cmUgdGhlIG5leHQgZXhwZWN0ZWQgb3V0cHV0IHNlcW51bSB3aGVuIHdlIGdldCBhIHNlcW51bS1iYXNlIG9uIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3Rfaml0dGVyX2J1ZmZlcl9zaW5rX3BhcnNlX2NhcHMpLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYWluKToKCSAgQWxzbyBjb25maWd1cmUgdGhlIG5leHQgZXhwZWN0ZWQgb3V0cHV0IHNlcW51bSB3aGVuIHdlIGdldCBhIHNlcW51bS1iYXNlCgkgIG9uIHRoZSBjYXBzLgoKMjAwOC0xMS0wNCAxMjo0MjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgLWJhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2Fsc2FzcGRpZi9NYWtlZmlsZS5hbToKCSAgKiBleHQvYW1yd2IvTWFrZWZpbGUuYW06CgkgICogZXh0L2FwZXhzaW5rL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcnRzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcnRzZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXVkaW9maWxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hdWRpb3Jlc2FtcGxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9iejIvTWFrZWZpbGUuYW06CgkgICogZXh0L2NkYXVkaW8vTWFrZWZpbGUuYW06CgkgICogZXh0L2NlbHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2RjMTM5NC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZGlyYWMvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpcmVjdGZiL01ha2VmaWxlLmFtOgoJICAqIGV4dC9kaXZ4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kdHMvTWFrZWZpbGUuYW06CgkgICogZXh0L2ZhYWMvTWFrZWZpbGUuYW06CgkgICogZXh0L2ZhYWQvTWFrZWZpbGUuYW06CgkgICogZXh0L2dzbS9NYWtlZmlsZS5hbToKCSAgKiBleHQvaGVybWVzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9pdm9yYmlzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qYWNrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9qcDJrL01ha2VmaWxlLmFtOgoJICAqIGV4dC9sYWRzcGEvTWFrZWZpbGUuYW06CgkgICogZXh0L2xjcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGliZmFtZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGlibW1zL01ha2VmaWxlLmFtOgoJICAqIGV4dC9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXBlZzJlbmMvTWFrZWZpbGUuYW06CgkgICogZXh0L21wbGV4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9tdXNlcGFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXVzaWNicmFpbnovTWFrZWZpbGUuYW06CgkgICogZXh0L215dGh0di9NYWtlZmlsZS5hbToKCSAgKiBleHQvbmFzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9uZW9uL01ha2VmaWxlLmFtOgoJICAqIGV4dC9vZmEvTWFrZWZpbGUuYW06CgkgICogZXh0L3BvbHlwL01ha2VmaWxlLmFtOgoJICAqIGV4dC9yZXNpbmR2ZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2RsL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zaG91dC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc25hcHNob3QvTWFrZWZpbGUuYW06CgkgICogZXh0L3NuZGZpbGUvTWFrZWZpbGUuYW06CgkgICogZXh0L3NvdW5kdG91Y2gvTWFrZWZpbGUuYW06CgkgICogZXh0L3NwYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvc3dmZGVjL01ha2VmaWxlLmFtOgoJICAqIGV4dC90YXJraW4vTWFrZWZpbGUuYW06CgkgICogZXh0L3RoZW9yYS9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGltaWRpdHkvTWFrZWZpbGUuYW06CgkgICogZXh0L3R3b2xhbWUvTWFrZWZpbGUuYW06CgkgICogZXh0L3gyNjQvTWFrZWZpbGUuYW06CgkgICogZXh0L3hpbmUvTWFrZWZpbGUuYW06CgkgICogZXh0L3h2aWQvTWFrZWZpbGUuYW06CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QtbGlicy9nc3QvZHNob3cvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FpZmZwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXBwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2J1ZmZlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmF5ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NkeGFwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hhcnQvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NvbG9yc3BhY2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RjY3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlaW50ZXJsYWNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZTIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2R2ZHNwdS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmVzdGl2YWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZpbHRlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmxhY3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dhbWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9oMjY0cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2xpYnJmYi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbWl4bWF0cml4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9tb2RwbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVnMXN5cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZzR2aWRlb3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVnZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWd0c211eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZ3ZpZGVvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L212ZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbnNmL01ha2VmaWxlLmFtOgoJICAqIGdzdC9udXZkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvb3ZlcmxheS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFzc3Rocm91Z2gvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BjYXBwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheW9uZGVtYW5kL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yYXdwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVhbC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRqcGVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zY2FsZXRlbXBvL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zZHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NlbGVjdG9yL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbW9vdGgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3Ntb290aHdhdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWVkL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVleHJlc2FtcGxlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zdGVyZW8vTWFrZWZpbGUuYW06CgkgICogZ3N0L3N1YmVuYy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdHRhL01ha2VmaWxlLmFtOgoJICAqIGdzdC92YmlkZWMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvZHJvcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdmlkZW9zaWduYWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpcnR1YWxkdWIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZtbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSAgKiBzeXMvYWNtZW5jL01ha2VmaWxlLmFtOgoJICAqIHN5cy9jZHJvbS9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHNob3dkZWN3cmFwcGVyL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvTWFrZWZpbGUuYW06CgkgICogc3lzL2R2Yi9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHhyMy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZmJkZXYvTWFrZWZpbGUuYW06CgkgICogc3lzL29zczQvTWFrZWZpbGUuYW06CgkgICogc3lzL3FjYW0vTWFrZWZpbGUuYW06CgkgICogc3lzL3F0d3JhcHBlci9NYWtlZmlsZS5hbToKCSAgKiBzeXMvdmNkL01ha2VmaWxlLmFtOgoJICAqIHN5cy93aW5pbmV0L01ha2VmaWxlLmFtOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgLWJhZC4KCjIwMDgtMTAtMTYgMTM6MDU6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogRml4IHByb2JsZW0gd2l0aCB1c2luZyB0aGUgb3V0cHV0IHNlcW51bSBjb3VudGVyIHRvIGNoZWNrIGZvciBpbnB1dCBzZXFudW0gZGlzY28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3Rfaml0dGVyX2J1ZmZlcl9zaW5rX3BhcnNlX2NhcHMpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2ZsdXNoX3N0YXJ0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9mbHVzaF9zdG9wKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIEZpeCBwcm9ibGVtIHdpdGggdXNpbmcgdGhlIG91dHB1dCBzZXFudW0gY291bnRlciB0byBjaGVjayBmb3IgaW5wdXQKCSAgc2VxbnVtIGRpc2NvbnRpbnVpdGllcy4KCSAgSW1wcm92ZSBnYXAgZGV0ZWN0aW9uIGFuZCByZWNvdmVyeSwgcmVzZXQgYW5kIGZsdXNoIHRoZSBqaXR0ZXJidWZmZXIgb24KCSAgc2VxbnVtIHJlc3RhcnQuIEZpeGVzICM1NTY1MjAuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6IChydHBfaml0dGVyX2J1ZmZlcl9pbnNlcnQpOgoJICBGaXggd3JvbmcgR19MSUtFTFkuCgoyMDA4LTEwLTE2IDA5OjUxOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBJbnN0YWxsIGV2ZW50IGhhbmRsZXIgb24gdGhlIHJ0Y3Bfc3JjIHBhZCwgbWFrZSBMQVRFTkNZIGV2ZW50IHJldHVybgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydGNwX3NyYyksIChjcmVhdGVfc2VuZF9ydGNwX3NyYyk6CgkgIEluc3RhbGwgZXZlbnQgaGFuZGxlciBvbiB0aGUgcnRjcF9zcmMgcGFkLCBtYWtlIExBVEVOQ1kgZXZlbnQgcmV0dXJuCgkgIFRSVUUuCgoyMDA4LTEwLTA3IDE4OjU0OjQxICswMDAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLW1hcnNoYWwubGlzdDogQWRkIG1hcnNoYWxsZXIgZm9yIG5ldyBhY3Rpb24gc2lnbmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEjDpXZhcmQgR3JhZmYgPGhhdmFyZCBkb3QgZ3JhZmYgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5saXN0OgoJICBBZGQgbWFyc2hhbGxlciBmb3IgbmV3IGFjdGlvbiBzaWduYWwuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9nZXRfaW50ZXJuYWxfc2Vzc2lvbiksCgkgIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgQWRkIGFjdGlvbiBzaWduYWwgdG8gcmV0cmlldmUgdGhlIGludGVybmFsIFJUUFNlc3Npb24gb2JqZWN0LgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9zZXNzaW9uX3JlbGVhc2VfcGFkKToKCSAgQWRkIHByb3BlcnR5IHRvIGFjY2VzcyB0aGUgaW50ZXJuYWwgUlRQU2Vzc2lvbiBvYmplY3QuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChjaGVja19jb2xsaXNpb24pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgQWRkIGFjdGlvbiBzaWduYWwgdG8gcmV0cmlldmUgYW4gUlRQU291cmNlIG9iamVjdCBieSBTU1JDLgoJICBTZWUgIzU1NTM5Ni4KCjIwMDgtMTAtMDcgMTE6MzM6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUmVsZWFzZSBwYWRzIG9mIHRoZSBzZXNzaW9uIG1hbmFnZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZmluZF9zZXNzaW9uX2J5X3BhZCksCgkgIChmcmVlX3Nlc3Npb24pLCAoZ3N0X3J0cF9iaW5fZGlzcG9zZSksIChyZW1vdmVfcmVjdl9ydHApLAoJICAocmVtb3ZlX3JlY3ZfcnRjcCksIChyZW1vdmVfc2VuZF9ydHApLCAocmVtb3ZlX3J0Y3ApLAoJICAoZ3N0X3J0cF9iaW5fcmVsZWFzZV9wYWQpOgoJICBSZWxlYXNlIHBhZHMgb2YgdGhlIHNlc3Npb24gbWFuYWdlci4KCSAgU3RhcnQgaW1wbGVtZW50aW5nIHJlbGVhc2luZyBwYWRzIG9mIGdzdHJ0cGJpbi4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChyZW1vdmVfcmVjdl9ydHBfc2luayksCgkgIChyZW1vdmVfcmVjdl9ydGNwX3NpbmspLCAocmVtb3ZlX3NlbmRfcnRwX3NpbmspLAoJICAocmVtb3ZlX3NlbmRfcnRjcF9zcmMpLCAoZ3N0X3J0cF9zZXNzaW9uX3JlbGVhc2VfcGFkKToKCSAgSW1wbGVtZW50IHJlbGVhc2luZyBwYWRzIGluIGdzdHJ0cHNlc3Npb24uCgoyMDA4LTEwLTA3IDEwOjAyOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IE9ubHkgdXBkYXRlIHRoZSBzZXFudW0tYmFzZSB3aGVuIGl0IHdhcyBub3QgYWxyZWFkeSBjb25maWd1cmVkIGZvciB0aGUgc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3Rfaml0dGVyX2J1ZmZlcl9zaW5rX3BhcnNlX2NhcHMpOgoJICBPbmx5IHVwZGF0ZSB0aGUgc2VxbnVtLWJhc2Ugd2hlbiBpdCB3YXMgbm90IGFscmVhZHkgY29uZmlndXJlZCBmb3IgdGhlCgkgIHN0cmVhbXMuCgoyMDA4LTA5LTMwIDE1OjA4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiBSZWYgdGhlIHJ0cHNvdXJjZSBvYmplY3QgYmVmb3JlIHdlIHJlbGVhc2UgdGhlIHNlc3Npb24gbG9jayB3aGVuIHdlIGVtaXQgdGhlIHNpZ25hbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKG9uX25ld19zc3JjKSwgKG9uX3NzcmNfY29sbGlzaW9uKSwKCSAgKG9uX3NzcmNfdmFsaWRhdGVkKSwgKG9uX3NzcmNfYWN0aXZlKSwgKG9uX3NzcmNfc2RlcyksCgkgIChvbl9ieWVfc3NyYyksIChvbl9ieWVfdGltZW91dCksIChvbl90aW1lb3V0KSwgKG9uX3NlbmRlcl90aW1lb3V0KToKCSAgUmVmIHRoZSBydHBzb3VyY2Ugb2JqZWN0IGJlZm9yZSB3ZSByZWxlYXNlIHRoZSBzZXNzaW9uIGxvY2sgd2hlbiB3ZSBlbWl0CgkgIHRoZSBzaWduYWxzLgoKMjAwOC0wOS0yMyAxODoxMzozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogRml4IHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6IChydHBfaml0dGVyX2J1ZmZlcl9pbnNlcnQpLAoJICAocnRwX2ppdHRlcl9idWZmZXJfZ2V0X3N5bmMpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKG9uX3NlbmRlcl90aW1lb3V0KSwKCSAgKHNlc3Npb25fY2xlYW51cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIEZpeCBzb21lIGRvY3MuCgoyMDA4LTA5LTE3IDEzOjU5OjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiBPUy9YCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzogKGphY2tfcHJvY2Vzc19jYik6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6IChjYWxjdWxhdGVfc2tldyk6CgkgIEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiBPUy9YCgoyMDA4LTA5LTEzIDAxOjM3OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IERvIG5vdCB0cnkgdG8gYWRqdXN0IHRoZSBvZmZzZXQgb2Ygc3RyZWFtcyBmb3Igd2hpY2ggd2UgaGF2ZSBub3QgeWV0IHNlZW4gYW4gU1IgcGFja2V0LiBBLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3Nlc3Npb24pLAoJICAoZ3N0X3J0cF9iaW5fYXNzb2NpYXRlKSwgKGdzdF9ydHBfYmluX3N5bmNfY2hhaW4pOgoJICBEbyBub3QgdHJ5IHRvIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHN0cmVhbXMgZm9yIHdoaWNoIHdlIGhhdmUgbm90IHlldAoJICBzZWVuIGFuIFNSIHBhY2tldC4gQXZvaWRzIGxhcmdlIHRzLW9mZnNldHMgaW4gc29tZSBjYXNlcy4KCjIwMDgtMDktMDUgMTM6NTI6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uKjogQWRkIHNpZ25hbCB0byBub3RpZnkgbGlzdGVuZXJzIHdoZW4gYSBzZW5kZXIgYmVjb21lcyBhIHJlY2VpdmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKG9uX3NlbmRlcl90aW1lb3V0KSwKCSAgKGNyZWF0ZV9zZXNzaW9uKSwgKGdzdF9ydHBfYmluX2Fzc29jaWF0ZSksCgkgIChnc3RfcnRwX2Jpbl9zeW5jX2NoYWluKSwgKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9iaW5fcmVxdWVzdF9uZXdfcGFkKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgQWRkIHNpZ25hbCB0byBub3RpZnkgbGlzdGVuZXJzIHdoZW4gYSBzZW5kZXIgYmVjb21lcyBhIHJlY2VpdmVyLgoJICBUd2VhayBsaXAtc3luYyBjb2RlLCBkb24ndCBzdG9yZSBvdXIgb3duIGNvcHkgb2YgdGhlIHRzLW9mZnNldCBvZiB0aGUKCSAgaml0dGVyYnVmZmVyLCBkb24ndCBhZGp1c3Qgc3luYyBpZiB0aGUgY2hhbmdlIGlzIGxlc3MgdGhhbiA0bXNlYy4KCSAgR2V0IHRoZSBSVFAgdGltZXN0YW1wIDwtPiBHU3RyZWFtZXIgdGltZXN0YW1wIHJlbGF0aW9uIGRpcmVjdGx5IGZyb20KCSAgdGhlIGppdHRlcmJ1ZmZlciBpbnN0ZWFkIG9mIG91ciBpbmFjY3VyYXRlIHZlcnNpb24gZnJvbSB0aGUgc291cmNlLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYWluKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9nZXRfc3luYyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmg6CgkgIEFkZCBHX0xJS0VMWSBtYWNyb3MsIHVzZSBnbG9iYWwgZGVmaW5lcyBmb3IgbWF4IHBhY2tldCByZW9yZGVyIGFuZAoJICBkcm9wb3V0cy4KCSAgUmVzZXQgdGhlIGppdHRlcmJ1ZmZlciBjbG9jayBza2V3IGRldGVjdGlvbiB3aGVuIHBhY2tldHMgc2VxbnVtcyBhcmUKCSAgY2hhbmdlZCB1bmV4cGVjdGVkbHkuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAob25fc2VuZGVyX3RpbWVvdXQpLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9zZXNzaW9uX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uaDoKCSAgQWRkIHNlbmRlciB0aW1lb3V0IHNpZ25hbC4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX3Jlc2V0X3NrZXcpLAoJICAoY2FsY3VsYXRlX3NrZXcpLCAocnRwX2ppdHRlcl9idWZmZXJfaW5zZXJ0KSwKCSAgKHJ0cF9qaXR0ZXJfYnVmZmVyX2dldF9zeW5jKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuaDoKCSAgQWRkIHNvbWUgR19MSUtFTFkgbWFjcm9zLgoJICBLZWVwIHRyYWNrIG9mIHRoZSBleHRlbmRlZCBSVFAgdGltZXN0YW1wIHNvIHRoYXQgd2UgY2FuIHJlcG9ydCB0aGUgUlRQCgkgIHRpbWVzdGFtcCA8LT4gR1N0cmVhbWVyIHRpbWVzdGFtcCByZWxhdGlvbiBmb3IgbGlwLXN5bmMuCgkgIFJlbW92ZSBzZXJ2ZXIgdGltZXN0YW1wIGdhcCBkZXRlY3Rpb24gY29kZSwgdGhlIHNlcnZlciBjYW4gc29tZXRpbWVzCgkgIG1ha2UgYSBodWdlIGdhcCBpbiB0aW1lc3RhbXBzICh0YWxrIHNwdXJ0cywuLi4pIHNlZSAjNTQ5Nzc0LgoJICBEZXRlY3QgdGltZXRhbXAgd2VpcmRuZXNzIGluc3RlYWQgYnkgb2JzZXJ2aW5nIHRoZSBzZW5kZXIvcmVjZWl2ZXIKCSAgdGltZXN0YW1wIHJlbGF0aW9uIGFuZCByZXN5bmMgaWYgaXQgY2hhbmdlcyBtb3JlIHRoYW4gMSBzZWNvbmQuCgkgIEFkZCBtZXRob2QgdG8gcmVwb3J0IGFib3V0IHRoZSBjdXJyZW50IHJ0cCA8LT4gZ3N0IHRpbWVzdGFtcCByZWxhdGlvbgoJICB3aGljaCBpcyBuZWVkZWQgZm9yIGxpcC1zeW5jLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2NsYXNzX2luaXQpLAoJICAob25fc2VuZGVyX3RpbWVvdXQpLCAoY2hlY2tfY29sbGlzaW9uKSwgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc3IpLAoJICAoc2Vzc2lvbl9jbGVhbnVwKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIEFkZCBzZW5kZXIgdGltZW91dCBzaWduYWwuCgkgIFJlbW92ZSBpbmFjY3VyYXRlIHJ0cCA8LT4gZ3N0IHRpbWVzdGFtcCByZWxhdGlvbiBjb2RlLCB0aGUKCSAgaml0dGVyYnVmZmVyIGNhbiBub3cgZG8gYW4gYWNjdXJhdGUgcmVwb3J0aW5nIGFib3V0IHRoaXMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2luaXQpLAoJICAocnRwX3NvdXJjZV91cGRhdGVfY2FwcyksIChjYWxjdWxhdGVfaml0dGVyKSwKCSAgKHJ0cF9zb3VyY2VfcHJvY2Vzc19ydHApOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBSZW1vdmUgaW5hY2N1cmF0ZSBydHAgPC0+IGdzdCB0aW1lc3RhbXAgcmVsYXRpb24gY29kZS4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBEZWZpbmUgZ2xvYmFsIG1heC1yZW9yZGVyIGFuZCBtYXgtZHJvcG91dCBjb25zdGFudHMgZm9yIHVzZSBpbiB2YXJpb3VzCgkgIHN1YnN5c3RlbXMuCgoyMDA4LTA4LTI4IDE1OjIxOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBTZW5kIEVPUyB3aGVuIHRoZSBzZXNzaW9uIG9iamVjdCBpbnN0cnVjdHMgdXMgdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9zZW5kX3J0Y3ApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3NlbmRfcnRwX3NpbmspOgoJICBTZW5kIEVPUyB3aGVuIHRoZSBzZXNzaW9uIG9iamVjdCBpbnN0cnVjdHMgdXMgdG8uCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fb25fdGltZW91dCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBNYWtlIGl0IHBvc3NpYmxlIGZvciB0aGUgc2Vzc2lvbiBtYW5hZ2VyIHRvIGluc3RydWN0IHVzIHRvIHNlbmQgRU9TLiBXZQoJICBjdXJyZW50bHkgd2lsbCBFT1Mgd2hlbiB0aGUgc2Vzc2lvbiBpcyBhIHNlbmRlciBhbmQgd2hlbiB0aGUgc2VuZGVyIHBhcnQKCSAgZ29lcyBFT1MuIFRoaXMgaXMgbm90IGVudGlyZWx5IGNvcnJlY3QgYmVoYXZpb3VyIGJlY2F1c2UgdGhlIHNlc3Npb24KCSAgY291bGQgc3RpbGwgcGFydGljaXBhdGUgYXMgYSByZWNlaXZlci4KCSAgRml4ZXMgIzU0OTQwOS4KCjIwMDgtMDgtMTMgMTQ6MzE6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUmVzZXQgcnRwIHRpbWVzdGFtcCBpbnRlcnBvbGxhdGlvbiB3aGVuIHdlIGRldGVjdCBhIGdhcCB3aGVuIHRoZSBjbG9ja19iYXNlIGNoYW5nZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ3N0X3J0cF9iaW5fYXNzb2NpYXRlKSwKCSAgKGdzdF9ydHBfYmluX3N5bmNfY2hhaW4pLCAobmV3X3NzcmNfcGFkX2ZvdW5kKToKCSAgUmVzZXQgcnRwIHRpbWVzdGFtcCBpbnRlcnBvbGxhdGlvbiB3aGVuIHdlIGRldGVjdCBhIGdhcCB3aGVuIHRoZQoJICBjbG9ja19iYXNlIGNoYW5nZWQuCgkgIERvbid0IHRyeSB0byBhZGp1c3QgdGhlIHRzLW9mZnNldCB3aGVuIGl0J3MgdG9vIGJpZyAoPiAzc2Vjb25kcykKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fc2V0X3NzcmMpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uaDoKCSAgQWRkIG1ldGhvZCB0byBzZXQgc2Vzc2lvbiBTU1JDLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKGNoZWNrX2NvbGxpc2lvbiksCgkgIChydHBfc2Vzc2lvbl9zZXRfaW50ZXJuYWxfc3NyYyksIChydHBfc2Vzc2lvbl9nZXRfaW50ZXJuYWxfc3NyYyksCgkgIChydHBfc2Vzc2lvbl9vbl90aW1lb3V0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIEFkZGVkIGRlYnVnZ2luZyBmb3IgdGhlIGNvbGxpc2lvbiBjaGVja3MuCgkgIEFkZCBtZXRob2QgdG8gY2hhbmdlIHRoZSBpbnRlcm5hbCBTU1JDIG9mIHRoZSBzZXNzaW9uLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9wcm9jZXNzX3J0cCk6CgkgIFJlc2V0IHRoZSBjbG9jayBiYXNlIHdoZW4gd2UgZGV0ZWN0IGxhcmdlIGp1bXBzIGluIHRoZSBzZXFudW1zLgoKMjAwOC0wOC0xMSAwNzoyMDoxNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IFByaW50IHRoZSBwYWQtbmFtZSBpbiBkZWJ1ZyBsb2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBQcmludCB0aGUgcGFkLW5hbWUgaW4gZGVidWcgbG9nLgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvZ3N0ZHNob3dhdWRpb3NyYy5jOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvZ3N0ZHNob3d2aWRlb3NyYy5jOgoJICBVc2UgIi0iIGluc3RlYWQgb2YgIl8iIGluIHByb3BlcnR5IG5hbWVzLiBDYW4gd2UgY2FsbCB0aGVtIGp1c3QKCSAgImRldmljZSIgbGlrZSBldmVyeXdoZXJlIGVsc2U/CgoyMDA4LTA4LTA1IDA5OjQyOjUzICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IE1ha2UgdGhlIGJ1ZmZlciBtZXRhZGF0YSB3cml0YWJsZSBiZWZvcmUgaW5zZXJ0aW5nIGl0IGluIHRoZSBqaXR0ZXJidWZmZXIgYmVjYXVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApOgoJICBNYWtlIHRoZSBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUgYmVmb3JlIGluc2VydGluZyBpdCBpbiB0aGUKCSAgaml0dGVyYnVmZmVyIGJlY2F1c2UgdGhlIGppdHRlcmJ1ZmZlciB3aWxsIG1vZGlmeSB0aGUgdGltZXN0YW1wcy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgVXBkYXRlIG1ldGhvZCBjb21tZW50IGFib3V0IHJlcXVpcmluZyB3cml0YWJsZSBtZXRhZGF0YSBvbiBidWZmZXJzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc3IpLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydGNwKToKCSAgTWFrZSB0aGUgUlRDUCBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUgYmVjYXVzZSB3ZSB3YW50IHRvIG1vZGlmeSB0aGUKCSAgbWV0YWRhdGEuCgkgIEZpeGVzICM1NDYzMTIuCgoyMDA4LTA4LTA1IDA5OjAwOjUwICswMDAwICBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IEZpeCBkZWJ1ZyBieSBsb2dnaW5nIHRoZSByaWdodCBzZXFudW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSMOldmFyZCBHcmFmZiA8aGF2YXJkIGRvdCBncmFmZiBhdCB0YW5kYmVyZyBkb3QgY29tPgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYWluKToKCSAgRml4IGRlYnVnIGJ5IGxvZ2dpbmcgdGhlIHJpZ2h0IHNlcW51bS4KCjIwMDgtMDgtMDUgMDg6NTg6MjcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUmVsZWFzZSBsb2NrIGJlZm9yZSBlbWl0dGluZyB0aGUgcmVxdWVzdC1wdC1tYXAgc2lnbmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ2V0X3B0X21hcCk6CgkgIFJlbGVhc2UgbG9jayBiZWZvcmUgZW1pdHRpbmcgdGhlIHJlcXVlc3QtcHQtbWFwIHNpZ25hbC4KCSAgRml4ZXMgIzU0MzQ4MC4KCjIwMDgtMDctMDMgMTQ6NDQ6NTEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvOiBDb3JyZWN0ZWQgYSB0eXBvIChpbnRlcnBvbGxhdGUgLT4gaW50ZXJwb2xhdGUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2dldF9uZXdfc3IpOgoJICBDb3JyZWN0ZWQgYSB0eXBvIChpbnRlcnBvbGxhdGUgLT4gaW50ZXJwb2xhdGUpLgoKMjAwOC0wNy0wMyAxNDozMToxMCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRwbWFuYWdlci86IENoYW5nZWQgc29tZSBHU1RfREVCVUcoKSB0byBHU1RfTE9HKCkgdG8gcmVkdWNlIHRoZSBzcGFtIHdoZW4gYSBwaXBlbGluZSBpcyBydW5uaW5nIG5vcm1hbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRwKSwgKGdzdF9ydHBfc2Vzc2lvbl9zZW5kX3J0Y3ApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX3N5bmNfcnRjcCksIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fcmVjdl9ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRjcCksIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fc2VuZF9ydHApOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHNvdXJjZV9wdXNoX3J0cCksCgkgIChydHBfc2Vzc2lvbl9zZW5kX3J0cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChwdXNoX3BhY2tldCksIChjYWxjdWxhdGVfaml0dGVyKSwKCSAgKHJ0cF9zb3VyY2VfcHJvY2Vzc19ydHApLCAocnRwX3NvdXJjZV9zZW5kX3J0cCk6CgkgIENoYW5nZWQgc29tZSBHU1RfREVCVUcoKSB0byBHU1RfTE9HKCkgdG8gcmVkdWNlIHRoZSBzcGFtIHdoZW4gYQoJICBwaXBlbGluZSBpcyBydW5uaW5nIG5vcm1hbGx5LgoKMjAwOC0wNy0wMyAxMzo0NzoxOSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRwbWFuYWdlci86IERvIG5vdCBtaXggdGhlIHVzZSBvZiBnX2dldF9jdXJyZW50X3RpbWUoKSB3aXRoIGdzdF9jbG9ja19nZXRfdGltZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25faW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25fZmluYWxpemUpLCAocnRjcF90aHJlYWQpLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRwKSwgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9yZWN2X3J0Y3ApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3NlbmRfcnRwX3NpbmspLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3NlbmRfcnRwKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChjaGVja19jb2xsaXNpb24pLAoJICAodXBkYXRlX2Fycml2YWxfc3RhdHMpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydGNwKSwgKHJ0cF9zZXNzaW9uX3NlbmRfcnRwKSwKCSAgKHJ0cF9zZXNzaW9uX3NlbmRfYnllX2xvY2tlZCksIChydHBfc2Vzc2lvbl9zZW5kX2J5ZSksCgkgIChydHBfc2Vzc2lvbl9uZXh0X3RpbWVvdXQpLCAoc2Vzc2lvbl9yZXBvcnRfYmxvY2tzKSwgKHNlc3Npb25fY2xlYW51cCksCgkgIChpc19ydGNwX3RpbWUpLCAocnRwX3Nlc3Npb25fb25fdGltZW91dCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBEbyBub3QgbWl4IHRoZSB1c2Ugb2YgZ19nZXRfY3VycmVudF90aW1lKCkgd2l0aCBnc3RfY2xvY2tfZ2V0X3RpbWUoKS4KCjIwMDgtMDYtMTYgMDc6MzA6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpbmFsIHJvdW5kIG9mIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3Qvc3BlZWQvZ3N0c3BlZWQuYzoKCSAgKiBnc3Qvc3BlZXhyZXNhbXBsZS9nc3RzcGVleHJlc2FtcGxlLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvYW5hbHlzZS5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb2RldGVjdC5jOgoJICAqIGdzdC92aWRlb3NpZ25hbC9nc3R2aWRlb21hcmsuYzoKCSAgKiBzeXMvZHZiL2dzdGR2YnNyYy5jOgoJICAqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICAqIHN5cy93aW5pbmV0L2dzdHdpbmluZXRzcmMuYzoKCSAgRmluYWwgcm91bmQgb2YgZG9jIHVwZGF0ZXMuCgoyMDA4LTA2LTE2IDA3OjAzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBNb3JlIGRvYyB1cGRhdGVzLiBNb3JlIHhyZWZzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAqIGdzdC9zZHAvZ3N0c2RwZGVtdXguYzoKCSAgTW9yZSBkb2MgdXBkYXRlcy4gTW9yZSB4cmVmcy4KCjIwMDgtMDYtMTIgMTQ6NDk6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvIG5vdCB1c2Ugc2hvcnRfZGVzY3JpcHRpb24gaW4gc2VjdGlvbiBkb2NzIGZvciBlbGVtZW50cy4gV2UgZXh0cmFjdCB0aGVtIGZyb20gZWxlbWVudCBkZXRhaWxzIGFuZCB0aGVyZSB3aWxsIGJlIHdhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZGMxMzk0L2dzdGRjMTM5NC5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgKiBleHQvbWV0YWRhdGEvZ3N0bWV0YWRhdGFkZW11eC5jOgoJICAqIGV4dC9teXRodHYvZ3N0bXl0aHR2c3JjLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBnc3QtbGlicy9nc3QvYXBwL2dzdGFwcHNpbmsuYzoKCSAgKiBnc3QvYmF5ZXIvZ3N0YmF5ZXIycmdiLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdGF1ZGlvcGFyc2UuYzoKCSAgKiBnc3QvcmF3cGFyc2UvZ3N0dmlkZW9wYXJzZS5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgICogZ3N0L3NlbGVjdG9yL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBnc3Qvc2VsZWN0b3IvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9hbmFseXNlLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvZGV0ZWN0LmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvbWFyay5jOgoJICAqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QKCSAgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXJuaW5ncyBpZiB0aGV5IGRpZmZlci4KCSAgQWxzbyBmaXhpbmcgdXAgdGhlIENoYW5nZUxvZyBvcmRlci4KCjIwMDgtMDYtMDYgMTM6MDE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogRml4IGRlYWRsb2NrIHdoZW4gc2h1dHRpbmcgZG93biwgdXNlIGEgbmV3IGxvY2sgaW5zdGVhZCB0byBwcm9wZXJseSBzaHV0ZG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9pbml0KSwKCSAgKGdzdF9ydHBfYmluX2ZpbmFsaXplKSwgKGdzdF9ydHBfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIEZpeCBkZWFkbG9jayB3aGVuIHNodXR0aW5nIGRvd24sIHVzZSBhIG5ldyBsb2NrIGluc3RlYWQgdG8gcHJvcGVybHkKCSAgc2h1dGRvd24uCgoyMDA4LTA1LTI3IDE2OjQ4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEJyZWFrIG91dCBvZiBjYWxsYmFja3Mgd2hlbiB3ZSBhcmUgc2h1dHRpbmcgZG93bi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIChnc3RfcnRwX2Jpbl9wcm9wYWdhdGVfcHJvcGVydHlfdG9faml0dGVyYnVmZmVyKSwKCSAgKGdzdF9ydHBfYmluX2NoYW5nZV9zdGF0ZSksIChuZXdfcGF5bG9hZF9mb3VuZCksCgkgIChuZXdfc3NyY19wYWRfZm91bmQpOgoJICBCcmVhayBvdXQgb2YgY2FsbGJhY2tzIHdoZW4gd2UgYXJlIHNodXR0aW5nIGRvd24uCgkgIE1ha2Ugc3VyZSBubyBzdGF0ZSBjaGFuZ2VzIGNhbiBoYXBwZW4gd2hlbiB3ZSByZWNvbmZpZ3VyZS4KCjIwMDgtMDUtMjYgMTA6MDk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogV2hlbiBjaGVja2luZyB0aGUgc2VxbnVtLCByZXNldCB0aGUgaml0dGVyYnVmZmVyIGlmIHRoZSBnYXAgaXMgdG9vIGJpZywgd2UgbmVlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApOgoJICBXaGVuIGNoZWNraW5nIHRoZSBzZXFudW0sIHJlc2V0IHRoZSBqaXR0ZXJidWZmZXIgaWYgdGhlIGdhcCBpcyB0b28gYmlnLAoJICB3ZSBuZWVkIHRvIGRvIHRoaXMgc28gdGhhdCB3ZSBjYW4gYmV0dGVyIGhhbmRsZSBhIHJlc3RhcnRlZCBzb3VyY2UuCgkgIEZpeCBzb21lIGNvbW1lbnRzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiAoY2FsY3VsYXRlX3NrZXcpLAoJICAocnRwX2ppdHRlcl9idWZmZXJfaW5zZXJ0KToKCSAgVHdlYWsgdGhlIHNrZXcgcmVzeW5jIGRpZmYuCgkgIFVzZSBvdXIgd29ya2luZyBzZXFudW0gY29tcGFyZSBmdW5jdGlvbiBpbiAtYmFzZS4KCSAgUmV3b3JrIHRoZSBqaXR0ZXJidWZmZXIgaW5zZXJ0IGNvZGUgdG8gbWFrZSBpdCBjbGVhcmVyIGFuZCBtb3JlCgkgIHBlcmZvcm1hbnQgYnkgb25seSByZXRyaWV2aW5nIHRoZSBzZXFudW0gb2YgdGhlIGlucHV0IGJ1ZmZlciBvbmNlIGFuZCBieQoJICBhZGRpbmcgc29tZSBHX0xJS0VMWSBjb21waWxlciBoaW50cy4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgZm9yIGR1cGxpY2F0ZSBwYWNrZXRzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9wcm9jZXNzX3J0cCk6CgkgIEZpeCBhIGNvbW1lbnQsIHdlIGRvbid0IGRvIHNrZXcgY29ycmVjdGlvbiBoZXJlLi4KCjIwMDgtMDUtMjYgMTA6MDA6MjQgKzAwMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUHJvcGFnYXRlIHRoZSBkby1sb3N0IGFuZCBsYXRlbmN5IHByb3BlcnRpZXMgdG8gdGhlIGppdHRlcmJ1ZmZlcnMgd2hlbiB0aGV5IGFyZSBjaGFuZ2VkIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBIw6V2YXJkIEdyYWZmIDxoYXZhcmQgZG90IGdyYWZmIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIChnc3RfcnRwX2Jpbl9wcm9wYWdhdGVfcHJvcGVydHlfdG9faml0dGVyYnVmZmVyKSwKCSAgKGdzdF9ydHBfYmluX3NldF9wcm9wZXJ0eSk6CgkgIFByb3BhZ2F0ZSB0aGUgZG8tbG9zdCBhbmQgbGF0ZW5jeSBwcm9wZXJ0aWVzIHRvIHRoZSBqaXR0ZXJidWZmZXJzIHdoZW4KCSAgdGhleSBhcmUgY2hhbmdlZCBvbiBydHBiaW4uCgoyMDA4LTA1LTI2IDA5OjU3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9uJ3QgdXNlIF9nc3RfcGFkKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL3N3aXRjaC9zd2l0Y2hlci5jOiAoc3dpdGNoX3RpbWVyKToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOiAoZ3N0X3JnX3ZvbHVtZV9pbml0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzogKGNyZWF0ZV9zdHJlYW0pOgoJICAqIGdzdC9zZHAvZ3N0c2RwZGVtdXguYzogKGdzdF9zZHBfZGVtdXhfc3RyZWFtX2NvbmZpZ3VyZV91ZHApLAoJICAoZ3N0X3NkcF9kZW11eF9zdHJlYW1fY29uZmlndXJlX3VkcF9zaW5rKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHBhZF9hZGRlZF9zZXR1cF9kYXRhX2NoZWNrX2Zsb2F0MzJfOGNoX2NiKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6IChzZW5kX2Vvc19ldmVudCksCgkgIChzZW5kX3RhZ19ldmVudCk6CgkgIERvbid0IHVzZSBfZ3N0X3BhZCgpLgoKMjAwOC0wNS0xNiAxOTo1NjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL01ha2VmaWxlLmFtOiBEb24ndCBhdHRlbXB0IHRvIGJ1aWxkIHBsdWdpbiBkb2NzIHdoZW4gdGhleSdyZSBkaXNhYmxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgYXR0ZW1wdCB0byBidWlsZCBwbHVnaW4gZG9jcyB3aGVuIHRoZXkncmUgZGlzYWJsZWQuCgkgICogZ3N0L2JheWVyL01ha2VmaWxlLmFtOgoJICBBZGQgbGliZ3N0dmlkZW8gdG8gdGhlIGxpbmsuCgkgICogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkgIEZpeCBsaW5rIG9yZGVyLCBhbmQgbW92ZSBMSUJTIHRoaW5ncyB0byBfTElCUwoKMjAwOC0wNS0xNCAyMTowMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBTaW1wbHkgZHJvcCBiYWQgUlRQIHBhY2tldHMgd2l0aCBhIHdhcm5pbmcgaW5zdGVhZCBvZiBqdXN0IHBvc3RpbmcgYW4gZXJyb3IgYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbik6CgkgIFNpbXBseSBkcm9wIGJhZCBSVFAgcGFja2V0cyB3aXRoIGEgd2FybmluZyBpbnN0ZWFkIG9mIGp1c3QgcG9zdGluZyBhbgoJICBlcnJvciBhbmQgc3RvcHBpbmcuIFRoaXMgaXMgYSBwZXJmZWN0bHkgcmVjb3ZlcmFibGUgZXZlbnQgYW5kIHdlIGRvbid0CgkgIGZvcmNlIHBlb3BsZSB0byB1c2UgYW4gcnRwYmluIHRvIGZpbHRlciBvdXQgYmFkIHBhY2tldHMgZmlyc3QuCgoyMDA4LTA1LTEzIDA5OjA2OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEFjdHVhbGx5IGFkZCB0aGUgZG8tbG9zdCBwcm9wZXJ0eSB0byB0aGUgb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpOgoJICBBY3R1YWxseSBhZGQgdGhlIGRvLWxvc3QgcHJvcGVydHkgdG8gdGhlIG9iamVjdC4KCjIwMDgtMDUtMTIgMTg6NDM6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogQXZvaWQgd2FpdGluZyBmb3IgYSBuZWdhdGl2ZSAoaHVnZSkgZHVyYXRpb24gd2hlbiB0aGUgbGFzdCBwYWNrZXQgaGFzIGEgbG93ZXIgdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIEF2b2lkIHdhaXRpbmcgZm9yIGEgbmVnYXRpdmUgKGh1Z2UpIGR1cmF0aW9uIHdoZW4gdGhlIGxhc3QgcGFja2V0IGhhcyBhCgkgIGxvd2VyIHRpbWVzdGFtcCB0aGFuIHRoZSBjdXJyZW50IHBhY2tldC4KCjIwMDgtMDUtMTIgMTQ6Mjg6MDkgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBNYWtlIHN1cmUgdG8gdW5yZWYgdGhlIHJ0cHNlc3Npb24gcmV0dXJuZWQgYnkgZ3N0X3BhZF9nZXRfcGFyZW50KCkgdG8gcHJldmVudCBhIG1lbW9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9xdWVyeV9zZW5kX3J0Y3Bfc3JjKToKCSAgTWFrZSBzdXJlIHRvIHVucmVmIHRoZSBydHBzZXNzaW9uIHJldHVybmVkIGJ5IGdzdF9wYWRfZ2V0X3BhcmVudCgpIHRvCgkgIHByZXZlbnQgYSBtZW1vcnkgbGVhay4KCjIwMDgtMDUtMTIgMTQ6MTI6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IEluaXRpYWxpc2Ugd2l0aCBHU1RfQ0xPQ0tfVElNRV9OT05FIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApOgoJICBJbml0aWFsaXNlIHdpdGggR1NUX0NMT0NLX1RJTUVfTk9ORSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nLgoKMjAwOC0wNS0wOSAwNzo0MTo1OCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogTWFrZSBzdXJlIHRvIHVucmVmIHRoZSBjYXBzIHVzZWQgYnkgUlRQU291cmNlIHRvIHByZXZlbnQgYSBtZW1vcnkgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2ZpbmFsaXplKToKCSAgTWFrZSBzdXJlIHRvIHVucmVmIHRoZSBjYXBzIHVzZWQgYnkgUlRQU291cmNlIHRvIHByZXZlbnQgYSBtZW1vcnkgbGVhay4KCjIwMDgtMDUtMDggMDk6NDM6MzMgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IFVubG9jayB0aGUgc2Vzc2lvbiBsb2NrIHdoZW4gY2FsbGluZyBvbmUgb2Ygb3VyIGNhbGxiYWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChzb3VyY2VfY2xvY2tfcmF0ZSksCgkgIChydHBfc2Vzc2lvbl9wcm9jZXNzX2J5ZSksIChydHBfc2Vzc2lvbl9zZW5kX2J5ZV9sb2NrZWQpOgoJICBVbmxvY2sgdGhlIHNlc3Npb24gbG9jayB3aGVuIGNhbGxpbmcgb25lIG9mIG91ciBjYWxsYmFja3MuCgkgIEZpeGVzICM1MzIwMTEuCgoyMDA4LTA1LTA4IDA2OjIzOjM5ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IFNlbmQgUlRQIEJZRSBjb21tYW5kIG9uIEVPUy4gRml4ZXMgYnVnICM1MzE5NTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydHBfc2luayk6CgkgIFNlbmQgUlRQIEJZRSBjb21tYW5kIG9uIEVPUy4gRml4ZXMgYnVnICM1MzE5NTUuCgoyMDA4LTA0LTI1IDExOjMyOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLio6IEV4cG9zZSBuZXcgaml0dGVyYnVmZmVyIHByb3BlcnR5IGluIHJ0cGJpbiB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3N0cmVhbSksIChnc3RfcnRwX2Jpbl9pbml0KSwKCSAgKGdzdF9ydHBfYmluX3NldF9wcm9wZXJ0eSksIChnc3RfcnRwX2Jpbl9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBFeHBvc2UgbmV3IGppdHRlcmJ1ZmZlciBwcm9wZXJ0eSBpbiBydHBiaW4gdG9vLgoKMjAwOC0wNC0yNSAxMToyMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBEaXNhYmxlIHNlbmRpbmcgb3V0IHJ0cCBwYWNrZXQgbG9zdCBldmVudHMgYnkgZGVmYXVsdCBhbmQgbWFrZSBhIHByb3BlcnR5IHRvIGVuYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2dldF9wcm9wZXJ0eSk6CgkgIERpc2FibGUgc2VuZGluZyBvdXQgcnRwIHBhY2tldCBsb3N0IGV2ZW50cyBieSBkZWZhdWx0IGFuZCBtYWtlIGEKCSAgcHJvcGVydHkgdG8gZW5hYmUgaXQuIFdlIHdpbGwgbGlrZWx5IGVuYWJsZSBpdCBieSBkZWZhdWx0IHdoZW4gdGhlIGJhc2UKCSAgZGVwYXlsb2FkZXJzIGhhdmUgYSBkZWZhdWx0IGhhbmRsZXIgZm9yIHRoZW0gc28gdGhhdCB3ZSBkb24ndCBzZW5kIHRoZXNlCgkgIGV2ZW50cyBhbGwgdGhyb3VnaCB0aGUgcGlwZWxpbmUgZm9yIG5vdy4KCjIwMDgtMDQtMjUgMDk6MzU6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogUmVtb3ZlIHByaXZhdGUgdmVyc2lvbiBvZiBhIGZ1bmN0aW9uIHRoYXQgaXMgaW4gLWJhc2Ugbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9pbml0KSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9mbHVzaF9zdG9wKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zcmNfZXZlbnQpLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYWluKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKToKCSAgUmVtb3ZlIHByaXZhdGUgdmVyc2lvbiBvZiBhIGZ1bmN0aW9uIHRoYXQgaXMgaW4gLWJhc2Ugbm93LgoJICBBZGQgc3JjIGV2ZW50IGhhbmRsZXIuCgkgIFJld29yayB0aGUgaml0dGVyYnVmZmVyIHB1c2hpbmcgbG9vcCBzbyB0aGF0IGl0IGNhbiBxdWlja2x5IHJlYWN0IHRvCgkgIGxvc3QgcGFja2V0cyBhbmQgaW5zdHJ1Y3QgdGhlIGRlcGF5bG9hZGVyIG9mIHRoZW0uIFRoaXMgY2FuIHRoZW4gYmUgdXNlZAoJICB0byBpbXBsZW1lbnQgZXJyb3IgY29uY2VhbG1lbnQgZGF0YS4KCjIwMDgtMDQtMjUgMDg6MjE6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IFNldCB1cCBzb21lIGludGVybmFsIGxpbmtzIGZ1bmN0aW9ucyBmb3IgdGhlIFJUQ1AgYW5kIHN5bmMgcGFkcyBiZWNhdXNlIHRoZSBkZWZhdWx0cyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAoZ3N0X3J0cF9zZXNzaW9uX3F1ZXJ5X3NlbmRfcnRjcF9zcmMpLCAoY3JlYXRlX3JlY3ZfcnRjcF9zaW5rKSwKCSAgKGNyZWF0ZV9zZW5kX3J0Y3Bfc3JjKToKCSAgU2V0IHVwIHNvbWUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb25zIGZvciB0aGUgUlRDUCBhbmQgc3luYyBwYWRzIGJlY2F1c2UKCSAgdGhlIGRlZmF1bHRzIGFyZSByZWFsbHkgbm90IGNvcnJlY3QuCgkgIEltcGxlbWVudCBhIHF1ZXJ5IGhhbmRsZXIgZm9yIHRoZSBSVENQIHNyYyBwYWQsIG1vc3RseSB0byBjb3JyZWN0bHkKCSAgcmVwb3J0IGFib3V0IHRoZSBsYXRlbmN5LgoKMjAwOC0wNC0yNSAwODoxNTo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogQWxzbyBrZWVwIHRyYWNrIG9mIHRoZSBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRvZ2V0aGVyIHdpdGggdGhlIGZpcnN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ3N0X3J0cF9iaW5fYXNzb2NpYXRlKSwKCSAgKGdzdF9ydHBfYmluX3N5bmNfY2hhaW4pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHVwZGF0ZV9hcnJpdmFsX3N0YXRzKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc3IpLCAocnRwX3Nlc3Npb25fb25fdGltZW91dCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2luaXQpLAoJICAoY2FsY3VsYXRlX2ppdHRlcik6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuaDoKCSAgQWxzbyBrZWVwIHRyYWNrIG9mIHRoZSBmaXJzdCBidWZmZXIgdGltZXN0YW1wIHRvZ2V0aGVyIHdpdGggdGhlIGZpcnN0CgkgIFJUUCB0aW1lc3RhbXAgYXMgdGhleSBib3RoIGFyZSBuZWVkZWQgdG8gY29uc3RydWN0IHRoZSB0aW1pbmcgb2YKCSAgb3V0Z29pbmcgcGFja2V0cyBpbiB0aGUgaml0dGVyYnVmZmVyIGFuZCBhcmUgdGhlcmVmb3JlIGFsc28gbmVlZGVkIHRvCgkgIG1hbmFnZSBsaXAtc3luYy4gVGhpcyBmaXhlcyBsaXAtc3luYyBpZiB0aGUgZmlyc3QgUlRQIHBhY2tldHMgYXJyaXZlCgkgIHdpdGggYSB3aWxkbHkgZGlmZmVyZW50IGdhcC4KCjIwMDgtMDQtMjEgMDg6MjY6MzcgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogUmVmIGNhcHMgd2hlbiBpbnNlcnRpbmcgaW50byB0aGUgY2FjaGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChjcmVhdGVfc2Vzc2lvbiksIChnZXRfcHRfbWFwKSwKCSAgKG5ld19zc3JjX3BhZF9mb3VuZCk6CgkgIFJlZiBjYXBzIHdoZW4gaW5zZXJ0aW5nIGludG8gdGhlIGNhY2hlLgoJICBEb24ndCBsZWFrIHBhZHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZ2V0X2Nsb2NrX3JhdGUpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX3F1ZXJ5KToKCSAgQXZvaWQgYSBjYXBzIGxlYWsuCgkgIERvbid0IGxlYWsgcmVmY291bnQgaW4gcXVlcnkuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOiAoZ3N0X3J0cF9wdF9kZW11eF9nZXRfY2FwcyksCgkgIChnc3RfcnRwX3B0X2RlbXV4X2NoYWluKToKCSAgQXZvaWQgY2FwcyBsZWFrcy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChzb3VyY2VfZ2V0X3NkZXNfc3RydWN0dXJlKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9pbml0KSwgKHJldHVybl90cnVlKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jbGVhcl9wdF9tYXApLCAoZ3N0X3J0cF9zZXNzaW9uX2NhY2hlX2NhcHMpLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2Nsb2NrX3JhdGUpOgoJICBSZWYgY2FwcyB3aGVuIGluc2VydGluZyBpbnRvIHRoZSBjYWNoZS4KCSAgRml4IHNvbWUgbW9yZSBjYXBzIGxlYWtzLiBGaXhlcyAjNTI4MjQ1LgoKMjAwOC0wNC0xNyAwNzozMTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogVW5zZXQgR1ZhbHVlcyBhZnRlciBnX3NpZ25hbF9lbWl0diBzbyB0aGF0IHdlIGF2b2lkIGEgcmVmY291bnQgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnZXRfcHRfbWFwKSwgKGZyZWVfY2xpZW50KSwKCSAgKGdzdF9ydHBfYmluX2Fzc29jaWF0ZSksIChnc3RfcnRwX2Jpbl9nZXRfZnJlZV9wYWRfbmFtZSk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZ2V0X2Nsb2NrX3JhdGUpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzogKGdzdF9ydHBfcHRfZGVtdXhfZ2V0X2NhcHMpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9jbG9ja19yYXRlKToKCSAgVW5zZXQgR1ZhbHVlcyBhZnRlciBnX3NpZ25hbF9lbWl0diBzbyB0aGF0IHdlIGF2b2lkIGEgcmVmY291bnQgbGVhay4KCSAgRG9uJ3QgbGVhayBhIHBhZG5hbWUuCgkgIERvbid0IGxlYWsgY2xpZW50IHN0cmVhbXMgbGlzdC4KCSAgTG9jayBydHBiaW4gd2hlbiBhc3NvY2lhdGluZyBzdHJlYW1zLiBGaXhlcyAjNTI4MjQ1LgoKMjAwOC0wNC0wOSAyMjoyNzo1MCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRwbWFuYWdlci86IEF2b2lkIGxlYWtpbmcgcGFkcyBpbiB0aGUgUlRQIG1hbmFnZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZnJlZV9zZXNzaW9uKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fZmluYWxpemUpOgoJICBBdm9pZCBsZWFraW5nIHBhZHMgaW4gdGhlIFJUUCBtYW5hZ2VyLgoKMjAwOC0wMy0xMSAxMjo0MDo1OCArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uKjogSW1wbGVtZW50IGNvbGxpc2lvbiBhbmQgbG9vcCBkZXRlY3Rpb24gaW4gcnRwbWFuYWdlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChmaW5kX2FkZF9jb25mbGljdGluZ19hZGRyZXNzZXMpLAoJICAoY2hlY2tfY29sbGlzaW9uKSwgKG9idGFpbl9zb3VyY2UpLCAocnRwX3Nlc3Npb25fY3JlYXRlX25ld19zc3JjKSwKCSAgKHJ0cF9zZXNzaW9uX2NyZWF0ZV9zb3VyY2UpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19zciksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3JyKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc2RlcyksIChydHBfc2Vzc2lvbl9wcm9jZXNzX2J5ZSksCgkgIChydHBfc2Vzc2lvbl9zZW5kX2J5ZV9sb2NrZWQpLCAocnRwX3Nlc3Npb25fc2VuZF9ieWUpLAoJICAocnRwX3Nlc3Npb25fb25fdGltZW91dCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBJbXBsZW1lbnQgY29sbGlzaW9uIGFuZCBsb29wIGRldGVjdGlvbiBpbiBydHBtYW5hZ2VyLgoJICBGaXhlcyAjNTIwNjI2LgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9yZXNldCksCgkgIChydHBfc291cmNlX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBBZGQgbWV0aG9kIHRvIHJlc2V0IHN0YXRzLgoKMjAwOC0wMy0xMSAxMTozNjowMyArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogQXZvaWQgYSBkZWFkbG9jayB3aGVuIGpvaW5pbmcgdGhlIFJUQ1AgdGhyZWFkIGluIFBBVVNFRCBiZWNhdXNlIGl0IG1pZ2h0IGJlIGJsb2NrZWQgZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9pbml0KSwKCSAgKHJ0Y3BfdGhyZWFkKSwgKHN0YXJ0X3J0Y3BfdGhyZWFkKSwgKHN0b3BfcnRjcF90aHJlYWQpLAoJICAoam9pbl9ydGNwX3RocmVhZCksIChnc3RfcnRwX3Nlc3Npb25fY2hhbmdlX3N0YXRlKToKCSAgQXZvaWQgYSBkZWFkbG9jayB3aGVuIGpvaW5pbmcgdGhlIFJUQ1AgdGhyZWFkIGluIFBBVVNFRCBiZWNhdXNlIGl0IG1pZ2h0CgkgIGJlIGJsb2NrZWQgZG93bnN0cmVhbS4gQWxzbyBhdm9pZCBzcGF3bmluZyBtdWx0aXBsZSBydGNwIHRocmVhZHMuCgkgIEZpeGVzICM1MjA4OTQuCgoyMDA4LTAzLTExIDEwOjQzOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogRG9uJ3QgdHJ5IHRvIHJlc2V0IHRoZSBjbG9jayBza2V3IHdoZW4gd2UgaGF2ZSBubyB0aW1lc3RhbXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKGNhbGN1bGF0ZV9za2V3KToKCSAgRG9uJ3QgdHJ5IHRvIHJlc2V0IHRoZSBjbG9jayBza2V3IHdoZW4gd2UgaGF2ZSBubyB0aW1lc3RhbXBzLgoJICBGaXhlcyAjNTE5MDA1LgoKMjAwOC0wMi0yMCAwOTozMzoyNSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBGaXggc21hbGwgbWVtb3J5IGxlYWssIGxlYWtpbmcgY2Fwcy4gRml4ZXMgI2J1ZyA1MTc1NzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChuZXdfc3NyY19wYWRfZm91bmQpOgoJICBGaXggc21hbGwgbWVtb3J5IGxlYWssIGxlYWtpbmcgY2Fwcy4gRml4ZXMgI2J1ZyA1MTc1NzEuCgoyMDA4LTAyLTE0IDE2OjI1OjUxICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IElnbm9yZSBzdHJlYW1zIHRoYXQgZGlkIG5vdCByZWNlaXZlIGFuIFNSIHBhY2tldCB3aGVuIGRvaW5nIHN5bmNocm9uaXNhdGlvbi4gRml4ZXMgIzUxNjE2MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ3N0X3J0cF9iaW5fYXNzb2NpYXRlKToKCSAgSWdub3JlIHN0cmVhbXMgdGhhdCBkaWQgbm90IHJlY2VpdmUgYW4gU1IgcGFja2V0IHdoZW4gZG9pbmcKCSAgc3luY2hyb25pc2F0aW9uLiBGaXhlcyAjNTE2MTYwLgoKMjAwOC0wMS0yOSAxODo1NzoyNyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBUcnkgdG8gZ2V0IHRoZSBuZXcgY2xvY2stcmF0ZSBmcm9tIHRoZSBidWZmZXIgY2FwcyB3aGVuIHdlIHJlY2VpdmUgYSBuZXcgcGF5bG9hZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRoaWpzIFZlcm1laXIgIDx0aGlqc3Zlcm1laXIgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbik6CgkgIFRyeSB0byBnZXQgdGhlIG5ldyBjbG9jay1yYXRlIGZyb20gdGhlIGJ1ZmZlciBjYXBzIHdoZW4gd2UgcmVjZWl2ZSBhIG5ldwoJICBwYXlsb2FkIHR5cGUgaW5zdGVhZCBvZiBhbHdheXMgZmlyaW5nIHRoZSBzaWduYWwuIEZpeGVzICM1MTI3NzQuCgoyMDA4LTAxLTI1IDE2OjU4OjAwICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEFsc28gaGFuZGxlIGxpcC1zeW5jIHdoZW4gdGhlIGNsb2NrLXJhdGUgaXMgbm90IHByb3ZpZGVkIHdpdGggY2FwcyBidXQgd2l0aCBhIHNpZ25hbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ3N0X3J0cF9iaW5fYXNzb2NpYXRlKSwKCSAgKGNyZWF0ZV9zdHJlYW0pLCAocGF5bG9hZF90eXBlX2NoYW5nZSksIChuZXdfc3NyY19wYWRfZm91bmQpOgoJICBBbHNvIGhhbmRsZSBsaXAtc3luYyB3aGVuIHRoZSBjbG9jay1yYXRlIGlzIG5vdCBwcm92aWRlZCB3aXRoIGNhcHMgYnV0CgkgIHdpdGggYSBzaWduYWwuCgoyMDA4LTAxLTI1IDE2OjAwOjUyICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cG1hbmFnZXIvOiBSZW1vdmUgdGhlIGZpeGVkIGNsb2NrLXJhdGUgZnJvbSB0aGUgaml0dGVyYnVmZmVyIGFuZCBleHRlbmQgaXQgc28gdGhhdCBhIGNsb2NrLXJhdGUgY2FuIGJlIHByb3ZpZGVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9qaXR0ZXJfYnVmZmVyX3NpbmtfcGFyc2VfY2FwcyksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiAoY2FsY3VsYXRlX3NrZXcpLAoJICAocnRwX2ppdHRlcl9idWZmZXJfaW5zZXJ0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuaDoKCSAgUmVtb3ZlIHRoZSBmaXhlZCBjbG9jay1yYXRlIGZyb20gdGhlIGppdHRlcmJ1ZmZlciBhbmQgZXh0ZW5kIGl0IHNvIHRoYXQKCSAgYSBjbG9jay1yYXRlIGNhbiBiZSBwcm92aWRlZCB3aXRoIGVhY2ggYnVmZmVyIGluc3RlYWQuIEZpeGVzICM1MTE2ODYuCgoyMDA4LTAxLTI1IDE1OjQ5OjU1ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IFJlbW92ZSBvbGQgdW51c2VkIHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfaW5pdCksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIFJlbW92ZSBvbGQgdW51c2VkIHZhcmlhYmxlLgoJICBUcmFjayBwdCBvbiBpbnB1dCBidWZmZXJzIGFuZCBnZXQgdGhlIGNsb2NrLXJhdGUgd2hlbiBpdCBjaGFuZ2VzLgoJICBJZ25vcmUgcGFja2V0cyB3aXRoIHVua25vd24gY2xvY2stcmF0ZS4gU2VlICM1MTE2ODYuCgoyMDA4LTAxLTI1IDAxOjQ0OjI3ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IEZpeCB1bnJlZiBvZiBidWZmZXIgdXNpbmcgdGhlIHdyb25nIGZ1bmN0aW9uLiAgRml4ZXMgIzUxMTkyMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IEZpeCB1bnJlZiBvZiBidWZmZXIgdXNpbmcgdGhlCgkgIHdyb25nIGZ1bmN0aW9uLiAgRml4ZXMgIzUxMTkyMAoKMjAwOC0wMS0xMSAxNzowMjozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogSWYgd2UgZmluZCB0aGUgY2FwcyBpbiB0aGUgY2FjaGUsIHVzZSBpdCB0byBwYXJzZSB0aGUgY2xvY2stcmF0ZSBpbnN0ZWFkIG9mIHJldHVybmluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xvY2tfcmF0ZSk6CgkgIElmIHdlIGZpbmQgdGhlIGNhcHMgaW4gdGhlIGNhY2hlLCB1c2UgaXQgdG8gcGFyc2UgdGhlIGNsb2NrLXJhdGUgaW5zdGVhZAoJICBvZiByZXR1cm5pbmcgYW4gZXJyb3IuIEZpeGVzIGEgVE9ETyBhcyBmb3VuZCBieSBZb3VuZXNzIEFsYW91aS4KCjIwMDgtMDEtMTEgMTY6NDU6NTcgKzAwMDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aUBjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvcnRwbWFuYWdlci86IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIGRpZmZlcmVudCB1c2VyX2RhdGEgZm9yIGVhY2ggb2YgdGhlIGNhbGxiYWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBZb3VuZXNzIEFsYW91aSA8eW91bmVzcyBkb3QgYWxhb3VpIGF0IGNvbGxhYm9yYSBkb3QgY28gZG90IHVrPgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9jbG9ja19yYXRlKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9zZXRfY2FsbGJhY2tzKSwKCSAgKHJ0cF9zZXNzaW9uX3NldF9wcm9jZXNzX3J0cF9jYWxsYmFjayksCgkgIChydHBfc2Vzc2lvbl9zZXRfc2VuZF9ydHBfY2FsbGJhY2spLAoJICAocnRwX3Nlc3Npb25fc2V0X3NlbmRfcnRjcF9jYWxsYmFjayksCgkgIChydHBfc2Vzc2lvbl9zZXRfc3luY19ydGNwX2NhbGxiYWNrKSwKCSAgKHJ0cF9zZXNzaW9uX3NldF9jbG9ja19yYXRlX2NhbGxiYWNrKSwKCSAgKHJ0cF9zZXNzaW9uX3NldF9yZWNvbnNpZGVyX2NhbGxiYWNrKSwgKHNvdXJjZV9wdXNoX3J0cCksCgkgIChzb3VyY2VfY2xvY2tfcmF0ZSksIChydHBfc2Vzc2lvbl9wcm9jZXNzX2J5ZSksCgkgIChydHBfc2Vzc2lvbl9wcm9jZXNzX3J0Y3ApLCAocnRwX3Nlc3Npb25fc2VuZF9ieWUpLAoJICAocnRwX3Nlc3Npb25fb25fdGltZW91dCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBkaWZmZXJlbnQgdXNlcl9kYXRhIGZvciBlYWNoIG9mIHRoZSBjYWxsYmFja3MuCgkgIEZpeGVzICM1MDg1ODcuCgoyMDA4LTAxLTEwIDIwOjU3OjE3ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEZpeCBkb2N1bWVudGF0aW9uIGZvciBsYXRlc3QgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGZvciBsYXRlc3QgcGF0Y2gKCjIwMDgtMDEtMTAgMTQ6MzQ6MzAgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogQWxsb3cgcmVxdWVzdF9uZXdfcGFkIHdpdGggbmFtZSBOVUxMIChidWcgIzUwODUxNSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6CgkgIEFsbG93IHJlcXVlc3RfbmV3X3BhZCB3aXRoIG5hbWUgTlVMTCAoYnVnICM1MDg1MTUpCgoyMDA4LTAxLTA5IDE0OjM5OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBEb24ndCBzZXQgZml4ZWQgY2Fwcywgd2UgY2FuIGJhc2ljYWxseSBkbyBldmVyeXRoaW5nIHRoZSB1cHN0ZWFtIHBlZXIgcGFkIGNhbiByZW5lZ290Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGNyZWF0ZV9zZW5kX3J0cF9zaW5rKToKCSAgRG9uJ3Qgc2V0IGZpeGVkIGNhcHMsIHdlIGNhbiBiYXNpY2FsbHkgZG8gZXZlcnl0aGluZyB0aGUgdXBzdGVhbSBwZWVyCgkgIHBhZCBjYW4gcmVuZWdvdGlhdGUgdG8uIEZpeGVzICM1MDc5NDAuCgoyMDA4LTAxLTA0IDE4OjQ3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IERvbid0IHVucmVmIHRoZSBwb3BwZWQgYnVmZmVyIHdoZW4gd2UgZG9uJ3QgaGF2ZSBvd25lcnNoaXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApOgoJICBEb24ndCB1bnJlZiB0aGUgcG9wcGVkIGJ1ZmZlciB3aGVuIHdlIGRvbid0IGhhdmUgb3duZXJzaGlwLgoJICBGaXhlcyAjNTA3MDIwLgoKMjAwNy0xMi0zMSAxMzoxMjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOiBEb24ndCBjbGVhbiB1cCBwYWRzIHdoZW4gZ29pbmcgdG8gUEFVU0VELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBjbGVhbiB1cCBwYWRzIHdoZW4gZ29pbmcgdG8gUEFVU0VELgoKMjAwNy0xMi0xMiAxNjo1OTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogQ2xlYW4gdXAgdGhlIGR5bmFtaWMgcGFkcyB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X2ZpbmFsaXplKSwKCSAgKGdzdF9ydHBfcHRfZGVtdXhfc2V0dXApLCAoZ3N0X3J0cF9wdF9kZW11eF9yZWxlYXNlKSwKCSAgKGdzdF9ydHBfcHRfZGVtdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzogKGdzdF9ydHBfc3NyY19kZW11eF9yZXNldCksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfZGlzcG9zZSksIChnc3RfcnRwX3NzcmNfZGVtdXhfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbiB1cCB0aGUgZHluYW1pYyBwYWRzIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgoyMDA3LTEyLTEyIDEyOjExOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvOiBGaXggc29tZSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9maW5hbGl6ZSksCgkgIChnc3RfcnRwX2Jpbl9zZXRfc2Rlc19zdHJpbmcpLCAoZ3N0X3J0cF9iaW5fZ2V0X3NkZXNfc3RyaW5nKSwKCSAgKGdzdF9ydHBfYmluX2hhbmRsZV9tZXNzYWdlKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9maW5hbGl6ZSksCgkgIChydHBfc2Vzc2lvbl9zZW5kX2J5ZSk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX2ZpbmFsaXplKToKCSAgRml4IHNvbWUgbGVha3MuCgoyMDA3LTEyLTEwIDE4OjM2OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvOiBQb3N0IGEgbWVzc2FnZSB3aGVuIHRoZSBTREVTIGluZm9yIGNoYW5nZXMgZm9yIGEgc291cmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9iaW5faGFuZGxlX21lc3NhZ2UpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKHNvdXJjZV9nZXRfc2Rlc19zdHJ1Y3R1cmUpLAoJICAob25fc3NyY19zZGVzKToKCSAgUG9zdCBhIG1lc3NhZ2Ugd2hlbiB0aGUgU0RFUyBpbmZvciBjaGFuZ2VzIGZvciBhIHNvdXJjZS4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6CgkgIFVwZGF0ZSBzb21lIGNvbW1lbnRzLgoKMjAwNy0xMi0xMCAxNTozNDoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogQWRkIHNpZ25hbCB0byBub3RpZnkgb2YgYW4gU0RFUyBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAob25fc3NyY19zZGVzKSwgKGNyZWF0ZV9zZXNzaW9uKSwKCSAgKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cG1hbmFnZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKG9uX3NzcmNfc2RlcyksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksIChnc3RfcnRwX3Nlc3Npb25faW5pdCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2NsYXNzX2luaXQpLAoJICAob25fc3NyY19zZGVzKSwgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc2Rlcyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuaDoKCSAgQWRkIHNpZ25hbCB0byBub3RpZnkgb2YgYW4gU0RFUyBjaGFuZ2UuCgkgIEZpeCBvYmplY3QgdHlwZSBpbiB0aGUgc2lnbmFsIGNhbGxiYWNrcy4KCjIwMDctMTItMTAgMTQ6MDM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uKjogRXhwb3NlIFNERVMgaXRlbXMgYXMgcHJvcGVydGllcyBhbmQgY29uZmlndXJlIHRoZSBzZXNzaW9uIG1hbmFnZXJzIHdpdGggdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChjcmVhdGVfc2Vzc2lvbiksCgkgIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwgKGdzdF9ydHBfYmluX2luaXQpLCAoc2Rlc190eXBlX3RvX25hbWUpLAoJICAoZ3N0X3J0cF9iaW5fc2V0X3NkZXNfc3RyaW5nKSwgKGdzdF9ydHBfYmluX2dldF9zZGVzX3N0cmluZyksCgkgIChnc3RfcnRwX2Jpbl9zZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9iaW5fZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgRXhwb3NlIFNERVMgaXRlbXMgYXMgcHJvcGVydGllcyBhbmQgY29uZmlndXJlIHRoZSBzZXNzaW9uIG1hbmFnZXJzIHdpdGgKCSAgdGhlbS4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKHJ0cF9zb3VyY2VfY2xhc3NfaW5pdCksCgkgIChydHBfc291cmNlX3NldF9wcm9wZXJ0eSk6CgkgIEZpeCBTU1JDIHByb3BlcnR5LgoKMjAwNy0xMi0xMCAxMTowODoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogVXBkYXRlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3Nlc3Npb24pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOgoJICBVcGRhdGUgY29tbWVudC4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25fc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpOgoJICBEZWZpbmUgc29tZSBHT2JqZWN0IHByb3BlcnRpZXMgdG8gc2V0IFNERVMgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb24uCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChydHBfc2Vzc2lvbl9pbml0KSwgKHJ0cF9zZXNzaW9uX2ZpbmFsaXplKSwKCSAgKHJ0cF9zZXNzaW9uX3NldF9wcm9wZXJ0eSksIChydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpLAoJICAob25fc3NyY19zZGVzKSwgKHJ0cF9zZXNzaW9uX3NldF9iYW5kd2lkdGgpLAoJICAocnRwX3Nlc3Npb25fZ2V0X2JhbmR3aWR0aCksIChydHBfc2Vzc2lvbl9zZXRfcnRjcF9mcmFjdGlvbiksCgkgIChydHBfc2Vzc2lvbl9nZXRfcnRjcF9mcmFjdGlvbiksIChydHBfc2Vzc2lvbl9zZXRfc2Rlc19zdHJpbmcpLAoJICAocnRwX3Nlc3Npb25fZ2V0X3NkZXNfc3RyaW5nKSwgKG9idGFpbl9zb3VyY2UpLAoJICAocnRwX3Nlc3Npb25fZ2V0X2ludGVybmFsX3NvdXJjZSksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3NkZXMpLAoJICAocnRwX3Nlc3Npb25fc2VuZF9ydHApLCAocnRwX3Nlc3Npb25fbmV4dF90aW1lb3V0KSwgKHNlc3Npb25fc2RlcyksCgkgIChpc19ydGNwX3RpbWUpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgQWRkIHNpZ25hbCB3aGVuIG5ldyBTREVTIGluZm9yIGhhcyBiZWVuIGZvdW5kIGZvciBhIHNvdXJjZS4KCSAgQ3JlYXRlIHByb3BlcnRpZXMgZm9yIFNERVMgYW5kIG90aGVyIGluZm8uCgkgIFNpbXBsaWZ5IHRoZSBTREVTIEFQSS4KCSAgQWRkIG1ldGhvZCBmb3IgZ2V0dGluZyB0aGUgaW50ZXJuYWwgc291cmNlIG9iamVjdCBvZiB0aGUgc2Vzc2lvbi4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKHJ0cF9zb3VyY2VfY2xhc3NfaW5pdCksCgkgIChydHBfc291cmNlX2ZpbmFsaXplKSwgKHJ0cF9zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKHJ0cF9zb3VyY2VfZ2V0X3Byb3BlcnR5KSwgKHJ0cF9zb3VyY2Vfc2V0X2NhbGxiYWNrcyksCgkgIChydHBfc291cmNlX2dldF9zc3JjKSwgKHJ0cF9zb3VyY2Vfc2V0X2FzX2NzcmMpLAoJICAocnRwX3NvdXJjZV9pc19hc19jc3JjKSwgKHJ0cF9zb3VyY2VfaXNfYWN0aXZlKSwKCSAgKHJ0cF9zb3VyY2VfaXNfdmFsaWRhdGVkKSwgKHJ0cF9zb3VyY2VfaXNfc2VuZGVyKSwKCSAgKHJ0cF9zb3VyY2VfcmVjZWl2ZWRfYnllKSwgKHJ0cF9zb3VyY2VfZ2V0X2J5ZV9yZWFzb24pLAoJICAocnRwX3NvdXJjZV9zZXRfc2RlcyksIChydHBfc291cmNlX3NldF9zZGVzX3N0cmluZyksCgkgIChydHBfc291cmNlX2dldF9zZGVzKSwgKHJ0cF9zb3VyY2VfZ2V0X3NkZXNfc3RyaW5nKSwKCSAgKHJ0cF9zb3VyY2VfZ2V0X25ld19zciksIChydHBfc291cmNlX2dldF9uZXdfcmIpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICBBZGQgR09iamVjdCBwcm9wZXJ0aWVzIGZvciB2YXJpb3VzIHRoaW5ncy4KCSAgRG9uJ3QgbGVhayB0aGUgYnllIHJlYXNvbi4KCjIwMDctMTEtMjIgMDk6MDg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogaml0dGVyYnVmZmVyIGNhbiBidWZmZXIgYW4gdW5saW1pdGVkIGFtb3VudCBvZiB0aW1lIGFuZCB0aHVzIGhhcyBubyBtYXhfbGF0ZW5jeSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfcXVlcnkpOgoJICBqaXR0ZXJidWZmZXIgY2FuIGJ1ZmZlciBhbiB1bmxpbWl0ZWQgYW1vdW50IG9mIHRpbWUgYW5kIHRodXMgaGFzIG5vCgkgIG1heF9sYXRlbmN5IHJlcXVpcmVtZW50cy4KCjIwMDctMTEtMDIgMjE6NDU6MzggKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IEZpeCBiYWQgZnVuY3Rpb24gc2lnbmF0dXJlcyAoIzQ5Mjc5OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICBGaXggYmFkIGZ1bmN0aW9uIHNpZ25hdHVyZXMgKCM0OTI3OTgpLgoKMjAwNy0xMC0wOSAxMDowMTozOSArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEZpeCBtZW1sZWFrLiBGaXhlcyAjNDg0OTkwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZSBhdCB5YWhvbyBkb3QgZnI+CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChjcmVhdGVfc3RyZWFtKSwKCSAgKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpOgoJICBGaXggbWVtbGVhay4gRml4ZXMgIzQ4NDk5MC4KCjIwMDctMTAtMDggMTc6NDY6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogRml4IGNvbXBpbGVyIHdhcm5pbmdzIHNob3duIGJ5IEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGlicmZiL3JmYmJ1ZmZlci5jOiAocmZiX2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgKiBnc3QvbGlicmZiL3JmYmJ1ZmZlci5oOgoJICAqIGdzdC9saWJyZmIvcmZiZGVjb2Rlci5jOiAocmZiX3NvY2tldF9nZXRfYnVmZmVyKToKCSAgKiBnc3QvbXBlZ3ZpZGVvcGFyc2UvbXBlZ3ZpZGVvcGFyc2UuYzogKGdzdF9tcGVndmlkZW9wYXJzZV9jaGFpbik6CgkgICogZ3N0L25zZi9uZXM2NTAyLmM6IChuZXM2NTAyX2V4ZWN1dGUpOgoJICAqIGdzdC9yZWFsL2dzdHJlYWxhdWRpb2RlYy5jOiAoZ3N0X3JlYWxfYXVkaW9fZGVjX3NldGNhcHMpOgoJICAqIGdzdC9yZWFsL2dzdHJlYWx2aWRlb2RlYy5jOiAob3Blbl9saWJyYXJ5KToKCSAgKiBnc3QvcmVhbC9nc3RyZWFsdmlkZW9kZWMuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChjcmVhdGVfcmVjdl9ydHBfc2luayksCgkgIChjcmVhdGVfcmVjdl9ydGNwX3NpbmspLCAoY3JlYXRlX3NlbmRfcnRwX3NpbmspOgoJICBGaXggY29tcGlsZXIgd2FybmluZ3Mgc2hvd24gYnkgRm9ydGUuCgoyMDA3LTEwLTA4IDEwOjM5OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEZpeCBjYXBzIHJlZmNvdW50aW5nIGZvciBwYXlsb2FkIG1hcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ2V0X3B0X21hcCksCgkgIChnc3RfcnRwX2Jpbl9jbGVhcl9wdF9tYXApLCAoZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCk6CgkgIEZpeCBjYXBzIHJlZmNvdW50aW5nIGZvciBwYXlsb2FkIG1hcHMuCgkgIFdoZW4gY2xlYXJpbmcgcGF5bG9hZCBtYXBzLCBhbHNvIGNsZWFyIHNlc3Npb25zIGFuZCBzdHJlYW1zIHBheWxvYWQKCSAgbWFwcy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X2dldF9jYXBzKSwKCSAgKGdzdF9ydHBfcHRfZGVtdXhfY2xlYXJfcHRfbWFwKSwgKGdzdF9ydHBfcHRfZGVtdXhfY2hhaW4pLAoJICAoZmluZF9wYWRfZm9yX3B0KToKCSAgSW1wbGVtZW50IGNsZWFyaW5nIHRoZSBwYXlsb2FkIG1hcC4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6CgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydHBfc2luayk6CgkgIEZvcndhcmQgZmx1c2ggZXZlbnRzIGluc3RlYWQgb2YgbGVha2luZyB0aGVtLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAoZ3N0X3J0cF9zc3JjX2RlbXV4X3J0Y3Bfc2lua19ldmVudCk6CgkgIENvcnJlY3RseSByZWZjb3VudCBldmVudHMgYmVmb3JlIHB1c2hpbmcgdGhlbS4KCjIwMDctMTAtMDUgMTc6MjY6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IFdoZW4gcmVjb25zaWRlcmluZyBSVENQIHRpbWVvdXRzLCBzZXQgdGhlIG5leHQgdGltZW91dCBhZ2FpbnN0IHRoZSBsYXN0IHJlcG9ydCB0aW1lIGluc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fbmV4dF90aW1lb3V0KSwKCSAgV2hlbiByZWNvbnNpZGVyaW5nIFJUQ1AgdGltZW91dHMsIHNldCB0aGUgbmV4dCB0aW1lb3V0IGFnYWluc3QgdGhlIGxhc3QKCSAgcmVwb3J0IHRpbWUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBjbG9jayB0aW1lIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCgkgIHJlY29uc2lkZXJpbmcgZm9yZXZlci4KCjIwMDctMTAtMDUgMTI6MDc6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogT25seSBwZWVrIGF0IHRoZSB0YWlsIGVsZW1lbnQgaW5zdGVhZCBvZiBwb3BwaW5nIGl0IG9mZiwgd2hpY2ggYWxsb3dzIHVzIHRvIGdyZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApOgoJICBPbmx5IHBlZWsgYXQgdGhlIHRhaWwgZWxlbWVudCBpbnN0ZWFkIG9mIHBvcHBpbmcgaXQgb2ZmLCB3aGljaCBhbGxvd3MKCSAgdXMgdG8gZ3JlYXRseSBzaW1wbGlmeSB0aGluZ3Mgd2hlbiB0aGUgdGFpbCBlbGVtZW50IGNoYW5nZXMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3JlY3ZfcnRwX3NpbmspOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAoZ3N0X3J0cF9zc3JjX2RlbXV4X3NpbmtfZXZlbnQpOgoJICBGb3J3YXJkIEZMVVNIIGV2ZW50cyBpbnN0ZWFkIG9mIGxlYWtpbmcgdGhlbS4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX3Jlc2V0X3NrZXcpLAoJICAoY2FsY3VsYXRlX3NrZXcpLCAocnRwX2ppdHRlcl9idWZmZXJfaW5zZXJ0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuaDoKCSAgUmVtb3ZlIHRoZSB0YWlsLWNoYW5nZWQgY2FsbGJhY2sgaW4gZmF2b3VyIG9mIGEgc2ltcGxlIGJvb2xlYW4gd2hlbiB3ZQoJICBpbnNlcnQgYSBidWZmZXIgaW4gdGhlIHF1ZXVlLgoJICBBZGQgbWV0aG9kIHRvIHBlZWsgdGhlIHRhaWwgb2YgdGhlIGJ1ZmZlci4KCjIwMDctMTAtMDIgMTA6Mjc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogUmVtb3ZlIHNvbWUgb2xkIHVudXNlZCB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2ZsdXNoX3N0YXJ0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9mbHVzaF9zdG9wKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFuZ2Vfc3RhdGUpLCAoYXBwbHlfb2Zmc2V0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKToKCSAgUmVtb3ZlIHNvbWUgb2xkIHVudXNlZCB2YXJpYWJsZXMuCgkgIERvbid0IGFkZCB0aGUgbGF0ZW5jeSB0byB0aGUgc2tldyBjb3JyZWN0ZWQgdGltZXN0YW1wLCBsYXRlbmN5IGlzIG9ubHkKCSAgdXNlZCB0byBzeW5jIGFnYWluc3QgdGhlIGNsb2NrLgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX2luaXQpLAoJICAocnRwX2ppdHRlcl9idWZmZXJfcmVzZXRfc2tldyksIChjYWxjdWxhdGVfc2tldyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmg6CgkgIEhhbmRsZSBjYXNlIHdoZXJlIHNlcnZlciB0aW1lc3RhbXAgZ29lcyBiYWNrd2FyZHMgb3Igd2lsZGx5IGp1bXBzIGJ5CgkgIHRlbXBvcmFyaWx5IHBhdXNpbmcgdGhlIHNrZXcgY29ycmVjdGlvbi4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTA5LTI4IDE0OjUxOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEZpeCBjcmFzaGVyIGluIGRpc3Bvc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZnJlZV9jbGllbnQpOgoJICBGaXggY3Jhc2hlciBpbiBkaXNwb3NlLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiAoY2FsY3VsYXRlX3NrZXcpOgoJICBIYW5kbGUgY2FzZXMgd2hlcmUgaW5wdXQgYnVmZmVycyBoYXZlIG5vIHRpbWVzdGFtcHMgc28gdGhhdCBubyBjbG9jawoJICBza2V3IGNhbiBiZSBjYWxjdWxhdGVkLCBpbiB0aGlzIGNhc2UgaW50ZXJwb2xsYXRlIHRpbWVzdGFtcHMgYmFzZWQgb24KCSAgcnRwIHRpbWVzdGFtcCBhbmQgYXNzdW1lIGEgMCBjbG9jayBza2V3LgoKMjAwNy0wOS0yOCAxMToxNzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBSZW1vdmUgaml0dGVyIGNvcnJlY3Rpb24gY29kZSwgaXQncyBub3cgaW4gdGhlIGxvd2VyIGxldmVsIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IChhcHBseV9sYXRlbmN5KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9xdWVyeSk6CgkgIFJlbW92ZSBqaXR0ZXIgY29ycmVjdGlvbiBjb2RlLCBpdCdzIG5vdyBpbiB0aGUgbG93ZXIgbGV2ZWwgb2JqZWN0LgoJICBVc2UgbmV3IC1jb3JlIG1ldGhvZCBmb3IgZG9pbmcgYSBwZWVyIHF1ZXJ5LgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiAocnRwX2ppdHRlcl9idWZmZXJfaW5pdCksCgkgIChjYWxjdWxhdGVfc2tldyksIChydHBfaml0dGVyX2J1ZmZlcl9pbnNlcnQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBNb3ZlIGppdHRlciBjb3JyZWN0aW9uIHRvIHRoZSBsb3dsZXZlbCBqaXR0ZXJidWZmZXIuCgkgIEluY3JlYXNlIHRoZSBtYXggd2luZG93IHNpemUuCgkgIFdoZW4gZmlsbGluZyB0aGUgd2luZG93LCBhbHJlYWR5IHN0YXJ0IGVzdGltYXRpbmcgdGhlIHNrZXcgdXNpbmcgYQoJICBwYXJhYm9saWMgd2VpZ2h0aW5nIGZhY3RvciBzbyB0aGF0IHdlIGhhdmUgYSBtdWNoIGJldHRlciBzdGFydHVwCgkgIGJlaGF2aW91ciB0aGF0IGdldHMgbW9yZSBhY2N1cmF0ZSB3aXRoIHRoZSBtb3JlIHNhbXBsZXMgd2UgaGF2ZS4KCSAgSW5jcmVhc2UgdGhlIGRlZmF1bHQgd2VpZ2h0aW5nIGZhY3RvciBmb3IgdGhlIHN0ZWFkeSBzdGF0ZSB0byBnZXQKCSAgc21vb3RoZXIgdGltZXN0YW1wcy4KCjIwMDctMDktMjYgMjA6MDg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogRml4IGNsZWFudXAgY3Jhc2hlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9kaXNwb3NlKSwKCSAgKGdzdF9ydHBfYmluX2ZpbmFsaXplKToKCSAgRml4IGNsZWFudXAgY3Jhc2hlci4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX2luaXQpLAoJICAoY2FsY3VsYXRlX3NrZXcpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5oOgoJICBEeW5hbWljYWxseSBhZGp1c3QgdGhlIHNrZXcgY2FsY3VsYXRpb24gd2luZG93IHNvIHRoYXQgd2UgY2FsY3VsYXRlIGl0CgkgIG92ZXIgYSBwZXJpb2Qgb2YgYXJvdW5kIDIgc2Vjb25kcy4KCjIwMDctMDktMjAgMTQ6MzQ6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci86IEFkZCBub3RpZmljYXRpb24gb2YgYWN0aXZlIFNTUkNzIHRvIHZhcmlvdXMgUlRQIGVsZW1lbnRzLiBGaXhlcyAjNDc4NTY2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKG9uX3NzcmNfYWN0aXZlKSwgKGNyZWF0ZV9zZXNzaW9uKSwKCSAgKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKG9uX3NzcmNfYWN0aXZlKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwgKGdzdF9ydHBfc2Vzc2lvbl9pbml0KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9ldmVudF9zZW5kX3J0cF9zaW5rKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChvbl9zc3JjX2FjdGl2ZSksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3JiKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIEFkZCBub3RpZmljYXRpb24gb2YgYWN0aXZlIFNTUkNzIHRvIHZhcmlvdXMgUlRQIGVsZW1lbnRzLiBGaXhlcyAjNDc4NTY2LgoKMjAwNy0wOS0xNyAwMjowMTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBMaW5rIHRvIHRoZSByaWdodCBwYWRzIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25lIHdhcyBjcmVhdGVkIGZpcnN0IGluIHRoZSBzc3JjIGRlbXV4ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAobmV3X3NzcmNfcGFkX2ZvdW5kKToKCSAgTGluayB0byB0aGUgcmlnaHQgcGFkcyByZWdhcmRsZXNzIG9mIHdoaWNoIG9uZSB3YXMgY3JlYXRlZCBmaXJzdCBpbiB0aGUKCSAgc3NyYyBkZW11eGVyLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYWluKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRwKSwgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9zZW5kX3J0cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChjYWxjdWxhdGVfaml0dGVyKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6IChjcmVhdGVfZGVtdXhfcGFkX2Zvcl9zc3JjKSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9pbml0KSwgKGdzdF9ydHBfc3NyY19kZW11eF9maW5hbGl6ZSksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfc2lua19ldmVudCksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfcnRjcF9zaW5rX2V2ZW50KSwgKGdzdF9ydHBfc3NyY19kZW11eF9jaGFpbiksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfcnRjcF9jaGFpbiksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfaW50ZXJuYWxfbGlua3MpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5oOgoJICBGaXggcmFjZSBpbiBjcmVhdGluZyB0aGUgUlRQIGFuZCBSVENQIHBhZHMgd2hlbiBhIG5ldyBTU1JDIGlzIGRldGVjdGVkLgoKMjAwNy0wOS0xNiAxOTo0MDozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBVc2UgbG9jayB0byBwcm90ZWN0IHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2Jpbl9nZXRfcHJvcGVydHkpOgoJICBVc2UgbG9jayB0byBwcm90ZWN0IHZhcmlhYmxlLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ppdHRlcl9idWZmZXJfc2lua19wYXJzZV9jYXBzKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChjb252ZXJ0X3J0cHRpbWVfdG9fZ3N0dGltZSksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIFJlY29uc3RydWN0IEdTVCB0aW1lc3RhbXAgZnJvbSBSVFAgdGltZXN0YW1wcyBiYXNlZCBvbiBtZWFzdXJlZCBjbG9jawoJICBza2V3IGFuZCBzeW5jIG9mZnNldC4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX2luaXQpLAoJICAocnRwX2ppdHRlcl9idWZmZXJfc2V0X3RhaWxfY2hhbmdlZCksCgkgIChydHBfaml0dGVyX2J1ZmZlcl9zZXRfY2xvY2tfcmF0ZSksCgkgIChydHBfaml0dGVyX2J1ZmZlcl9nZXRfY2xvY2tfcmF0ZSksIChjYWxjdWxhdGVfc2tldyksCgkgIChydHBfaml0dGVyX2J1ZmZlcl9pbnNlcnQpLCAocnRwX2ppdHRlcl9idWZmZXJfcGVlayk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmg6CgkgIE1lYXN1cmUgY2xvY2sgc2tldy4KCSAgQWRkIGNhbGxiYWNrIHRvIGJlIG5vdGZpZWQgd2hlbiBhIG5ldyBwYWNrZXQgd2FzIGluc2VydGVkIGF0IHRoZSB0YWlsLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9pbml0KSwKCSAgKGNhbGN1bGF0ZV9qaXR0ZXIpLCAocnRwX3NvdXJjZV9zZW5kX3J0cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIFJlbW92ZSBjbG9jayBza2V3IGRldGVjdGlvbiwgaXQncyBtb3ZlIHRvIHRoZSBqaXR0ZXJidWZmZXIgbm93LgoKMjAwNy0wOS0xNSAxODo0ODowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBBbHNvIHNldCBOVFAgYmFzZSB0aW1lIG9uIG5ldyBzZXNzaW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChjcmVhdGVfc2Vzc2lvbik6CgkgIEFsc28gc2V0IE5UUCBiYXNlIHRpbWUgb24gbmV3IHNlc3Npb25zLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX3F1ZXJ5KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2dldF9wcm9wZXJ0eSk6CgkgIFVzZSB0aGUgcmlnaHQgbG9jayB0byBwcm90ZWN0IG91ciB2YXJpYWJsZXMuCgkgIEZpeCBzb21lIGNvbW1lbnQuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAoZ3N0X3J0cF9zZXNzaW9uX2dldGNhcHNfc2VuZF9ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3NlbmRfcnRwKSwgKGNyZWF0ZV9zZW5kX3J0cF9zaW5rKToKCSAgSW1wbGVtZW50IGdldGNhcHMgb24gdGhlIHNlbmRlciBzaW5rcGFkIHNvIHRoYXQgcGF5bG9hZGVycyBjYW4gbmVnb3RpYXRlCgkgIHRoZSByaWdodCBTU1JDLgoKMjAwNy0wOS0xMiAyMToyMzo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogVmFyaW91cyBsZWFrIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGNyZWF0ZV9zZXNzaW9uKSwgKGZyZWVfc2Vzc2lvbiksCgkgIChnZXRfY2xpZW50KSwgKGZyZWVfY2xpZW50KSwgKGdzdF9ydHBfYmluX2Fzc29jaWF0ZSksCgkgIChmcmVlX3N0cmVhbSksIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwgKGdzdF9ydHBfYmluX2Rpc3Bvc2UpLAoJICAoZ3N0X3J0cF9iaW5fZmluYWxpemUpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2ZpbmFsaXplKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X3JlbGVhc2UpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9maW5hbGl6ZSksCgkgIChnc3RfcnRwX3Nlc3Npb25fc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9yZWN2X3J0cCksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fc2VuZF9ydHApOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAoZ3N0X3J0cF9zc3JjX2RlbXV4X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9zc3JjX2RlbXV4X2Rpc3Bvc2UpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2ZpbmFsaXplKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIFZhcmlvdXMgbGVhayBmaXhlcy4KCjIwMDctMDktMTIgMTg6MDQ6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogQ2FsY3VsYXRlIGFuZCBjb25maWd1cmUgdGhlIE5UUCBiYXNlIHRpbWUgc28gdGhhdCB3ZSBjYW4gZ2VuZXJhdGUgYmV0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY2FsY19udHBfbnNfYmFzZSksCgkgIChnc3RfcnRwX2Jpbl9jaGFuZ2Vfc3RhdGUpLCAobmV3X3BheWxvYWRfZm91bmQpLCAoY3JlYXRlX3NlbmRfcnRwKToKCSAgQ2FsY3VsYXRlIGFuZCBjb25maWd1cmUgdGhlIE5UUCBiYXNlIHRpbWUgc28gdGhhdCB3ZSBjYW4gZ2VuZXJhdGUgYmV0dGVyCgkgIE5UUCB0aW1lcyBpbiBTUiBwYWNrZXRzLgoJICBTZXQgY2FwcyBvbiBuZXcgZ2hvc3RwYWQuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIENsZWFuIGRlYnVnIHN0YXRlbWVudC4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25faW5pdCksIChnc3RfcnRwX3Nlc3Npb25fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpLCAoZ2V0X2N1cnJlbnRfbnRwX25zX3RpbWUpLAoJICAocnRjcF90aHJlYWQpLCAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3JlY3ZfcnRwX3NpbmspLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2ludGVybmFsX2xpbmtzKSwgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9yZWN2X3J0cCksCgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydHBfc2luayksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fc2VuZF9ydHApLCAoY3JlYXRlX3JlY3ZfcnRwX3NpbmspLAoJICAoY3JlYXRlX3NlbmRfcnRwX3NpbmspOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uaDoKCSAgQWRkIG50cC1ucy1iYXNlIHByb3BlcnR5IHRvIGNvbnZlcnQgcnVubmluZ190aW1lIHRvIE5UUCB0aW1lLgoJICBIYW5kbGUgTkVXU0VHTUVOVCBldmVudHMgb24gc2VuZCBhbmQgcmVjdiBSVFAgcGFkcyBzbyB0aGF0IHdlIGNhbgoJICBjYWxjdWxhdGUgdGhlIHJ1bm5pbmcgdGltZSBhbmQgdGh1cyBOVFAgdGltZSBvZiB0aGUgcGFja2V0cy4KCSAgU2ltcGxpZnkgZ2V0dGluZyB0aGUgY3VycmVudCBOVFAgdGltZSB1c2luZyB0aGUgcGlwZWxpbmUgY2xvY2suCgkgIEltcGxlbWVudCBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbnMuCgkgIFVzZSB0aGUgYnVmZmVyIHRpbWVzdGFtcCB0byBjYWxjdWxhdGUgdGhlIE5UUCB0aW1lIGluc3RlYWQgb2YgdGhlIGNsb2NrLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOiAoY3JlYXRlX2RlbXV4X3BhZF9mb3Jfc3NyYyksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfaW5pdCksIChnc3RfcnRwX3NzcmNfZGVtdXhfc2lua19ldmVudCksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfY2hhaW4pLCAoZ3N0X3J0cF9zc3JjX2RlbXV4X3J0Y3BfY2hhaW4pLAoJICAoZ3N0X3J0cF9zc3JjX2RlbXV4X2ludGVybmFsX2xpbmtzKSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9zcmNfcXVlcnkpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5oOgoJICBJbXBsZW1lbnQgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24uCgkgIENhbGN1bGF0ZSB0aGUgZGlmZiBiZXR3ZWVuIGRpZmZlcmVudCBzdHJlYW1zLCB0aGlzIG1pZ2h0IGJlIHVzZWQgbGF0ZXIKCSAgdG8gZ2V0IHRoZSBpbnRlciBzdHJlYW0gbGF0ZW5jeS4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9zZW5kX3J0cCk6CgkgIFNpbXBsZSBjbGVhbnVwLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9pbml0KSwKCSAgKGNhbGN1bGF0ZV9qaXR0ZXIpLCAocnRwX3NvdXJjZV9zZW5kX3J0cCksIChydHBfc291cmNlX2dldF9uZXdfc3IpOgoJICBNYWtlIHRoZSBjbG9jayBza2V3IHdpbmRvdyBhIGxpdHRsZSBiaWdnZXIuCgkgIEFwcGx5IHRoZSBjbG9jayBza2V3IHRvIGFsbCBidWZmZXJzLCBub3QganVzdCBvbmUgd2l0aCBhIG5ldyB0aW1lc3RhbXAuCgkgIENhbGN1bGF0ZSBhbmQgZGVidWcgc2VuZGVyIGNsb2NrIGRyaWZ0LgoJICBVc2UgZXh0ZW5kZWQgbGFzdCB0aW1lc3RhbXAgdG8gaW50ZXJwb2xsYXRlIGZvciBTUiByZXBvcnRzLgoKMjAwNy0wOS0wNCAxNToyMzozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogTWFrZSBjb21waWxlciBoYXBweTogZml4IGNvbXBpbGF0aW9uIHdpdGggLVdhbGwgLVdlcnJvciAoIzQ3MzU2MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgTWFrZSBjb21waWxlciBoYXBweTogZml4IGNvbXBpbGF0aW9uIHdpdGggLVdhbGwgLVdlcnJvcgoJICAoIzQ3MzU2MikuCgoyMDA3LTA5LTAzIDIxOjE5OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvOiBVcGRhdGVkIGV4YW1wbGUgcGlwZWxpbmVzIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi1tYXJzaGFsLmxpc3Q6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9nZXRfY2xpZW50KSwKCSAgKGdzdF9ydHBfYmluX2Fzc29jaWF0ZSksIChnc3RfcnRwX2Jpbl9zeW5jX2NoYWluKSwgKGNyZWF0ZV9zdHJlYW0pLAoJICAoZ3N0X3J0cF9iaW5faW5pdCksIChjYXBzX2NoYW5nZWQpLCAobmV3X3NzcmNfcGFkX2ZvdW5kKSwKCSAgKGNyZWF0ZV9yZWN2X3J0cCksIChjcmVhdGVfcmVjdl9ydGNwKSwgKGNyZWF0ZV9zZW5kX3J0cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkgIFVwZGF0ZWQgZXhhbXBsZSBwaXBlbGluZXMgaW4gZG9jcy4KCSAgSGFuZGxlIHN5bmNfcnRjcCBidWZmZXJzIGZyb20gdGhlIFNTUkMgZGVtdXhlciB0byBwZXJmb3JtIGxpcC1zeW5jLgoJICBTZXQgdGhlIGRlZmF1bHQgbGF0ZW5jeSBjb3JyZWN0bHkuCgkgIEFkZCBzb21lIG1vcmUgcG9pbnRzIHdoZXJlIHdlIGNhbiBnZXQgY2Fwcy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9qaXR0ZXJfYnVmZmVyX3NpbmtfcGFyc2VfY2FwcyksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfcXVlcnkpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZ2V0X3Byb3BlcnR5KToKCSAgQWRkIHRzLW9mZnNldCBwcm9wZXJ0eSB0byBjb250cm9sIHRpbWVzdGFtcGluZy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25faW5pdCksIChnc3RfcnRwX3Nlc3Npb25fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpLCAoZ2V0X2N1cnJlbnRfbnRwX25zX3RpbWUpLAoJICAocnRjcF90aHJlYWQpLCAoc3RvcF9ydGNwX3RocmVhZCksIChnc3RfcnRwX3Nlc3Npb25fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9zZW5kX3J0Y3ApLCAoZ3N0X3J0cF9zZXNzaW9uX3N5bmNfcnRjcCksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2FjaGVfY2FwcyksIChnc3RfcnRwX3Nlc3Npb25fY2xvY2tfcmF0ZSksCgkgIChnc3RfcnRwX3Nlc3Npb25fc2lua19zZXRjYXBzKSwgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9yZWN2X3J0cCksCgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydHBfc2luayksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fc2VuZF9ydHApLCAoY3JlYXRlX3JlY3ZfcnRwX3NpbmspLAoJICAoY3JlYXRlX3JlY3ZfcnRjcF9zaW5rKSwgKGNyZWF0ZV9zZW5kX3J0cF9zaW5rKSwKCSAgKGNyZWF0ZV9zZW5kX3J0Y3Bfc3JjKToKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgRmVlZCBydHBzZXNzaW9uIG1hbmFnZXIgd2l0aCBOVFAgdGltZSBiYXNlZCBvbiBwaXBlbGluZSBjbG9jayB3aGVuCgkgIGhhbmRsaW5nIFJUUCBwYWNrZXRzIGFuZCBSVENQIHRpbWVvdXRzLgoJICBQZXJmb3JtIGFsbCBSVENQIHdpdGggdGhlIHN5c3RlbSBjbG9jay4KCSAgU2V0IGNhcHMgb24gUlRDUCBvdXRnb2luZyBidWZmZXJzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOiAoZmluZF9kZW11eF9wYWRfZm9yX3NzcmMpLAoJICAoY3JlYXRlX2RlbXV4X3BhZF9mb3Jfc3NyYyksIChnc3RfcnRwX3NzcmNfZGVtdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9pbml0KSwgKGdzdF9ydHBfc3NyY19kZW11eF9zaW5rX2V2ZW50KSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9ydGNwX3NpbmtfZXZlbnQpLCAoZ3N0X3J0cF9zc3JjX2RlbXV4X2NoYWluKSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9ydGNwX2NoYWluKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguaDoKCSAgQWxzbyBkZW11eCBSVENQIG1lc3NhZ2VzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX3NldF9jYWxsYmFja3MpLAoJICAodXBkYXRlX2Fycml2YWxfc3RhdHMpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19yYiksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3NyKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3NfcnIpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydGNwKSwKCSAgKHJ0cF9zZXNzaW9uX3NlbmRfcnRwKSwgKHJ0cF9zZXNzaW9uX3NlbmRfYnllKSwKCSAgKHNlc3Npb25fc3RhcnRfcnRjcCksIChzZXNzaW9uX3JlcG9ydF9ibG9ja3MpLCAoc2Vzc2lvbl9jbGVhbnVwKSwKCSAgKHJ0cF9zZXNzaW9uX29uX3RpbWVvdXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgUmVtb3ZlIHRoZSBnZXRfdGltZSBjYWxsYmFjaywgdGhlIEdTdHJlYW1lciBwYXJ0IHdpbGwgZmVlZCB1cyB3aXRoCgkgIGVub3VnaCB0aW1pbmcgaW5mb3JtYXRpb24uCgkgIFNwbGl0IHN5bmMgdGltaW5nIGFuZCBSVENQIHRpbWluZyBpbmZvcm1hdGlvbi4KCSAgRmFjdG9yIG91dCBjb21tb24gUkIgaGFuZGxpbmcgZm9yIFNSIGFuZCBSUi4KCSAgU2VuZCBvdXQgU1IgUlRDUCBwYWNrZXRzIGZvciBsaXAtc3luYy4KCSAgTW92ZSBTUiBhbmQgUlIgcGFja2V0IGluZm8gZ2VuZXJhdGlvbiB0byB0aGUgc291cmNlLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9pbml0KSwKCSAgKHJ0cF9zb3VyY2VfdXBkYXRlX2NhcHMpLCAoZ2V0X2Nsb2NrX3JhdGUpLCAoY2FsY3VsYXRlX2ppdHRlciksCgkgIChydHBfc291cmNlX3Byb2Nlc3NfcnRwKSwgKHJ0cF9zb3VyY2Vfc2VuZF9ydHApLAoJICAocnRwX3NvdXJjZV9wcm9jZXNzX3NyKSwgKHJ0cF9zb3VyY2VfcHJvY2Vzc19yYiksCgkgIChydHBfc291cmNlX2dldF9uZXdfc3IpLCAocnRwX3NvdXJjZV9nZXRfbmV3X3JiKSwKCSAgKHJ0cF9zb3VyY2VfZ2V0X2xhc3Rfc3IpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmg6CgkgIFVzZSBjYXBzIG9uIGluY29tbWluZyBidWZmZXJzIHRvIGdldCB0aW1pbmcgaW5mb3JtYXRpb24gd2hlbiB0aGV5IGFyZQoJICB0aGVyZS4KCSAgQ2FsY3VsYXRlIGNsb2NrIHNjZXcgb2YgdGhlIHJlY2VpdmVyIGNvbXBhcmVkIHRvIHRoZSBzZW5kZXIgYW5kIGFkanVzdAoJICB0aGUgcnRwIHRpbWVzdGFtcHMuCgkgIENhbGN1bGF0ZSB0aGUgcm91bmQgdHJpcCBpbiBzb3VyY2VzLgoJICBEbyBTUiBhbmQgUlIgY2FsY3VsYXRpb25zIGluIHRoZSBzb3VyY2UuCgoyMDA3LTA4LTMxIDE1OjI2OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IFVzZSBleHRlbmRlZCB0aW1lc3RhbXAgdG8gcmVsZWFzZSBidWZmZXJzIGZyb20gdGhlIGppdHRlcmJ1ZmZlciBzbyB0aGF0IHdlIGNhbiBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2ZsdXNoX3N0b3ApLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYW5nZV9zdGF0ZSksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIFVzZSBleHRlbmRlZCB0aW1lc3RhbXAgdG8gcmVsZWFzZSBidWZmZXJzIGZyb20gdGhlIGppdHRlcmJ1ZmZlciBzbyB0aGF0CgkgIHdlIGNhbiBoYW5kbGUgdGhlIHJ0cCB3cmFwYXJvdW5kIGNvcnJlY3RseS4KCjIwMDctMDgtMjkgMTY6NTY6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogSW1wcm92ZSBDb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIEltcHJvdmUgQ29tbWVudHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAoc3RvcF9ydGNwX3RocmVhZCksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhbmdlX3N0YXRlKSwgKGdzdF9ydHBfc2Vzc2lvbl9wYXJzZV9jYXBzKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jbG9ja19yYXRlKSwgKGdzdF9ydHBfc2Vzc2lvbl9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3NlbmRfcnRwX3NpbmspLCAoY3JlYXRlX3JlY3ZfcnRwX3NpbmspLAoJICAoY3JlYXRlX3NlbmRfcnRwX3NpbmspOgoJICBBbHNvIHBhcnNlIHRoZSBzaW5rIGNhcHMgZm9yIGNsb2NrLXJhdGUgaW5zdGVhZCBvZiBvbmx5IHJlbHlpbmcgb24gdGhlCgkgIHJlc3VsdCBvZiB0aGUgc2lnbmFsLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9zZW5kX3J0cCk6CgkgIE1ha2Ugc3VyZSB3ZSBmZXRjaCB0aGUgY2xvY2sgcmF0ZSBmb3IgcGF5bG9hZHMgd2UgYXJlIHNlbmRpbmcgb3V0IHNvCgkgIHRoYXQgd2UgY2FuIHVzZSBpdCBmb3IgU1IgcmVwb3J0cy4KCjIwMDctMDgtMjkgMDE6MjI6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLio6IERpc3RyaWJ1dGUgc3luY2hyb25pc2F0aW9uIHBhcmFtZXRlcnMgdG8gdGhlIHNlc3Npb24gbWFuYWdlciBzbyB0aGF0IGl0IGNhbiBnZW5lcmF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAoc3RvcF9ydGNwX3RocmVhZCksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9ldmVudF9zZW5kX3J0cF9zaW5rKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmg6CgkgIERpc3RyaWJ1dGUgc3luY2hyb25pc2F0aW9uIHBhcmFtZXRlcnMgdG8gdGhlIHNlc3Npb24gbWFuYWdlciBzbyB0aGF0IGl0CgkgIGNhbiBnZW5lcmF0ZSBjb3JyZWN0IFNSIHBhY2tldHMgZm9yIGxpcC1zeW5jLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX3NldF9iYXNlX3RpbWUpLAoJICAocnRwX3Nlc3Npb25fc2V0X3RpbWVzdGFtcF9zeW5jKSwgKHNlc3Npb25fc3RhcnRfcnRjcCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBBZGQgbWV0aG9kcyBmb3Igc2V0dGluZyBzeW5jIHBhcmFtZXRlcnMuCgkgIFNldCBjb3JyZWN0IFJUUCB0aW1lIGluIFNSIHBhY2tldHMgdXNpbmcgdGhlIHN5bmMgcGFyYW1zLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9zZW5kX3J0cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIFJlY29yZCBsYXN0IFJUUCA8LT4gR1NUIHRpbWVzdGFtcCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSB0byBjb252ZXJ0IE5UUAoJICB0byBSVFAgdGltZXN0YW1wcyBpbiBTUiBwYWNrZXRzLgoKMjAwNy0wOC0yOCAyMDozMDoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBBZGQgc29tZSBtb3JlIGFkdmFuY2VkIGV4YW1wbGUgcGlwZWxpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2NsZWFyX3B0X21hcCk6CgkgIEFkZCBzb21lIG1vcmUgYWR2YW5jZWQgZXhhbXBsZSBwaXBlbGluZXMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAocnRjcF90aHJlYWQpLAoJICAoc3RvcF9ydGNwX3RocmVhZCksIChnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydGNwKToKCSAgQWRkIHNvbWUgZGVidWcgYW5kIEZJWE1FLgoJICBSZWxlYXNlIExPQ0sgd2hlbiBwZXJmb3JtaW5nIHNlc3Npb24gY2xlYW51cC4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChzZXNzaW9uX3JlcG9ydF9ibG9ja3MpOgoJICBBZGQgc29tZSBkZWJ1Zy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKGNhbGN1bGF0ZV9qaXR0ZXIpLAoJICAocnRwX3NvdXJjZV9zZW5kX3J0cCk6CgkgIE1ha2Ugc3VyZSB3ZSBhbHdheXMgc2VuZCBSVFAgcGFja2V0cyB3aXRoIHRoZSBzZXNzaW9uIFNTUkMuCgoyMDA3LTA4LTI3IDIxOjE3OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6IFdoZW4gc3luY2hyb25pemluZyBidWZmZXJzLCB0YWtlIHBlZXIgbGF0ZW5jeSBpbnRvIGFjY291bnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NoYW5nZV9zdGF0ZSksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfcXVlcnkpOgoJICBXaGVuIHN5bmNocm9uaXppbmcgYnVmZmVycywgdGFrZSBwZWVyIGxhdGVuY3kgaW50byBhY2NvdW50LgoJICBEb24ndCB0cnkgdG8gYWRkIG91ciBsYXRlbmN5IHRvIGludmFsaWQgcGVlciBtYXggbGF0ZW5jeSB2YWx1ZXMuCgoyMDA3LTA4LTIzIDIxOjM5OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmVuYW1lIGFsbCBHc3RSVFBGb28gc3RydWN0cyB0byBHc3RSdHBGb28gc28gdGhhdCBHU1RfQk9JTEVSUExBVEUgcmVnaXN0ZXJzIGEgR1R5cGUgdGhhdCdzIGRpZmZlcmVudCB0aGFuIHRoZSBHc3RSVFBGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4Lmg6CgkgIFJlbmFtZSBhbGwgR3N0UlRQRm9vIHN0cnVjdHMgdG8gR3N0UnRwRm9vIHNvIHRoYXQgR1NUX0JPSUxFUlBMQVRFCgkgIHJlZ2lzdGVycyBhIEdUeXBlIHRoYXQncyBkaWZmZXJlbnQgdGhhbiB0aGUgR3N0UlRQRm9vIHR5cGVzIHRoYXQKCSAgZmFyc2lnaHQgcmVnaXN0ZXJzIChsdWNraWx5IEdUeXBlIG5hbWVzIGFyZSBjYXNlIHNlbnNpdGl2ZSkuIFNob3VsZAoJICBmaW5hbGx5IGZpeCAjNDMwNjY0LgoKMjAwNy0wOC0yMSAxNzoxODoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBXaGVuIGRyb3Atb24tbGF0ZW5jeSBpcyBzZXQgYnV0IHdlIGhhdmUgbm8gbGF0ZW5jeSBjb25maWd1cmVkLCBqdXN0IHB1c2ggdGhlIGJ1Zi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfc2V0X3Byb3BlcnR5KToKCSAgV2hlbiBkcm9wLW9uLWxhdGVuY3kgaXMgc2V0IGJ1dCB3ZSBoYXZlIG5vIGxhdGVuY3kgY29uZmlndXJlZCwganVzdCBwdXNoCgkgIHRoZSBidWZmZXIgYXMgZmFzdCBhcyBwb3NzaWJsZS4KCSAgRml4IHR5cG8gaW4gY29tbWVudC4KCjIwMDctMDgtMjEgMTY6MDQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuKjogRml4IHVuZGVmaW5lZCBvdmVyZmxvdyBwcm9uZSB0c19kaWZmIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzoKCSAgKHJ0cF9qaXR0ZXJfYnVmZmVyX2dldF90c19kaWZmKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuaDoKCSAgRml4IHVuZGVmaW5lZCBvdmVyZmxvdyBwcm9uZSB0c19kaWZmIGhhbmRsaW5nLgoKMjAwNy0wOC0xNiAxMTo0MDoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBGaXggRU9TIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zaW5rX2V2ZW50KSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIEZpeCBFT1MgaGFuZGxpbmcuCgkgIENvbnZlcnQgc29tZSBERUJVRyBpbnRvIFdBUk5JTkdzLgoJICBQYXVzZSB0YXNrIHdoZW4gZmx1c2hpbmcuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAoZ3N0X3J0cF9zZXNzaW9uX2NsYXNzX2luaXQpLAoJICAocnRjcF90aHJlYWQpLCAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3JlY3ZfcnRjcF9zaW5rKToKCSAgVXNlIHN5c3RlbSBjbG9jayBmb3IgUlRDUCBzZXNzaW9uIG1hbmFnZW1lbnQgdGltZW91dHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAob25fbmV3X3NzcmMpLCAob25fc3NyY19jb2xsaXNpb24pLAoJICAob25fc3NyY192YWxpZGF0ZWQpLCAob25fYnllX3NzcmMpLCAob25fYnllX3RpbWVvdXQpLCAob25fdGltZW91dCk6CgkgIFJlbGVhc2UgdGhlIHNlc3Npb24gbG9jayB3aGVuIGVtaXRpbmcgc2lnbmFscy4KCjIwMDctMDgtMTMgMDY6MTY6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9ydHBtYW5hZ2VyL3J0cGppdHRlcmJ1ZmZlci5jOiBJbmNsdWRlIHN0ZGxpYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmM6CgkgIEluY2x1ZGUgc3RkbGliLgoKMjAwNy0wOC0xMCAxNzoxNjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogUmVtb3ZlIGNvbXBsaWNhdGVkIGFzeW5jIHF1ZXVlIGFuZCByZXBsYWNlIHdpdGggbW9yZSBzaW1wbGUgaml0dGVyYnVmZmVyIGNvZGUgd2hpbGUgYWxzbyBmaXhpbmcgc29tZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBqaXR0ZXJidWZmZXIuYzogKHJ0cF9qaXR0ZXJfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAocnRwX2ppdHRlcl9idWZmZXJfaW5pdCksIChydHBfaml0dGVyX2J1ZmZlcl9maW5hbGl6ZSksCgkgIChydHBfaml0dGVyX2J1ZmZlcl9uZXcpLCAoY29tcGFyZV9zZXFudW0pLAoJICAocnRwX2ppdHRlcl9idWZmZXJfaW5zZXJ0KSwgKHJ0cF9qaXR0ZXJfYnVmZmVyX3BvcCksCgkgIChydHBfaml0dGVyX2J1ZmZlcl9mbHVzaCksIChydHBfaml0dGVyX2J1ZmZlcl9udW1fcGFja2V0cyksCgkgIChydHBfaml0dGVyX2J1ZmZlcl9nZXRfdHNfZGlmZik6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwaml0dGVyYnVmZmVyLmg6CgkgIFJlbW92ZSBjb21wbGljYXRlZCBhc3luYyBxdWV1ZSBhbmQgcmVwbGFjZSB3aXRoIG1vcmUgc2ltcGxlIGppdHRlcmJ1ZmZlcgoJICBjb2RlIHdoaWxlIGFsc28gZml4aW5nIHNvbWUgYnVncy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5saXN0OgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAob25fbmV3X3NzcmMpLCAob25fc3NyY19jb2xsaXNpb24pLAoJICAob25fc3NyY192YWxpZGF0ZWQpLCAob25fYnllX3NzcmMpLCAob25fYnllX3RpbWVvdXQpLCAob25fdGltZW91dCksCgkgIChjcmVhdGVfc2Vzc2lvbiksIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwgKGNyZWF0ZV9yZWN2X3J0cCksCgkgIChjcmVhdGVfc2VuZF9ydHApOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2luaXQpLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2Rpc3Bvc2UpLAoJICAoZ3N0X2ppdHRlcl9idWZmZXJfc2lua19wYXJzZV9jYXBzKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9mbHVzaF9zdGFydCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZmx1c2hfc3RvcCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zaW5rX2V2ZW50KSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChvbl9uZXdfc3NyYyksCgkgIChvbl9zc3JjX2NvbGxpc2lvbiksIChvbl9zc3JjX3ZhbGlkYXRlZCksIChvbl9ieWVfc3NyYyksCgkgIChvbl9ieWVfdGltZW91dCksIChvbl90aW1lb3V0KSwgKGdzdF9ydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9pbml0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAob25fYnllX3NzcmMpLCAoc2Vzc2lvbl9jbGVhbnVwKToKCSAgVXNlIG5ldyBqaXR0ZXJidWZmZXIgY29kZS4KCSAgRXhwb3NlIHNvbWUgbmV3IHNpZ25hbHMgaW4gcHJlcGFyYXRpb24gZm9yIGhhbmRsaW5nIEVPUy4KCjIwMDctMDctMTggMDc6MzU6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBzdGRsaWIgaW5jbHVkZSAoZnJlZSwgYXRvaSwgZXhpdCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL2FwcC9hcHBzcmNfZXguYzoKCSAgKiBleGFtcGxlcy9zd2l0Y2gvc3dpdGNoZXIuYzoKCSAgKiBleHQvbmVvbi9nc3RuZW9uaHR0cHNyYy5jOgoJICAqIGV4dC90aW1pZGl0eS9nc3R3aWxkbWlkaS5jOgoJICAqIGV4dC94MjY0L2dzdHgyNjRlbmMuYzoKCSAgKiBnc3QvbXZlL212ZWF1ZGlvZW5jLmM6IChtdmVfY29tcHJlc3NfYXVkaW8pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLWF1ZGlvdGVzdC5jOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJICAqIHN5cy9kdmIvZ3N0ZHZic3JjLmM6CgkgIEFkZCBzdGRsaWIgaW5jbHVkZSAoZnJlZSwgYXRvaSwgZXhpdCkuCgoyMDA3LTA2LTIyIDIwOjIzOjE4ICswMDAwICBKZW5zIEdyYW5zZXVlciA8amVuc2dyQGdteC5uZXQ+CgoJICBnc3QvOiBCdWlsZCBmaXhlcyBmb3IgZ2NjLTIuOXggKG5vIG1pZC1ibG9jayB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgZXRjLikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVucyBHcmFuc2V1ZXIgIDxqZW5zZ3IgYXQgZ214IG5ldD4KCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXJuYmFuZHMuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuYzoKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9wdXNoX3NvcnRlZCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6IChnc3Rfc3dpdGNoX2NoYWluKToKCSAgQnVpbGQgZml4ZXMgZm9yIGdjYy0yLjl4IChubyBtaWQtYmxvY2sgdmFyaWFibGUgZGVjbGFyYXRpb25zIGV0Yy4pLgoJICBGaXhlcyAjNDUwMTg1LgoKMjAwNy0wNS0yOCAxNjozNzo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJlbmFtZSBlbGVtZW50cyB0byBhdm9pZCBjb25mbGljdCB3aXRoIGZhcnNpZ2h0IGVsZW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4gRml4ZXMgIzQzMDY2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3Nlc3Npb24pLCAoY3JlYXRlX3N0cmVhbSksCgkgIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwgKGNyZWF0ZV9yZWN2X3J0cCksIChjcmVhdGVfcmVjdl9ydGNwKSwKCSAgKGNyZWF0ZV9zZW5kX3J0cCksIChjcmVhdGVfcnRjcCksIChnc3RfcnRwX2Jpbl9yZXF1ZXN0X25ld19wYWQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOiAoY3JlYXRlX3N0cmVhbSksCgkgIChnc3RfcnRwX2NsaWVudF9yZXF1ZXN0X25ld19wYWQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NsZWFyX3B0X21hcCksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwbWFuYWdlci5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25fcmVxdWVzdF9uZXdfcGFkKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzoKCSAgUmVuYW1lIGVsZW1lbnRzIHRvIGF2b2lkIGNvbmZsaWN0IHdpdGggZmFyc2lnaHQgZWxlbWVudHMgd2l0aCB0aGUgc2FtZQoJICBuYW1lLiBGaXhlcyAjNDMwNjY0LgoKMjAwNy0wNS0yMyAxMzowODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3VtZW50IHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2xlYXJfcHRfbWFwKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9wdF9kZW11eF9jbGVhcl9wdF9tYXApOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChydGNwX3RocmVhZCksIChnc3RfcnRwX3Nlc3Npb25fY2xlYXJfcHRfbWFwKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4LmM6CgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfY2xhc3NfaW5pdCk6CgkgIERvY3VtZW50IHN0dWZmLgoJICBBZGQgY2xlYXItcHQtbWFwIGFjdGlvbiBzaWduYWwgd2hlcmUgbmVlZGVkLgoKMjAwNy0wNS0xNSAxMzoyOTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzogV2UgYWx3YXlzIHVzZSBmaXhlZCBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X2NoYWluKToKCSAgV2UgYWx3YXlzIHVzZSBmaXhlZCBjYXBzLgoKMjAwNy0wNS0xNSAwMzo0NTo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogZ19oYXNoX3RhYmxlX3JlbW92ZV9hbGwoKSBvbmx5IGV4aXN0cyBpbiAyLjEyLiAgV29yayBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOgoJICBnX2hhc2hfdGFibGVfcmVtb3ZlX2FsbCgpIG9ubHkgZXhpc3RzIGluIDIuMTIuICBXb3JrIGFyb3VuZC4KCjIwMDctMDUtMTQgMTU6Mjg6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuYzogRml4IGxlYWsgd2hlbiBmbHVzaGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvYXN5bmNfaml0dGVyX3F1ZXVlLmM6CgkgIChhc3luY19qaXR0ZXJfcXVldWVfc2V0X2ZsdXNoaW5nX3VubG9ja2VkKToKCSAgRml4IGxlYWsgd2hlbiBmbHVzaGluZy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2NsZWFyX3B0X21hcCksCgkgIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgQWRkIGNsZWFyLXB0LW1hcCBzaWduYWwuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfZmx1c2hfc3RvcCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfc2lua19ldmVudCksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIEluaXQgY2xvY2stcmF0ZSB0byAtMSB0byBtYXJrIHVua25vdyBjbG9jayByYXRlLgoJICBGaXggZmx1c2hpbmcuCgoyMDA3LTA1LTEwIDE0OjAyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmMgKGdzdF9xdGRlbXV4X21vdmVfc3RyZWFtLCBnc3RfcXRkZW11eF9sb29wX3N0YXRlX2hlYWRlciwgZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCwgZ3N0X3F0ZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jIChnc3RfcXRkZW11eF9tb3ZlX3N0cmVhbSwKCSAgZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIsIGdzdF9xdGRlbXV4X2FjdGl2YXRlX3NlZ21lbnQsCgkgIGdzdF9xdGRlbXV4X3ByZXBhcmVfY3VycmVudF9zYW1wbGUsIGdzdF9xdGRlbXV4X2NvbWJpbmVfZmxvd3MsCgkgIGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUsIGdzdF9xdGRlbXV4X2xvb3AsCgkgIHF0ZGVtdXhfcGFyc2Vfc2VnbWVudHMsIHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jIChydHBfc2Vzc2lvbl9nZXRfYmFuZHdpZHRoLAoJICBydHBfc2Vzc2lvbl9nZXRfcnRjcF9iYW5kd2lkdGgsIHJ0cF9zZXNzaW9uX2dldF9jbmFtZSwKCSAgcnRwX3Nlc3Npb25fZ2V0X25hbWUsIHJ0cF9zZXNzaW9uX2dldF9lbWFpbCwgcnRwX3Nlc3Npb25fZ2V0X3Bob25lLAoJICBydHBfc2Vzc2lvbl9nZXRfbG9jYXRpb24sIHJ0cF9zZXNzaW9uX2dldF90b29sLAoJICBydHBfc2Vzc2lvbl9wcm9jZXNzX2J5ZSwgc2Vzc2lvbl9yZXBvcnRfYmxvY2tzKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYyAocnRwX3NvdXJjZV9wcm9jZXNzX3J0cCwKCSAgcnRwX3NvdXJjZV9zZW5kX3J0cCwgcnRwX3NvdXJjZV9wcm9jZXNzX3NyLCBydHBfc291cmNlX3Byb2Nlc3NfcmIpOgoJICBNb3JlIGZvcm1hdCBhcmcgZml4aW5nIChzcG90dGVkIGJ5IEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4pLgoJICAqIGdzdC9zd2l0Y2gvTWFrZWZpbGUuYW06CgkgIEFkZCByZXF1aXJlIGxpYnJhcmllcyhzcG90dGVkIGJ5IEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4pLgoKMjAwNy0wNS0xMCAxMjozODo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L3J0cG1hbmFnZXIvYXN5bmNfaml0dGVyX3F1ZXVlLmM6CgkgIGdzdC9ydHBtYW5hZ2VyL2FzeW5jX2ppdHRlcl9xdWV1ZS5jICh0YWlsX2J1ZmZlcl9kdXJhdGlvbiwgYXN5bmNfaml0dGVyX3F1ZXVlX3JlZiwgYXN5bmNfaml0dGVyX3F1ZXVlX3JlZl91bmxvY2tlZCwgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuYyAodGFpbF9idWZmZXJfZHVyYXRpb24sCgkgIGFzeW5jX2ppdHRlcl9xdWV1ZV9yZWYsIGFzeW5jX2ppdHRlcl9xdWV1ZV9yZWZfdW5sb2NrZWQsCgkgIGFzeW5jX2ppdHRlcl9xdWV1ZV9zZXRfbG93X3RocmVzaG9sZCwKCSAgYXN5bmNfaml0dGVyX3F1ZXVlX2xlbmd0aF90c191bml0c191bmxvY2tlZCwKCSAgYXN5bmNfaml0dGVyX3F1ZXVlX3VucmVmX2FuZF91bmxvY2ssIGFzeW5jX2ppdHRlcl9xdWV1ZV91bnJlZiwKCSAgYXN5bmNfaml0dGVyX3F1ZXVlX2xvY2ssIGFzeW5jX2ppdHRlcl9xdWV1ZV9wdXNoLAoJICBhc3luY19qaXR0ZXJfcXVldWVfcHVzaF91bmxvY2tlZCwgYXN5bmNfaml0dGVyX3F1ZXVlX3B1c2hfc29ydGVkLAoJICBhc3luY19qaXR0ZXJfcXVldWVfcG9wX2ludGVybl91bmxvY2tlZCwgYXN5bmNfaml0dGVyX3F1ZXVlX3BvcCwKCSAgYXN5bmNfaml0dGVyX3F1ZXVlX3BvcF91bmxvY2tlZCwgYXN5bmNfaml0dGVyX3F1ZXVlX2xlbmd0aF91bmxvY2tlZCwKCSAgYXN5bmNfaml0dGVyX3F1ZXVlX3NldF9mbHVzaGluZ191bmxvY2tlZCwKCSAgYXN5bmNfaml0dGVyX3F1ZXVlX3Vuc2V0X2ZsdXNoaW5nX3VubG9ja2VkKToKCSAgRm9ybWF0IGFyZyBmaXggKHNwb3R0ZWQgYnkgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPikKCjIwMDctMDUtMDkgMTE6MjQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogUGFzcyBxdWVyaWVzIHVwc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9xdWVyeSk6CgkgIFBhc3MgcXVlcmllcyB1cHN0cmVhbS4KCjIwMDctMDUtMDQgMTI6MzI6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzogQWRkIHNvbWUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfcXVlcnkpOgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2luaXQpLAoJICAocnRwX3Nlc3Npb25fc2VuZF9ydHApOgoJICBTdG9yZSByZWFsIHVzZXIgbmFtZSBpbiB0aGUgc2Vzc2lvbi4KCjIwMDctMDQtMzAgMTM6NDE6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuYzogRml4IHRoZSBjYXNlIHdoZXJlIHRoZSBidWZmZXIgdW5kZXJydW5zIGFuZCBkb2VzIG5vdCBibG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvYXN5bmNfaml0dGVyX3F1ZXVlLmM6IChzaWduYWxfd2FpdGluZ190aHJlYWRzKSwKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9wb3BfaW50ZXJuX3VubG9ja2VkKToKCSAgRml4IHRoZSBjYXNlIHdoZXJlIHRoZSBidWZmZXIgdW5kZXJydW5zIGFuZCBkb2VzIG5vdCBibG9jay4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2Jhc2VfaW5pdCksCgkgIChjcmVhdGVfcmVjdl9ydGNwKSwgKGNyZWF0ZV9zZW5kX3J0cCksIChjcmVhdGVfcnRjcCksCgkgIChnc3RfcnRwX2Jpbl9yZXF1ZXN0X25ld19wYWQpOgoJICBSZW5hbWUgUlRDUCBzZW5kIHBhZCwgbGlrZSBpbiB0aGUgc2Vzc2lvbiBtYW5hZ2VyLgoJICBBbGxvdyBnZXR0aW5nIGFuIFJUQ1AgcGFkIGZvciByZWNlaXZpbmcgZXZlbiBpZiB3ZSBkb24ndCByZWNlaXZlIFJUUC4KCSAgZml4IGhhbmRsaW5nIG9mIHNlbmRfcnRwX3NyYyBwYWQuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOiAoZ3N0X3J0cF9wdF9kZW11eF9jaGFpbik6CgkgIFdoZW4gbm8gcHQgbWFwIGNvdWxkIGJlIGZvdW5kLCBmYWxsIGJhY2sgdG8gdGhlIHNpbmtwYWQgY2Fwcy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRwKSwgKGNyZWF0ZV9yZWN2X3J0cF9zaW5rKSwKCSAgKGNyZWF0ZV9yZWN2X3J0Y3Bfc2luayksIChjcmVhdGVfc2VuZF9ydHBfc2luayksCgkgIChjcmVhdGVfc2VuZF9ydGNwX3NyYyk6CgkgIEZpeCBwYWQgbmFtZXMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAoc291cmNlX3B1c2hfcnRwKSwKCSAgKHJ0cF9zZXNzaW9uX2NyZWF0ZV9zb3VyY2UpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19zciksCgkgIChydHBfc2Vzc2lvbl9zZW5kX3J0cCksIChzZXNzaW9uX3N0YXJ0X3J0Y3ApOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uaDoKCSAgVW5sb2NrIHNlc3Npb24gd2hlbiBwZXJmb3JtaW5nIGEgY2FsbGJhY2suCgkgIEFkZCBjYWxsYmFja3MgZm9yIHRoZSBpbnRlcm5hbCBzZXNzaW9uIG9iamVjdC4KCSAgRml4IHNlbmRpbmcgb2YgUlRQIHBhY2tldHMuCgkgIGZpcnN0IGF0dGVtcHQgYXQgYWRkaW5nIE5UUCB0aW1lcyBpbiB0aGUgU1IgcGFja2V0cy4KCSAgU21hbGwgZGVidWcgYW5kIGRvYyBpbXByb3ZlbWVudHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmM6IChydHBfc291cmNlX3NlbmRfcnRwKToKCSAgVXBkYXRlIHN0YXRzIGZvciBTUiByZXBvcnRzLgoKMjAwNy0wNC0yOSAxNDo0NjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogUmVtb3ZlIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydGNwKToKCSAgUmVtb3ZlIGRlYnVnLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc3IpLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19zZGVzKSwgKGNhbGN1bGF0ZV9ydGNwX2ludGVydmFsKSwKCSAgKHJ0cF9zZXNzaW9uX25leHRfdGltZW91dCksIChzZXNzaW9uX3JlcG9ydF9ibG9ja3MpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmM6IChydHBfc3RhdHNfY2FsY3VsYXRlX3J0Y3BfaW50ZXJ2YWwpOgoJICBJbXByb3ZlIGRlYnVnZ2luZwoJICBGaXggaW50ZXJ2YWwgZm9yIEJZRS9SVENQIHBhY2tldHMuCgoyMDA3LTA0LTI3IDE1OjA5OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiBNb3ZlIHJlY29uc2lkZXJhdGlvbiBjb2RlIHRvIHRoZSBydHBzZXNzaW9uIG9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAocnRjcF90aHJlYWQpLAoJICAoZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRjcCksIChnc3RfcnRwX3Nlc3Npb25fcmVjb25zaWRlcik6CgkgIE1vdmUgcmVjb25zaWRlcmF0aW9uIGNvZGUgdG8gdGhlIHJ0cHNlc3Npb24gb2JqZWN0LgoJICBTaW1wbGlmeSB0aW1vdXQgaGFuZGxpbmcgYW5kIGFkZCByZWNvbnNpZGVyYXRpb24uCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChydHBfc2Vzc2lvbl9pbml0KSwgKHJ0cF9zZXNzaW9uX2ZpbmFsaXplKSwgKG9uX2J5ZV9zc3JjKSwKCSAgKG9uX2J5ZV90aW1lb3V0KSwgKG9uX3RpbWVvdXQpLCAocnRwX3Nlc3Npb25fc2V0X2NhbGxiYWNrcyksCgkgIChvYnRhaW5fc291cmNlKSwgKHJ0cF9zZXNzaW9uX2NyZWF0ZV9zb3VyY2UpLAoJICAodXBkYXRlX2Fycml2YWxfc3RhdHMpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19zciksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3JyKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3NfYnllKSwgKHJ0cF9zZXNzaW9uX3Byb2Nlc3NfcnRjcCksCgkgIChjYWxjdWxhdGVfcnRjcF9pbnRlcnZhbCksIChydHBfc2Vzc2lvbl9zZW5kX2J5ZSksCgkgIChydHBfc2Vzc2lvbl9uZXh0X3RpbWVvdXQpLCAoc2Vzc2lvbl9zdGFydF9ydGNwKSwKCSAgKHNlc3Npb25fcmVwb3J0X2Jsb2NrcyksIChzZXNzaW9uX2NsZWFudXApLCAoc2Vzc2lvbl9zZGVzKSwKCSAgKHNlc3Npb25fYnllKSwgKGlzX3J0Y3BfdGltZSksIChydHBfc2Vzc2lvbl9vbl90aW1lb3V0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIEhhbmRsZSB0aW1lb3V0IG9mIGluYWN0aXZlIHNvdXJjZXMgYW5kIHNlbmRlcnMuCgkgIEltcGxlbWVudCBCWUUgc2NoZWR1bGluZy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKGNhbGN1bGF0ZV9qaXR0ZXIpLAoJICAocnRwX3NvdXJjZV9wcm9jZXNzX3NyKSwgKHJ0cF9zb3VyY2VfZ2V0X2xhc3Rfc3IpLAoJICAocnRwX3NvdXJjZV9nZXRfbGFzdF9yYik6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc291cmNlLmg6CgkgIEFkZCBtZW1iZXJzIHRvIGNoZWNrIGZvciB0aW1lb3V0cy4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOiAocnRwX3N0YXRzX2luaXRfZGVmYXVsdHMpLAoJICAocnRwX3N0YXRzX2NhbGN1bGF0ZV9ydGNwX2ludGVydmFsKSwgKHJ0cF9zdGF0c19hZGRfcnRjcF9qaXR0ZXIpLAoJICAocnRwX3N0YXRzX2NhbGN1bGF0ZV9ieWVfaW50ZXJ2YWwpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHN0YXRzLmg6CgkgIFVzZSBSRkMgYWxnb3JpdGhtIGZvciBjYWxjdWxhdGluZyB0aGUgcmVwb3J0aW5nIGludGVydmFsLgoKMjAwNy0wNC0yNSAxNjozODowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogSW1wbGVtZW50IGZvcndhcmQgYW5kIHJldmVyc2UgcmVjb25zaWRlcmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChydGNwX3RocmVhZCk6CgkgIEltcGxlbWVudCBmb3J3YXJkIGFuZCByZXZlcnNlIHJlY29uc2lkZXJhdGlvbi4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmM6IChydHBfc2Vzc2lvbl9nZXRfbnVtX3NvdXJjZXMpLAoJICAocnRwX3Nlc3Npb25fZ2V0X251bV9hY3RpdmVfc291cmNlcyksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3NyKSwKCSAgKHNlc3Npb25fcmVwb3J0X2Jsb2Nrcyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBTbWFsbCBjbGVhbnVwcy4KCjIwMDctMDQtMjUgMTU6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uKjogTWFrZSBkZWZhdWx0IGppdHRlcmJ1ZmZlciBsYXRlbmN5IGNvbmZpZ3VyYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiA8ZGVsZXRlIGlmIG5vdCB1c2luZyBhIGJ1ZGR5PgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3N0cmVhbSksCgkgIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwgKGdzdF9ydHBfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2Jpbl9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICBNYWtlIGRlZmF1bHQgaml0dGVyYnVmZmVyIGxhdGVuY3kgY29uZmlndXJhYmxlLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ppdHRlcl9idWZmZXJfc2lua19wYXJzZV9jYXBzKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9sb29wKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2dldF9wcm9wZXJ0eSk6CgkgIERlYnVnaW5nIGNsZWFudXBzLgoKMjAwNy0wNC0yNSAxMzoxOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBSZXBvcnQgTk9fUFJFUk9MTCB3aGVuIGdvaW5nIHRvIFBBVVNFRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhbmdlX3N0YXRlKToKCSAgUmVwb3J0IE5PX1BSRVJPTEwgd2hlbiBnb2luZyB0byBQQVVTRUQuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAocnRjcF90aHJlYWQpOgoJICBEb24ndCBzZW5kIFJUQ1AgcmlnaHQgYmVmb3JlIHdlIGFyZSBzaHV0dGluZyBkb3duLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX3Byb2Nlc3NfcnRwKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc3IpLCAoc2Vzc2lvbl9yZXBvcnRfYmxvY2tzKSwKCSAgKHJ0cF9zZXNzaW9uX3BlcmZvcm1fcmVwb3J0aW5nKToKCSAgSW1wcm92ZSByZXBvcnQgYmxvY2tzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAoY2FsY3VsYXRlX2ppdHRlciksIChpbml0X3NlcSksCgkgIChydHBfc291cmNlX3Byb2Nlc3NfcnRwKSwgKHJ0cF9zb3VyY2VfcHJvY2Vzc19zciksCgkgIChydHBfc291cmNlX3Byb2Nlc3NfcmIpLCAocnRwX3NvdXJjZV9nZXRfbGFzdF9zciksCgkgIChydHBfc291cmNlX2dldF9sYXN0X3JiKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBDbGVhbnVwcywgYWRkIG1ldGhvZHMgdG8gYWNjZXNzIHN0YXRzLgoKMjAwNy0wNC0yNSAwODozMDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBmaXggZm9yIHBhZCBuYW1lIGNoYW5nZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGNyZWF0ZV9ydGNwKToKCSAgZml4IGZvciBwYWQgbmFtZSBjaGFuZ2UKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChydGNwX3RocmVhZCksCgkgIChnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydGNwKSwgKGdzdF9ydHBfc2Vzc2lvbl9jbG9ja19yYXRlKToKCSAgRml4IGZvciByZW5hbWVkIG1ldGhvZHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiAocnRwX3Nlc3Npb25faW5pdCksCgkgIChydHBfc2Vzc2lvbl9maW5hbGl6ZSksIChydHBfc2Vzc2lvbl9zZXRfY25hbWUpLAoJICAocnRwX3Nlc3Npb25fZ2V0X2NuYW1lKSwgKHJ0cF9zZXNzaW9uX3NldF9uYW1lKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9uYW1lKSwgKHJ0cF9zZXNzaW9uX3NldF9lbWFpbCksCgkgIChydHBfc2Vzc2lvbl9nZXRfZW1haWwpLCAocnRwX3Nlc3Npb25fc2V0X3Bob25lKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9waG9uZSksIChydHBfc2Vzc2lvbl9zZXRfbG9jYXRpb24pLAoJICAocnRwX3Nlc3Npb25fZ2V0X2xvY2F0aW9uKSwgKHJ0cF9zZXNzaW9uX3NldF90b29sKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF90b29sKSwgKHJ0cF9zZXNzaW9uX3NldF9ub3RlKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9ub3RlKSwgKHNvdXJjZV9wdXNoX3J0cCksIChvYnRhaW5fc291cmNlKSwKCSAgKHJ0cF9zZXNzaW9uX2FkZF9zb3VyY2UpLCAocnRwX3Nlc3Npb25fZ2V0X3NvdXJjZV9ieV9zc3JjKSwKCSAgKHJ0cF9zZXNzaW9uX2NyZWF0ZV9zb3VyY2UpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19zciksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3NkZXMpLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydGNwKSwgKHJ0cF9zZXNzaW9uX3NlbmRfcnRwKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9yZXBvcnRpbmdfaW50ZXJ2YWwpLCAoc2Vzc2lvbl9yZXBvcnRfYmxvY2tzKSwKCSAgKHNlc3Npb25fc2RlcyksIChydHBfc2Vzc2lvbl9wZXJmb3JtX3JlcG9ydGluZyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5oOgoJICBQcmVwYXJlIGZvciBpbXBsZW1lbnRpbmcgU1NSQyBzYW1wbGluZy4KCSAgQ3JlYXRlIFNTUkMgZm9yIHRoZSBzZXNzaW9uLgoJICBBZGQgbWV0aG9kcyB0byBzZXQgdGhlIFNERVMgZW50cmllcy4KCSAgZml4IGFjY291bnRpbmcgb2Ygc2VuZGVycy9yZWNlaXZlcnMuCgkgIEltcGxlbWVudCBTUi9SUi9TREVTIFJUQ1AgcmVwb3J0aW5nLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNvdXJjZS5jOiAocnRwX3NvdXJjZV9pbml0KSwgKGluaXRfc2VxKSwKCSAgKHJ0cF9zb3VyY2VfcHJvY2Vzc19ydHApLCAocnRwX3NvdXJjZV9wcm9jZXNzX3NyKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSAgSW1wbGVtZW50IGV4dGVuZGVkIHNlcXVlbmNlIG51bWJlci4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5jOiAocnRwX3N0YXRzX2NhbGN1bGF0ZV9ydGNwX2ludGVydmFsKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBSZW5hbWUgc29tZSBmaWVsZHMuCgoyMDA3LTA0LTIxIDE5OjIxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jOiBEb24ndCB1c2UgR0xpYi0yLjEwIEFQSSwgd2Ugb25seSByZXF1aXJlIEdMaWIgMi44IGF0IHRoZSBtb21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2ZpbmFsaXplKToKCSAgRG9uJ3QgdXNlIEdMaWItMi4xMCBBUEksIHdlIG9ubHkgcmVxdWlyZSBHTGliIDIuOCBhdCB0aGUgbW9tZW50LgoKMjAwNy0wNC0xOCAxODo1ODo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRGlzYWJsZSBydHBtYW5hZ2VyIGZvciBub3cgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIENWUyAtYmFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEaXNhYmxlIHJ0cG1hbmFnZXIgZm9yIG5vdyBiZWNhdXNlIGl0IGRlcGVuZHMgb24gQ1ZTIC1iYXNlLgoJICAqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJICBBZGRlZCBuZXcgZmlsZXMgZm9yIHNlc3Npb24gbWFuYWdlci4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGNyZWF0ZV9zZXNzaW9uKSwgKGdldF9wdF9tYXApLAoJICAoY3JlYXRlX3N0cmVhbSksIChwdF9tYXBfcmVxdWVzdGVkKSwgKG5ld19zc3JjX3BhZF9mb3VuZCk6CgkgIFNvbWUgY2xlYW51cHMuCgkgIHRoZSBzZXNzaW9uIG1hbmFnZXIgY2FuIG5vdyBhbHNvIHJlcXVlc3QgYSBwdC1tYXAuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOiAoZ3N0X3J0cF9zZXNzaW9uX2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksIChnc3RfcnRwX3Nlc3Npb25faW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25fZmluYWxpemUpLCAocnRjcF90aHJlYWQpLCAoc3RhcnRfcnRjcF90aHJlYWQpLAoJICAoc3RvcF9ydGNwX3RocmVhZCksIChnc3RfcnRwX3Nlc3Npb25fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9wcm9jZXNzX3J0cCksIChnc3RfcnRwX3Nlc3Npb25fc2VuZF9ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX3NlbmRfcnRjcCksIChnc3RfcnRwX3Nlc3Npb25fY2xvY2tfcmF0ZSksCgkgIChnc3RfcnRwX3Nlc3Npb25fZ2V0X3RpbWUpLCAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3JlY3ZfcnRwX3NpbmspLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRwKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9ldmVudF9yZWN2X3J0Y3Bfc2luayksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fcmVjdl9ydGNwKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9ldmVudF9zZW5kX3J0cF9zaW5rKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9zZW5kX3J0cCksIChjcmVhdGVfc2VuZF9ydGNwX3NyYyksCgkgIChnc3RfcnRwX3Nlc3Npb25fcmVxdWVzdF9uZXdfcGFkKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmg6CgkgIFdlIGNhbiBhc2sgZm9yIHB0LW1hcCBub3cgdG9vIHdoZW4gdGhlIHNlc3Npb24gbWFuYWdlciBuZWVkcyBpdC4KCSAgSG9vayB1cCB0byB0aGUgbmV3IHNlc3Npb24gbWFuYWdlciwgaW1wbGVtZW50IHRoZSBuZWVkZWQgY2FsbGJhY2tzIGZvcgoJICBwdXNoaW5nIGRhdGEsIGdldHRpbmcgY2xvY2sgdGltZSBhbmQgcmVxdWVzdGluZyBjbG9jay1yYXRlcy4KCSAgUmVuYW1lIHJ0Y3Bfc3JjIHRvIHNlbmRfcnRjcF9zcmMgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoaXMgUlRDUCBpcyB0bwoJICBiZSBzZW5kIHRvIGNsaWVudHMuCgkgIEFkZCBjb2RlIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSB0aHJlYWQgdGhhdCB3aWxsIHNjaGVkdWxlIFJUQ1AgdGhyb3VnaAoJICB0aGUgc2Vzc2lvbiBtYW5hZ2VyLgoJICAqIGdzdC9ydHBtYW5hZ2VyL3J0cHNlc3Npb24uYzogKHJ0cF9zZXNzaW9uX2NsYXNzX2luaXQpLAoJICAocnRwX3Nlc3Npb25faW5pdCksIChydHBfc2Vzc2lvbl9maW5hbGl6ZSksCgkgIChydHBfc2Vzc2lvbl9zZXRfcHJvcGVydHkpLCAocnRwX3Nlc3Npb25fZ2V0X3Byb3BlcnR5KSwKCSAgKG9uX25ld19zc3JjKSwgKG9uX3NzcmNfY29sbGlzaW9uKSwgKG9uX3NzcmNfdmFsaWRhdGVkKSwKCSAgKG9uX2J5ZV9zc3JjKSwgKHJ0cF9zZXNzaW9uX25ldyksIChydHBfc2Vzc2lvbl9zZXRfY2FsbGJhY2tzKSwKCSAgKHJ0cF9zZXNzaW9uX3NldF9iYW5kd2lkdGgpLCAocnRwX3Nlc3Npb25fZ2V0X2JhbmR3aWR0aCksCgkgIChydHBfc2Vzc2lvbl9zZXRfcnRjcF9iYW5kd2lkdGgpLCAocnRwX3Nlc3Npb25fZ2V0X3J0Y3BfYmFuZHdpZHRoKSwKCSAgKHNvdXJjZV9wdXNoX3J0cCksIChzb3VyY2VfY2xvY2tfcmF0ZSksIChjaGVja19jb2xsaXNpb24pLAoJICAob2J0YWluX3NvdXJjZSksIChydHBfc2Vzc2lvbl9hZGRfc291cmNlKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9udW1fc291cmNlcyksCgkgIChydHBfc2Vzc2lvbl9nZXRfbnVtX2FjdGl2ZV9zb3VyY2VzKSwKCSAgKHJ0cF9zZXNzaW9uX2dldF9zb3VyY2VfYnlfc3NyYyksCgkgIChydHBfc2Vzc2lvbl9nZXRfc291cmNlX2J5X2NuYW1lKSwgKHJ0cF9zZXNzaW9uX2NyZWF0ZV9zb3VyY2UpLAoJICAodXBkYXRlX2Fycml2YWxfc3RhdHMpLCAocnRwX3Nlc3Npb25fcHJvY2Vzc19ydHApLAoJICAocnRwX3Nlc3Npb25fcHJvY2Vzc19zciksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3JyKSwKCSAgKHJ0cF9zZXNzaW9uX3Byb2Nlc3Nfc2RlcyksIChydHBfc2Vzc2lvbl9wcm9jZXNzX2J5ZSksCgkgIChydHBfc2Vzc2lvbl9wcm9jZXNzX2FwcCksIChydHBfc2Vzc2lvbl9wcm9jZXNzX3J0Y3ApLAoJICAocnRwX3Nlc3Npb25fc2VuZF9ydHApLCAocnRwX3Nlc3Npb25fZ2V0X3J0Y3BfaW50ZXJ2YWwpLAoJICAocnRwX3Nlc3Npb25fcHJvZHVjZV9ydGNwKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzZXNzaW9uLmg6CgkgIFRoZSBhZHZhbmNlZCBiZWdpbm5pbmdzIG9mIHRoZSBtYWluIHNlc3Npb24gbWFuYWdlciB0aGF0IGhhbmRsZXMgdGhlCgkgIHBhcnRpY2lwYW50IGRhdGFiYXNlIG9mIFJUUFNvdXJjZXMsIFNTUkMgcHJvYmF0aW9uLCBTU1JDIGNvbGxpc2lvbnMsCgkgIHBhcnNlIFJUQ1AgdG8gdXBkYXRlIHNvdXJjZSBzdGF0cy4gZXRjLi4KCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYzogKHJ0cF9zb3VyY2VfY2xhc3NfaW5pdCksCgkgIChydHBfc291cmNlX2luaXQpLCAocnRwX3NvdXJjZV9maW5hbGl6ZSksIChydHBfc291cmNlX25ldyksCgkgIChydHBfc291cmNlX3NldF9jYWxsYmFja3MpLCAocnRwX3NvdXJjZV9zZXRfYXNfY3NyYyksCgkgIChydHBfc291cmNlX3NldF9ydHBfZnJvbSksIChydHBfc291cmNlX3NldF9ydGNwX2Zyb20pLAoJICAocHVzaF9wYWNrZXQpLCAoZ2V0X2Nsb2NrX3JhdGUpLCAoY2FsY3VsYXRlX2ppdHRlciksCgkgIChydHBfc291cmNlX3Byb2Nlc3NfcnRwKSwgKHJ0cF9zb3VyY2VfcHJvY2Vzc19ieWUpLAoJICAocnRwX3NvdXJjZV9zZW5kX3J0cCksIChydHBfc291cmNlX3Byb2Nlc3Nfc3IpLAoJICAocnRwX3NvdXJjZV9wcm9jZXNzX3JiKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuaDoKCSAgT2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFuIFNTUkMgYW5kIGl0cyBzdGF0ZSBpbiB0aGUgZGF0YWJhc2UuCgkgIENhbGN1bGF0ZXMgdGhlIGppdHRlciBhbmQgdHJhbnNpdCB0aW1lcyBvZiBkYXRhIHBhY2tldHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc3RhdHMuYzogKHJ0cF9zdGF0c19pbml0X2RlZmF1bHRzKSwKCSAgKHJ0cF9zdGF0c19jYWxjdWxhdGVfcnRjcF9pbnRlcnZhbCksIChydHBfc3RhdHNfYWRkX3J0Y3Bfaml0dGVyKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzdGF0cy5oOgoJICBWYXJpb3VzIHN0YXRzIHJlZ2FyZGluZyB0aGUgc2Vzc2lvbiBhbmQgc291cmNlcy4KCSAgVXNlZCB0byBjYWxjdWxhdGUgdGhlIFJUQ1AgaW50ZXJ2YWwuCgoyMDA3LTA0LTEzIDA5OjIwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvOiBQcm90ZWN0IGxpc3RzIGFuZCBzdHJ1Y3R1cmVzIHdpdGggbG9ja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3Nlc3Npb24pLCAoZ2V0X3B0X21hcCksCgkgIChnc3RfcnRwX2Jpbl9pbml0KSwgKGdzdF9ydHBfYmluX2ZpbmFsaXplKSwgKG5ld19zc3JjX3BhZF9mb3VuZCksCgkgIChjcmVhdGVfcmVjdl9ydHApLCAoZ3N0X3J0cF9iaW5fcmVxdWVzdF9uZXdfcGFkKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX3Nlc3Npb25faW5pdCksIChnc3RfcnRwX3Nlc3Npb25fZmluYWxpemUpLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3JlY3ZfcnRwX3NpbmspLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2V2ZW50X3JlY3ZfcnRjcF9zaW5rKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9yZWN2X3J0Y3ApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX3JlcXVlc3RfbmV3X3BhZCk6CgkgIFByb3RlY3QgbGlzdHMgYW5kIHN0cnVjdHVyZXMgd2l0aCBsb2Nrcy4KCSAgUmV0dXJuIEZMT1dfT0sgZnJvbSBSVENQIG1lc3NhZ2VzIGZvciBub3cuCgoyMDA3LTA0LTEyIDA4OjE4OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IEVtaXQgcHQgbWFwIHJlcXVlc3RzIGFuZCBjYWNoZSByZXN1bHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGNyZWF0ZV9zZXNzaW9uKSwgKGdldF9wdF9tYXApLAoJICAoY3JlYXRlX3N0cmVhbSksIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwgKHB0X21hcF9yZXF1ZXN0ZWQpOgoJICBFbWl0IHB0IG1hcCByZXF1ZXN0cyBhbmQgY2FjaGUgcmVzdWx0cy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9qaXR0ZXJfYnVmZmVyX3NpbmtfcGFyc2VfY2FwcyksCgkgIChnc3Rfaml0dGVyX2J1ZmZlcl9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2dldF9jbG9ja19yYXRlKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOiAoZ3N0X3J0cF9wdF9kZW11eF9jaGFpbik6CgkgIEVtaXQgcmVxdWVzdC1wdC1tYXAgc2lnbmFscy4KCjIwMDctMDQtMTEgMTM6NDk6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5saXN0OiBTb21lIG1vcmUgY3VzdG9tIG1hcnNoYWxsZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5saXN0OgoJICBTb21lIG1vcmUgY3VzdG9tIG1hcnNoYWxsZXJzLgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiAoY3JlYXRlX3Nlc3Npb24pLCAoZ2V0X3B0X21hcCksCgkgIChjbG9ja19yYXRlX3JlcXVlc3QpLCAoY3JlYXRlX3N0cmVhbSksIChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KSwKCSAgKHB0X21hcF9yZXF1ZXN0ZWQpLCAobmV3X3NzcmNfcGFkX2ZvdW5kKSwgKGNyZWF0ZV9yZWN2X3J0cCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkgIFByZXBhcmUgZm9yIGNhY2hpbmcgcHQgbWFwcy4KCSAgQ29ubmVjdCB0byBzaWduYWxzIHRvIGNvbGxlY3QgcHQgbWFwcy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9qaXR0ZXJfYnVmZmVyX3Npbmtfc2V0Y2FwcyksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmg6CgkgIEFkZCByZXF1ZXN0X2Nsb2NrX3JhdGUgc2lnbmFsLgoJICBVc2Ugc2NhbGUgaW5zdGVhdCBvZiBzY2FsZV9pbnQgYmVjYXVzZSB0aGUgbGF0ZXIgZG9lcyBub3QgZGVhbCB3aXRoCgkgIG5lZ2F0aXZlIG51bWJlcnMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwcHRkZW11eC5jOiAoZ3N0X3J0cF9wdF9kZW11eF9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfcHRfZGVtdXhfY2hhaW4pOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguaDoKCSAgSW1wbGVtZW50IHJlcXVlc3QtcHQtbWFwIHNpZ25hbC4KCjIwMDctMDQtMTAgMDk6MTQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci86IEFkZGVkIGN1c3RvbSBtYXJzaGFsbGVycyBmb3Igc2lnbmFscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvLmN2c2lnbm9yZToKCSAgKiBnc3QvcnRwbWFuYWdlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4tbWFyc2hhbC5saXN0OgoJICBBZGRlZCBjdXN0b20gbWFyc2hhbGxlcnMgZm9yIHNpZ25hbHMuCgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgUHJlcGFyZSBmb3IgZW1pdGluZyBwdCBtYXAgc2lnbmFscy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAoZ3N0X3J0cF9zc3JjX2RlbXV4X2NsYXNzX2luaXQpOgoJICBGaXggc2lnbmFscy4KCjIwMDctMDQtMDYgMTI6Mjg6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uKjogUHJvdmlkZSBhIGNsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGdzdF9ydHBfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9iaW5faW5pdCksIChnc3RfcnRwX2Jpbl9wcm92aWRlX2Nsb2NrKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgUHJvdmlkZSBhIGNsb2NrLgoKMjAwNy0wNC0wNiAxMjowNzozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jOiBGaXggcGFkIHRlbXBsYXRlIG5hbWUgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChjcmVhdGVfcnRjcCk6CgkgIEZpeCBwYWQgdGVtcGxhdGUgbmFtZSBwYXJzaW5nLgoKMjAwNy0wNC0wNSAxNjoxMDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOiBBZGQgc29tZSBkZWJ1ZyBhbmQgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGppdHRlcmJ1ZmZlci5jOgoJICAoZ3N0X2ppdHRlcl9idWZmZXJfc2lua19zZXRjYXBzKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jaGFpbiksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfbG9vcCk6CgkgIEFkZCBzb21lIGRlYnVnIGFuZCBjb21tZW50cy4KCSAgRml4IGRvdWJsZSB1bnJlZigpIGluIGVycm9yIGNhc2VzLgoKMjAwNy0wNC0wNSAxMzo1NDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi4qOiBBZGQgZGVidWdnaW5nIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzogKGZpbmRfc2Vzc2lvbl9ieV9pZCksCgkgIChjcmVhdGVfc2Vzc2lvbiksIChmaW5kX3N0cmVhbV9ieV9zc3JjKSwgKGNyZWF0ZV9zdHJlYW0pLAoJICAoZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCksIChuZXdfcGF5bG9hZF9mb3VuZCksCgkgIChuZXdfc3NyY19wYWRfZm91bmQpLCAoY3JlYXRlX3JlY3ZfcnRwKSwgKGNyZWF0ZV9yZWN2X3J0Y3ApLAoJICAoY3JlYXRlX3NlbmRfcnRwKSwgKGNyZWF0ZV9ydGNwKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaDoKCSAgQWRkIGRlYnVnZ2luZyBjYXRlZ29yeS4KCSAgQWRkZWQgUlRQU3RyZWFtIHRvIG1hbmFnZSBzdHJlYW0gcGVyIFNTUkMsIGVhY2ggd2l0aCBpdHMgb3duCgkgIGppdHRlcmJ1ZmZlciBhbmQgcHRkZW11eC4KCSAgQWRkZWQgU1NSQ0RlbXV4LgoJICBDb25uZWN0IHRvIHZhcmlvdXMgU1NSQyBhbmQgUFQgc2lnbmFscyBhbmQgY3JlYXRlIGdob3N0cGFkcywgbGluayBzdHVmZi4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBtYW5hZ2VyLmM6IChwbHVnaW5faW5pdCk6CgkgIEFkZGVkIHJ0cGJpbiB0byBlbGVtZW50cy4KCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6IChnc3RfcnRwX3B0X2RlbXV4X2NoYWluKToKCSAgRml4IGNhcHMgYW5kIGZvcndhcmQgR3N0Rmxvd1JldHVybgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNlc3Npb24uYzogKGdzdF9ydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9ldmVudF9yZWN2X3J0cF9zaW5rKSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jaGFpbl9yZWN2X3J0cCksCgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfcmVjdl9ydGNwX3NpbmspLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRjcCksCgkgIChnc3RfcnRwX3Nlc3Npb25fZXZlbnRfc2VuZF9ydHBfc2luayksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fc2VuZF9ydHApLCAoY3JlYXRlX3JlY3ZfcnRwX3NpbmspLAoJICAoY3JlYXRlX3JlY3ZfcnRjcF9zaW5rKSwgKGNyZWF0ZV9zZW5kX3J0cF9zaW5rKSwgKGNyZWF0ZV9ydGNwX3NyYyksCgkgIChnc3RfcnRwX3Nlc3Npb25fcmVxdWVzdF9uZXdfcGFkKToKCSAgQWRkIGRlYnVnIGNhdGVnb3J5LgoJICBBZGQgZXZlbnQgaGFuZGxpbmcKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguYzogKGZpbmRfcnRwX3BhZF9mb3Jfc3NyYyksCgkgIChjcmVhdGVfcnRwX3BhZF9mb3Jfc3NyYyksIChnc3RfcnRwX3NzcmNfZGVtdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfaW5pdCksIChnc3RfcnRwX3NzcmNfZGVtdXhfY2hhaW4pLAoJICAoZ3N0X3J0cF9zc3JjX2RlbXV4X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc3NyY2RlbXV4Lmg6CgkgIEFkZCBkZWJ1ZyBjYXRlZ29yeS4KCSAgQWRkIG5ldy1wdC1wYWQgc2lnbmFsLgoKMjAwNy0wNC0wNCAxMDoyMzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHBtYW5hZ2VyLzogQWRkZWQgc2ltcGxlIFNTUkMgZGVtdXhlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwbWFuYWdlci5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOiAoZmluZF9wYWRfZm9yX3NzcmMpLAoJICAoY3JlYXRlX3BhZF9mb3Jfc3NyYyksIChnc3RfcnRwX3NzcmNfZGVtdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9jbGFzc19pbml0KSwgKGdzdF9ydHBfc3NyY19kZW11eF9pbml0KSwKCSAgKGdzdF9ydHBfc3NyY19kZW11eF9maW5hbGl6ZSksIChnc3RfcnRwX3NzcmNfZGVtdXhfc2lua19ldmVudCksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfY2hhaW4pLCAoZ3N0X3J0cF9zc3JjX2RlbXV4X3NyY19ldmVudCksCgkgIChnc3RfcnRwX3NzcmNfZGVtdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzc3JjZGVtdXguaDoKCSAgQWRkZWQgc2ltcGxlIFNTUkMgZGVtdXhlci4KCjIwMDctMDQtMDMgMTE6MzU6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwbWFuYWdlci86IFNvbWUgbW9yZSBnaG9zdHBhZCBtYWdpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChmaW5kX3Nlc3Npb25fYnlfaWQpLAoJICAoY3JlYXRlX3Nlc3Npb24pLCAoZ3N0X3J0cF9iaW5fYmFzZV9pbml0KSwgKGNyZWF0ZV9yZWN2X3J0cCksCgkgIChjcmVhdGVfcmVjdl9ydGNwKSwgKGNyZWF0ZV9zZW5kX3J0cCksIChjcmVhdGVfcnRjcCksCgkgIChnc3RfcnRwX2Jpbl9yZXF1ZXN0X25ld19wYWQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5oOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGNsaWVudC5jOgoJICBTb21lIG1vcmUgZ2hvc3RwYWQgbWFnaWMuCgoyMDA3LTA0LTAzIDA5OjUxOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cG1hbmFnZXIvTWFrZWZpbGUuYW06IEFkZCAuaCBmaWxlIHNvIGl0IGNhbiBiZSBkaXN0ZWQgcHJvcGVybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJICBBZGQgLmggZmlsZSBzbyBpdCBjYW4gYmUgZGlzdGVkIHByb3Blcmx5LgoKMjAwNy0wNC0wMyAwOToxMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBSVFAgc2Vzc2lvbiBtYW5hZ2VtZW50IGVsZW1lbnRzLiBTdGlsbCBpbiBwcm9ncmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9ydHBtYW5hZ2VyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2FzeW5jX2ppdHRlcl9xdWV1ZS5jOiAoYXN5bmNfaml0dGVyX3F1ZXVlX25ldyksCgkgIChzaWduYWxfd2FpdGluZ190aHJlYWRzKSwgKGFzeW5jX2ppdHRlcl9xdWV1ZV9yZWYpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3JlZl91bmxvY2tlZCksCgkgIChhc3luY19qaXR0ZXJfcXVldWVfc2V0X2xvd190aHJlc2hvbGQpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3NldF9oaWdoX3RocmVzaG9sZCksCgkgIChhc3luY19qaXR0ZXJfcXVldWVfc2V0X21heF9xdWV1ZV9sZW5ndGgpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX2dldF9nX3F1ZXVlKSwgKGNhbGN1bGF0ZV90c19kaWZmKSwKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9sZW5ndGhfdHNfdW5pdHNfdW5sb2NrZWQpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3VucmVmX2FuZF91bmxvY2spLCAoYXN5bmNfaml0dGVyX3F1ZXVlX3VucmVmKSwKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9sb2NrKSwgKGFzeW5jX2ppdHRlcl9xdWV1ZV91bmxvY2spLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3B1c2gpLCAoYXN5bmNfaml0dGVyX3F1ZXVlX3B1c2hfdW5sb2NrZWQpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3B1c2hfc29ydGVkKSwKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9wdXNoX3NvcnRlZF91bmxvY2tlZCksCgkgIChhc3luY19qaXR0ZXJfcXVldWVfaW5zZXJ0X2FmdGVyX3VubG9ja2VkKSwKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9wb3BfaW50ZXJuX3VubG9ja2VkKSwgKGFzeW5jX2ppdHRlcl9xdWV1ZV9wb3ApLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3BvcF91bmxvY2tlZCksIChhc3luY19qaXR0ZXJfcXVldWVfbGVuZ3RoKSwKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9sZW5ndGhfdW5sb2NrZWQpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3NldF9mbHVzaGluZ191bmxvY2tlZCksCgkgIChhc3luY19qaXR0ZXJfcXVldWVfdW5zZXRfZmx1c2hpbmdfdW5sb2NrZWQpLAoJICAoYXN5bmNfaml0dGVyX3F1ZXVlX3NldF9ibG9ja2luZ191bmxvY2tlZCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvYXN5bmNfaml0dGVyX3F1ZXVlLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmM6IChnc3RfcnRwX2Jpbl9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCksIChnc3RfcnRwX2Jpbl9pbml0KSwKCSAgKGdzdF9ydHBfYmluX2ZpbmFsaXplKSwgKGdzdF9ydHBfYmluX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2Jpbl9nZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9iaW5fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfYmluX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfcnRwX2Jpbl9yZWxlYXNlX3BhZCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50LmM6IChuZXdfcGFkKSwgKGNyZWF0ZV9zdHJlYW0pLAoJICAoZnJlZV9zdHJlYW0pLCAoZmluZF9zdHJlYW1fYnlfc3NyYyksIChnc3RfcnRwX2NsaWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9jbGllbnRfY2xhc3NfaW5pdCksIChnc3RfcnRwX2NsaWVudF9pbml0KSwKCSAgKGdzdF9ydHBfY2xpZW50X2ZpbmFsaXplKSwgKGdzdF9ydHBfY2xpZW50X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2NsaWVudF9nZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9jbGllbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfY2xpZW50X3JlcXVlc3RfbmV3X3BhZCksIChnc3RfcnRwX2NsaWVudF9yZWxlYXNlX3BhZCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50Lmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9kaXNwb3NlKSwgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9nZXRjYXBzKSwKCSAgKGdzdF9qaXR0ZXJfYnVmZmVyX3Npbmtfc2V0Y2FwcyksIChmcmVlX2Z1bmMpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2ZsdXNoX3N0YXJ0KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9mbHVzaF9zdG9wKSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhbmdlX3N0YXRlKSwgKHByaXZfY29tcGFyZV9ydHBfc2VxX2x0KSwKCSAgKGNvbXBhcmVfcnRwX2J1ZmZlcnNfc2VxX251bSksIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfc2lua19ldmVudCksCgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pLCAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2xvb3ApLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX3F1ZXJ5KSwKCSAgKGdzdF9ydHBfaml0dGVyX2J1ZmZlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9qaXR0ZXJfYnVmZmVyX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmg6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwbWFuYWdlci5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguYzogKGdzdF9ydHBfcHRfZGVtdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfcHRfZGVtdXhfY2xhc3NfaW5pdCksIChnc3RfcnRwX3B0X2RlbXV4X2luaXQpLAoJICAoZ3N0X3J0cF9wdF9kZW11eF9maW5hbGl6ZSksIChnc3RfcnRwX3B0X2RlbXV4X2NoYWluKSwKCSAgKGdzdF9ydHBfcHRfZGVtdXhfZ2V0Y2FwcyksIChmaW5kX3BhZF9mb3JfcHQpLAoJICAoZ3N0X3J0cF9wdF9kZW11eF9zZXR1cCksIChnc3RfcnRwX3B0X2RlbXV4X3JlbGVhc2UpLAoJICAoZ3N0X3J0cF9wdF9kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHB0ZGVtdXguaDoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBzZXNzaW9uLmM6IChnc3RfcnRwX3Nlc3Npb25fYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9jbGFzc19pbml0KSwgKGdzdF9ydHBfc2Vzc2lvbl9pbml0KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9maW5hbGl6ZSksIChnc3RfcnRwX3Nlc3Npb25fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfc2Vzc2lvbl9nZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9zZXNzaW9uX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fcmVjdl9ydHApLAoJICAoZ3N0X3J0cF9zZXNzaW9uX2NoYWluX3JlY3ZfcnRjcCksCgkgIChnc3RfcnRwX3Nlc3Npb25fY2hhaW5fc2VuZF9ydHApLCAoY3JlYXRlX3JlY3ZfcnRwX3NpbmspLAoJICAoY3JlYXRlX3JlY3ZfcnRjcF9zaW5rKSwgKGNyZWF0ZV9zZW5kX3J0cF9zaW5rKSwgKGNyZWF0ZV9ydGNwX3NyYyksCgkgIChnc3RfcnRwX3Nlc3Npb25fcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF9ydHBfc2Vzc2lvbl9yZWxlYXNlX3BhZCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5oOgoJICBBZGQgUlRQIHNlc3Npb24gbWFuYWdlbWVudCBlbGVtZW50cy4gU3RpbGwgaW4gcHJvZ3Jlc3MuCgoyMDA5LTA4LTEwIDEzOjMwOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHB1c2ggbW9kZTsgY2F0ZXIgZm9yIGNodW5rIHBhZGRpbmcKCjIwMDktMDgtMDQgMTk6NDU6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogb25seSB1c2Ugc3RyZWFtJ3MgcGFkIGFmdGVyIGhhdmluZyBjaGVja2VkIGl0IGV4aXN0cwoKMjAwOS0wOC0wNCAxMzozODowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBzcHJpbmtsZSBzb21lIG1vcmUgR1NUX0RFQlVHX0ZVTkNQVFIKCjIwMDktMDgtMDQgMTM6MzY6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogcG9zdCBlcnJvciBtZXNzYWdlIGlmIG5vIHBhZHMgdG8gcHVzaCBFT1MgZXZlbnQgb24KCjIwMDktMDgtMDQgMTE6Mzk6NTkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZml4IHR5cG8gaW4gd2FybmluZyBtZXNzYWdlCgoyMDA5LTA4LTA0IDExOjM5OjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGZpeCBzb21lIGJ1ZmZlciByZWYgaGFuZGxpbmcKCjIwMDktMDgtMDQgMTE6Mzc6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZG8gbm90IGV4Y2VlZCBtYXhpbXVtIG51bWJlciBvZiBzdXBwb3J0ZWQgc3RyZWFtcwoKMjAwOS0wOC0wNCAxMTozNToxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBwcmV2ZW50IGRvdWJsZSB1bnJlZjsgZ3N0X2F2aV9kZW11eF9wYXJzZV9hdmloIGFscmVhZHkgdW5yZWZzCgoyMDA5LTA4LTA0IDExOjMyOjI3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHZlcmlmeSBzaXplIG9mIElORk8gTElTVCB0byBzYXRpc2Z5IHN1YnNlcXVlbnQgZXhwZWN0YXRpb25zCgoyMDA5LTA3LTI5IDE1OjI1OjM4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGNoZWNrIHZpZGVvIHN0cmVhbSBmcmFtZXJhdGUgYWdhaW5zdCBhdmkgaGVhZGVyIGZyYW1lIGR1cmF0aW9uCgkgIFRoZSBmb3JtZXIgbWlnaHQgYmUgYm9ndXMgaW4gc2lsbHkgY2FzZXMsIGFuZCB0aGUgbGF0dGVyIHNlZW1zIHRvCgkgIGNhcnJ5IG1vcmUgd2VpZ2h0LgoKMjAwOS0wOC0wNCAxMjoxNjoxMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBzdHJlYW1saW5lIHN0cmVhbSBkdXJhdGlvbiBjYWxjdWxhdGlvbgoKMjAwOS0wNy0wMyAxNDowNDoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJICBkdjEzOTRzcmM6IEZpeCBlbGVtZW50IGZvciBsaXZlIHVzYWdlLi4uIHdoaWNoIGhhcyBiZWVuIGJyb2tlbiBmb3IgMiB5ZWFycyA6KAoJICBUaGlzIGlzIGEgbGl2ZSBzb3VyY2UsIHRoZXJlZm9yZToKCSAgKiBVc2UgR1NUX0ZPUk1BVF9USU1FIGFzIHRoZSBkZWZhdWx0IGZvcm1hdAoJICAqIHNldF90aW1lc3RhbXAgdG8gVHJ1ZQoJICAqIHByb3Blcmx5IGltcGxlbWVudCBxdWVyeSBsYXRlbmN5LgoJICBUaGlzIGFsbG93cyBleHBlY3RlZCBsaXZlIHVzYWdlIGxpa2UgOiBwbGF5YmluMiB1cmk9ZHY6Ly8KCjIwMDktMDgtMDkgMDk6NDM6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSAgcmF3MTM5NDogUmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlCgoyMDA5LTA4LTA5IDA5OjQzOjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAwOS0wOC0wOSAwOTo0MzowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJICBydHA6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzIGFuZCByZXN1bHRpbmcgdW5uZWVkZWQgdmFyaWFibGVzLgoKMjAwOS0wOC0xMCAwOTo1MzoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC93YXZwYWNrL01ha2VmaWxlLmFtOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDoKCSogZXh0L3dhdnBhY2svbWQ1LmM6CgkqIGV4dC93YXZwYWNrL21kNS5oOgoJICB3YXZwYWNrOiBVc2UgR0xpYiBHQ2hlY2tzdW0gaW5zdGVhZCBvZiBvdXIgb3duIE1ENSBpbXBsZW1lbnRhdGlvbgoJICBUaGlzIHJlcXVpcmVzIEdMaWIgMi4xNiBidXQgdGhhdCB2ZXJzaW9uIGlzIGFscmVhZHkgcmVxdWlyZWQgYnkgY29yZSBhbnl3YXkuCgoyMDA5LTA4LTA4IDAwOjQ3OjQ4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguaDoKCSAgbWF0cm9za2E6IEFkZHMgc3VwcG9ydCB0byBtdXhpbmcvZGVtdXhpbmcgV01BCgkgIEFkZHMgc3VwcG9ydCBmb3IgbXV4aW5nIHdtYSBhdWRpbyBmYW1pbHkgYW5kIGZpeGVzCgkgIGRlbXV4aW5nIG9mIHdtYSBmYW1pbHkgaW4gbWF0cm9za2FkZW11eC4gbWF0cm9za2FkZW11eAoJICB3YXMgYnJva2VuIGJlY2F1c2UgaXQgbWlzc2VkIGNvZGVjX2RhdGEuCgoyMDA5LTA4LTA2IDIwOjE1OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2FtdXg6IGFkZHMgc3VwcG9ydCBmb3Igd212IGZhbWlseQoJICBBZGRzIHN1cHBvcnQgdG8gV01WMSwgV01WMiwgV01WMyBhbmQgb3RoZXIgZmFtaWx5IGZvcm1hdHMgdGhhdAoJICBhcmUgc2lnbmFsZWQgYnkgdGhlICdmb3JtYXQnIGZpZWxkIGluIHRoZSBjYXBzIChpLmUuIFdWQzEpLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzU3NjM3OAoKMjAwOS0wOC0wOSAxNDoxOTo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDJzcmM6IGlmIG1heCA9PSBtaW4gd2lkdGgvaGVpZ2h0IHB1dCBhbiBpbnQgaW4gdGhlIHByb2JlZCBjYXBzLCBub3QgYW4gaW50IHJhbmdlCgkgIEZpeGVzICM1NjAwMzMuCgoyMDA5LTA4LTA5IDEzOjU4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5jOgoJICBvc3hhdWRpb3NyYzogaWYgbWF4X2NoYW5uZWxzID09IG1pbl9jaGFubmVscywgdXNlIGFuIGludCBpbnN0ZWFkIG9mIGFuIGludCByYW5nZSBpbiB0aGUgY2FwcwoKMjAwOS0wOC0wOSAxMjo1MjoxNyArMDIwMCAgTG9uZVN0YXIgPGxvbmVAYXV2dGVjaC5jb20+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzoKCSAgaWQzZGVtdXg6IFRyeSBHU1RfKl9UQUdfRU5DT0RJTkcgYW5kIGxvY2FsZSBlbmNvZGluZyBpZiB0YWdzIGFyZSBub3QgVVRGOAoJICBGaXhlcyBidWcgIzQ5OTI0Mi4KCjIwMDktMDgtMDkgMDE6Mjk6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgY29yZS9iYXNlIHJlcXVpcmVtZW50cyB0byBsYXRlc3QgcmVsZWFzZQoJICBUbyBhdm9pZCBjb25mdXNpb24uCgoyMDA5LTA4LTA5IDAxOjI3OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zsdm11eC5jOgoJICBjaGVjazogZml4IGZsdm11eCB1bml0IHRlc3Qgb24gYmlnIGVuZGlhbiBtYWNoaW5lcwoJICBmbHZtdXggb25seSBhY2NlcHRzIHJhdyBhdWRpbyBpbiBsaXR0bGUgZW5kaWFuLCBidXQgYXVkaW90ZXN0c3JjCgkgIHByb2R1Y2VzIGF1ZGlvIGluIHRoZSBuYXRpdmUgZW5kaWFubmVzcywgd2hpY2ggbWFrZXMgbGlua2luZwoJICBiZXR3ZWVuIGF1ZGlvdGVzdHNyYyBhbmQgZmx2bXV4IGZhaWwgb24gYmlnIGVuZGlhbiBtYWNoaW5lcy4gQWRkCgkgIGFuIGF1ZGlvY29udmVydCBlbGVtZW50IGluIGJldHdlZW4gdGhlIHR3byB0byBmaXggdGhpcy4KCjIwMDktMDItMTUgMTg6NDk6NDQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8b2dnLmsub2dnLmtAZ29vZ2xlbWFpbC5jb20+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIG1hdHJvc2thOiBhZGQga2F0ZSBzdWJ0aXRsZSBzdXBwb3J0IHRvIG1hdHJvc2thIG11eGVyIGFuZCBkZW11eGVyCgkgIFNlZSAjNTI1NzQzLgoKMjAwOS0wOC0wNyAxNjo1MTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaWQzZGVtdXgvaWQzdjIuMy4wLmh0bWw6CgkgIGlkM2RlbXV4OiBhZGQgSUQzIHYyLjMgc3BlYyBhcyB3ZWxsCgoyMDA5LTA4LTA3IDE2OjQyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOgoJICBpZDNkZW11eDogc2l6ZXMgaW4gSUQzIHYyLjMgYXJlIHVubGlrZWx5IHRvIGJlIHN5bmMtc2FmZSBpbnRlZ2VycwoJICBJbiBJRDMgdjIuMyBjb21wcmVzc2VkIGZyYW1lcyB3aWxsIGhhdmUgYSA0LWJ5dGUgZGF0YSBsZW5ndGggaW5kaWNhdG9yCgkgIGFmdGVyIHRoZSBmcmFtZSBoZWFkZXIgdG8gaW5kaWNhdGUgdGhlIHNpemUgb2YgdGhlIGRlY29tcHJlc3NlZCBkYXRhLgoJICBUaGlzIGludGVnZXIgaXMgdW5saWtlbHkgdG8gYmUgYSBzeW5jLXNhZmUgaW50ZWdlciBmb3IgdjIuMyB0YWdzLAoJICBvbmx5IGluIHYyLjQgaXQncyBzeW5jLXNhZmUuCgoyMDA5LTA4LTA3IDE2OjM2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkgIGlkM2RlbXV4OiBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDA5LTA4LTA3IDE2OjAyOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmg6CgkqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDNkZW11eC5jOgoJKiB0ZXN0cy9maWxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZmlsZXMvaWQzLTU4ODE0OC11bnN5bmNlZC12MjQudGFnOgoJICBpZDNkZW11eDogZml4IHBhcnNpbmcgb2YgdW5zeW5jJ2VkIElEMyB2Mi40IHRhZ3MgYW5kIGZyYW1lcwoJICBSZXZlcnNpbmcgdGhlIHVuc3luY2hyb25pc2F0aW9uIHNlZW1zIHRvIHdvcmsgc2xpZ2h0bHkgZGlmZmVyZW50bHkKCSAgZm9yIElEMyB2Mi4zIHRhZ3MgYW5kIHYyLjQgdGFnczogdjIuMyB0YWdzIGRvbid0IGhhdmUgc3luY3NhZmUgZnJhbWUKCSAgc2l6ZXMgaW4gdGhlIGZyYW1lIGhlYWRlciwgc28gdGhlIHVuc3luY2hyb25pc2F0aW9uIGlzIGFwcGxpZWQgdG8KCSAgdGhlIHdob2xlIGZyYW1lIGRhdGEgaW5jbHVkaW5nIGFsbCB0aGUgZnJhbWUgaGVhZGVycy4gdjIuNCBmcmFtZXMKCSAgaGF2ZSBzeW5jLXNhZmUgc2l6ZXMsIGhvd2V2ZXIsIHNvIHRoZSB1bnN5bmNocm9uaXNhdGlvbiBvbmx5IG5lZWRzCgkgIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGFjdHVhbCBmcmFtZSBkYXRhLCBhbmQgaXQgc2VlbXMgdGhhdCdzIHdoYXQncwoJICBiZWluZyBkb25lIGFzIHdlbGwuIFNvIHdlIG5lZWQgdG8gdW5kbyB0aGUgdW5zeW5jaHJvbmlzYXRpb24gb24gYQoJICBwZXItZnJhbWUgYmFzaXMgZm9yIHYyLjQgdGFncyBmb3IgdGhpbmdzIHRvIHdvcmsgcHJvcGVybHkuCgkgIEZpeGVzIGV4dHJhY3Rpb24gb2YgY292ZXJhcnQvaW1hZ2VzIGZyb20gQVBJQyBmcmFtZXMgaW4gSUQzIHYyLjQKCSAgdGFncyAoIzU4ODE0OCkuCgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoaXMgYXMgd2VsbC4KCjIwMDktMDgtMDYgMjE6MjQ6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cGh0dHBzcmM6IFVzZSBTT1VQX01FVEhPRF9HRVQgaW5zdGVhZCBvZiAiR0VUIiBzdHJpbmcKCSAgRml4ZXMgYnVnICM1OTA5NzAuCgoyMDA5LTA4LTA2IDEzOjAwOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBzZXQgdGhlIGRlZmF1bHQgc2xhdmUgbWV0aG9kIHRvIHNrZXcKCSAgU2V0IHRoZSBkZWZhdWx0IHNsYXZlIG1ldGhvZCB0byB0aGUgbXVjaCBiZXR0ZXIgc2tldyBhbGdvcml0aG0uIFRoaXMgaXMgdGhlCgkgIGRlZmF1bHQgaW4gdGhlIG5ldyBiYXNlIGNsYXNzIGJ1dCB3ZSBvdmVycmlkZSB0aGlzIGhlcmUgYXMgd2VsbCBmb3IgdGhlCgkgIHVwY29tbWluZyByZWxlYXNlLgoKMjAwOS0wOC0wNiAxMDoyMDozNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSAgcHVsc2VzcmM6IGZpeCBjb21waWxhdGlvbiB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcKCjIwMDktMDgtMDMgMTg6NTk6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5Lmg6CgkgIHJ0cGgyNjRwYXk6IHVzZSBhcnJheSBpbnN0ZWFkIG9mIHF1ZXVlCgoyMDA5LTA4LTAzIDE4OjU1OjE5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgcnRwaDI2NHBheTogcHVzaCBOQUxzIG9ubHkgYWZ0ZXIgU1BTL1BQUwoJICBwYXJzZSBjb21wbGV0ZSAoYnl0ZXN0cmVhbSkgYnVmZmVyIGZvciBTUFMvUFBTIGJlZm9yZSBwdXNoaW5nIE5BTHMuCgkgIEZpeGVzICM1NjQ1MDEuCgoyMDA5LTA4LTA0IDE0OjQ0OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuaDoKCSAgdjRsMjogRGlyZWN0bHkgdXNlIEdTVF9QVFJfRk9STUFUIGZvciBwcmludGluZyBjYXBzIHdpdGggdGhlIExPR19DQVBTIG1hY3JvCgoyMDA5LTA4LTA0IDExOjE3OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5jOgoJICBydHBxZG0yZGVwYXk6IEZpeCBkZWJ1ZyBzdGF0ZW1lbnQuCgoyMDA5LTA4LTA0IDA5OjMyOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuaDoKCSAgdjRsMjogUmVtb3ZlIHNvbWUgT01BUCBzcGVjaWZpYyBoYWNrcwoJICBUaGV5IHJlcXVpcmUgc3BlY2lhbCBidWlsZCBmbGFncyBhbmQgYXJlIG5vdCB1c2VmdWwgaW4gZ2VuZXJhbC4KCjIwMDktMDgtMDQgMDk6MjI6MjkgKzAyMDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzaW5rLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMnNpbms6IGNoYW5nZSB3aGVyZSBidWZmZXJzIGdldCBkZXF1ZXVlZAoJICBJdCBzZWVtcyB0byBjYXVzZSBzdHJhbmdlIG9jY2FzaW9uYWwgaGlnaCBsYXRlbmNpZXMgKGFsbW9zdCAyMDBtcykgd2hlbiBkZXF1ZXVpbmcgYnVmZmVycyBmcm9tIF9idWZmZXJfYWxsb2MoKS4gIEl0IGlzIHNpbXBsZXIgYW5kIHNlZW1zIHRvIHdvcmsgbXVjaCBiZXR0ZXIgdG8gZHFidWYgZnJvbSB0aGUgc2FtZSB0aHJlYWQgdGhhdCBpcyBxdWV1aW5nIHRoZSBuZXh0IGJ1ZmZlci4KCjIwMDktMDgtMDQgMDk6MTQ6MjAgKzAyMDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9nc3R2NGwyLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJidWZmZXJwb29sLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc2luay5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmg6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJICB2NGwyOiBBZGQgdjRsMnNpbmsgZWxlbWVudAoJICBUaGlzIGFsc28gZG9lcyB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CgkgICgxKSBwdWxsIHRoZSBidWZmZXJwb29sIGNvZGUgb3V0IGludG8gZ3N0djRsMmJ1ZmZlcnBvb2wuYywgYW5kIG1ha2UgYQoJICBiaXQgbW9yZSBnZW5lcmljIHNvIGl0IGNhbiBiZSB1c2VkIGJvdGggZm9yIHY0bDJzcmMgYW5kIHY0bDJzaW5rCgkgICgyKSBtb3ZlIHNvbWUgb2YgdGhlIGRldmljZSBwcm9iaW5nL2NvbmZpZ3VyYXRpb24vY2FwcyBzdHVmZiBpbnRvCgkgIGdzdHY0bDJvYmplY3QuYyBzbyBpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGR1cGxpY2F0ZWQgYmV0d2VlbgoJICB2NGwyc3JjIGFuZCB2NGwyc2luawoJICBGaXhlcyBidWcgIzU5MDI4MC4KCjIwMDktMDgtMDQgMDc6MDc6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGZsdm11eDogRW5hYmxlIHVuaXQgdGVzdCBub3cgdGhhdCBpdCBwYXNzZXMKCjIwMDktMDgtMDMgMjE6MjE6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6CgkgIHJ0cHFkbTJkZXBheSxydHBzdjN2ZGVwYXk6IEFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkuCgoyMDA5LTA4LTAzIDIxOjIyOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHFkbWRlcGF5Lmg6CgkgIHJ0cHFkbTJkZXBheTogSGFuZGxlIGdhcHMgaW4gaW5jb21pbmcgcGFja2V0cy4KCSAgV2hlbmV2ZXIgd2Ugc2VlIGEgZ2FwLCB3ZSBmbHVzaCB0aGUgdGVtcG9yYXJ5IHBhY2tldHMgKGJ1dCBub3QgdGhlIGFkYXB0ZXIpLiBJZiB3ZQoJICBoYWQgc29tZSBkYXRhIHRlbXBvcmFyaWx5IHN0b3JlZCBpdCB3aWxsIGJlIG91dHB1dHRlZCAodGhlIHNvdW5kIHdpbGwgc291bmQgYSBiaXQKCSAgZ2FyYmxlZC4uLiBidXQgdGhhdCdzIGhvdyBpdCBzb3VuZHMgb24gTWFjT1NYIDopCgoyMDA5LTA4LTAzIDE5OjAxOjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5jOgoJICBydHBxZG1kZXBheTogRml4IENSQyBjYWxjdWxhdGlvbiBhbmQgcmVtb3ZlIGNvbW1lbnRlZCBjb2RlLgoKMjAwOS0wOC0wMiAxMzo0MjoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwcWRtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBxZG1kZXBheS5oOgoJICBydHA6IE5ldyBRRE0yIHJ0cCBkZXBheWxvYWRlci4KCSAgUmV2ZXJzZS1lbmdpbmVlcmVkIGJ5IGNvbXBhcmluZzoKCSAgKiBBIHJ0cCBoaW50ZWQgZmlsZSBwcm92aWRlZCBieSBEYXJ3aW5TdHJlYW1pbmdTZXJ2ZXIKCSAgKiBUaGUgb3V0cHV0IHByb2N1ZWQgYnkgRFNTIGZvciB0aGF0IHNhbWUgZmlsZQoJICBBbHNvIHVzZWQgdmFyaW91cyBzdHJlYW1pbmcgc291cmNlcyBhdmFpbGFibGUgb24gdGhlIGludGVybmV0IHRvIGZpbmUtdHVuZQoJICB0aGUgY29kZS4KCSAgVGhlIGhlYWRlci9jb2RlY19kYXRhIGV4dHJhY3Rpb24gbWV0aG9kcyBhcmUgZnJvbSBGRk1wZWcgKExHUEwpLgoKMjAwOS0wOC0wMyAyMToyNDo0NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6CgkgIHJ0cHN2M3ZkZXBheTogUHJvcGVybHkgZmlsbCBjb2RlY19kYXRhIGFuZCBjbGVhbnVwIGNvZGUgYSBiaXRlIG1vcmUuCgoyMDA5LTA4LTAzIDE5OjAyOjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuaDoKCSAgcnRwc3YzdmRlcGF5OiBPbmx5IG91dHB1dCBidWZmZXJzIG9uY2Ugd2UncmUgY29uZmlndXJlZC4KCjIwMDktMDgtMDMgMTk6MDI6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJICBydHBzdjN2ZGVwYXk6IEFkZCBtb3JlIGVuY29kaW5nLW5hbWUgdmFyaWFudHMKCjIwMDktMDgtMDMgMjA6MDg6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmx2bXV4LmM6CgkgIGZsdm11eDogRml4IHVuaXQgdGVzdCB0byBjb3JyZWN0bHkgaGFuZGxlIHJlcXVlc3QgcGFkcwoJICBSZXF1ZXN0IHBhZHMgYXJlIHJlbW92ZWQgYnkgdGhlIGVsZW1lbnQgaW5zdGFuY2UgaW4gUEFVU0VELT5SRUFEWQoJICBzbyB3ZSBuZWVkIHRvIHJlLXJlcXVlc3QgcGFkcyBmb3IgZXZlcnkgcnVuIGFuZCBsaW5rIHRoZW0gYWdhaW4uCgkgIExhc3QgZml4IGZvciBidWcgIzU5MDQ0Ny4KCjIwMDktMDgtMDMgMjA6MDg6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgZmx2bXV4OiBGaXggd3JpdGluZyBvZiB0aGUgaW5kZXggZm9yIDwgMTI4IGJ1ZmZlcnMKCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTkwNDQ3LgoKMjAwOS0wOC0wMyAyMDowNzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IEZpeCByZXNldHRpbmcgb2YgdGhlIGVsZW1lbnQKCSAgUmVzZXQgdGhlIGhhdmVfdmlkZW8vaGF2ZV9hdWRpbyBmbGFncyBhbmQgbWFrZSBzdXJlIHRvCgkgIHByb3Blcmx5IHJlbGVhc2UgdGhlIHJlcXVlc3QgcGFkcy4KCSAgUGFydGlhbGx5IGZpeGVzIGJ1ZyAjNTkwNDQ3LgoKMjAwOS0wOC0wMyAxODoxMzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZG9uJ3QgYWRkIG5vbi11dGY4IGNoYXJzIHRvIHN0cnVjdHVyZXMKCjIwMDktMDgtMDMgMTg6MDI6MzEgKzAyMDAgIEx1YyBEZXNjaGVuYXV4IDxsdWMuZGVzY2hlbmF1eCBhdCBmcmVlc3VyZi5jaD4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5Lmg6CgkgIGpwZWdkZXBheTogdXNlIGF0dHJpYnV0ZXMgZm9yIGV4dHJhIHByb3BlcnRpZXMKCSAgVXNlIHNvbWUgb2YgdGhlIFNEUCBhdHRyaWJ1dGVzIHdoZW4gdGhleSBhcmUgcHJlc2VudCB0byBzcGVjaWZ5IHRoZSBvdXRwdXQKCSAgZGltZW5zaW9uIGFuZCBmcmFtZXJhdGUuIFRoaXMgYWxsb3dzIHVzIHRvIHJlY2VpdmUganBlZyBmcmFtZXMgbGFyZ2VyIHRoYW4KCSAgMjA0MCB3aWR0aC9oZWlnaHQuCgkgIEZpeGVzICM1NjQ0MzcKCjIwMDktMDgtMDMgMTg6MDE6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL1JFQURNRToKCSAgUlRQIGRvY3M6IHVwZGF0ZSB3aXRoIGF0dHJpYnV0ZXMgaW4gY2FwcwoKMjAwOS0wOC0wMyAxNzoyMTo0NCArMDIwMCAgTHVjIERlc2NoZW5hdXggPGx1Yy5kZXNjaGVuYXV4IGF0IGZyZWVzdXJmLmNoPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBwdXQgYWxsIFNEUCBhdHRyaWJ1dGVzIG9uIGNhcHMKCSAgUHV0IHRoZSBTRFAgYXR0cmlidXRlcyBvbiB0aGUgY2FwcyB0b28gc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIGJ5CgkgIGRlcGF5bG9hZGVycy4KCSAgU2VlICM1NjQ0MzcKCjIwMDktMDgtMDMgMTM6MzI6MTIgKzAyMDAgIEpvbmF0aGFuIFRlbGxpZXIgPGpvbmF0aGFuLnRlbGxpZXIgYXQgZ21haWwuY29tPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBpbml0aWFsaXplIHRoZSBwcm9iZSB3aXRoIHRoZSBzZXJ2ZXIKCSAgV2hlbiBjcmVhdGluZyBhIG5ldyBwcm9iZSwgcGFzcyB0aGUgc2VydmVyIGluc3RlYWQgb2YgdGhlIGRldmljZSBzdHJpbmcuCgkgIGZpeGVzICM1OTA0MDEKCjIwMDktMDgtMDIgMTE6NDQ6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgbXVsdGl1ZHBzaW5rOiBkb24ndCBkbyB0aGluZ3Mgd2l0aCBzaWRlLWVmZmVjdHMgaW5zaWRlIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkKCSAgU29tZW9uZSBtaWdodCBjb21waWxlIHRoaXMgY29kZSB3aXRoIC1ER19ESVNBQkxFX0FTU0VSVCBzb21lIGRheS4KCjIwMDktMDgtMDEgMjE6Mzk6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGRvbid0IGRvIGxvZ2ljIHdpdGhpbiBnX2Fzc2VydCgpIHN0YXRlbWVudHMKCSAgT3RoZXJ3aXNlIHRoYXQgY29kZSB3aWxsIGp1c3QgYmUgZXhwYW5kZWQgdG8gbm90aGluZyB3aGVuIGNvbXBpbGVkCgkgIC1ER19ESVNBQkxFX0FTU0VSVCAoUFM6IHdoeSBpcyBtYWlubG9vcF9zdGFydCgpIGNhbGxlZCBpbiB0aGUgaW5pdAoJICBmdW5jdGlvbiBhbmQgbm90IHdoZW4gY2hhbmdpbmcgc3RhdGUgdG8gUkVBRFk/KQoKMjAwOS0wOC0wMSAxNzowNzo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IHNlbmQgbmV3c2VnbWVudCBldmVudCB3aGVuIG9wZXJhdGluZyBwdXNoLWJhc2VkIGFuZCB1bmZyYW1lZAoJICBGb3Igc29tZSByZWFzb24gZmxhYyBkb2Vzbid0IGNhbGwgb3VyIG1ldGFkYXRhIGNhbGxiYWNrIHdoZW4gd2Ugb3BlcmF0ZQoJICBpbiBwdXNoIG1vZGUgd2l0aCB1bmZyYW1lZCBpbnB1dCwgYnV0IHRoYXQncyB3aGVyZSB3ZSBzZXQgdXAgdGhlCgkgIG5ld3NlZ21lbnQgZXZlbnQgKHNpbmNlIHRoYXQncyB3aGVyZSB3ZSdkIGdldCB0aGUgZHVyYXRpb24gZnJvbSB0aGUKCSAgc3RyZWFtIGluZm8gaGVhZGVyKSwgc28gd2UgZGlkbid0IHNlbmQgYSBuZXdzZWdtZW50IGV2ZW50IGF0IGFsbCBpbiB0aGlzCgkgIGNhc2UuIEhhY2sgYXJvdW5kIHRoaXMgYnkgc3RvcmluZyBhIGdlbmVyaWMgbmV3c2VnbWVudCBldmVudCBmb3Igbm93CgkgIHdoaWNoIHdpbGwgYmUgdXNlZCBpZiB3ZSBkb24ndCByZXBsYWNlIGl0IHdpdGggYSBiZXR0ZXIgb25lIHRoYXQKCSAgaW5jbHVkZXMgdGhlIGR1cmF0aW9uLgoKMjAwOS0wOC0wMSAxNjo0ODozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IHNtYWxsIGNsZWFudXBzCgkgIFJlbW92ZSBzb21lIGNhbGxiYWNrIGluZGlyZWN0aW9ucyB3aGljaCBhcmUgbm8gbG9uZ2VyIG5lZWRlZCBiZWNhdXNlCgkgIHRoZXJlJ3Mgb25seSBvbmUgZGVjb2RlciBvYmplY3QgdHlwZSBub3cuIEFsc28gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDktMDgtMDEgMTU6MjI6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiB1c2UgZ3N0X2FkYXB0ZXJfY29weSgpIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGJ1ZmZlciBtZXJnZXMKCSAgZ3N0X2FkYXB0ZXJfcGVlaygpIHdpbGwgbWVyZ2UgYnVmZmVycyBhcyBuZWVkZWQsIHdoaWNoIHdlIGNhbiBhdm9pZAoJICBoZXJlIHNpbmNlIHdlJ3JlIGRvaW5nIGEgbWVtY3B5IGFueXdheSBhbmQgdGhlbiBmbHVzaCB0aGUgY29waWVkCgkgIGRhdGEgZnJvbSB0aGUgYWRhcHRlciByaWdodCBhd2F5LgoKMjAwOS0wOC0wMSAwMDowMDo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IHJlcGFpciBzb21lIGJyb2tlbiBpbmRlbnRpbmcKCjIwMDktMDgtMDEgMTI6MTk6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zsdm11eC5jOgoJICBjaGVja3M6IGFkZCBiYXNpYyB1bml0IHRlc3QgZm9yIGZsdm11eCwgYnV0IGRpc2FibGUgaXQgZm9yIG5vdwoJICBCYXNpYyB1bml0IHRlc3QgZm9yIGZsdm11eC4gRmFpbHMgbWlzZXJhYmx5LCBoZW5jZSBkaXNhYmxlZCBmb3Igbm93LgoKMjAwOS0wNy0zMSAyMzoyODoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmx2ZGVtdXguYzoKCSogdGVzdHMvZmlsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2ZpbGVzL3BjbTE2c2luZS5mbHY6CgkgIGNoZWNrOiBhZGQgYmFzaWMgdW5pdCB0ZXN0IGZvciBmbHZkZW11eAoJICBJbiBwYXJ0aWN1bGFyLCB0ZXN0IHJlLXVzZSBvZiBmbHZkZW11eCBpbiBib3RoIHB1bGwgYW5kIHB1c2ggbW9kZQoJICAoc2VlICM1ODMwMzApLgoKMjAwOS0wNy0zMSAyMDoyNToxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IGZpeCBpbnZhbGlkIHdyaXRlIGNhdXNlZCBieSB1c2luZyBzaXplb2YoInN0cmluZyIpIGFzIGxlbmd0aAoJICBzaXplb2YoImZvbyIpIGluY2x1ZGVzIHRoZSBzdHJpbmcncyBOVUwtdGVybWluYXRvciBpbiB0aGUgc2l6ZSByZXR1cm5lZCwKCSAgYnV0IHdlJ3JlIHdyaXRpbmcgc3RyaW5ncyBoZXJlIHdpdGggYW4gZXhwbGljaXQgc2l6ZSBhdCB0aGUgYmVnaW5uaW5nCgkgIGFuZCBubyBOVUwtdGVybWluYXRvci4gSW4gbW9zdCBjYXNlcyB1c2luZyBzaXplb2YoImZvbyIpIGFzIGxlbmd0aCBpbgoJICBtZW1jcHkgaXMgbm90IGhhcm1mdWwsIGJ1dCBpdCBpcyB3aGVyZSB0aGUgc3RyaW5nIGdvZXMgcmlnaHQgYXQgdGhlCgkgIGVuZCBvZiBvdXIgYnVmZmVyIHRvIHdyaXRlLCBzaW5jZSB3ZSBkb24ndCBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhhdAoJICBOVUwgdGVybWluYXRvci4KCjIwMDktMDctMjcgMTg6NDQ6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwOiBVc2UgIkdFVCIgaW5zdGVhZCBvZiBTT1VQX01FVEhPRF9HRVQuIEZpeGVzIGJ1aWxkIHdpdGggbGlic291cC0yLjcuKgoJICBUaGlzIGlzIGR1ZSB0byBhIHF1YWxpdHkgQVBJIGNoYW5nZSBpbiBsaWJzb3VwIDIuNy4gU09VUF9NRVRIT0RfKiBhcmUgbm93CgkgIGludGVnZXJzIGFuZCBub3Qgc3RyaW5ncy4uLiB0aGV5IGNvdWxkIGhhdmUgY2hhbmdlZCB0aGUgbmFtZXMuCgoyMDA5LTA3LTMwIDE3OjU3OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZzogdXNlIGxvbmdlciBtYWNybyBuYW1lcyB0byBub3QgY2xhc2ggd2l0aCBzb21lIHN0dXBpZCB3aW5kb3dzIGRlZmluZXMKCSAgbGlianBlZyBoZWFkZXJzIHB1bGwgc29tZSB3aW5kb3dzIHN5c3RlbSBpbmxjdWRlcyAob24gd2luZG93cykgdGhhdCBjb250YWluIGEKCSAgZGVmaW5lIGZvciBERUZBVUxUX1FVQUxJVFkuCgoyMDA5LTA3LTI5IDE0OjMxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IEZpeCBsYXN0IGNvbW1pdCBhbmQgaW1wcm92ZSByZWFkYWJpbGl0eQoKMjAwOS0wNy0yNCAxOTowNDozMSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIEZpeGVkIHRoZSBmaXggZm9yIFRJTUUtPkRFRkFVTFQgY29udmVyc2lvbi4KCSAgRml4ZXMgYnVnICM1NzgwNTIgYWdhaW4uCgoyMDA5LTA3LTI5IDEzOjM4OjAzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSAgcnRwc3YzZGVwYXk6IEZpeCB3aWR0aC9oZWlnaHQgY2FsY3VsYXRpb24sIGJyaW5nIHVwIHRvIG1hcmdpbmFsIHJhbmsuCgkgIEJhc2VkIG9uIGRvY3VtZW50YXRpb24gZm91bmQgb24gaHR0cDovL3dpa2kubXVsdGltZWRpYS5jeC8KCjIwMDktMDctMjkgMTI6MTM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJICBwdWxzZTogY29uZGl0aW9uYWxseSBjb21waWxlIG5ld2VyIHN0dWZmCgkgIGNvbmZpZ3VyZWRfc2luay9zb3VyY2VfdXNlYyBpbiB0aGUgdGltaW5nX2luZm8gaXMgb25seSBzaW5jZSAwLjkuMTEgc28KCSAgY29uZGl0aW9uYWxseSBjb21waWxlIHRoaXMgaW5mb3JtYXRpb24uCgkgIGZpeGVzICM1OTAwMzgKCjIwMDktMDctMjggMTg6Mjk6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmg6CgkgIHB1bHNlc3JjOiBjbGVhbnVwcwoJICBLZWVwIHRyYWNrIG9mIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIHNvdXJjZSBhbmQgbGVhdmUgdGhlIHJlYWQgZnVuY3Rpb24gd2hlbgoJICBwYXVzZWQuCgkgIGRvbid0IHdhaXQgZm9yIGEgbGF0ZW5jeSB1cGRhdGUgd2hlbiB0aGUgZGVsYXkgaXMgbm90IHlldCBrbm93biBidXQgc2ltcGx5CgkgIHJldHVybiAwIGluc3RlYWQgb2YgYmxvY2tpbmcuCgkgIEtlZXAgdHJhY2sgb2YgdGhlIGNvcmtlZCBzdGF0ZSBvZiB0aGUgc3RyZWFtLgoJICBGaXggdGhlIHN0YXRlIGNoYW5nZXMuCgoyMDA5LTA3LTI4IDE2OjExOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlc3JjOiBzZXQgbWF4bGVuZ3RoIGFsd2F5cyB0byAtMQoKMjAwOS0wNy0yOCAxNTo1Mzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuaDoKCSAgcHVsc2VzcmM7IGNsZWFudXBzLCByZXBvcnQgcmVhbCBsYXRlbmN5CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoJICBBdm9pZCBzb21lIHR5cGUgY2FzdHMKCSAgUmVwb3J0IHRoZSByZWFsIGxhdGVuY3kgdG8gdGhlIGFwcGxpY2F0aW9uLgoKMjAwOS0wNy0yOCAxNjoxMTozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IHdoZW4gc2Nhbm5pbmcgZm9yIDB4ZmYgbWFya2VyIGVuZHMsIGVuc3VyZSBkZXNpcmVkIHJlc3VsdAoJICBPdGhlcndpc2UsIGFueSBub24gMHhmZiBieXRlIGF0IGVuZCBvZiBkYXRhIHdvdWxkIGJlIG1pc3Rha2VuIGZvcgoJICBhIHRhZyBieXRlLCBhbmQgaW4gY2FzZSBvZiBhIGZyYW1lX2xlbiAwIHRhZyBzdWJzZXF1ZW50bHkgbGVhZCB0byBhbgoJICBpbmZpbml0ZSBsb29wLgoKMjAwOS0wNy0yOCAwMDozMDo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhdmltdXg6IGFkZHMgc3VwcG9ydCB0byB3bWEKCjIwMDktMDctMjggMDA6MDc6MTUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgYXZpbXV4OiBhZGRzIHN1cHBvcnQgdG8gd212CgoyMDA5LTA3LTI3IDIxOjM0OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRG93bmdyYWRlIHdhcm5pbmcgbWVzc2FnZSB0byBkZWJ1ZwoKMjAwOS0wNy0yNyAxMTo1MTozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBhdm9pZCB1c2luZyBpdmFsaWQgc3RyZWFtIGluZGV4ZXMKCSAgd2hlbiB3ZSBnZXQgYW4gaW52YWxpZCBzdHJlYW0gaW5kZXggZnJvbSBwdWxzZSBiZWNhdXNlIHdlIHdlcmUganVzdCBzdGFydGluZywKCSAgYXZvaWQgdXNpbmcgaXQgZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgdGhlIHZvbHVtZS4KCSAgRml4ZXMgIzU4OTM2NQoKMjAwOS0wNy0yNCAxOTozODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmlwcGxlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHNoYWdhZGVsaWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c3RyZWFrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5jOgoJICBlZmZlY3R2OiBEb24ndCBhbGxvdyBjYXBzIGNoYW5nZXMgZm9yIHNvbWUgZWZmZWN0diBmaWx0ZXJzCgkgIFRoZXNlIGZpbHRlcnMgdXNlIGluZm9ybWF0aW9uIGZyb20gcHJldmlvdXMgZnJhbWVzIHRvCgkgIGdlbmVyYXRlIHRoZSBjdXJyZW50IGZyYW1lIGFuZCBhIGNhcHMgY2hhbmdlIHdpbGwgbWFrZQoJICB0aGUgZWZmZWN0IHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZyBhZ2Fpbi4KCjIwMDktMDctMjQgMTk6Mzc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5jOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmg6CgkgIHdhcnB0djogTWFrZSB0aGUgc2luZSB0YWJsZSBnbG9iYWwgaW5zdGVhZCBvZiBoYXZpbmcgaXQgaW4gZXZlcnkgaW5zdGFuY2UKCjIwMDktMDctMjQgMTA6NDc6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZzogbWFrZSBlbmNvZGVyIHdvcmsgd2l0aCBsaWJqcGVnIHY3CgkgIFdlIGhhdmUgdG8gc3BlY2lmeSBkb19mYW5jeV9kb3duc2FtcGxpbmcgPSBGQUxTRSBpbiB0aGUgZW5jb2RlciB3aXRoIGRpZCBub3QgZXhpc3QgYmVmb3JlLgoKMjAwOS0wNy0yNCAwMDo0MjozMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZWRhYWVlIHRvIDk0Zjk1ZTMKCjIwMDktMDctMjMgMTI6MDY6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBJbXBsZW1lbnQgU0VFS0lORyBxdWVyeQoJICBGaXhlcyBidWcgIzU4OTQyMy4KCjIwMDktMDctMjIgMTE6MTY6MDYgKzAxMDAgIENvbGluIEd1dGhyaWUgPGNndXRocmllQG1hbmRyaXZhLm9yZz4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBGaXggYSBjb3VwbGUgZXJyb3IgbWVzc2FnZXMgdGhhdCBtZW50aW9uZWQgaW5jb3JyZWN0IGZ1bmN0aW9uIG5hbWVzLgoJICBGaXhlcyAjNTg5NDU5LgoKMjAwOS0wNy0yMyAxMTo1MDoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSAgZmx2ZGVtdXg6IEltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5CgkgIEFsc28gYWRkIHNvbWUgbW9yZSBxdWVyeSB0eXBlcyB0byB0aGUgYW5zd2VyIG9mIHRoZSBxdWVyeSB0eXBlIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzU4OTQyNC4KCjIwMDktMDctMjEgMTk6NDY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIGZsYWNkZWM6IGZpeCBpbnRlcm1pdHRlbnQgRkxBQ19fU1RSRUFNX0RFQ09ERVJfQUJPUlRFRCBlcnJvcnMgd2hlbiBzZWVraW5nCgkgIFdoZW4gc2Vla2luZyBpbiBhIGxvY2FsIGZsYWMgZmlsZSAoaWUuIG9wZXJhdGluZyBwdWxsLWJhc2VkKSwgdGhlIGRlY29kZXIKCSAgd291bGQgb2Z0ZW4ganVzdCBlcnJvciBvdXQgYWZ0ZXIgdGhlIGxvb3AgZnVuY3Rpb24gc2VlcyBhIERFQ09ERVJfQUJPUlRFRAoJICBzdGF0dXMuIFRoaXMsIGhvd2V2ZXIsIGlzIHRoZSByZWFkIGNhbGxiYWNrJ3Mgd2F5IG9mIHRlbGxpbmcgb3VyIGxvb3AKCSAgZnVuY3Rpb24gdGhhdCBwdWxsX3JhbmdlIGZhaWxlZCBhbmQgc3RyZWFtaW5nIHNob3VsZCBzdG9wLCBpbiB0aGlzIGNhc2UKCSAgYmVjYXVzZSBvZiB0aGUgZmx1c2gtc3RhcnQgZXZlbnQgdGhhdCB0aGUgc2VlayBoYW5kbGVyIHB1c2hlZCB1cHN0cmVhbQoJICBmcm9tIHRoZSBzZWVraW5nIHRocmVhZC4gSGFuZGxlIHRoaXMgc2xpZ2h0bHkgYmV0dGVyIGJ5IHN0b3JpbmcgdGhlIGxhc3QKCSAgZmxvdyByZXR1cm4gZnJvbSBwdWxsX3JhbmdlLCBzbyB0aGUgbG9vcCBmdW5jdGlvbiBjYW4gZXZhbHVhdGUgaXQgcHJvcGVybHkKCSAgd2hlbiBpdCBlbmNvdW50ZXJzIGEgREVDT0RFUl9BQk9SVEVEIGFuZCB0YWtlIHRoZSByaWdodCBhY3Rpb24uCgkgIEZpeGVzICM1Nzg2MTIuCgoyMDA5LTA3LTIxIDEwOjA3OjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkgIGludGVybGVhdmU6IGZpeCBpbmRlbnRpbmcgYW5kIHVwZ3JhZGUgdHdvIGRlYnVncyB0byB3YXJuaW5ncy4KCSAgRml4IG5ld2xpbmVzIGluIHZhcmlhYmxlIGRlY2xzLiBDaGFuZ2UgdHdvIGRlYnVncyB0byBiZWNvbWUgd2FybmluZ3MgYXMgdGhleQoJICBpbmRpY2F0ZSB0aGF0IHRoaW5ncyB3aWxsIG5vdCB3b3JrLgoKMjAwOS0wNy0yMSAxMDowNDozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZXh0L2pwZWcvZ3N0anBlZy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5oOgoJICBqcGVnOiBjb2RlIGNsZWFudXBzIGZvciBlbmNvZGVyCgkgIFJlbW92ZSBzb21lIGRpc2FibGVkIGNvZGUgaW4gZW5jb2Rlci4gVHJ5ICNpZiAwJ2VkIGNvZGUgYW5kIGFkZCBjb21tZW50cyBhYm91dAoJICB3aHkgaXQgaXMgZGlzYWJsZWQuIE1vdmUgaWRjdC1tZXRob2QgZW51bSB0byBqcGVnLmMgYW5kIHVzZSBpbiBib3RoIGVuY29kZXIgYW5kCgkgIGRlY29kZXIuIEFkZCBpZGN0LW1ldGhvZCBwcm9wZXJ0eSB0byBlbmNvZGVyLgoKMjAwOS0wNy0yMSAwNzo1MDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogQW5zd2VyIFNFRUtJTkcgcXVlcmllcyBpbiB0aGUgb3JpZ2luYWwgZm9ybWF0CgoyMDA5LTA3LTIxIDAxOjEyOjQ0ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIHVkcHV0aWxzOiBpbml0aWFsaXplIHN0cnVjdCBjb250ZW50IHdpdGggMC4KCSAgRml4ZXMgc29tZSByYW5kb20gY3Jhc2hlcy4KCjIwMDktMDctMjAgMTk6MDk6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogc2V0IHNvbWUgdmFsdWVzIHRvIHRoZWlyIGRlZmF1bHRzCgkgIFNldCB0aGUgbWlucmVxIGFuZCBtYXhsZW5ndGggYnVmZmVyIGF0dHJpYnV0ZXMgdG8gLTEgdG8gbGV0IHB1bGVzZWF1ZGlvIHNlbGVjdCBhCgkgIHNlbnNpYmxlIHZhbHVlLgoKMjAwOS0wNy0yMCAxOTowNDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBkb24ndCB3YWl0IGZvciBwb3N0ZWQgbWVzc2FnZQoJICBXZSBjYW4ndCB3YWl0IGZvciB0aGUgRU5URVIvTEVBVkUgbWVzc2FnZXMgdG8gYmUgYmUgcG9zdGVkIGJlY2F1c2UgdGhlIGJhc2UKCSAgY2xhc3Mgc29tZXRpbWVzIGNhbGxzIHRoZSBzdGFydCBtZXRob2Qgd2l0aCB0aGUgb2JqZWN0IGxvY2ssIHdoaWNoIHdvdWxkIGJsb2NrCgkgIHRoZSBtZXNzYWdlIHBvc3RpbmcuCgkgIEluc3RlYWQsIGp1c3QgYXNzdW1lIHRoYXQgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBwb3N0ZWQgc29vbiBhbmQgY29udGludWUuIFdlJ2xsCgkgIGhhdmUgdG8gZml4IHRoaXMgaW4gdGhlIGJhc2UgY2xhc3MuCgoyMDA5LTA3LTIwIDE4OjExOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHVzZSByZWxhdGl2ZSBzZWVrcwoJICBVc2UgcmVsYXRpdmUgc2Vla3MgYmVjYXVzZSBJIHdhcyB0b2xkIHRoYXQgYWJzb2x1dGUgc2Vla3MgZG9uJ3Qgd29yay4KCjIwMDktMDctMjAgMTY6NTI6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IEltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5CgoyMDA5LTA3LTIwIDA4OjA3OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3RjYWlyb3JlbmRlci5jOgoJICBjYWlyb3JlbmRlcjogQWRkIHN1cHBvcnQgZm9yIEFSR0IvQkdSQSBpbnB1dAoJICBOb3RlIHRoYXQgdmlkZW90ZXN0c3JjIG91dHB1dHMgMTAwJSB0cmFuc3BhcmVudCB2aWRlbwoJICB3aGljaCB3aWxsIHJlc3VsdCBpbiB3aGl0ZSBvdXRwdXQgZnJvbSBjYWlyb3JlbmRlci4KCjIwMDktMDctMTcgMTM6MjI6NTcgKzAxMDAgIEVsYWluZSBYaW9uZyA8RWxhaW5lLlhpb25nQFN1bi5DT00+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIHY0bDI6IEZpeCB2NGwyc3JjIG9uIE9wZW5Tb2xhcmlzCgkgIFRoZSB2NGwyIGRyaXZlciBmb3IgVVNCIHdlYmNhbXMgb24gT3BlblNvbGFyaXMgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3QoKQoJICBjYWxscy4gRGV0ZWN0IHdoZW4gc2VsZWN0KCkgZmFpbHMsIGFuZCBza2lwIHBvbGxpbmcgdGhlIGRldmljZSBhZnRlcndhcmQsCgkgIHdoaWNoIHJlc3RvcmVzIHRoZSBwcmUgMC4xMC4xNCBiZWhhdmlvdXIgb24gT3BlblNvbGFyaXMuCgkgIFNpZ25lZC1vZmYtYnk6IEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCjIwMDktMDctMTcgMTE6MjI6MDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3Y0bDIvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBJZ25vcmUgc29tZSBuZXcgYmluYXJpZXMKCjIwMDktMDctMTcgMTM6NDk6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGV4dC9jYWlyby9nc3RjYWlyb3JlbmRlci5jOgoJICBjYWlyb3JlbmRlcjogQWRkIHRvIHRoZSBkb2N1bWVudGF0aW9uCgoyMDA5LTA3LTE3IDEzOjQyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3RjYWlyb3JlbmRlci5jOgoJICBjYWlyb3JlbmRlcjogUmV0dXJuIG5vdC1uZWdvdGlhdGVkIGlmIHdlIGhhdmUgbm8gY2FwcwoKMjAwOS0wNy0xNyAxMzo0MToxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmg6CgkgIGNhaXJvcmVuZGVyOiBGaXggY2FwcyBhbmQgY29sb3JzcGFjZSBoYW5kbGluZwoKMjAwOS0wNy0xNyAxMzozMDowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSAgY2Fpcm9yZW5kZXI6IFVzZSBjb3JyZWN0IG1pbWV0eXBlcyBmb3IgUERGIGFuZCBTVkcKCjIwMDktMDctMTcgMTM6MjQ6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmM6CgkgIGNhaXJvcmVuZGVyOiBSZW1vdmUgcHVsbCBtb2RlLCBpdCBvbmx5IGFkZHMgY29tcGxleGl0eSBidXQgbm90IGFkdmFudGFnZXMKCjIwMDktMDctMTYgMjE6NTU6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmM6CgkgIGNhaXJvcmVuZGVyOiBGaXggY2FwcyBuZWdvdGlhdGlvbiBhbmQgY2Fpcm8gc3VyZmFjZSBjcmVhdGlvbgoKMjAwOS0wNy0xNiAyMTo0MjoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSAgY2Fpcm9yZW5kZXI6IENvcnJlY3RseSBzZXQgc3JjY2FwcwoKMjAwOS0wNy0xNiAyMTozMTo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmg6CgkgIGNhaXJvcmVuZGVyOiBNb3ZlIGluc3RhbmNlL2NsYXNzIHN0cnVjdCBkZWZpbml0aW9ucyB0byB0aGUgaGVhZGVyCgoyMDA5LTA3LTE2IDIxOjMwOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9jYWlyby9nc3RjYWlyb3JlbmRlci5jOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuaDoKCSAgY2Fpcm9yZW5kZXI6IEFkZCBMdXR6JyBjb3B5cmlnaHQgdG8gdGhlIGZpbGUgaGVhZGVyCgoyMDA5LTA3LTE2IDIxOjI3OjQ1ICswMjAwICBMdXR6IE11ZWxsZXIgPGx1dHpAdG9wZnJvc2UuZGU+CgoJKiBleHQvY2Fpcm8vTWFrZWZpbGUuYW06CgkqIGV4dC9jYWlyby9nc3RjYWlyby5jOgoJKiBleHQvY2Fpcm8vZ3N0Y2Fpcm9yZW5kZXIuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvcmVuZGVyLmg6CgkgIGNhaXJvOiBBZGQgY2Fpcm8tYmFzZWQgUERGL1BTL1NWRyBlbmNvZGVyIGVsZW1lbnQKCSAgRml4ZXMgYnVnICMzMzE0MjAuCgoyMDA5LTA3LTE2IDIwOjQ0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5oOgoJICBmbGFjZW5jOiBPcHRpb25hbGx5IHdyaXRlIGEgUEFERElORyBibG9jawoJICBUaGUgc2l6ZSBvZiB0aGUgUEFERElORyBibG9jayBpcyBzcGVjaWZpZWQgYnkgYSBuZXcKCSAgInBhZGRpbmciIHByb3BlcnR5LgoJICBGaXhlcyBidWcgIzU4ODQ4My4KCjIwMDktMDctMTYgMTk6MzU6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cGh0dHBzcmM6IE9ubHkgYXNzdW1lIHNlZWthYmlsaXR5IGlmIHRoZSBzZXJ2ZXIgcHJvdmlkZXMgQ29udGVudC1MZW5ndGgKCSAgUHJldmlvdXNseSBzZWVrYWJpbGl0eSB3YXkgYWx3YXlzIGFzc3VtZWQgdW50aWwgdGhlIGZpcnN0IHNlZWsgYWN0dWFsbHkKCSAgZmFpbGVkLiBOb3cgd2UgYXNzdW1lIHRoYXQgYWxsIHNlcnZlcnMgYXJlIG5vdCBzZWVrYWJsZSB1bmxlc3MgdGhleSBwcm92aWRlCgkgIGEgQ29udGVudC1MZW5ndGggaGVhZGVyLiBJZiBhIHNlZWsgZmFpbHMgYWZ0ZXIgdGhhdCB3ZSBjb250aW51ZSB0bwoJICBhc3N1bWUgbm8gc2Vla2FiaWxpdHkuIEZpeGVzIGJ1ZyAjNTg1NTc2LgoKMjAwOS0wNy0xNiAxNToxNDo0MyArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cGh0dHBzcmM6IGRvbid0IHRyeSB0byBhdXRoZW50aWNhdGUgaWYgbm8gdXNlcm5hbWUvcGFzc3dvcmQgaXMgc2V0LgoKMjAwOS0wNy0xNiAxNzoxMDoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgIGVmZmVjdHY6IENoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MgaW4gd2FycHR2CgkgIEZpeGVzIGEgbWVtb3J5IGxlYWsuCgoyMDA5LTA3LTE2IDEyOjU1OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvZWZmZWN0di5jOgoJICBlZmZlY3R2OiBBZGQgdW5pdCB0ZXN0IGZvciBhbGwgZWZmZWN0diBlbGVtZW50cwoKMjAwOS0wNy0xNiAxMjoxNzozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJICBlZmZlY3R2OiBBZGQgbmV3IGVmZmVjdHYgZWxlbWVudHMgdG8gdGhlIGRvY3MKCjIwMDktMDctMTUgMTQ6Mzc6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvTWFrZWZpbGUuYW06CgkqIGdzdC9lZmZlY3R2L2dzdGVmZmVjdHYuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmlwcGxlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJpcHBsZS5oOgoJICBlZmZlY3R2OiBBZGQgcmlwcGxldHYgZWxlbWVudAoJICBUaGlzIHByb2R1Y2VzIGEgd2F0ZXIgcmlwcGxlIGVmZmVjdCBvbiB0aGUgdmlkZW8gaW5wdXQsCgkgIGJhc2VkIG9uIG1vdGlvbiBvciBhIHJhaW4gZHJvcCBhbGdvcml0aG0uCgkgIEtpbmRseSByZWxpY2Vuc2VkIHRvIExHUEwyKyBieSBLZW50YXJvIEZ1a3VjaGkgPGZ1a3VjaGlAbWVnYXVpLm5ldD4uCgkgIEZpeGVzIGJ1ZyAjNTg4Njk1LgoKMjAwOS0wNy0xMiAxNTo0MjozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSogZ3N0L2VmZmVjdHYvZ3N0ZWZmZWN0di5jOgoJKiBnc3QvZWZmZWN0di9nc3RzdHJlYWsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c3RyZWFrLmg6CgkgIGVmZmVjdHY6IEFkZCBzdHJlYWt0diBlZmZlY3QgZmlsdGVyIGVsZW1lbnQKCSAgVGhpcyBjb21iaW5lcyB0aGUgU3RyZWFrVFYgYW5kIEJhbHRhblRWIGZpbHRlcnMgZnJvbSB0aGUKCSAgZWZmZWN0diBwcm9qZWN0LgoJICBLaW5kbHkgcmVsaWNlbnNlZCB0byBMR1BMMisgYnkgS2VudGFybyBGdWt1Y2hpIDxmdWt1Y2hpQG1lZ2F1aS5uZXQ+LgoJICBGaXhlcyBidWcgIzU4ODM2OC4KCjIwMDktMDctMTIgMTI6MzE6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5jOgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJKiBnc3QvZWZmZWN0di9nc3RyYWRpb2FjLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSAgZWZmZWN0djogRml4IHByb2Nlc3Npbmcgb24gYmlnIGVuZGlhbiBhcmNoaXRlY3R1cmVzCgoyMDA5LTA3LTEyIDExOjUyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L01ha2VmaWxlLmFtOgoJKiBnc3QvZWZmZWN0di9nc3RlZmZlY3R2LmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJhZGlvYWMuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cmFkaW9hYy5oOgoJICBlZmZlY3R2OiBBZGQgcmFkaW9hY3R2IGVmZmVjdCBmaWx0ZXIKCSAgVGhpcyBmaWx0ZXIgYWRkcyBhIHJhZGlhdGlvbi1saWtlIG1vdGlvbiBibHVyIGVmZmVjdAoJICB0byB0aGUgdmlkZW8gc3RyZWFtLgoJICBLaW5kbHkgcmVsaWNlbnNlZCB0byBMR1BMMisgYnkgS2VudGFybyBGdWt1Y2hpIDxmdWt1Y2hpQG1lZ2F1aS5uZXQ+LgoJICBGaXhlcyBidWcgIzU4ODM1OS4KCjIwMDktMDctMTIgMTE6MjY6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0b3AuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0b3AuaDoKCSAgZWZmZWN0djogTWFrZSB0aGUgb3B0diB0aHJlc2hvbGQgcHJvcGVydHkgYW4gdWludAoKMjAwOS0wNy0xMiAxMDozOTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSogZ3N0L2VmZmVjdHYvZ3N0ZWZmZWN0di5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5jOgoJKiBnc3QvZWZmZWN0di9nc3RvcC5oOgoJICBlZmZlY3Q6IEFkZCBvcHR2IGVmZmVjdCBmaWx0ZXIgZnJvbSB0aGUgZWZmZWN0diBwcm9qZWN0CgkgIFRoaXMgZmlsdGVyIGJpbmFyaXplcyBpbnB1dCBmcmFtZXMgYW5kIGNvbWJpbmVzIHRoZW0gd2l0aCB2YXJpb3VzCgkgIG9wdGljYWwgcGF0dGVybi4KCSAgS2luZGx5IHJlbGljZW5zZWQgdG8gTEdQTDIrIGJ5IEtlbnRhcm8gRnVrdWNoaSA8ZnVrdWNoaUBtZWdhdWkubmV0Pi4KCSAgRml4ZXMgYnVnICM1ODgzNDkuCgoyMDA5LTA3LTAzIDA1OjExOjI2IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogRW1pdCBzdHJlYW0tc3RhdHVzIGxlYXZlIG1lc3NhZ2UKCSAgRml4ZXMgIzU4NzY5NQoKMjAwOS0wNy0wMyAwNTowNjo0NSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkgIHB1bHNlc2luazogRW1pdCBzdHJlYW0tc3RhdHVzIGVudGVyIG1lc3NhZ2UKCSAgRW1pdCBzdHJlYW0tc3RhdHVzIG1lc3NhZ2VzIGZvciB0aGUgcHVsc2UgdGhyZWFkLgoJICBEb24ndCB1c2Ugb3VyIG93biBHQ29uZCBmb3Igc2lnbmFsaW5nIGJ1dCBzaW1wbHkgdXNlIHRoZSBwdWxzZSBtYWlubG9vcAoJICBtZWNoYW5pc21zIGZvciBzeW5jaHJvbmlzYXRpb24uCgkgIFNlZSAjNTg3Njk1CgoyMDA5LTA3LTE0IDE4OjE1OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGRlYnVnIHRoZSBsYXRlbmN5IHVwZGF0ZSB2YWx1ZXMKCjIwMDktMDctMTQgMTY6MTI6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5jOgoJICBwdWxzZXNpbms6IGFkZCAyNGJpdCBzYW1wbGUgZm9ybWF0cwoJICBBZGQgY2hlY2sgZm9yIHB1bHNlYXVkaW8gMC45LjE1IGFuZCBlbmFibGUgMjRiaXRzIHNhbXBsZXMgaW4gdGhhdCBjYXNlLgoKMjAwOS0wNy0xMyAxMjoyMzozNyAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ODQ1YjYzIHRvIGZlZGFhZWUKCjIwMDktMDctMTMgMTc6NTM6MjUgKzAyMDAgIE1hcmMgTGVlbWFuIDxtYXJjLmxlZW1hbiBhdCBnbWFpbC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJICBtcHZwYXk6IFJld29yayB0aGUgdGltZXN0YW1waW5nCgkgIFJld29yayB0aGUgdGltZXN0YW1waW5nIGluIHRoZSBtcHYgcGF5bG9hZGVyIHNvIHRoYXQgdGhlIHRpbWVzdGFtcHMgYXJlIG1vcmUKCSAgYWNjdXJhdGUuCgkgIEZpeGVzICM1ODc2ODAKCjIwMDktMDctMDMgMDg6NDc6MTIgKzAyMDAgIEZpbGlwcG8gQXJnaW9sYXMgPGZpbGlwcG8uYXJnaW9sYXNAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvdjRsMi9wcm9iZS5jOgoJICB2NGwyc3JjOiBhZGQgYSBzaW1wbGUgdGVzdCBjYXNlIGZvciBkZXZpY2UgcHJvYmluZwoKMjAwOS0wNy0wMyAwODozODo0MyArMDIwMCAgRmlsaXBwbyBBcmdpb2xhcyA8ZmlsaXBwby5hcmdpb2xhc0BnbWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIHY0bDJzcmM6IG9wdGlvbmFsIHN1cHBvcnQgZm9yIGRldmljZSBwcm9iaW5nIHdpdGggZ3VkZXYKCSAgRW51bWVyYXRlIHY0bDIgZGV2aWNlcyB1c2luZyBndWRldiBpZiBhdmFpbGFibGUuCgkgIEZpeGVzIGJ1ZyAjNTgzNjQwLgoKMjAwOS0wNy0xMCAxOTo1NDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IFJhbmRvbSBjbGVhbnVwCgoyMDA5LTA3LTEwIDE5OjU0OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogU2VuZCBxdWVyaWVzIHRvIHRoZSBtYXN0ZXIgcGFkIGJ5IGRlZmF1bHQgaW5zdGVhZCBvZiBhbGwgcGFkcwoKMjAwOS0wNy0xMCAxOTozNDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfcmdiLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogQWRkIFJHQiwgQkdSLCB4UkdCLCBSR0J4LCB4QkdSLCBCR1J4IHN1cHBvcnQKCjIwMDktMDctMTAgMTc6NDM6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBDbGVhbiB1cCBkZWJ1Z2dpbmcgYSBiaXQKCjIwMDktMDctMTAgMTc6MjU6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBSZW1vdmUgc29tZSByZWR1bmRhbnQgY2hlY2tzIGFuZCBlcnJvciBvdXQgaW1tZWRpYXRlbHkgaWYgbm90IG5lZ290aWF0ZWQKCSAgQWxzbyBzdG9wIGxlYWtpbmcgdGhlIG91dHB1dCBidWZmZXIgaW4gc29tZSBlcnJvciBjYXNlcy4KCjIwMDktMDctMTAgMTc6MjM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYXl1di5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9iZ3JhLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2k0MjAuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIHZpZGVvbWl4ZXI6IFJlbW92ZSB0aGUgY2FsY3VsYXRlX2ZyYW1lX3NpemUoKSBmdW5jdGlvbiBhbmQgdXNlIGxpYmdzdHZpZGVvIGluc3RlYWQKCjIwMDktMDYtMzAgMTU6MTM6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IFJlbW92ZSB1bnVzZWQgbGluay91bmxpbmsgcGFkIG1ldGhvZHMKCjIwMDktMDYtMzAgMTI6NDM6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9pNDIwLmM6CgkgIHZpZGVvbWl4ZXI6IEk0MjAgbW9kZTogQWRkIGZhc3QgcGF0aCBmb3IgMC4wIGFuZCAxLjAgYWxwaGEKCSAgSWYgdGhlIHNvdXJjZSBhbHBoYSBpcyAwLjAsIHdlIHRha2Ugbm90aGluZy4KCSAgSWYgdGhlIHNvdXJjZSBhbHBoYSBpcyAxLjAsIHdlIG92ZXJ3cml0ZSBldmVyeXRoaW5nLgoKMjAwOS0wNi0zMCAxMjo0MDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2k0MjAuYzoKCSAgdmlkZW9taXhlcjogSTQyMCBibGVuZGluZyA6IEZpeCBtYWluIGFsZ29yaXRobS4KCSAgV2hlbiBibGVuZGluZyBhIHNvdXJjZSBsYXllciB3aXRoIGFuIGFscGhhIG9mICdhJyBvbiB0b3Agb2YgYW5vdGhlcgoJICBkZXN0aW5hdGlvbiBsYXllciB3ZSB0YWtlIHRoZSBzdW0gb2Y6CgkgICogJ2EnIHBlcmNlbnQgb2YgdGhlIHNvdXJjZSBsYXllcgoJICAqICgxMDAgLSAnYScpIHBlcmNlbnQgb2YgdGhlIGRlc3RpbmF0aW9uIGxheWVyICh0aGUgcmVtYWluZGVyKQoKMjAwOS0wNi0zMCAxMjozOToxOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2k0MjAuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXJwYWQuaDoKCSAgdmlkZW9taXhlcjogTWFrZSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgZ2xvYmFsIHRvIGFsbCB0aGUgY29kZS4KCjIwMDktMDYtMjkgMTk6MjM6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIHZpZGVvbWl4ZXI6IGltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZGVidWdnaW5nIHN0YXRlbWVudHMuCgoyMDA5LTA3LTA4IDEzOjM4OjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZG8gbm90IGxlYWsgdGltZW91dCBtZXNzYWdlCgoyMDA5LTA3LTA5IDA3OjE0OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpOiBEb24ndCBmb3J3YXJkIE5FV1NFR01FTlQgZXZlbnRzIGZyb20gdXBzdHJlYW0KCSAgTmV3IG9uZXMgYXJlIGdlbmVyYXRlZCBsYXRlciBhbmQgc2ltcGx5IGZvcndhcmRpbmcgdGhlbSBjYW4KCSAgcmVzdWx0IGluIE5FV1NFR01FTlQgZXZlbnRzIG9mIGRpZmZlcmVudCBmb3JtYXQgZ29pbmcgZG93bnN0cmVhbS4KCSAgRml4ZXMgYnVnICM1ODc5ODMuCgoyMDA5LTA3LTA4IDE4OjE5OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2F5dXYuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfaTQyMC5jOgoJICB2aWRlb21peGVyOiBNYWtlIGNoZWNrZXIgcGF0dGVybiBsb29rdXAgdGFibGUgY29uc3RhbnQKCjIwMDktMDctMDggMTg6MTc6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2JncmEuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBBZGQgc3VwcG9ydCBmb3IgQVJHQgoJICBBbmQgY2xlYW4gdXAgdGhlIGNhcHMgcGFyc2luZy4KCjIwMDktMDctMDggMTU6MTc6NDEgKzAyMDAgIEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbkBnYWlnbmFyZC5uZXQ+CgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIHVkcDogSW5pdGlhbGl6ZSBwb2ludGVyIHRvIE5VTEwKCSAgT3RoZXJ3aXNlIHdlJ3JlIGNhbGxpbmcgZnJlZSgpIHdpdGggc29tZSByYW5kb20KCSAgbWVtb3J5IGFkZHJlc3MgaW4gZXJyb3IgY2FzZXMuCgkgIEZpeGVzIGJ1ZyAjNTg3OTgyLgoKMjAwOS0wNy0wNyAxNjozNToyNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHNwcmlua2xlIHNvbWUgbW9yZSBjb25zdAoKMjAwOS0wNy0wNyAxNTo1Nzo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHBlcmZvcm0gc29tZSBtb3JlIChjYXJlZnVsKSBkYXRhIGJ1ZmZlcmluZwoJICBPbmNlIGJ1ZmZlcmluZyBoYXMgc3RhcnRlZCAod2l0aCBhbiBtZGF0IGF0b20pLCBjb250aW51ZSBidWZmZXJpbmcKCSAgdW50aWwgbW9vdiBhdG9tIGlzIHJlYWNoZWQsIHdoaWNoIGhhbmRsZXMgY2FzZXMgd2l0aCBtdWx0aXBsZQoJICBtZGF0IGF0b21zLiAgQWxzbyBrZWVwIGFkYXB0ZXIvb2Zmc2V0IGJldHRlciBpbiBzeW5jIHdpdGggdXBzdHJlYW0KCSAgYW5kIGZpeCBzb21lIGRlYnVnIHN0YXRlbWVudHMuICBGaXhlcyAjNTg3NDI2LgoKMjAwOS0wNy0wNiAxMDo0MDozMSArMDIwMCAgUGhpbGlwIErkZ2Vuc3RlZHQgPHBoaWxpcGpAb3BlcmEuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogUmVwbGFjZSBkZXByZWNhdGVkIEdTVF9ESVNBQkxFX0RFQlVHIHdpdGggY29ycmVjdCBtYWNyby4gRml4ZXMgIzU4NzgyNgoKMjAwOS0wNy0wMSAxMzowNzo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGVycm9yIG91dCBpbnN0ZWFkIG9mIGRpdmlkaW5nIGJ5IDAKCSAgRXJyb3Igb3V0IGlmIHRpbWVzY2FsZSBpcyAwLgoKMjAwOS0wNy0wMSAwOTozMjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIFJldmVydCAicXRkZW11eDogTWFrZSBzdXJlIHdlIGRvbid0IGJsYWNrbGlzdCBzdHJlYW1zIGJ5IHdyb25nbHkgY29tcGFyaW5nIHRoZWlyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU1MDNhNTlhNTc3OWI2NzQ1MWQ4YTI3MTAwMDE4MTc5MGVlNzZiYzcuCgkgIFJldmVydGluZyB0aGlzIHNpbmNlIGl0IGNhdXNlcyByZWdyZXNzaW9ucyB3aXRoIGEgbG90IG9mIHNhbXBsZSBmaWxlcwoJICBJIGhhdmUsIGFsbCBvZiB3aGljaCB3b3JrZWQgZmluZSB3aXRoIHRoZSBsYXN0IC1nb29kIHJlbGVhc2UgKCM1ODY4OTEpLgoKMjAwOS0wNi0zMCAxNTo1NDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGNvbW1lbnQgb3V0IHVudXNlZCBzdHJ1Y3R1cmUKCjIwMDktMDYtMzAgMTM6MTI6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBtb3JlIHNpemUgY2hlY2tzLCBhbmQgdXNlIGdfdHJ5X25ldzAoKSBpbnN0ZWFkIG9mIGdfbmV3MCgpCgkgIFdoZW5ldmVyIHdlIGFsbG9jIHNvbWV0aGluZyBiYXNlZCBvbiBhIHVzZXItc3VwcGxpZWQgc2l6ZSwgd2Ugc2hvdWxkCgkgIHJlYWxseSB1c2UgZ190cnlfbmV3KCksIG90aGVyd2lzZSB3ZSBjYW4gZWFzaWx5IGJlIG1hZGUgdG8gYWJvcnQgYnkKCSAgcGFzc2luZyBhIHJpZGljdWxvdXNseSBsYXJnZSBudW1iZXIgdG8gdXMgZm9yIGFsbG9jaW5nLiBGaXhlcwoJICBwcm9ibGVtcyB3aXRoIHNvbWUgZnV6emVkIGZpbGVzLgoKMjAwOS0wNi0yOSAxODo1ODozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGd1YXJkIGFnYWluc3QgYm9ndXMgYXRvbSBzaXplcyBhbmQgc2hvcnQgcmVhZHMKCSAgQ2hlY2sgdGhlIHBvc3NpYmx5IDY0LWJpdCBhdG9tIHNpemUgbW9yZSBjYXJlZnVsbHkgYmVmb3JlIGNhc3RpbmcgaXQKCSAgdG8gYW4gaW50IGFuZCBwYXNzaW5nIGl0IHRvIGdzdF9wYWRfcHVsbF9yYW5nZSgpLCBvdGhlcndpc2Ugd2UgbWlnaHQKCSAgZW5kIHVwIHB1bGxpbmcgMCBieXRlcywgZ2V0dGluZyBhbiBlbXB0eSBidWZmZXIgYXMgcmVxdWVzdGVkIGFuZAoJICBkZXJlZmVyZW5jaW5nIG5vdCBhdmFpbGFibGUgZGF0YSB3aGlsc3QgdGhpbmtpbmcgd2UgYWN0dWFsbHkgYXNrZWQKCSAgZm9yIGFuZCBnb3QgMHgxMDAwMDAwMDAwMDAwIGJ5dGVzLiBTaW1pbGFyIGZpeCBmb3IgcHVzaCBtb2RlIG9wZXJhdGlvbgoJICB3aGVyZSBuZWVkZWRieXRlcyBlbmRzIHVwIGJlaW5nIDAgYnl0ZXMsIHdoaWNoIG1ha2VzIHVzIGFzc2VydC4gRml4ZXMKCSAgY3Jhc2ggd2l0aCBicm9rZW4gb3IgZnV6emVkIGZpbGUgKE5CICMxMjIzNzgpLgoKMjAwOS0wNi0yOSAxNjo1Mjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHVzZSAweCBwcmVmaXggd2hlbiBsb2dnaW5nIG51bWJlcnMgaW4gaGV4CgoyMDA5LTA3LTAxIDA4OjQwOjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBEb24ndCBzZW5kIGVtcHR5IHN0cmluZyB0YWdzCgoyMDA5LTA2LTMwIDIxOjM1OjM3ICswNDAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwuY29tPgoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgRG9uJ3QgdXNlIHNlbmRtc2coKS1kZXBlbmRlbnQgY29kZSBvbiBXaW5kb3dzCgkgIEZpeGVzICM1ODU4NDIKCjIwMDktMDYtMzAgMTU6NTk6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9hbGF3LmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXcuYzoKCSAgbGF3OiBmaXggY2FwcyBhbmQgbmVnb3RpYXRpb24KCSAgRml4IHRoZSBjYXBzIHRvIGluY2x1ZGUgdGhlIGRlcHRoIChpbnN0ZWFkIG9mIHdpZHRoIHR3aWNlKSBpbiB0aGUgY2FwcyBvZgoJICBhdWRpby94LXJhdy1pbnQuCgkgIEZpeCBuZWdvdGlhdGlvbiB0byBub3Qgb25seSBjb3B5IHRoZSByYXRlL2NoYW5uZWxzIG9mIHRoZSBmaXJzdCBzdHJ1Y3R1cmUuCgoyMDA5LTA2LTMwIDE0OjQ4OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogaW5jbHVkZSAiMS4wPTEwMCUiIGluIHZvbHVtZSBhbmQgY2hhbmdlIHVwcGVyIGxpbWl0CgkgIFVwcGVyIHZvbHVtZSBsaW1taXQgd2FzIDEwMDAuIFRoYXQgYXBwZWFyIHVubmVjZWFzcmlseSBoaWdoLiBJdCB3b3VsZCBhbHNvIGNhdXNlCgkgIHNldmVyIGRpc3RvcnRpb24gaWYgYWNjaWRlbnRpYWx5IHVzZWQuIE5vdyBpdHMgMTAgKH4gKzE1ZGIpIHdoaWNoIGlzIGFsc28gaW4KCSAgc3luYyB3aXRoIHZvbHVtZSBhbmQgcGxheWJpbjIuCgoyMDA5LTA2LTI5IDE1OjM5OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIHB1bHNlOiBzb21lIG1vcmUgdHJpdmlhbCBjbGVhbnVwcwoKMjAwOS0wNi0yOSAxNTozODo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyLmM6CgkgIHB1bHNlOiB0cml2aWFsIGNsZWFudXBzCgoyMDA5LTA2LTI5IDE1OjIwOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGNsZWFyIHJpbmdidWZmZXIgd2hlbiBhc2tlZCB0bwoJICBTaW5jZSB3ZSBtYXAgdGhlIHJpbmdidWZmZXIgdG8gdGhlIHB1bHNlYXVkaW8gaW50ZXJuYWwgcmluZ2J1ZmZlciwgZmx1c2ggdGhlCgkgIHB1bHNlYXVkaW8gYnVmZmVyIHdoZW4gd2UgYXJlIGFza2VkIHRvIGNsZWFyIHRoZSByaW5nYnVmZmVyLgoJICBUaGlzIGF2b2lkcyBzb21lIGxlZnRvdmVyIGF1ZGlvIGFmdGVyIGEgc2Vlay4KCjIwMDktMDYtMjYgMTU6MDA6MTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IEFjdHVhbGx5IGRvIHRoZSAnZWNobyAtbicgLT4gcHJpbnRmIGNoYW5nZS4KCjIwMDktMDYtMjYgMTQ6NDA6MTQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicuIENoZWNrIGZvciBhdXRvbWFrZS0xLjFbMDFdCgkgIENoZWNrIGZvciBtb3JlIGF1dG9tYWtlIGNvbW1hbmQgdmFyaWFudHMuIFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicKCSAgZm9yIHBvcnRhYmlsaXR5CgoyMDA5LTA2LTI2IDEzOjQyOjA5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4MTAwMzAgdG8gNTg0NWI2MwoKMjAwOS0wNi0yNiAxMzoxOTowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGRvbid0IHByb2Nlc3MgdHJhY2tfbnVtL3RyYWNrX2NvdW50IHRhZ3Mgd2l0aCBhIDAgdmFsdWUKCSAgTnVtYmVyL2NvdW50IHZhbHVlcyBvZiAwIG1lYW4gdGhleSdyZSBub3Qgc2V0LiBEb24ndCBwdXQgdGhvc2UgaW4gdGhlCgkgIHRhZ2xpc3QuCgoyMDA5LTA2LTI1IDE4OjUxOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuYzoKCSAgd2F2ZWZvcm1zaW5rOiB1c2UgJ2d1aW50OCcgaW5zdGVhZCBvZiAnYnl0ZScgdG8gZml4IGNvbXBpbGF0aW9uIHdpdGggTVNWQzgKCSAgV2UgbmVlZCBhIGNhc3QgaGVyZSBmb3IgcG9pbnRlciBhcml0aG1ldGljIHRvIHdvcmsgY29ycmVjdGx5LCBidXQgc29tZQoJICBNU1ZDIHZlcnNpb25zIGRvbid0IHNlZW0gdG8gbGlrZSAnYnl0ZScsIHNvIHVzZSBndWludDggaGVyZS4gSG9wZWZ1bGx5CgkgIGZpeGVzICM1ODUzNjEuCgoyMDA5LTA2LTI1IDE5OjM5OjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkgIHY0bDJzcmM6IHNldCBzdHJ1Y3RzIHRvIHplcm8gYmVmb3JlIHVzaW5nIHRoZW0gaW4gaW9jdGxzCgkgIFRoaXMgZml4ZXMgdmFsZ3JpbmQgd2FybmluZ3MuCgoyMDA5LTA2LTI1IDEzOjIzOjQwICswMjAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AZmx1ZW5kby5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IE1ha2Ugc3VyZSB3ZSBkb24ndCBibGFja2xpc3Qgc3RyZWFtcyBieSB3cm9uZ2x5IGNvbXBhcmluZyB0aGVpciBkdXJhdGlvbiB3aXRoIGVudGlyZSBjbGlwIGR1cmF0aW9uLgoKMjAwOS0wNi0yNSAxMzoxODoxNCArMDIwMCAgS3J6eXN6dG9mIELFgmFzemtvd3NraSA8a2IgYXQgc3lzbWlrcm8uY29tLnBsPgoKCSogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkgIHJ0cGRlYzogZml4IHNvbWUgYnVmZmVyIGxlYWtzCgoyMDA5LTA2LTI1IDA4OjExOjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBmbHZwYXJzZTogQWRkIG1pc3NpbmcgYnJlYWsgaW4gc3dpdGNoL2Nhc2UuCgoyMDA5LTA2LTI1IDA4OjEwOjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBmbHZkZW11eDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSwgaGludCBicmFuY2ggbGlrZWxpbmVzcywgYWRkIGNvbW1lbnRzLgoKMjAwOS0wNi0yNSAwODowOTo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlCgoyMDA5LTA2LTI1IDA3OjQxOjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cyBhbmQgdW51c2VkIHZhcmlhYmxlcy4KCSAgQWxzbyBhZGQgYnJhbmNoIGxpa2VsaW5lc3MgbWFjcm9zLgoKMjAwOS0wNi0yNSAwNzo0MDoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLiBGaXhlcyBidWlsZCBvbiBtYWNvc3gKCjIwMDktMDYtMjQgMTc6NDM6MjUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBmcmVlIG1lbW9yeSBpbiBmaW5hbGl6ZQoJICBmaW5hbGl6ZSBpcyBjYWxsZWQgb25seSBvbmNlLiBubyBuZWVkIHRvIGNsZWFyIHBvaW50ZXJzIHRoZXJlLiBkaXNwb3NlIGlzIGZvcgoJICB1bnJlZmZpbmcuCgoyMDA5LTA2LTI0IDE1OjE0OjE0ICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmFiMTFkMSB0byBmODEwMDMwCgoyMDA5LTA2LTA4IDE0OjQ2OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHNob3J0LWNpcmN1aXQgZ3N0X2F2aV9kZW11eF9zcmNfY29udmVydCgpIHdoZW4gcGFyc2luZyB0aGUgaW5kZXgKCSAgRG9uJ3QgY2FsbCBnc3RfYXZpX2RlbXV4X3NyY19jb252ZXJ0KCkgZm9yIGVhY2ggc2luZ2xlIGluZGV4IGVudHJ5LiBOb3QKCSAgb25seSBkbyB3ZSBhbHJlYWR5IGhhdmUgdGhlIHBvaW50ZXIgdG8gdGhlIHN0cmVhbSBjb250ZXh0LCB3ZSBhbHNvIGtub3cKCSAgdGhlIGZvcm1hdHMgd2Ugd2FudCB0byBjb252ZXJ0IGZyb20gYW5kIHRvIGFscmVhZHksIHNvIHdlIG1heSBqdXN0IGFzCgkgIHdlbGwgdXNlIG9wdGltaXNlZCBjb252ZXJzaW9uIHJvdXRpbmVzIHRoYXQgYnlwYXNzIHNvbWUgb2YgdGhlIGNoZWNrcwoJICBhbmQgbG9va3VwcyBtYWRlIGluIGdzdF9hdmlfZGVtdXhfc3JjX2NvbnZlcnQoKS4KCjIwMDktMDYtMTcgMTY6Mzk6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IEFub3RoZXIgcm91bmQgb2YgR18qTElLRUxZIG1pY3JvLW9wdGltaXNhdGlvbnMuCgoyMDA5LTA2LTE3IDE2OjIwOjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBUYWtlIGxhc3Qgc2FtcGxlIGR1cmF0aW9uIGZvciBkdW1teSBzZWdtZW50IGNhbGN1bGF0aW9uLgoJICBUaGlzIGZpeGVzIHRoZSBjYXNlcyB3aGVyZSBmaWxlcyB3aXRob3V0IEVETCB3b3VsZG4ndCBvdXRwdXQgdGhlaXIKCSAgbGFzdCBidWZmZXIuCgoyMDA5LTA2LTI0IDEyOjM2OjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogU3ByaW5rbGUgYnJhbmNoIGxpa2VsaW5lc3MgbWFjcm9zIG92ZXIgdGhlIGNvZGUuCgoyMDA5LTA2LTIzIDE2OjU0OjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGhkdjEzOTRzcmMuYzoKCSAgcmF3MTM5NDogc3ByaW5rbGUgYnJhbmNoIGxpa2VsaW5lc3MgbWFjcm9zIGFjY3Jvc3MgdGhlIGNvZGUuCgoyMDA5LTA2LTE0IDEwOjM2OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBBZGQgR1NUX01FTURVTVAgc3RhdGVtZW50cyBmb3IgdW5rbm93biBhdG9tcy4KCSAgVGhpcyBpcyB0byBoZWxwIGRldmVsb3BlcnMgdHJhY2sgZG93biBhbmQgaW1wbGVtZW50IHVuaGFuZGxlZCBhdG9tcyBmYXN0ZXIuCgoyMDA5LTA2LTIzIDE3OjUxOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogUmVtb3ZlIHRoZSBpbnRlcmxhY2VkIGZpZWxkIGZyb20gdGhlIG91dHB1dCBjYXBzIGlmIGRlaW50ZXJsYWNpbmcgaXMgZW5hYmxlZAoKMjAwOS0wNi0yMyAxNzo0ODo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSAgZGVpbnRlcmxhY2U6IENvcHkgdGhlIGNvcnJlY3QgbGluZSBmcm9tIGNvcnJlY3QgcGxhY2UgaW4gdGhlIGhpc3RvcnkKCjIwMDktMDYtMjMgMTY6MzU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHVzZSBzYW1lIHByb3RvY29scyBhZnRlciByZWRpcmVjdAoJICBBZnRlciBhIHJlZGlyZWN0IHdlIHdhbnQgdG8gdXNlIHRoZSBzYW1lIHByb3RvY29scyB0aGF0IHdlIHdlcmUgdXNpbmcgZm9yIHRoZQoJICBjdXJyZW50IHVybC4KCjIwMDktMDYtMjMgMTU6MzU6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBkb24ndCBsZWFrIGNvdmVyIGFydAoKMjAwOS0wNi0yMyAxNDoxMDoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIHVkcDogZml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgRUFJX0FERFJGQU1JTFkgZ2V0dGluZyByZWRlZmluZWQgaW4gc29tZSBjYXNlcwoJICBJbmNsdWRlIHRoZSBoZWFkZXIgZnJvbSB3aGVyZSB3ZSBpbmNsdWRlIGFsbCB0aGUgc3lzdGVtIGhlYWRlcnMgd2l0aCB0aGUKCSAgc29ja2V0IHN0dWZmIGJlZm9yZSB3ZSB0cnkgdG8gZGVmaW5lIEVBSV9BRERSRkFNSUxZIG91cnNlbHZlcywgb3RoZXJ3aXNlCgkgIHdlIGRlZmluZSBpdCBvdXJzZWx2ZXMgYW5kIHRoZW4gZ2V0IGEgY29tcGlsZXIgd2FybmluZyBpZiBhIHN5c3RlbSBoZWFkZXIKCSAgZGVmaW5lcyBpdCBhcyB3ZWxsIHdpdGhvdXQgZ3VhcmRpbmcgYWdhaW5zdCBpdCBiZWluZyBkZWZpbmVkIGFscmVhZHkuCgoyMDA5LTA2LTIzIDE0OjM5OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBtYXRyb3NrYTogYW5kIHRoZSBuZXcgaGVhZGVycyB0b28KCjIwMDktMDYtMjMgMTQ6MzI6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2U6IGZpeCBjb21waWxlciBlcnJvcgoJICBjaGFuZ2UgZ3BvaW50ZXIgdG8gZ3VpbnQ4ICogZm9yIGNvZGVjX3N0YXRlIGFuZCBjb2RlY19wcml2IGFzIHNvbWUKCSAgZnVuY3Rpb25zIG9wZXJhdGUgb24gdGhvc2UgdHlwZXMgYW5kIGl0IGF2b2lkcyBicmVha2luZyBzdHJpY3QtYWxpYXNpbmcKCSAgcnVsZXMuCgoyMDA5LTA2LTIzIDEyOjQyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IGF2b2lkIGxlYWtpbmcgYnVmZmVycwoJICBEb24ndCBsZWFrIGJ1ZmZlcnMgd2hlbiByZXN5bmNpbmcgdG8gYSBrZXlmcmFtZS4KCSAgQXZvaWQgbGVha2luZyBidWZmZXJzIHdoZW4gZXhpdGluZyB0aGUgbG9vcCBvbiBlcnJvciBjb25kaXRpb25zLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIEZpeGVzICM1ODU5MTEKCjIwMDktMDYtMjIgMTU6NTY6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgdjRsMjogb3Blbi9jbG9zZSB0aGUgZGV2aWNlIGluIFJFQURZCgkgIFRoaXMgYWxsb3dzIHRvIHF1ZXJ5IHRoZSBkZXZpY2UgaW4gUkVBRFkuIEJlZm9yZSBvbmUgbmVlZCB0byBzd2l0Y2ggaXQgdG8gUEFVU0VECgkgIGFuZCB0aGF0IGFsc28gc3RhcnRzIHN0cmVhbWluZy4KCjIwMDktMDYtMjAgMTU6NDE6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuYzoKCSAgcXRkZW11eDogdXNlIEdTVF9NRU1EVU1QCgoyMDA5LTA2LTE5IDAwOjE2OjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hcGV0YWcvTWFrZWZpbGUuYW06CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSAgYXBlZGVtdXg6IGFkZCBjb250YWluZXItZm9ybWF0IHRhZwoJICBVc2UgcGJ1dGlscyBoZXJlIGJlY2F1c2UgdGhlIHN0cmluZyBpcyB0cmFuc2xhdGVkLgoKMjAwOS0wNi0xOSAwMDoxNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvaWQzZGVtdXgvTWFrZWZpbGUuYW06CgkqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOgoJICBpZDNkZW11eDogYWRkIGNvbnRhaW5lci1mb3JtYXQgdGFnCgkgIFVzaW5nIHBidXRpbHMgaGVyZSBiZWNhdXNlIHRoZSBzdHJpbmcgaXMgdHJhbnNsYXRlZC4KCjIwMDktMDYtMTggMjM6NTE6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSAgZHZkZW11eDogcG9zdCBjb250YWluZXItZm9ybWF0IHRhZwoJICBBbHNvIG1lcmdlIHRoZSB0d28gYWxtb3N0IGlkZW50aWNhbCBfYWRkXypfcGFkKCkgZnVuY3Rpb25zIGludG8gb25lLgoKMjAwOS0wNi0xOCAyMzo0Mzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZHYvZ3N0ZHZkZW11eC5jOgoJICBkdmRlbXV4OiBkb24ndCBzY3JldyB1cCBmaXJzdCBhdWRpbyBidWZmZXIKCSAgUXVlcnkgdGhlIGF1ZGlvIGZvcm1hdCwgZXNwLiBkdmRlbXV4LT5udW1fY2hhbm5lbHMsIGJlZm9yZSB3ZSB1c2UgdGhhdAoJICB2YXJpYWJsZSB0byBhbGxvY2F0ZSB0aGUgaW5pdGlhbCBidWZmZXIuIFRoYXQgd2F5IHdlIGRvbid0IGFjY2lkZW50YWxseQoJICBwdXNoIGEgemVyby1zaXplZCBidWZmZXIgYXMgZmlyc3QgYXVkaW8gYnVmZmVyLgoKMjAwOS0wNi0xOCAyMzozODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgIG11bHRpcGFydGRlbXV4OiBwb3N0IGNvbnRhaW5lci1mb3JtYXQgdGFnCgoyMDA5LTA2LTE4IDIzOjM3OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYS1kZW11eDogcG9zdCBjb250YWluZXItZm9ybWF0IHRhZ3MKCjIwMDktMDYtMTggMjM6MzY6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogcG9zdCBjb250YWluZXItZm9ybWF0IHRhZwoKMjAwOS0wNi0xOCAyMzozNToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHBvc3QgY29udGFpbmVyLWZvcm1hdCB0YWdzCgoyMDA5LTA2LTIxIDE3OjEzOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5jOgoJICBhdWRpb2FtcGxpZnk6IEZpeCBpbnRlZ2VyIG92ZXJmbG93cyBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcwoKMjAwOS0wNi0yMSAwOTo1MDo1NCArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5jOgoJICBhdWRpb2FtcGxpZnk6IERvbid0IGRlY2xhcmUgYSBsb29wIGluZGV4IHN0YXRpYwoJICBUaGUgcHJldmlvdXMgcGF0Y2ggdG8gYWRkIHN1cHBvcnQgZm9yIGFkZGl0aW9uYWwgc2FtcGxlIGZvcm1hdHMgcG9zc2libHkKCSAgaW50cm9kdWNlZCBhIHJlZW50cmFuY3kgYnVnOiAgYSB2YXJpYWJsZSB1c2VkIGZvciBhIGxvb3AgaW5kZXggd2FzIGRlY2xhcmVkCgkgIHN0YXRpYy4gIFRoaXMgcGF0Y2ggZml4ZXMgdGhhdCwgYW5kIGFsc28gYWRkcyBhICIvKiAqSU5ERU5ULU9OKiAqLyIgYW5ub3RhdGlvbgoJICBmb2xsb3dpbmcgdGhlIG1hY3JvIGJsb2NrLiAgKEkgZG9uJ3Qga25vdyB3aGF0IHRoZSBhbm5vdGF0aW9uIGlzIGZvciwgYnV0IHRoZQoJICBhZGRlciwgd2hlcmUgSSBjb3BpZWQgdGhpcyBmcm9tLCBoYXMgaXQpLgoKMjAwOS0wNi0xOSAyMjozNzoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSAgYXVkaW9hbXBsaWZ5OiBGaXggb2ZmLWJ5LW9uZSBpbiB3cmFwLXBvc2l0aXZlIG1vZGUKCjIwMDktMDYtMTkgMjI6MjA6NDUgKzAyMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5Lmg6CgkgIGF1ZGlvYW1wbGlmeTogQWRkIG5vY2xpcCBtZXRob2QgYW5kIHN1cHBvcnQgZm9yIG1vcmUgZm9ybWF0cwoJICBGaXhlcyBidWcgIzU4NTgyOCBhbmQgIzU4NTgzMS4KCjIwMDktMDYtMTkgMjE6NDY6NDEgKzAyMDAgIEtvb3AgTWFzdCA8a3dtQGZyZWVic2Qub3JnPgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICB1ZHA6IEZpeCBidWlsZCBvbiBGcmVlQlNECgkgIEZpeGVzIGJ1ZyAjNTg2Mzk3LgoKMjAwOS0wNi0xOSAxODoxMjoyNyArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbi50b25jaGV2IGF0IGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3RzIGZvciBidWZmZXItbGlzdCBwYXlsb2FkZXJzCgkgIFNlZSAjNTg1NTU5CgoyMDA5LTA2LTE5IDE4OjAwOjM1ICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuLnRvbmNoZXYgYXQgYXhpcy5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5Lmg6CgkgIHJ0cG1wNHZwYXk6IGFkZCBzdXBwb3J0IGZvciBidWZmZXItbGlzdAoJICBTZWUgIzU4NTU1OQoKMjAwOS0wNi0xOSAxNzo1NzoxMiArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbi50b25jaGV2IGF0IGF4aXMuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5oOgoJICBydHBqcGVncGF5OiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyLWxpc3RzCgkgIFNlZSAjNTg1NTU5CgoyMDA5LTA2LTE5IDE3OjUzOjMyICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuLnRvbmNoZXYgYXQgYXhpcy5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5Lmg6CgkgIHJ0cGgyNjRwYXk6IGFkZCBzdXBwb3J0IGZvciBidWZmZXItbGlzdHMKCSAgU2VlICM1ODU1NTkKCjIwMDktMDYtMTggMTE6NTQ6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIHVkcHV0aWxzOiBkb24ndCBmcmVlIGludmFsaWQgbWVtb3J5CgkgIEFzIHNwb3R0ZWQgYnkgYmVuamlHIGluIElSQy4KCSAgZG9uJ3QgZnJlZSBpbnZhbGlkIG1lbW9yeSB3aGVuIGdldGFkZHJpbmZvIGZhaWxlZC4KCjIwMDktMDYtMTcgMTc6NDg6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlaW5rOiBkb24ndCBsZWFrIGRldmljZV9kZXNjcmlwdGlvbgoJICBkb24ndCBsZWFrIHRoZSBkZXZpY2VfZGVzY3JpcHRpb24uCgkgIHNvbWUgY2xlYW51cHMuCgoyMDA5LTA2LTE5IDE0OjQ0OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgZm9yIHN1bmF1ZGlvbWl4ZXIgc3RyaW5nIGNoYW5nZXMKCjIwMDktMDYtMTggMTY6NTg6MjYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogc3RyZWFtaW5nOyBhZGp1c3Qgc2l6ZXMgdG8gY2F0ZXIgZm9yIHBhZGRpbmcgaW4gY2h1bmtzCgoyMDA5LTA2LTE3IDExOjU0OjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IHN0cmVhbWluZyBtb2RlOyBoYW5kbGUgZGF0YSBjaHVua3MgZ3JvdXBlZCBpbiByZWMgbGlzdHMuCgkgIEZpeGVzICM1Njc5ODMuCgoyMDA5LTA2LTEwIDEyOjM2OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogbWFwIHNvbWUgdGFncyB0byBDT01QT1NFUiByYXRoZXIgdGhhbiBBUlRJU1QKCjIwMDktMDYtMTAgMTI6MzQ6NDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggc29tZSAzR1AgdGFnIGV4dHJhY3Rpb24gKGtleXdvcmRzLCBnZW5yZSwgbG9jYXRpb24pCgoyMDA5LTA2LTA5IDE1OjM2OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSAgcXRkZW11eDogZXh0cmFjdCBwaXhlbC1hc3BlY3QtcmF0aW8gaW5mb3JtYXRpb24KCjIwMDktMDYtMTcgMDc6MTQ6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IEZpeCBsZWFraW5nIG9mIHRoZSBNYXRyb3NrYSBUSVRMRSBlbGVtZW50CgoyMDA5LTA2LTE2IDIwOjM4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlaW50ZXJsYWNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5oOgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RyZXYuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5oOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuaDoKCSAgZWZmZWN0djogQWRkIGJhc2ljIGRvY3VtZW50YXRpb24gZm9yIHRoZSBlZmZlY3R2IGVsZW1lbnRzCgoyMDA5LTA2LTE2IDIwOjE2OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWZmZWN0di5oOgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkgIGVmZmVjdHY6IERlZmluZSB0aGUgZmFzdCBQUk5HIGZ1bmN0aW9uIGF0IGEgY2VudHJhbCBwbGFjZQoKMjAwOS0wNi0xNiAyMDoxMzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmg6CgkqIGdzdC9lZmZlY3R2L2dzdGVkZ2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5oOgoJKiBnc3QvZWZmZWN0di9nc3RlZmZlY3R2LmM6CgkqIGdzdC9lZmZlY3R2L2dzdGVmZmVjdHYuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5oOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHNoYWdhZGVsaWMuaDoKCSogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJKiBnc3QvZWZmZWN0di9nc3R2ZXJ0aWdvLmg6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5oOgoJICBlZmZlY3R2OiBNb3ZlIHR5cGUgZGVmaW5pdGlvbnMgaW50byBzZXBhcmF0ZSBoZWFkZXJzCgkgIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgZG9jcyBsYXRlci4KCjIwMDktMDYtMTYgMTk6NDE6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5jOgoJICBlZmZlY3R2OiBSZW1vdmUgZ2V0X3VuaXRfc2l6ZSBpbXBsZW1lbnRhdGlvbnMKCSAgVGhlIGRlZmF1bHQgb24gZnJvbSBHc3RWaWRlb0ZpbHRlciBoYW5kbGVzIHRoaXMgYWxyZWFkeS4KCjIwMDktMDYtMTYgMTQ6NTQ6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgY29yZS9iYXNlIHJlcXVpcmVtZW50cyB0byBnaXQKCSAgTmVlZCBnaXQgY29yZSBmb3IgYmFzZXNpbmsgYnVmZmVybGlzdCBhZGRpdGlvbnM7IC1iYXNlIHJlcXVpcmVtZW50CgkgIGJ1bXBlZCBncmF0dWl0b3VzbHkuCgoyMDA5LTA2LTE2IDE1OjI1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdWRwc2luay5jOgoJICB0ZXN0czogYWRkIHNvbWUgZGVidWcsIHNlbmQgbmV3c2VnbWVudAoKMjAwOS0wNi0xNiAxNTowNjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogYWRkIGRlYnVnIGxpbmUgZm9yIHRoZSBzb2NrZXQKCjIwMDktMDYtMTYgMTU6MDY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvZmxhY2RlYy5jOgoJICB0ZXN0czogdHVybiBnX3ByaW50IGludG8gZGVidWcKCjIwMDktMDYtMTYgMTU6MDQ6MTUgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdWRwc2luay5jOgoJICBtdWx0aXVkcHNpbms6IGFkZCBzdXBwb3J0IGZvciBidWZmZXIgbGlzdHMKCSAgQWRkIHN1cHBvcnQgZm9yIEJ1ZmZlckxpc3QgYW5kIGFkZCBhIHVuaXQgdGVzdC4KCSAgRml4ZXMgIzU4NTg0MgoKMjAwOS0wNi0xNiAwMDowMjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogcmVzZXQgc2Vzc2lvbiBzdGF0ZSB3aGVuIHN0b3BwaW5nCgkgIEluY3JlYXNlcyB0aGUgY2hhbmNlcyB0aGF0IHRoZSBlbGVtZW50IGlzIGFjdHVhbGx5IHJldXNhYmxlLgoKMjAwOS0wNi0xNSAyMzo0OTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBzb3VwaHR0cHNyYzogbG9nIHJlc3BvbnNlIGFuZCByZXF1ZXN0IGhlYWRlcnMgYW5kIGZpeCBzb21lIGJyb2tlbiBpbmRlbnRpbmcKCjIwMDktMDYtMTUgMjI6NDA6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJICBtcDRnZGVwYXk6IGd1ZXNzIGNvbnN0YW50RHVyYXRpb24gYmV0dGVyCgkgIERvIGEgYmV0dGVyIGpvYiBhdCBndWVzc2luZyB0aGUgY29uc3RhbnREdXJhdGlvbiBwYXJhbWV0ZXIgd2hlbiBpdCBpcyBub3QKCSAgcHJlc2VudCBpbiB0aGUgY2Fwcy4KCSAgRml4ZXMgIzU4NTIwNQoKMjAwOS0wNi0xNSAyMTowOTo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgIHdhcnB0djogQ2xlYW4gdXAgd2FycHR2IGVsZW1lbnQgYW5kIGZpeCBzb21lIG1pbm9yIGJ1Z3MgYW5kIGxlYWtzCgoyMDA5LTA2LTE1IDIwOjUzOjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSAgdmVydGlnb3R2OiBDbGVhbiB1cCB2ZXJ0aWdvdHYgZWxlbWVudCBhbmQgZml4IHNvbWUgbWlub3IgYnVncyBhbmQgbGVha3MKCjIwMDktMDYtMTUgMjA6Mzg6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOgoJICBkaWNldHY6IFVzZSBndWludDggaW5zdGVhZCBvZiBjaGFyICh3aGljaCBjYW4gYmUgc2lnbmVkIG9yIHVuc2lnbmVkKQoKMjAwOS0wNi0xNSAyMDozNjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkgIHNoYWdhZGVsaWN0djogVXNlIGd1aW50OC9naW50OCBpbnN0ZWFkIG9mIGNoYXIgKHdoaWNoIGNhbiBiZSBzaWduZWQgb3IgdW5zaWduZWQpCgoyMDA5LTA2LTE1IDIwOjMxOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHNoYWdhZGVsaWMuYzoKCSAgc2hhZ2FkZWxpY3R2OiBDbGVhbiB1cCBlbGVtZW50IGFuZCBmcmVlIGFsbCBtZW1vcnkgaW4gZmluYWxpemUKCjIwMDktMDYtMTUgMjA6MjE6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkgIHJldnR2OiBDbGVhbiB1cCByZXZ0diBlbGVtZW50CgoyMDA5LTA2LTE1IDIwOjA3OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkgIHF1YXJrdHY6IFNpbXBsaWZ5IHNvbWUgY29kZQoKMjAwOS0wNi0xNSAyMDowNzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJICBxdWFya3R2OiBVc2UgdGhlIGlucHV0IGRhdGEgaWYgYSBOVUxMIGJ1ZmZlciBpcyBjaG9zZW4gaW5zdGVhZCBvZiB0aGUgdmFsdWUgMAoKMjAwOS0wNi0xNSAyMDowMDo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJICBxdWFya3R2OiBGaXggc2V0dGluZyB0aGUgcGxhbmVzIHByb3BlcnR5IG9mIHF1YXJrdHYKCSAgU2V0dGluZyBpdCB0byBhIHZhbHVlPDE2IHdvdWxkIGNhdXNlIGNyYXNoZXMgYmVmb3JlIGJlY2F1c2UKCSAgY3VycmVudF9wbGFuZSB3YXMgc2V0IHRvIHRoZSBvbGQgbnVtYmVyIG9mIHBsYW5lcy0xLiBBbHNvCgkgIGZpeCBjYWxjdWxhdGlvbnMgZm9yIG5vbi0yXm4gcGxhbmVzIHZhbHVlcy4KCjIwMDktMDYtMTUgMTc6NTA6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzoKCSAgcXVhcmt0djogQ2xlYW4gdXAgdGhlIHF1YXJrdHYgZWxlbWVudAoKMjAwOS0wNi0xNSAxNzozOToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RlZmZlY3R2LmM6CgkgIGVmZmVjdHY6IE1ha2UgZWxlbWVudHMgbGlzdCBjb25zdGFudAoKMjAwOS0wNi0xNSAxNzozNzo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkgIGVkZ2V0djogQ2xlYW4gdXAgZWRnZXR2IGVsZW1lbnQgYW5kIGZpeCBtZW1vcnkgbGVhawoKMjAwOS0wNi0xNSAxNzoyMTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkgIGRpY2V0djogQ2xlYW4gdXAgZGljZXR2IGVsZW1lbnQgYW5kIGZpeCBzb21lIHNtYWxsZXIgaXNzdWVzCgkgIFRoaXMgZml4ZXMgYSBtZW1vcnkgbGVhayAodGhlIGRpY2UgbWFwKSBhbmQgYSBjcmFzaCB3aGVuCgkgIHNldHRpbmcgdGhlIHNxdWFyZS1iaXRzIHByb3BlcnR5IGJlZm9yZSBjYXBzIGFyZSBzZXQuCgoyMDA5LTA2LTE1IDE3OjIwOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L01ha2VmaWxlLmFtOgoJKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJICBhZ2luZ3R2OiBBY3R1YWxseSB1c2UgR3N0Q29udHJvbGxlciBmb3Igc3luY2luZyB0aGUgcHJvcGVydGllcyB0byB0aW1lc3RhbXBzCgoyMDA5LTA2LTE1IDE3OjAzOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkgIGFnaW5ndHY6IEV4cG9ydCBzb21lIG1vcmUgYWdpbmd0diBwcm9wZXJ0aWVzIHZpYSBHT2JqZWN0IHByb3BlcnRpZXMKCjIwMDktMDYtMTUgMTU6MDY6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSAgYWdpbmd0djogR2VuZXJhbCBjbGVhbnVwIGFuZCB1cGRhdGluZyBvZiBjb3B5cmlnaHQKCSAgQWxzbyBtYWtlIHRoZSBzY3JhdGNoLWxpbmVzIHByb3BlcnR5IGV4cG9ydGVkIHZpYSBhIEdPYmplY3QKCSAgcHJvcGVydHkgYW5kIGluaXRpYWxpemUvcmVzZXQgdGhlIGludGVybmFsIHN0YXRlIGNvcnJlY3RseS4KCjIwMDktMDYtMTUgMTU6MDU6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSAgYWdpbmd0djogU3RvcmUgYW5kIHVwZGF0ZSBzdGF0ZSBpbnNpZGUgdGhlIGluc3RhbmNlIHN0cnVjdAoJICBUaGlzIG1ha2VzIHRoZSBjb2xvcmFnaW5nIGVmZmVjdCBhbmQgcGl0cyBlZmZlY3QgdmlzaWJsZS4KCjIwMDktMDYtMTUgMTU6NTE6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHJlZiBjdXN0b20gcmluZyBidWZmZXIgY2xhc3MgYW5kIHR5cGUgaW4gY2xhc3NfaW5pdAoJICBIYWNrIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBHT2JqZWN0IGFuZCBvdXIgcmFjeSBfZ2V0X3R5cGUoKQoJICBmdW5jdGlvbnMgKHdlIGNvdWxkIGVhc2lseSBmaXggdGhlIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucywgYnV0IHdlIHN0aWxsCgkgIG5lZWQgdG8gaGFjayBhcm91bmQgdGhlIEdPYmplY3QgY2xhc3MgcmFjZXMgdW50aWwgd2UgcmVxdWlyZSBhIG5ld2VyCgkgIEdMaWIgdmVyc2lvbiwgSSB0aGluaykuCgoyMDA5LTA2LTE0IDE5OjE5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9kdi9kZW1vLXBsYXkuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGV2ZWwvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9sZXZlbC9SRUFETUU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9sZXZlbC9kZW1vLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9sZXZlbC9wbG90LmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9zd2l0Y2gvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3N3aXRjaC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3N3aXRjaC9zd2l0Y2hlci5jOgoJICBSZW1vdmUgYSBmZXcgb2xkIGV4YW1wbGUgYXBwcyBmcm9tIHRoZSAwLjggZGF5cwoJICBTb21lIGhhdmUgYmVlbiByZXBsYWNlZCBieSBuZXdlciBvbmVzLCBvdGhlcnMgYXJlIGRlbW9pbmcgZWxlbWVudHMgdGhhdAoJICBkb24ndCBleGlzdCBhbnkgbG9uZ2VyIChub3QgaW4gLWdvb2QgYW55d2F5KSwgYW5kIG90aGVycyBoYXZlIG5vdCBiZWVuCgkgIHRvdWNoZWQgaW4gbWFueSB5ZWFycyBhbmQgaXQgc2VlbSBwb2ludGxlc3MgdG8ga2VlcCB0aGVtIGFyb3VuZC4KCSAgUmVtb3ZpbmcgdGhlc2UgZmlsZXMgbWFrZXMgc3VyZSB3ZSBkb24ndCBoYXZlIGFueSBjb2RlIGluIG91ciByZXBvc2l0b3J5CgkgIHRoYXQgdXNlcyBHdGsrIHN5bWJvbHMgd2hpY2ggYXJlIHRvIGJlIHJlbW92ZWQgZm9yIEdOT01FMywgYW5kIGFzIHN1Y2gKCSAgd2lsbCBtYWtlIHNvbWUgc2NyaXB0IHRoYXQgZ3JlcHMgZm9yIHRoaXMga2luZCBvZiBzdHVmZiBnaXZlIHVzIGEgY2xlYW4KCSAgYmlsbCBvZiBjb2RlIGhlYWx0aC4gRml4ZXMgIzU4NTc1Ny4KCjIwMDktMDYtMTMgMjE6MDI6NDUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogY29tbW9uOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVucGF5LmM6CgkgIHJ0cHNpcmVucGF5OiBSZW1vdmUgZGVwcmVjYXRlZCBzeW1ib2wKCSAgUGF0Y2ggYnk6IEx1aXMgTWVuaW5hCgoyMDA5LTA2LTEzIDEwOjQzOjU1ICswMjAwICBNYXJ2aW4gU2NobWlkdCA8bWFydmluX3NjaG1pZHRAZ214Lm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB0ZXN0czogRG9uJ3QgcnVuIHRoZSBmbGFjZGVjIHRlc3QgaWYgdGhlIHBsdWdpbiBpc24ndCBidWlsdC4gRml4ZXMgIzU4NTYzMAoKMjAwOS0wNi0xMiAxNjowNjoyOCArMDIwMCAgUGF0cmljayBSYWRpemkgPHBhdHJpY2sucmFkaXppIGF0IGF4aXMuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IEFkZCBSVFAgYmxvY2tzaXplIGZ1bmN0aW9uYWxpdHkKCSAgQWRkIHByb3BlcnR5IHRvIG1ha2UgdGhlIGNsaWVudCBzdWdnZXN0IGEgYmxvY2tzaXplIHRvIHRoZSBzZXJ2ZXIuCgkgIEZpeGVzICM1ODU1NDkKCjIwMDktMDYtMTEgMjI6MzA6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL1JFQURNRToKCSAgcnRwOiB1cGRhdGUgUkVBRE1FLCBmaXggc29tZSB0eXBvcywgbWVudGlvbiBnc3RydHBiaW4KCjIwMDktMDYtMTEgMTk6MTA6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogaGFuZGxlIGJvcmRlciBjYXNlcyBpbiByZXNhbXBsZXIKCjIwMDktMDYtMTEgMTM6MzI6MjIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIGRvY3M6IEJ1bXAgY29tbW9uLiBVc2UgdXBsb2FkLWRvYy5tYWsgaW5zdGVhZCBvZiB1cGxvYWQubWFrCgkgIFJlbW92ZSB0aGUgbG9jYWwgY29weSBvZiB1cGxvYWQubWFrIGluIGZhdm91ciBvZiB1c2luZyB0aGUgc2hhcmVkCgkgIHVwbG9hZC1kb2MubWFrZSBpbiBjb21tb24vCgoyMDA5LTA2LTExIDExOjM5OjI1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ29vbS9nb29tX2NvbmZpZ19wYXJhbS5oOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIGRvY3M6IFF1aWV0ZW4gYSBjb3VwbGUgbW9yZSBkb2NzIHdhcm5pbmdzCgoyMDA5LTA2LTExIDExOjI3OjI2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvbWF0cm9za2EvbHpvLmM6CgkgIGRvY3M6IFJlbW92ZSBndGstZG9jIGNvbW1lbnQgbWFya2VyCgkgIFRoZXNlIGNvbW1lbnQgYmxvY2tzIGFyZW4ndCBndGstZG9jIGNvbW1lbnRzIGFuZCBjYXVzZSBhbm5veWluZyBub2lzZSBpbgoJICB0aGUgZG9jcyBidWlsZC4KCjIwMDktMDYtMTEgMTA6MDU6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICBkZWludGVybGFjZTogSW1wbGVtZW50IHVwc3RyZWFtIG5lZ290YXRpb24KCjIwMDktMDYtMTAgMjE6NDc6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBJbXByb3ZlIGRlYnVnZ2luZyBhbmQgY2xlYW4gdXAgc29tZSBjb2RlCgoyMDA5LTA2LTEwIDE0OjU1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICBkZWludGVybGFjZTogQ2xpcCBidWZmZXJzIHRvIHRoZSBjdXJyZW50IHNlZ21lbnQgaWYgcG9zc2libGUKCjIwMDktMDYtMTAgMTQ6NDU6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICBkZWludGVybGFjZTogQ2xlYW4gdXAgaW5jbHVkZXMgYW5kIGNsZWFuIHVwIG9yZGVyIG9mIGluc3RhbmNlIHN0cnVjdCBmaWVsZHMKCjIwMDktMDYtMTAgMTY6MDk6NTYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJICBydHBoMjYzcGF5OiBEZWZhdWx0IHRvIGRvaW5nIEEsIEIgYW5kIEMgbW9kZXMsIG5vdCBvbmx5IEEKCjIwMDktMDYtMTAgMDk6NTY6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBGaXggUW9TIGNhbGN1bGF0aW9ucwoJICBUaGUgZGlmZiBpcyBhIHNpZ25lZCBpbnRlZ2VyLCBub3QgYW4gdW5zaWduZWQgb25lIG9mIGNvdXJzZS4KCSAgSW4gbW9kZXMgb3RoZXIgdGhhbiBHU1RfREVJTlRFUkxBQ0VfQUxMIGV2ZXJ5IGZyYW1lIGhhcyB0d2ljZSB0aGUKCSAgZHVyYXRpb24gb2YgdGhlIGZpZWxkIGR1cmF0aW9uLgoKMjAwOS0wNi0wOSAxNDoxMzozMSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbnBheS5jOgoJICBydHBzaXJlbnBheTogUHV0IHRoZSBiaXRyYXRlIGluIHRoZSBSVFAgY2FwcwoJICBUaGUgTVMgY29kZSBzZWVtcyB0byByZXF1aXJlIHRoZSBiaXRyYXRlIHRvIGludGVyb3BlcmF0ZSBhbmQKCSAgZHJhZnQtaWV0Zi1hdnQtcnRwLWc3MjIxLTAwIGFsc28gaGFzIGl0LgoKMjAwOS0wNi0wOSAxOTo1NTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmg6CgkgIGRlaW50ZXJsYWNlOiBJbXBsZW1lbnQgYmFzaWMgUW9TCgkgIFRoaXMgY2hhbmdlIGlzIGJhc2VkIG9uIFRpbSdzIFFvUyBpbXBsZW1lbnRhdGlvbgoJICBmb3IganBlZ2RlYy4KCjIwMDktMDYtMDkgMTk6Mjk6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgIGRlaW50ZXJsYWNlOiBEaXJlY3RseSBwcm94eSBldmVudHMvcXVlcmllcyB0byB0aGUgcGVlciBwYWRzCgkgIFRoaXMgcmVtb3ZlcyBzb21lIG92ZXJoZWFkIGludHJvZHVjZWQgYnkgdGhlIGRlZmF1bHQgaGFuZGxlcnMKCSAgdGhhdCBuZWVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgb3RoZXIgcGFkcy4KCjIwMDktMDYtMDkgMTA6Mzg6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBkZWJ1Z19tZW1kdW1wKCkgdW5rbm93biB0YWdzLiBSZWZhY3RvciBqdW5rIHBhcnNpbmcgY29kZS4KCSAgVGhpcyBtYWtlcyBsaWZlIHNsaWdodGx5IGVhc2llciB3aGVuIGRlYnVnZ2luZyBhdmkgZmlsZXMuCgoyMDA5LTA2LTA4IDA4OjIxOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgcnRwOiBEb24ndCBmb3JnZXQgdG8gZGlzdCB0aGUgaGVhZGVycyBmb3IgdGhlIENFTFQgKGRlKXBheWxvYWRlcnMuCgoyMDA5LTA2LTA3IDIwOjU0OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBSZXZlcnQgIlJldmVydCAicXRkZW11eDogZmlsbCB0aW1lc3RhbXAgdGFibGUgY29tcGxldGVseSIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWYwMjJjOGE4NTAzYzJjZTBmYTYxN2ZkYjUwZTQxNzA2ZGQ0MTJmNS4KCSAgU29ycnksIEkgd2FzIHRoaW5raW5nIGFib3V0IHRoZSB3cm9uZyBtb2R1bGUuCgoyMDA5LTA2LTA3IDIwOjQ5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBSZXZlcnQgInF0ZGVtdXg6IGZpbGwgdGltZXN0YW1wIHRhYmxlIGNvbXBsZXRlbHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzkwYjA1MGZjNTMwMmNhZTg5Y2RkY2QyM2IyNTgwOTM5NjdkMDVhOS4KCSAgSSBmb3Jnb3Qgd2Ugd2VyZSBmcm96ZW4uCgoyMDA5LTA2LTA3IDIwOjQ2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaWxsIHRpbWVzdGFtcCB0YWJsZSBjb21wbGV0ZWx5CgkgIFdoZW4gdGhlcmUgYXJlIGxlc3MgdGltZXN0YW1wcyB0aGF0IHRoZXJlIGFyZSBzYW1wbGVzLCBmaWxsIHVwIHRoZSBzYW1wbGUgdGFibGUKCSAgd2l0aCB0aGUgbGFzdCBrbm93IHRpbWVzdGFtcC4gVGhpcyBzaXR1YXRpb24gY2FuIGhhcHBlbiB3aGVuIHRoZSBsYXN0IHNhbXBsZQoJICBkb2VzIG5vdCBkZWNvZGUgYW5kIGRvZXNuJ3QgbmVlZCBhIHRpbWVzdGFtcC4gV2UgaG93ZXZlciBjYWxjdWxhdGUgdGhlIHRvdGFsCgkgIHRyYWNrIGxlbmd0aCB1c2luZyB0aGUgbGFzdCBzYW1wbGUgdGltZXN0YW1wIHNvIHdlIG5lZWQgdG8gaGF2ZSBzb21ldGhpbmcKCSAgc2Vuc2libGUgaW4gdGhlcmUuCgkgIEZpeGVzICM1ODUwNTYKCjIwMDktMDYtMDcgMTM6Mzc6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IGhhbmRsZSBMSVNUIElORk8gb2YgMCBzaXplCgkgIEhhbmRsZSBMSVNUIElORk8gY2h1bmtzIG9mIDAgc2l6ZSBpbnN0ZWFkIG9mIGNhdXNpbmcgZXJyb3JzLgoJICBGaXhlcyAjNTg0OTgxCgoyMDA5LTA2LTA3IDEzOjI0OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIFJldmVydCAid2F2cGFyc2U6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLCBtb3ZlIHZhcmlhYmxlIHRvIHdoZXJlIGl0J3MgbmVlZGVkLiIKCSAgUmV2ZXJ0cyBjb21taXQgNDQyNTZhNzhmOGRkNzlhOTFmM2JiMmFiN2MzYWE2MjNjMDk3YmI4YSBhbmQgdXNlIHRoZSByZXN1bHQgaW4KCSAgZXJyb3IgcmVwb3J0aW5nIHNvIHRoYXQgd2UgY2FuIHNlZSB3aGF0J3MgZ29pbmcgb24uCgoyMDA5LTA2LTA1IDE4OjU1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBjZWx0ZGVwYXkuaDoKCSAgY2VsdGRlcGF5OiBhZGQgQ0VMVCBkZXBheWxvYWRlcgoKMjAwOS0wNi0wNSAxNTozMDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwY2VsdHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGNlbHRwYXkuaDoKCSAgcnRwY2VsdHBheTogYWRkIENFTFQgUlRQIHBheWxvYWRlcgoKMjAwOS0wNi0wNSAxNjo1NDo0OCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJvcHRpb25zLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVydHJhY2suYzoKCSAgc3VuYXVkaW86IEZpeCBzd2l0Y2ggc2V0dGluZyBvbiBzb21lIGRldmljZXMuIEFkZCBkZWJ1Zy4gRml4IGEgRklYTUUuCgkgIEZpeCB0aGUgc2V0dGluZyBvZiB0b2dnbGUgc3dpdGNoZXMgb24gc29tZSBicm9rZW4gYXVkaW8gZHJpdmVycyB3aGljaAoJICByZXBvcnQgdGhhdCBubyBhdWRpbyBwb3J0cyBhcmUgc2V0dGFibGUgYnkgaWdub3JpbmcgdGhlIG1vZF9wb3J0IGZpZWxkCgkgIHRoZXJlLgoJICBBZGQgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzLgoJICBGaXggYSBGSVhNRSBub3cgdGhhdCBHb29kIHJlbGllcyBvbiBhIG5ldyBlbm91Z2ggZ3N0LXBsdWdpbnMtYmFzZS4KCjIwMDktMDYtMDQgMTI6Mjc6MTkgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogc3lzL3N1bmF1ZGlvL01ha2VmaWxlLmFtOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmg6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyb3B0aW9ucy5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcm9wdGlvbnMuaDoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcnRyYWNrLmg6CgkgIHN1bmF1ZGlvOiBTdXBwb3J0IG5ldyBmbGFncyBmb3Igb3B0aW9ucyBhbmQgYWN0aW9ucwoJICBVc2UgbmV3IGF1ZGlvIG1peGVyIGZsYWdzIGFkZGVkIGluIEJhc2UgMC4xMC4yMyB0byBleHBvc2UgZmxhZ3MgYW5kIG9wdGlvbnMKCSAgb24gdGhlIFN1bkF1ZGlvIGRldmljZXMuCgkgIEZpeGVzOiAjNTgzNTkzCgkgIFBhdGNoIEJ5OiBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgkgIFBhdGNoIEJ5OiBHYXJyZXR0IEQnQW1vcmUgPGdhcnJldHQuZGFtb3JlQHN1bi5jb20+CgoyMDA5LTA1LTE1IDExOjUwOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuaDoKCSAgZGVpbnRlcmxhY2U6IEZpcnN0IHRyeSB0byBoYW5kbGUgRFZEIHN0aWxsIGZyYW1lcyBjb3JyZWN0bHkKCSAgVGhpcyBoZWxwcyBhIGJpdCB3aXRoIGJ1ZyAjNTgyNzQwIGJ1dCBzdGlsbCBkb2Vzbid0IG1ha2UgaXQgd29yay4KCjIwMDktMDYtMDQgMTc6Mzc6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBvbmx5IG5vdGlmeSBpZiBhbGwgY2hlY2tzIHBhc3NlZAoJICBSZXBsYWNlIGdvdG8gZG9uZTogd2l0aCByZXR1cm4sIGFzIHRob3NlIGFyZSBjaGVja3Mgd2hlbiB3ZSBkb24ndCB3YW50IHRvIGZsYWcgYQoJICBwZW5kaW5nIG5vdGlmeS4KCjIwMDktMDYtMDQgMTU6MTk6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHNldCB0aGUgcmlnaHQgc3RhdGUgb24gcnRwYmluCgkgIFdlIG5lZWQgdG8gc2V0IHRoZSBzdGF0ZSBvZiBnc3RydHBiaW4gdG8gdGhlIHNhbWUgc3RhdGUgYXMgb3VyIHNvdXJjZSBlbGVtZW50cy4KCSAgVGhpcyBmaXhlcyBmYWxsYmFjayB0byBUQ1AgYWdhaW4uCgoyMDA5LTA2LTAzIDE4OjIzOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogY2hlY2sgcG9pbnRlciBiZWZvcmUgYWNjZXNzaW5nCgkgIE1vdmUgZXhpc3RpbmcgY2hlY2sgYSBmZXcgbGluZXMgdXAsIHNvIHRoYXQgd2UgY2hlY2sgYmVmb3JlIGFjY2Vzc2luZyBmaWVsZHMuCgoyMDA5LTA2LTAzIDE4OjIxOjEyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogcmVuYW1lIGdzdF9wdWxzZV9zaW5rX2dldF90aW1lIHRvIGdzdF9wdWxzZXNpbmtfZ2V0X3RpbWUKCSAgUmVuYW1lIGludGVybmFsIG1ldGhvZCBmb3IgY29uc2lzdGVuY3kuCgoyMDA5LTA2LTAzIDE4OjE5OjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogdXNlIHZhbHVlcyBmcm9tIHBhX3N0cmVhbV9nZXRfYnVmZmVyX2F0dHIoKQoJICBXZSB3ZXJlIHB1dHRpbmcgdGhlIHJlcXVlc3RlZCB2YWx1ZXMgYmFjayBpbnRvIHJpbmdidWZmZXIgc3BlYywgaW5zdGVhZCBvZgoJICB1c2luZyB0aGUgcXVlcmllZCB2YWx1ZXMuCgoyMDA5LTA2LTAyIDE5OjMyOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIHZyYXdwYXk6IHRyaW0gb3V0cHV0IGJ1ZmZlcnMKCSAgUmVtb3ZlIHRoZSBsZWZ0b3ZlciB1bnVzZWQgYnl0ZXMgaW4gdGhlIG91dHB1dCBidWZmZXIuCgkgIEZpeGVzICM1ODQ2MTMKCjIwMDktMDYtMDIgMTk6MzA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJICB2cmF3ZGVwYXk6IGZpeCBwYXJzaW5nIG9mIHNhbXBsaW5nIGZpZWxkCgkgIGNvbW1pdCBhMTJkOWE4MGYyMjViZTk3YjM2NzRiMWEwNTA2YWM2NjU0NGRiZjQ5IGJyb2tlIHRoZSBwYXJzaW5nIG9mIHRoZQoJICBzYW1wbGluZy4KCjIwMDktMDUtMjcgMTc6MDY6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkgIHBuZ2RlYzogQXZvaWQgcG9zc2libGUgb3ZlcmZsb3cgaW4gY2FsY3VsYXRpb25zCgkgIEEgbWFsZm9ybWVkIChvciBzaW1wbHkgaHVnZSkgUE5HIGZpbGUgY2FuIGxlYWQgdG8gaW50ZWdlciBvdmVyZmxvdyBpbgoJICBjYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiB0aGUgb3V0cHV0IGJ1ZmZlciwgbGVhZGluZyB0byBjcmFzaGVzIG9yIGJ1ZmZlcgoJICBvdmVyZmxvd3MgbGF0ZXIuIEZpeGVzIFNBMzUyMDUgc2VjdXJpdHkgYWR2aXNvcnkuCgoyMDA5LTA2LTAyIDAwOjQ4OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogc29tZSBtb3JlIGxvZ2dpbmcgLSBkdW1wIGhlYWRlciBwYWNrZXRzCgkgIEFsc28sIHRoZSBmaW5hbCBmaXhpbmcgdXAgb2YgdGhlIGhlYWRlcnMgaXMgZXhwZWN0ZWQgYW5kIG5vdCBzb21ldGhpbmcKCSAgd2Ugc2hvdWxkIHdhcm4gYWJvdXQuCgoyMDA5LTA2LTAyIDAwOjM3OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogbmV2ZXIgZXZlciBwYXNzIHZhbHVlcyA+MzZiaXRzIHRvIF9zZXRfdG90YWxfc2FtcGxlc19lc3RpbWF0ZSgpCgkgIExldCdzIGJlIHBhcmFub2lkIGFuZCBtYWtlIHN1cmUgd2UgbmV2ZXIgcGFzcyBhIG51bWJlciB0aGF0IHRha2VzIHVwCgkgIG1vcmUgdGhhbiAzNiBiaXRzIHRvIF9zZXRfdG90YWxfc2FtcGxlc19lc3RpbWF0ZSgpLCBzaW5jZSBsaWJGTEFDCgkgIGV4cGVjdHMgYWxsIHRoZSBvdGhlciBiaXRzIHRvIGJlIHplcm8sIGFuZCBpZiB0aGlzIGlzIG5vdCB0aGUgY2FzZQoJICBuZWlnaGJvdXJpbmcgZmllbGRzIGluIHRoZSBnbG9iYWwgc3RyZWFtIGluZm8gaGVhZGVyIG1heSBnZXQgbWVzc2VkCgkgIHVwIGluYWR2ZXJ0ZW50bHksIHNvIHRoYXQgZmxhYyAtZCByZWZ1c2VzIHRvIGRlY29kZSB0aGUgc3RyZWFtLgoJICBTZWUgIzU4NDQ1NS4KCjIwMDktMDYtMDEgMjI6MzM6MDIgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIEFkZHJlc3MgYmFkIEZMQUMgc2FtcGxlIGxlbmd0aCBlbmNvZGluZyBvZiAjNTg0NDQ1NQoJICBDb21taXQgZGY3MDdjNjY2NDMzYTc4ZDM4NzhhZjZmMDU1Njk4ZDU3NTYyMjZjNAoJICBpbnRyb2R1Y2VkIGFuIG9idmlvdXMgYnVnIGluIHRoZSBzYW1wbGUgbGVuZ3RoIGNhbGN1bGF0aW9uLAoJICB1c2luZyB0aGUgd3JvbmcgbWFjcm8gZm9yIGNvbnZlcnNpb24uCgoyMDA5LTA2LTAxIDExOjU4OjIxIC0wNzAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL21teC5oOgoJICBkZWludGVybGFjZTogRml4IHNwdXJpb3VzIGNvbG9ucyBpbiBhc20gY29kZQoJICBGaXhlcyAjNTg0MTc0LgoJICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCjIwMDktMDYtMDEgMDA6NDA6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogc2tpcCBKVU5LIGNodW5rcyBpbiBkYXRhIHNlY3Rpb24gaW4gc3RyZWFtaW5nIG1vZGUKCSAgU2tpcCBKVU5LIHRhZ3MgaW4gc3RyZWFtaW5nIG1vZGUgYXMgd2VsbCBpbnN0ZWFkIG9mIEVPU2luZwoJICBwcmVtYXR1cmVseS4gRml4ZXMgIzU2NDEwMC4KCjIwMDktMDUtMjggMTQ6MDE6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYmdyYS5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9pNDIwLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgdmlkZW9taXhlcjogRG9uJ3QgdXNlIC8vIGNvbW1lbnRzCgoyMDA5LTA1LTI4IDEzOjU2OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2JncmEuYzoKCSAgdmlkZW9taXhlcjogRml4IGJhY2tncm91bmQgYmxpdHRpbmcgd2hlbiBhIGNvbG9yIG1vZGUgaXMgc2VsZWN0ZWQgd2l0aCBCR1JBCgoyMDA5LTA1LTI4IDEzOjU0OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2F5dXYuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYmdyYS5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9pNDIwLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5oOgoJICB2aWRlb21peGVyOiBTb21lIGNsZWFudXAgYW5kIGZpeCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGZyYW1lIHNpemUgaW4gYnl0ZXMKCjIwMDktMDUtMjggMTM6MzU6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfaTQyMC5jOgoJICB2aWRlb21peGVyOiBGaXggSTQyMCBibGVuZGluZyB0byBhY3R1YWxseSBkbyBzb21ldGhpbmcKCSAgRm9yIHRoaXMgd2UgYSkgaW1wbGVtZW50IHRoZSBjaGVja2VycyBmaWxsaW5nIGFuZCBiKQoJICBhY3R1YWxseSBibGVuZCB0aGUgc3JjL2Rlc3QgYnkgdXNpbmcgdGhlIHNyYyBhbHBoYSB2YWx1ZQoJICBmcm9tIHRoZSBwYWQuCgoyMDA5LTA1LTI4IDEzOjE0OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2JncmEuYzoKCSAgdmlkZW9taXhlcjogRml4IEFSR0IgYmxlbmRpbmcgdG8gYWN0dWFsbHkgd29yawoKMjAwOS0wNS0yOCAxMzowNDo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYmdyYS5jOgoJICB2aWRlb21peGVyOiBCbGVuZCBCR1JBIG91cnNlbHZlcyBpbnN0ZWFkIG9mIHVzaW5nIENhaXJvCgoyMDA5LTA1LTI4IDEyOjU1OjE2ICswMjAwICBBbGV4IFVnYXJ0ZSA8YWxleHVnYXJ0ZUBnbWFpbC5jb20+CgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvbWl4ZXIvYmxlbmRfYXl1di5jOgoJKiBnc3QvdmlkZW9taXhlci9ibGVuZF9iZ3JhLmM6CgkqIGdzdC92aWRlb21peGVyL2JsZW5kX2k0MjAuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIHZpZGVvbWl4ZXI6IEFkZCBzdXBwb3J0IGZvciBibGVuZGluZyBCR1JBIGFuZCBBWVVWCgkgIEZpeGVzIGJ1ZyAjNTc3MDE3LgoKMjAwOS0wNS0yOCAxMjozOTo0NiArMDIwMCAgR2hpc2xhaW4gJ0F1cycgTGFjcm9peCA8YXVzQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICBlcXVhbGl6ZXI6IFVzZSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGludGVybmFsbHkgZm9yIHRoZSBpbnQxNiBtb2RlCgkgIEJ5IHVzaW5nIGludDMyIGFyaXRobWV0aWMgd2Ugd2lsbCBpbnRyb2R1Y2UgZGlzdG9ydGlvbnMgYXMgdGhlCgkgIElJUiBmaWx0ZXIgaXMgdmVyeSBzZW5zaXRpdmUgdG8gcm91bmRpbmcgZXJyb3JzLiBGaXhlcyBidWcgIzU4MDIxNC4KCjIwMDktMDUtMjggMTA6NTU6MTYgKzAxMDAgIENocmlzdGlhbiBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZSB3aXRoIGxhdGVzdCBwbHVnaW5zCgoyMDA5LTA1LTI2IDE3OjE5OjA4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg4OGUwYTIgdG8gYzU3MjcyMQoKMjAwOS0wNS0yNiAxNjoyMDozNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkgIHY0bDI6IGNsZWFudXAgYW5kIGNvbW1lbnRpbmcKCSAgUmVtb3ZlIG5ld2xpbmVzIGluc2VydGVkIGJ5IGdzdC1pbmRlbnQgb25jZS4gUmVtb3ZlIHVudXNlZCB2YXIgZnJvbSBpbnN0YW5jZQoJICBzdHJ1Y3QuIEFkZCBjb21tZW50cy4gQWRkIGFub3RoZXIgI2RlZmluZSBmb3IgZGVmYXVsdCBwcm9wZXJ0eSB2YWx1ZS4KCjIwMDktMDUtMDYgMTI6NDM6MzUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtYWtlZmlsZTogaWRlYSBhYm91dCBtYWtlaW5nIG1vcmUgc291cmNlcy9zaW5rcyB0ZXN0YWJsZSBhZ2FpbgoKMjAwOS0wNS0yNSAxNjozMzozNSArMDIwMCAgSm9obiBLZWVwaW5nIDxqb2huLmtlZXBpbmcgYXQgbGluZW9uZS5uZXQ+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICBwbmdkZWM6IG1hdGNoIGdfbWFsbG9jKCkgd2l0aCBnX2ZyZWUoKQoJICBNYXRjaGluZyBnX21hbGxvYygpIHdpdGggYSBnX2ZyZWUoKSBpcyBpbXBvcnRhbnQgd2hlbiBhIGN1c3RvbSBhbGxvY2F0b3IgaXMKCSAgaW5zdGFsbGVkLgoJICBGaXhlcyAjNTgzODAzCgoyMDA5LTA1LTEyIDE4OjM5OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJICBydHBtcDR2cGF5OiBkb24ndCBsb29rIGZvciBoZWFkZXJzIGluIHNvbWUgY2FzZXMKCSAgSW4gc29tZSBzdHJlYW1zIChzdGFydGluZyB3aXRoIDAwMDAwMTAwKSBkb24ndCBsb29rIGZvciB0aGUgaGVhZGVycyBidXQgcHVzaAoJICBkYXRhIGFzIGl0IGlzLgoJICBGaXhlcyAjNTgyMTUzCgoyMDA5LTA1LTEzIDExOjUwOjIyICswMjAwICBQYXRyaWNrIFJhZGl6aSA8cGF0cmljay5yYWRpemkgYXQgYXhpcy5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBtZW1vcnkgbGVhayBvZiBtZXNzYWdlcwoJICBGcmVlIG1lc3NhZ2VzIGNvcnJlY3RseS4KCSAgRml4ZXMgIzU3NzMxOAoKMjAwOS0wNS0yNCAxOTozMjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogbWFrZSBmYWtlc3JjIHNpbGVudAoJICBNYWtlIHRoZSBmYWtlc3JjIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgZHVtbXkgcGFja2V0cyBzaWxlbnQuCgoyMDA5LTA1LTI0IDE2OjMzOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBkb24ndCBzZW5kIHRlYXJkb3duIGJlZm9yZSBzZXR1cAoJICBEb24ndCBzZW5kIGEgVEVBUkRPV04gcmVxdWVzdCB3aGVuIHdlIGRpZCBub3QgbWFuYWdlIHRvIHN1Y2Nlc3NmdWxseSBzZXR1cCBhCgkgIHN0cmVhbS4KCjIwMDktMDUtMTQgMTQ6NDY6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgIG1hdHJvc2thZGVtdXg6IFBvcHVsYXRlIGEgR3N0SW5kZXggdGhhdCBpcyBzZXQgb24gbWF0cm9za2FkZW11eAoKMjAwOS0wNS0xNCAxMDozNToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJICBmbHZtdXg6IEdldCB0aGUgbWF4IGR1cmF0aW9uIGZyb20gdXBzdHJlYW0gaWYgdGhlcmUncyBubyBkdXJhdGlvbiB0YWcKCjIwMDktMDUtMTQgMTA6Mjk6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguaDoKCSAgZmx2bXV4OiBXcml0ZSBhbiBpbmRleCB0YWJsZSB0byB0aGUgZW5kIG9mIHRoZSBmaWxlCgoyMDA5LTA1LTIyIDAxOjEyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYXV0b3Rvb2xzOiBtb3ZlIHRoZSAtV25vLXBvcnRhYmlsaXR5IGZyb20gYXV0b2dlbi5zaCB0byBjb25maWd1cmUuYWMKCSAgSWYgd2UncmUgbHVja3kgaXQnbGwgZ2V0IHVzZWQgb24gYXV0b21hdGljIHJlYnVpbGRzIGFzIHdlbGwgdGhhdCB3YXkuCgoyMDA5LTA1LTIyIDAxOjEwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBtNC9nc3QtZmlvbnJlYWQubTQ6CgkgIG00OiBmaXggJ3N1c3BpY2lvdXMgY2FjaGUgaWQnIHdhcm5pbmdzCgkgIGFuZCB1cGRhdGUgY29tbW9uIHRvIHB1bGwgaW4gYSBzaW1pbGFyIGZpeC4gQWxzbyBjaGVjayBpbiBjb25maWd1cmUKCSAgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgZG8gd2hpbGUgbWFjcm9zIChHTGliIHdhbnRzIHRoaXMKCSAgZGVmaW5lZCBhbmQgaXQgaXMgbmVlZGVkIHRvIGF2b2lkIHdhcm5pbmdzIHdpdGggc29tZSBjKysgY29tcGlsZXJzCgkgIGFwcGFyZW50bHkpLgoKMjAwOS0wNS0yMiAwMTozOTozMyArMDMwMCAgWmVlc2hhbiBBbGkgKEtoYXR0YWspIDx6ZWVzaGFuYWtAZ25vbWUub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBzb3VwaHR0cHNyYzogQnVtcC11cCBsaWJzb3VwLTIuMjQgZGVwIHRvID49IDIuMjYKCSAgVGhlIGhlbHBlciBmdW5jdGlvbiBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF90eXBlIHRoYXQgd2Ugbm93IHVzZQoJICB3YXMgYWRkZWQgaW4gMi4yNi4KCjIwMDktMDUtMjAgMTc6NTc6NTkgKzAzMDAgIFplZXNoYW4gQWxpIChLaGF0dGFrKSA8emVlc2hhbmFrQGdub21lLm9yZz4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIHNvdXBodHRwc3JjOiBTZXQgY2FwcyBmb3IgYXVkaW8vTDE2IGNvbnRlbnQtdHlwZQoJICBXaGVuICJDb250ZW50LVR5cGUiIGhlYWRlciBpcyAiYXVkaW8vTDE2Iiwgd2UgbmVlZCB0byBzZXQgdGhlIGNhcHMgb24gdGhlCgkgIG91dGdvaW5nIGJ1ZmZlcnMgc28gdGhhdCBkb3duc3RyZWFtIGVsZW1lbnRzIGNhbiBoYXZlIG1lYW5zIHRvIGRldGVjdCB0aGUKCSAgc3RyZWFtIHR5cGUgYW5kIGhhbmRsZSBpdCBhcHByb3ByaWF0ZWx5LiBUZXN0ZWQgd2l0aCBIVFRQIHN0cmVhbSBwcm92aWRlZAoJICBieSBwdWxzZS1hdWRpbydzIGh0dHAgbW9kdWxlIChnaXQgbWFzdGVyKS4KCjIwMDktMDUtMjAgMTU6MDY6MjUgKzAzMDAgIFplZXNoYW4gQWxpIChLaGF0dGFrKSA8emVlc2hhbmFrQGdub21lLm9yZz4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmg6CgkgIHNvdXBodHRwc3JjOiBSZW5hbWUgaWN5X2NhcHMgdG8gc3JjX2NhcHMKCjIwMDktMDUtMjEgMjM6Mzk6MTMgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxpcHBlIGF0IGZsdWVuZG8uY29tPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBidW1wIG1heCBzaXplIHRvIDY1NTM1eDY1NTM1CgkgIFJlbW92ZSBhcnRpZmljaWFsIGpwZWcgaW1hZ2UgbGltaXRzLgoJICBGaXhlcyAjNTgzMDQ4LgoKMjAwOS0wNS0yMSAyMTozNjowMiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB3aW4zMjogVXBkYXRlIHRoZSB3aW4zMiBjb25maWcuaAoKMjAwOS0wNS0xOSAxNToxMjowOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgbWF0cm9za2FkZW11eDogUmVjb2duaXNlIFBHUyBzdWJwaWN0dXJlIHN0cmVhbXMgLSB0aGUgYmx1cmF5IGZvcm1hdC4KCSAgUmVjb2duaXNlIGFuZCBhcHBseSBhcHByb3ByaWF0ZSBjYXBzIHRvIFBHUyAoUHJlc2VudGF0aW9uIEdyYXBoaWMgU3RyZWFtKQoJICBzdWJwaWN0dXJlIHN0cmVhbXMuCgoyMDA5LTA1LTE1IDEwOjQyOjE5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogQ29udmVydCBhbiBlcnJvbmVvdXMgYXNzZXJ0aW9uCgkgIE9jY2FzaW9uYWxseSwgd2UgZ2V0IGEgY2hhbmdlIGNhbGxiYWNrIGZvciBhbiBvbGQgc3RyZWFtLCB0cmlnZ2VyaW5nCgkgIHRoZSBhc3NlcnRpb24gdW5uZWNlc3NhcmlseS4gSnVzdCBpZ25vcmUgc3VjaCBjYWxsYmFja3MuCgoyMDA5LTA1LTIwIDE2OjE0OjQwIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlOiBQcmludCBhIHdhcm5pbmcgb24gdW5kZXIvb3ZlcmZsb3dzCgoyMDA5LTA1LTIwIDE4OjQ1OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBwYXJzZSBpbjI0IGJveGVzIHRvIGdldCBlbmRpYW5uZXNzCgkgIGluMjQgc2FtcGxlcyBhcmUgbm9ybWFsbHkgYmlnLWVuZGlhbiBidXQgYW4gZW5kYSBib3ggY2FuIGNoYW5nZSB0aGlzIHRvCgkgIGxpdHRsZS1lbmRpYW4uIFJlY3Vyc2UgaW50byB0aGUgaW4yNCBib3ggYW5kIGZpbmQgdGhlIGVuZGEgYm94IHNvIHRoYXQgd2UgZ2V0CgkgIHRoZSBlbmRpYW5uZXNzIHJpZ2h0LgoJICBGaXhlcyAjNTgyNTE1CgoyMDA5LTA1LTIwIDE0OjE0OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJICBtdWx0aXBhcnRkZW11eDogYWRkIHByb3BlciBwYWR0ZW1wbGF0ZQoKMjAwOS0wNS0yMCAxNDowMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSAgbXVsdGlwYXJ0ZGVtdXg6IGFkZCBtb3JlIG1pbWUgdHlwZXMKCSAgQWRkIG1pbWUtdHlwZSBmb3IgUGFuYXNvbmljIGc3MjYgYW5kIGFkZCBtb3JlIHJlcXVpcmVkIGNhcHMgcHJvcGVydGllcyBmb3Igb3RoZXIKCSAgRzcyNiBtaW1lLXR5cGVzLgoJICBNYWtlIG1pbWUtdHlwZXMgY2FzZSBpbnNlbnNpdGl2ZS4KCSAgU2VlICM1ODIxNjkKCjIwMDktMDUtMjAgMTM6NDc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguaDoKCSAgbXVsdGlwYXJ0ZGVtdXg6IGFkZCBmbG93IGFnZ3JlZ2F0aW9uCgoyMDA5LTA1LTIwIDEzOjI5OjAyICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgIG11bHRpcGFydGRlbXV4OiBhbGxvdyBjb250ZW50IHRvIGJlIGVtcHR5LgoJICBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlciBkb2Vzbid0IGFsbG93IGJ1ZmZlciB0byBiZSBlbXB0eS4KCSAgU2ltcGx5IHNraXAgYW55IHBhcnQgd2hlcmUgdGhlIGNvbnRlbnQgaXMgZW1wdHkuICBEb24ndAoJICBjcmVhdGUgYSBwYWQgZm9yIGl0IGVpdGhlci4KCSAgU2VlICM1ODIxNjkKCjIwMDktMDUtMTggMjI6MTk6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGNoYW5uZWxzLmg6CgkgIHJ0cDogZml4IGNoYW5uZWwgcG9zaXRpb25zIGZvciBtb25vCgoyMDA5LTA1LTIxIDIxOjAyOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gaGFja2luZyAtPiAwLjEwLjE1LjEKCj09PSByZWxlYXNlIDAuMTAuMTUgPT09CgoyMDA5LTA1LTIwIDIyOjM0OjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNQoKMjAwOS0wNS0yMCAyMjowMzoyMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTA1LTE2IDAyOjU5OjE0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTQuMyBwcmUtcmVsZWFzZQoKMjAwOS0wNS0xNiAwMjozNzowNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSAgY2hlY2s6IERvbid0IGNoYW5nZSBkaXJlY3RvcnkgaW4gdGhlIHRlc3QKCSAgQ2hhbmdpbmcgZGlyZWN0b3J5IGludmFsaWRhdGVzIHRoZSBwYXRocyB0aGUgcmVnaXN0cnkgaGFzIHBpY2tlZAoJICB1cCBmb3Igb3VyIHBsdWdpbnMsIGJlY2F1c2UgdGhlIHRlc3QgZW52aXJvbm1lbnQgc3BlY2lmaWVzIHJlbGF0aXZlCgkgIHBhdGhzLiBGaXhpbmcgdGhhdCBpcyBhIHNlcGFyYXRlIHByb2JsZW0sIGluIHRoZSBtZWFudGltZSwgYnVpbGQgYQoJICBwYXRoIHRvIHRoZSB0ZXN0IGZpbGVzIGluc3RlYWQgb2YgY2hhbmdpbmcgZGlyZWN0b3J5LiBGaXhlcyB0aGUKCSAgZGlzdGNoZWNrLgoKMjAwOS0wNS0xNiAwMTo1Mzo0NiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIHdpbjMyOiBSZW1vdmUgZGlyZWN0ZHJhdyBwcm9qZWN0IGZpbGVzIGZyb20gdGhlIHdpbjMyIG1hbmlmZXN0CgoyMDA5LTA1LTE2IDAxOjIxOjM0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6CgkgIGNoZWNrOiBSZW1vdmUgYXNzZXJ0aW9uIHRoYXQgYnJlYWtzIGNoZWNrIGFnYWluIGdpdCBtYXN0ZXIKCSAgUmVtb3ZlIHRoZSBhc3NlcnRpb24gdGhhdCB0aGUgc2VuZGVyIG9mIHRoZSB0YWdzIG1lc3NhZ2UgaXMgdGhlCgkgIGVsZW1lbnQgdW50aWwgd2UgZGVjaWRlIHdoZXRoZXIgdGhhdCdzIGdvaW5nIHRvIGJlIHRydWUgb3Igbm90LgoKMjAwOS0wNS0xNiAwMToxMTozMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRpcmVjdGRyYXcueG1sOgoJKiBzeXMvTWFrZWZpbGUuYW06CgkqIHN5cy9kaXJlY3RkcmF3L01ha2VmaWxlLmFtOgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3cGx1Z2luLmM6CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmg6CgkqIHdpbjMyL3ZzNi9saWJnc3RkaXJlY3RkcmF3LmRzcDoKCSogd2luMzIvdnM3L2xpYmdzdGRpcmVjdGRyYXcudmNwcm9qOgoJKiB3aW4zMi92czgvbGliZ3N0ZGlyZWN0ZHJhdy52Y3Byb2o6CgkgIE1vdmVkICdkaXJlY3RkcmF3JyBmcm9tIC1nb29kIHRvIC1iYWQKCjIwMDktMDUtMTYgMDA6MTg6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBpZ25vcmVzOiBJZ25vcmUgdGhlIGZsYWNkZWMgY2hlY2sgYmluYXJ5CgoyMDA5LTA1LTE2IDAwOjE3OjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSAgZG9jczogVXBkYXRlIGluc3BlY3Rpb24gZGV0YWlscyBmb3IgdGhlIGF2aSBwbHVnaW4KCjIwMDktMDUtMTYgMDA6MDA6MDcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMveTRtZW5jLmM6CgkgIE1vdmVkICd5NG1lbmMnIGZyb20gLWJhZCB0byAtZ29vZAoKMjAwOS0wNS0xMyAxNzo1NTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0geTRtZW5jOiBjaGFuZ2UgbXkgZW1haWwKCSAgY2hhbmdlIG15IGVtYWlsIHRvIHNvbWV0aGluZyBtb3JlIGN1cnJlbnQKCSAgU2VlICM1ODA3ODMKCjIwMDktMDUtMTMgMTc6NTQ6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdIHk0bWVuYzogZG9uJ3Qgc3RyaXAgdGltZXN0YW1wcwoJICBGaXhlcyAjNTgyNDgzCgoyMDA4LTExLTA0IDEyOjQyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQURdIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIC1iYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbHNhc3BkaWYvTWFrZWZpbGUuYW06CgkgICogZXh0L2FtcndiL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcGV4c2luay9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXJ0cy9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXJ0c2QvTWFrZWZpbGUuYW06CgkgICogZXh0L2F1ZGlvZmlsZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXVkaW9yZXNhbXBsZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvYnoyL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jZGF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jZWx0L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kYzEzOTQvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpcmFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9kaXJlY3RmYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvZGl2eC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZHRzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mYWFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mYWFkL01ha2VmaWxlLmFtOgoJICAqIGV4dC9nc20vTWFrZWZpbGUuYW06CgkgICogZXh0L2hlcm1lcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvaXZvcmJpcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvanAyay9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9sY3MvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYmZhbWUvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYm1tcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogZXh0L21wZWcyZW5jL01ha2VmaWxlLmFtOgoJICAqIGV4dC9tcGxleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXVzZXBhY2svTWFrZWZpbGUuYW06CgkgICogZXh0L211c2ljYnJhaW56L01ha2VmaWxlLmFtOgoJICAqIGV4dC9teXRodHYvTWFrZWZpbGUuYW06CgkgICogZXh0L25hcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbmVvbi9NYWtlZmlsZS5hbToKCSAgKiBleHQvb2ZhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9wb2x5cC9NYWtlZmlsZS5hbToKCSAgKiBleHQvcmVzaW5kdmQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NkbC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2hvdXQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NuYXBzaG90L01ha2VmaWxlLmFtOgoJICAqIGV4dC9zbmRmaWxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zb3VuZHRvdWNoL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zcGMvTWFrZWZpbGUuYW06CgkgICogZXh0L3N3ZmRlYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFya2luL01ha2VmaWxlLmFtOgoJICAqIGV4dC90aGVvcmEvTWFrZWZpbGUuYW06CgkgICogZXh0L3RpbWlkaXR5L01ha2VmaWxlLmFtOgoJICAqIGV4dC90d29sYW1lL01ha2VmaWxlLmFtOgoJICAqIGV4dC94MjY0L01ha2VmaWxlLmFtOgoJICAqIGV4dC94aW5lL01ha2VmaWxlLmFtOgoJICAqIGV4dC94dmlkL01ha2VmaWxlLmFtOgoJICAqIGdzdC1saWJzL2dzdC9hcHAvTWFrZWZpbGUuYW06CgkgICogZ3N0LWxpYnMvZ3N0L2RzaG93L01ha2VmaWxlLmFtOgoJICAqIGdzdC9haWZmcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FwcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9idWZmZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2JheWVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jZHhhcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoYXJ0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9jb2xvcnNwYWNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kY2NwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kdmRzcHUvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Zlc3RpdmFsL01ha2VmaWxlLmFtOgoJICAqIGdzdC9maWx0ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZsYWNwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmx2L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nYW1lcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaDI2NHBhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9saWJyZmIvTWFrZWZpbGUuYW06CgkgICogZ3N0L21peG1hdHJpeC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbW9kcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZzFzeXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWc0dmlkZW9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZ2RlbXV4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVndHNtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWd2aWRlb3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L25zZi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbnV2ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L292ZXJsYXkvTWFrZWZpbGUuYW06CgkgICogZ3N0L3Bhc3N0aHJvdWdoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wY2FwcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmF3cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlYWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0anBlZy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwbWFuYWdlci9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2NhbGV0ZW1wby9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2RwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zZWxlY3Rvci9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc21vb3RoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbW9vdGh3YXZlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVlZC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3BlZXhyZXNhbXBsZS9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3RlcmVvL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zdWJlbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3R0YS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdmJpZGVjL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2Ryb3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvc2lnbmFsL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aXJ0dWFsZHViL01ha2VmaWxlLmFtOgoJICAqIGdzdC92bW5jL01ha2VmaWxlLmFtOgoJICAqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgICogc3lzL2FjbWVuYy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvY2Ryb20vTWFrZWZpbGUuYW06CgkgICogc3lzL2RzaG93ZGVjd3JhcHBlci9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHNob3dzcmN3cmFwcGVyL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kdmIvTWFrZWZpbGUuYW06CgkgICogc3lzL2R4cjMvTWFrZWZpbGUuYW06CgkgICogc3lzL2ZiZGV2L01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3M0L01ha2VmaWxlLmFtOgoJICAqIHN5cy9xY2FtL01ha2VmaWxlLmFtOgoJICAqIHN5cy9xdHdyYXBwZXIvTWFrZWZpbGUuYW06CgkgICogc3lzL3ZjZC9NYWtlZmlsZS5hbToKCSAgKiBzeXMvd2luaW5ldC9NYWtlZmlsZS5hbToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIC1iYWQuCgoyMDA4LTA2LTI2IDE1OjUyOjQwICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIFtNT1ZFRCBGUk9NIEJBRF0gQWRkIGRvY3VtZW50YXRpb24gZm9yIFlVVjRNUEVHMiBlbmNvZGVyIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIFlVVjRNUEVHMiBlbmNvZGVyIGVsZW1lbnQuCgoyMDA3LTA0LTI0IDE1OjQ5OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgW01PVkVEIEZST00gQkFEXSBQbHVnIHNvbWUgbGVha3M7IHRyeSB0byBtYWtlIGJ1aWxkIGJvdCBoYXBweSBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzogKGdzdF95NG1fZW5jb2RlX2luaXQpLAoJICAoZ3N0X3k0bV9lbmNvZGVfc2V0Y2Fwcyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMveTRtZW5jLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFBsdWcgc29tZSBsZWFrczsgdHJ5IHRvIG1ha2UgYnVpbGQgYm90IGhhcHB5IGFnYWluLgoKMjAwNi0xMS0xMyAxODo1NTo1NyArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIFtNT1ZFRCBGUk9NIEJBRF0gY29uZmlndXJlLmFjOiBFbmFibGUgY2RhdWRpbyBhbmQgeTRtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogY29uZmlndXJlLmFjOgoJICBFbmFibGUgY2RhdWRpbyBhbmQgeTRtLgoJICAqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgICogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzogKGdzdF95NG1fZW5jb2RlX2Jhc2VfaW5pdCksCgkgIChnc3RfeTRtX2VuY29kZV9jbGFzc19pbml0KSwgKGdzdF95NG1fZW5jb2RlX2luaXQpLAoJICAoZ3N0X3k0bV9lbmNvZGVfcmVzZXQpLCAoZ3N0X3k0bV9lbmNvZGVfc2V0Y2FwcyksCgkgIChnc3RfeTRtX2VuY29kZV9nZXRfc3RyZWFtX2hlYWRlciksCgkgIChnc3RfeTRtX2VuY29kZV9nZXRfZnJhbWVfaGVhZGVyKSwgKGdzdF95NG1fZW5jb2RlX2NoYWluKSwKCSAgKGdzdF95NG1fZW5jb2RlX3NldF9wcm9wZXJ0eSksIChnc3RfeTRtX2VuY29kZV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3k0bV9lbmNvZGVfY2hhbmdlX3N0YXRlKSwgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QveTRtL2dzdHk0bWVuY29kZS5oOgoJICBQb3J0IG9mIHk0bWVuY29kZSB0byAwLjEwLgoKMjAwNi0wNC0yNSAyMTo1NjozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgW01PVkVEIEZST00gQkFEXSBEZWZpbmUgR3N0RWxlbWVudERldGFpbHMgYXMgY29uc3QgYW5kIGFsc28gc3RhdGljICh3aGVuIGRlZmluZWQgYXMgZ2xvYmFsKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JkZWMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JlbmMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JwYXJzZS5jOgoJICAqIGV4dC9hcnRzL2dzdF9hcnRzLmM6CgkgICogZXh0L2FydHNkL2dzdGFydHNkc2luay5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZwYXJzZS5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzaW5rLmM6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNyYy5jOgoJICAqIGV4dC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKiBleHQvYnoyL2dzdGJ6MmRlYy5jOgoJICAqIGV4dC9iejIvZ3N0YnoyZW5jLmM6CgkgICogZXh0L2NkYXVkaW8vZ3N0Y2RhdWRpby5jOgoJICAqIGV4dC9kaXJlY3RmYi9kZmJ2aWRlb3NpbmsuYzoKCSAgKiBleHQvZGl2eC9nc3RkaXZ4ZGVjLmM6CgkgICogZXh0L2RpdngvZ3N0ZGl2eGVuYy5jOgoJICAqIGV4dC9kdHMvZ3N0ZHRzZGVjLmM6IChnc3RfZHRzZGVjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2ZhYWMvZ3N0ZmFhYy5jOiAoZ3N0X2ZhYWNfYmFzZV9pbml0KToKCSAgKiBleHQvZmFhZC9nc3RmYWFkLmM6CgkgICogZXh0L2dzbS9nc3Rnc21kZWMuYzoKCSAgKiBleHQvZ3NtL2dzdGdzbWVuYy5jOgoJICAqIGV4dC9oZXJtZXMvZ3N0aGVybWVzY29sb3JzcGFjZS5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2ZpbGUuYzoKCSAgKiBleHQvbGNzL2dzdGNvbG9yc3BhY2UuYzoKCSAgKiBleHQvbGliZmFtZS9nc3RsaWJmYW1lLmM6CgkgICogZXh0L2xpYm1tcy9nc3RtbXMuYzogKGdzdF9tbXNfYmFzZV9pbml0KToKCSAgKiBleHQvbXVzZXBhY2svZ3N0bXVzZXBhY2tkZWMuYzogKGdzdF9tdXNlcGFja2RlY19iYXNlX2luaXQpOgoJICAqIGV4dC9tdXNpY2JyYWluei9nc3R0cm0uYzogKGdzdF9tdXNpY2JyYWluel9iYXNlX2luaXQpOgoJICAqIGV4dC9uYXMvbmFzc2luay5jOiAoZ3N0X25hc3NpbmtfYmFzZV9pbml0KToKCSAgKiBleHQvbmVvbi9nc3RuZW9uaHR0cHNyYy5jOgoJICAqIGV4dC9zZGwvc2RsYXVkaW9zaW5rLmM6CgkgICogZXh0L3NkbC9zZGx2aWRlb3NpbmsuYzoKCSAgKiBleHQvc2hvdXQvZ3N0c2hvdXQuYzoKCSAgKiBleHQvc25hcHNob3QvZ3N0c25hcHNob3QuYzoKCSAgKiBleHQvc25kZmlsZS9nc3RzZi5jOgoJICAqIGV4dC9zd2ZkZWMvZ3N0c3dmZGVjLmM6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5kZWMuYzoKCSAgKiBleHQvdGFya2luL2dzdHRhcmtpbmVuYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2Jhc2VfaW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9iYXNlX2luaXQpOgoJICAqIGV4dC94dmlkL2dzdHh2aWRkZWMuYzoKCSAgKiBleHQveHZpZC9nc3R4dmlkZW5jLmM6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhcGFyc2UuYzogKGdzdF9jZHhhX3BhcnNlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhc3RyaXAuYzogKGdzdF9jZHhhc3RyaXBfYmFzZV9pbml0KToKCSAgKiBnc3QvY2hhcnQvZ3N0Y2hhcnQuYzoKCSAgKiBnc3QvY29sb3JzcGFjZS9nc3Rjb2xvcnNwYWNlLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogKGdzdF9paXJfZXF1YWxpemVyX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RpaXIuYzoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzoKCSAgKiBnc3QvZnJlZXplL2dzdGZyZWV6ZS5jOgoJICAqIGdzdC9nYW1lcy9nc3RwdXp6bGUuYzogKGdzdF9wdXp6bGVfYmFzZV9pbml0KToKCSAgKiBnc3QvbGlicmZiL2dzdHJmYnNyYy5jOgoJICAqIGdzdC9taXhtYXRyaXgvbWl4bWF0cml4LmM6CgkgICogZ3N0L21wZWcxc3lzL2dzdG1wZWcxc3lzdGVtZW5jb2RlLmM6CgkgICogZ3N0L21wZWcxdmlkZW9wYXJzZS9nc3RtcDF2aWRlb3BhcnNlLmM6CgkgICogZ3N0L21wZWcyc3ViL2dzdG1wZWcyc3VidC5jOgoJICAqIGdzdC9tcGVnYXVkaW9wYXJzZS9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICAqIGdzdC9tdWx0aWZpbGVzaW5rL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgKiBnc3Qvb3ZlcmxheS9nc3RvdmVybGF5LmM6CgkgICogZ3N0L3Bhc3N0aHJvdWdoL2dzdHBhc3N0aHJvdWdoLmM6CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9nc3RwbGF5b25kZW1hbmQuYzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgICogZ3N0L3J0anBlZy9nc3RydGpwZWdkZWMuYzoKCSAgKiBnc3QvcnRqcGVnL2dzdHJ0anBlZ2VuYy5jOgoJICAqIGdzdC9zbW9vdGgvZ3N0c21vb3RoLmM6CgkgICogZ3N0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5jOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICAqIGdzdC9zcGVlZC9nc3RzcGVlZC5jOgoJICAqIGdzdC9zdGVyZW8vZ3N0c3RlcmVvLmM6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guYzoKCSAgKiBnc3QvdHRhL2dzdHR0YWRlYy5jOiAoZ3N0X3R0YV9kZWNfYmFzZV9pbml0KToKCSAgKiBnc3QvdHRhL2dzdHR0YXBhcnNlLmM6IChnc3RfdHRhX3BhcnNlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L3ZiaWRlYy9nc3R2YmlkZWMuYzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJICAqIGdzdC92aWRlb2Ryb3AvZ3N0dmlkZW9kcm9wLmM6CgkgICogZ3N0L3ZpcnR1YWxkdWIvZ3N0eHNoYXJwZW4uYzoKCSAgKiBnc3QveGluZ2hlYWRlci9nc3R4aW5nbXV4LmM6IChnc3RfeGluZ19tdXhfYmFzZV9pbml0KToKCSAgKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICAqIHN5cy9jZHJvbS9nc3RjZHBsYXllci5jOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICAqIHN5cy9nbHNpbmsvZ2xpbWFnZXNpbmsuYzoKCSAgKiBzeXMvcWNhbS9nc3RxY2Ftc3JjLmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICAqIHN5cy92Y2QvdmNkc3JjLmM6IChnc3RfdmNkc3JjX2Jhc2VfaW5pdCk6CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuYzoKCSAgRGVmaW5lIEdzdEVsZW1lbnREZXRhaWxzIGFzIGNvbnN0IGFuZCBhbHNvIHN0YXRpYyAod2hlbiBkZWZpbmVkIGFzCgkgIGdsb2JhbCkKCjIwMDYtMDQtMDggMjE6NDg6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRF0gRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2FtcndiL2dzdGFtcndiZGVjLmM6IChnc3RfYW1yd2JkZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2FtcndiL2dzdGFtcndiZW5jLmM6IChnc3RfYW1yd2JlbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2FtcndiL2dzdGFtcndicGFyc2UuYzogKGdzdF9hbXJ3YnBhcnNlX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hcnRzL2dzdF9hcnRzLmM6IChnc3RfYXJ0c19jbGFzc19pbml0KToKCSAgKiBleHQvYXJ0c2QvZ3N0YXJ0c2RzaW5rLmM6IChnc3RfYXJ0c2RzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzaW5rLmM6IChnc3RfYWZzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzcmMuYzogKGdzdF9hZnNyY19jbGFzc19pbml0KToKCSAgKiBleHQvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgICogZXh0L2NkYXVkaW8vZ3N0Y2RhdWRpby5jOiAoZ3N0X2NkYXVkaW9fY2xhc3NfaW5pdCk6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOiAoZ3N0X2RmYnZpZGVvc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZGl2eC9nc3RkaXZ4ZGVjLmM6IChnc3RfZGl2eGRlY19jbGFzc19pbml0KToKCSAgKiBleHQvaGVybWVzL2dzdGhlcm1lc2NvbG9yc3BhY2UuYzoKCSAgKGdzdF9oZXJtZXNfY29sb3JzcGFjZV9jbGFzc19pbml0KToKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNmaWxlLmM6IChnc3RfaXZvcmJpc2ZpbGVfY2xhc3NfaW5pdCk6CgkgICogZXh0L2phY2svZ3N0amFjay5jOiAoZ3N0X2phY2tfY2xhc3NfaW5pdCk6CgkgICogZXh0L2phY2svZ3N0amFja2Jpbi5jOiAoZ3N0X2phY2tfYmluX2NsYXNzX2luaXQpOgoJICAqIGV4dC9sY3MvZ3N0Y29sb3JzcGFjZS5jOiAoZ3N0X2NvbG9yc3BhY2VfY2xhc3NfaW5pdCk6CgkgICogZXh0L2xpYmZhbWUvZ3N0bGliZmFtZS5jOiAoZ3N0X2ZhbWVlbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L211c2ljYnJhaW56L2dzdHRybS5jOiAoZ3N0X211c2ljYnJhaW56X2NsYXNzX2luaXQpOgoJICAqIGV4dC9uYXMvbmFzc2luay5jOiAoZ3N0X25hc3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L3Nob3V0L2dzdHNob3V0LmM6IChnc3RfaWNlY2FzdHNlbmRfY2xhc3NfaW5pdCk6CgkgICogZXh0L3NuYXBzaG90L2dzdHNuYXBzaG90LmM6IChnc3Rfc25hcHNob3RfY2xhc3NfaW5pdCk6CgkgICogZXh0L3NuZGZpbGUvZ3N0c2YuYzogKGdzdF9zZl9jbGFzc19pbml0KToKCSAgKiBleHQvc3dmZGVjL2dzdHN3ZmRlYy5jOiAoZ3N0X3N3ZmRlY2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9zd2ZkZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5kZWMuYzogKGdzdF90YXJraW5kZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5lbmMuYzogKGdzdF90YXJraW5lbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhc3RyaXAuYzogKGdzdF9jZHhhc3RyaXBfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2NoYXJ0L2dzdGNoYXJ0LmM6IChnc3RfY2hhcnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2NvbG9yc3BhY2UvZ3N0Y29sb3JzcGFjZS5jOiAoZ3N0X2NvbG9yc3BhY2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6IChnc3RfZGVpbnRlcmxhY2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmM6IChnc3RfZmVzdGl2YWxfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChnc3RfYnB3c2luY19jbGFzc19pbml0KToKCSAgKiBnc3QvZmlsdGVyL2dzdGlpci5jOiAoZ3N0X2lpcl9jbGFzc19pbml0KToKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogKGdzdF9scHdzaW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC9saWJyZmIvZ3N0cmZic3JjLmM6IChnc3RfcmZic3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9taXhtYXRyaXgvbWl4bWF0cml4LmM6IChnc3RfbWl4bWF0cml4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9tcGVnMXN5cy9nc3RtcGVnMXN5c3RlbWVuY29kZS5jOgoJICAoZ3N0X3N5c3RlbV9lbmNvZGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L21wZWcxdmlkZW9wYXJzZS9nc3RtcDF2aWRlb3BhcnNlLmM6CgkgIChnc3RfbXAxdmlkZW9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBnc3QvbXBlZzJzdWIvZ3N0bXBlZzJzdWJ0LmM6IChnc3RfbXBlZzJzdWJ0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9tcGVnYXVkaW9wYXJzZS9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICAoZ3N0X21wM3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9vdmVybGF5L2dzdG92ZXJsYXkuYzogKGdzdF9vdmVybGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9wYXNzdGhyb3VnaC9nc3RwYXNzdGhyb3VnaC5jOiAocGFzc3Rocm91Z2hfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9nc3RwbGF5b25kZW1hbmQuYzogKHBsYXlfb25fZGVtYW5kX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydGpwZWcvZ3N0cnRqcGVnZGVjLmM6IChnc3RfcnRqcGVnZGVjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydGpwZWcvZ3N0cnRqcGVnZW5jLmM6IChnc3RfcnRqcGVnZW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zbW9vdGgvZ3N0c21vb3RoLmM6IChnc3Rfc21vb3RoX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zbW9vdGh3YXZlL2dzdHNtb290aHdhdmUuYzogKGdzdF9zbW9vdGh3YXZlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zdGVyZW8vZ3N0c3RlcmVvLmM6IChnc3Rfc3RlcmVvX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6IChnc3Rfc3dpdGNoX2NsYXNzX2luaXQpOgoJICAqIGdzdC90dGEvZ3N0dHRhZGVjLmM6IChnc3RfdHRhX2RlY19jbGFzc19pbml0KToKCSAgKiBnc3QvdHRhL2dzdHR0YXBhcnNlLmM6IChnc3RfdHRhX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC92YmlkZWMvZ3N0dmJpZGVjLmM6IChnc3RfdmJpZGVjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6IChnc3RfdmlkZW9fY3JvcF9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlydHVhbGR1Yi9nc3R4c2hhcnBlbi5jOiAoZ3N0X3hzaGFycGVuX2NsYXNzX2luaXQpOgoJICAqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6IChnc3RfeTRtZW5jb2RlX2NsYXNzX2luaXQpOgoJICAqIHN5cy9jZHJvbS9nc3RjZHBsYXllci5jOiAoY2RwbGF5ZXJfY2xhc3NfaW5pdCk6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICAoZ3N0X2RpcmVjdHNvdW5kc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvZHhyMy9keHIzYXVkaW9zaW5rLmM6IChkeHIzYXVkaW9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy9keHIzL2R4cjNzcHVzaW5rLmM6IChkeHIzc3B1c2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvZHhyMy9keHIzdmlkZW9zaW5rLmM6IChkeHIzdmlkZW9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy9xY2FtL2dzdHFjYW1zcmMuYzogKGdzdF9xY2Ftc3JjX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuYzoKCSAgKGdzdF92NGwyX2NvbG9yX2JhbGFuY2VfY2hhbm5lbF9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzogKGdzdF92NGwyX3R1bmVyX2NoYW5uZWxfY2xhc3NfaW5pdCksCgkgIChnc3RfdjRsMl90dW5lcl9ub3JtX2NsYXNzX2luaXQpOgoJICAqIHN5cy94aW1hZ2VzcmMveGltYWdlc3JjLmM6IChnc3RfeGltYWdlc3JjX2NsYXNzX2luaXQpOgoJICBGaXggIzMzNzM2NSAoZ190eXBlX2NsYXNzX3JlZiA8LT4gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50KQoKMjAwNi0wNC0wOCAxOTowNDowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgW01PVkVEIEZST00gQkFEXSBnc3QvOiBGaXggbW9yZSBicm9rZW4gR09iamVjdCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2NvbG9yc3BhY2UvZ3N0Y29sb3JzcGFjZS5oOgoJICAqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJICAqIGdzdC9wYXNzdGhyb3VnaC9nc3RwYXNzdGhyb3VnaC5oOgoJICAqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmg6CgkgIEZpeCBtb3JlIGJyb2tlbiBHT2JqZWN0IG1hY3JvcwoKMjAwNi0wNC0wNiAxMTozNToyNiArMDAwMCAgakBib290bGFiLm9yZyA8akBib290bGFiLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRF0gVW5pZnkgdGhlIGxvbmcgZGVzY3JpcHRpb25zIGluIHRoZSBwbHVnaW4gZGV0YWlscyAoIzMzNzI2MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogal4gIDxqIGF0IGJvb3RsYWIgZG90IG9yZz4KCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JkZWMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JlbmMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JwYXJzZS5jOgoJICAqIGV4dC9hcnRzL2dzdF9hcnRzLmM6CgkgICogZXh0L2FydHNkL2dzdGFydHNkc2luay5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZwYXJzZS5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzaW5rLmM6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNyYy5jOgoJICAqIGV4dC9jZGF1ZGlvL2dzdGNkYXVkaW8uYzoKCSAgKiBleHQvZGlyZWN0ZmIvZGZidmlkZW9zaW5rLmM6CgkgICogZXh0L2RpdngvZ3N0ZGl2eGRlYy5jOgoJICAqIGV4dC9kaXZ4L2dzdGRpdnhlbmMuYzoKCSAgKiBleHQvZHRzL2dzdGR0c2RlYy5jOiAoZ3N0X2R0c2RlY19iYXNlX2luaXQpOgoJICAqIGV4dC9mYWFjL2dzdGZhYWMuYzogKGdzdF9mYWFjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2ZhYWQvZ3N0ZmFhZC5jOgoJICAqIGV4dC9nc20vZ3N0Z3NtZGVjLmM6CgkgICogZXh0L2dzbS9nc3Rnc21lbmMuYzoKCSAgKiBleHQvaGVybWVzL2dzdGhlcm1lc2NvbG9yc3BhY2UuYzoKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNmaWxlLmM6CgkgICogZXh0L2xjcy9nc3Rjb2xvcnNwYWNlLmM6CgkgICogZXh0L2xpYmZhbWUvZ3N0bGliZmFtZS5jOgoJICAqIGV4dC9saWJtbXMvZ3N0bW1zLmM6IChnc3RfbW1zX2Jhc2VfaW5pdCk6CgkgICogZXh0L211c2ljYnJhaW56L2dzdHRybS5jOiAoZ3N0X211c2ljYnJhaW56X2Jhc2VfaW5pdCk6CgkgICogZXh0L25hcy9uYXNzaW5rLmM6IChnc3RfbmFzc2lua19iYXNlX2luaXQpOgoJICAqIGV4dC9uZW9uL2dzdG5lb25odHRwc3JjLmM6CgkgICogZXh0L3BvbHlwL3BvbHlwc2luay5jOiAoZ3N0X3BvbHlwc2lua19iYXNlX2luaXQpOgoJICAqIGV4dC9zZGwvc2RsYXVkaW9zaW5rLmM6CgkgICogZXh0L3NkbC9zZGx2aWRlb3NpbmsuYzoKCSAgKiBleHQvc2hvdXQvZ3N0c2hvdXQuYzoKCSAgKiBleHQvc25hcHNob3QvZ3N0c25hcHNob3QuYzoKCSAgKiBleHQvc25kZmlsZS9nc3RzZi5jOgoJICAqIGV4dC90YXJraW4vZ3N0dGFya2luZGVjLmM6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5lbmMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWRlYy5jOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogKGdzdF93YXZwYWNrX2RlY19iYXNlX2luaXQpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfYmFzZV9pbml0KToKCSAgKiBleHQveHZpZC9nc3R4dmlkZGVjLmM6CgkgICogZXh0L3h2aWQvZ3N0eHZpZGVuYy5jOgoJICAqIGdzdC9jZHhhcGFyc2UvZ3N0Y2R4YXBhcnNlLmM6IChnc3RfY2R4YV9wYXJzZV9iYXNlX2luaXQpOgoJICAqIGdzdC9jZHhhcGFyc2UvZ3N0Y2R4YXN0cmlwLmM6IChnc3RfY2R4YXN0cmlwX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2NoYXJ0L2dzdGNoYXJ0LmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogKGdzdF9paXJfZXF1YWxpemVyX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RpaXIuYzoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzoKCSAgKiBnc3QvZnJlZXplL2dzdGZyZWV6ZS5jOgoJICAqIGdzdC9nYW1lcy9nc3RwdXp6bGUuYzogKGdzdF9wdXp6bGVfYmFzZV9pbml0KToKCSAgKiBnc3QvbWl4bWF0cml4L21peG1hdHJpeC5jOgoJICAqIGdzdC9tcGVnMXN5cy9nc3RtcGVnMXN5c3RlbWVuY29kZS5jOgoJICAqIGdzdC9tcGVnMXZpZGVvcGFyc2UvZ3N0bXAxdmlkZW9wYXJzZS5jOgoJICAqIGdzdC9tcGVnMnN1Yi9nc3RtcGVnMnN1YnQuYzoKCSAgKiBnc3QvbXBlZ2F1ZGlvcGFyc2UvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgKiBnc3QvbXVsdGlmaWxlc2luay9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgICogZ3N0L292ZXJsYXkvZ3N0b3ZlcmxheS5jOgoJICAqIGdzdC9wYXNzdGhyb3VnaC9nc3RwYXNzdGhyb3VnaC5jOgoJICAqIGdzdC9wbGF5b25kZW1hbmQvZ3N0cGxheW9uZGVtYW5kLmM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICAqIGdzdC9ydGpwZWcvZ3N0cnRqcGVnZGVjLmM6CgkgICogZ3N0L3J0anBlZy9nc3RydGpwZWdlbmMuYzoKCSAgKiBnc3Qvc21vb3RoL2dzdHNtb290aC5jOgoJICAqIGdzdC90dGEvZ3N0dHRhZGVjLmM6IChnc3RfdHRhX2RlY19iYXNlX2luaXQpOgoJICAqIGdzdC90dGEvZ3N0dHRhcGFyc2UuYzogKGdzdF90dGFfcGFyc2VfYmFzZV9pbml0KToKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJICAqIGdzdC92aWRlb2Ryb3AvZ3N0dmlkZW9kcm9wLmM6CgkgICogZ3N0L3ZpcnR1YWxkdWIvZ3N0eHNoYXJwZW4uYzoKCSAgKiBnc3QveGluZ2hlYWRlci9nc3R4aW5nbXV4LmM6IChnc3RfeGluZ19tdXhfYmFzZV9pbml0KToKCSAgKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBVbmlmeSB0aGUgbG9uZyBkZXNjcmlwdGlvbnMgaW4gdGhlIHBsdWdpbiBkZXRhaWxzICgjMzM3MjYzKS4KCjIwMDYtMDQtMDEgMTA6MDk6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgW01PVkVEIEZST00gQkFEXSByZXdvcmsgYnVpbGQ7IGFkZCB0cmFuc2xhdGlvbnMgZm9yIHY0bDIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJld29yayBidWlsZDsgYWRkIHRyYW5zbGF0aW9ucyBmb3IgdjRsMgoKMjAwNS0wOS0wNSAxNzoyMDoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdIEZpeCB1cCBhbGwgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdXAgYWxsIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb25zLgoKMjAwNS0wNy0wNSAxMDo1MTo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgW01PVkVEIEZST00gQkFEXSBXYXksIHdheSwgd2F5IHRvbyBtYW55IGZpbGVzOiBSZW1vdmUgY3JhY2sgY29tbWVudCBmcm9tIHRoZSAyMDAwIGVyYS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogV2F5LCB3YXksIHdheSB0b28gbWFueSBmaWxlczoKCSAgUmVtb3ZlIGNyYWNrIGNvbW1lbnQgZnJvbSB0aGUgMjAwMCBlcmEuCgoyMDA1LTAxLTE0IDE4OjM2OjQyICswMDAwICBTdMOpcGhhbmUgTG9ldWlsbGV0IDxnc3RyZWFtZXJAbGVyb3V0aWVyLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRF0gSSdtIGEgYmFkIGJveS4gdXNpbmcgLzEwMDEuIHRvIGZvcmNlIEMgdG8gZG8gZmxvYXQgZGl2aXNpb24gYW5kIG5vdCBpbnRlZ2VyIGRpdmlzaW9uIChhcyBpdCBkaWQgaW4gbXkgbGFzdCBjb21taXQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOgoJICAqIGdzdC9zdWJwYXJzZS9nc3RzdWJwYXJzZS5jOiAocGFyc2VfbWR2ZHN1Yik6CgkgICogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzogKGdzdF95NG1lbmNvZGVfc2lua2Nvbm5lY3QpOgoJICBJJ20gYSBiYWQgYm95LiB1c2luZyAvMTAwMS4gdG8gZm9yY2UgQyB0byBkbyBmbG9hdCBkaXZpc2lvbgoJICBhbmQgbm90IGludGVnZXIgZGl2aXNpb24gKGFzIGl0IGRpZCBpbiBteSBsYXN0IGNvbW1pdCkKCSAgVGhhbmtzIHRvIERhdmlkIEkuIExlaG4gZm9yIHBvaW50aW5nIHRoaXMgbWlzdGFrZS4KCjIwMDUtMDEtMTQgMTI6Mjc6MjIgKzAwMDAgIFN0w6lwaGFuZSBMb2V1aWxsZXQgPGdzdHJlYW1lckBsZXJvdXRpZXIubmV0PgoKCSAgW01PVkVEIEZST00gQkFEXSByZXBsYWNlIGZyYW1lcmF0ZSBhcHJveGltYXRpb25zIGJ5IHRoZWlyIHJlYWwgdmFsdWUgKDI0MDAwLzEwMDEsIDMwMDAwLzEwMDEsIDYwMDAwLzEwMDEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOgoJICAqIGV4dC9saWJmYW1lL2dzdGxpYmZhbWUuYzoKCSAgKiBnc3Qvc3VicGFyc2UvZ3N0c3VicGFyc2UuYzogKHBhcnNlX21kdmRzdWIpOgoJICAqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6IChnc3RfeTRtZW5jb2RlX3Npbmtjb25uZWN0KToKCSAgcmVwbGFjZSBmcmFtZXJhdGUgYXByb3hpbWF0aW9ucyBieSB0aGVpciByZWFsIHZhbHVlCgkgICgyNDAwMC8xMDAxLCAzMDAwMC8xMDAxLCA2MDAwMC8xMDAxKQoJICBGaW5pc2ggZml4aW5nIGJ1ZyAjMTY0MDQ5CgoyMDA0LTA3LTI3IDIxOjQxOjMwICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSogZ3N0L3k0bS95NG1lbmMudmNwcm9qOgoJICBbTU9WRUQgRlJPTSBCQURdIG1vcmUgd29ya2luZyBwbHVnaW5zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHdvcmtpbmcgcGx1Z2lucwoKMjAwNC0wNy0yNyAwOTo1NzozMyArMDAwMCAgU3RldmUgTGhvbW1lIDxzdGV2ZS5saG9tbWVAZnJlZS5mcj4KCgkqIGdzdC95NG0veTRtZW5jLnZjcHJvajoKCSAgW01PVkVEIEZST00gQkFEXSByZW5hbWUgR1N0cmVhbWVyLTAuOC5saWIgdG8gbGliZ3N0cmVhbWVyLmxpYgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVuYW1lIEdTdHJlYW1lci0wLjgubGliIHRvIGxpYmdzdHJlYW1lci5saWIKCjIwMDQtMDctMjcgMDk6NDg6NTEgKzAwMDAgIFN0ZXZlIExob21tZSA8c3RldmUubGhvbW1lQGZyZWUuZnI+CgoJKiBnc3QveTRtL3k0bWVuYy52Y3Byb2o6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gYXZvaWQgcHJvYmxlbXMgd2l0aCBtYXRoLmgsIGZpeCByZWxlYXNlIGRlcGVuZGFuY3kKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF2b2lkIHByb2JsZW1zIHdpdGggbWF0aC5oLCBmaXggcmVsZWFzZSBkZXBlbmRhbmN5CgoyMDA0LTA3LTI2IDEzOjIwOjExICswMDAwICBTdGV2ZSBMaG9tbWUgPHN0ZXZlLmxob21tZUBmcmVlLmZyPgoKCSogZ3N0L3k0bS95NG1lbmMudmNwcm9qOgoJICBbTU9WRUQgRlJPTSBCQURdIG1vcmUgcGx1Z2lucyBzdXBwb3J0ZWQgdW5kZXIgd2luZG93cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBwbHVnaW5zIHN1cHBvcnRlZCB1bmRlciB3aW5kb3dzCgoyMDA0LTA0LTAxIDExOjQ4OjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gYTUyZGVjOiAgIFVzZSBhIGRlYnVnIGNhdGVnb3J5LCBPdXRwdXQgdGltZXN0YW1wcyBjb3JyZWN0bHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGE1MmRlYzogICBVc2UgYSBkZWJ1ZyBjYXRlZ29yeSwgT3V0cHV0IHRpbWVzdGFtcHMgY29ycmVjdGx5CgkgIEVtaXQgdGFnIGluZm8sIEhhbmRsZSBldmVudHMsIHRlbGwgbGliYTUyZGVjIGFib3V0IGNwdQoJICBjYXBhYmlsaXRpZXMgc28gaXQgY2FuIHVzZSBNTVggZXRjLgoJICBkdmRlYzogICAgRml4IGEgY3Jhc2hlciBhY2Nlc3NpbmcgaW52YWxpZCBtZW1vcnkKCSAgZHZkbmF2c3JjOlNvbWUgc3VwcG9ydCBmb3IgYnl0ZS1mb3JtYXQgc2Vla2luZy4KCSAgU21hbGwgZml4ZXMgZm9yIHN0aWxsIGZyYW1lcyBhbmQgbWVudSBidXR0b24gb3ZlcmxheXMKCSAgbXBlZzJkZWM6IFVzZSBhIGRlYnVnIGNhdGVnb3J5LiBBZGp1c3QgdGhlIHJlcG9ydCBsZXZlbCBvZiBzZXZlcmFsIGl0ZW1zIHRvCgkgIExPRy4gQ2FsbCBtcGVnMl9jdXN0b21fZmJ1ZiB0byBtYXJrIG91ciBidWZmZXJzIGFzICdjdXN0b20gYnVmZmVycycKCSAgc28gaXQgZG9lc24ndCBsb3NlIHRoZSBHc3RCdWZmZXIgcG9pbnRlcgoJICBuYXZzZWVrOiAgQWRkIHRoZSBuYXZzZWVrIGRlYnVnIGVsZW1lbnQgZm9yIHNlZWtpbmcgYmFjayBhbmQgZm9ydGggaW4gYQoJICB2aWRlbyBzdHJlYW0gdXNpbmcgYXJyb3cga2V5cy4KCSAgbXBlZzJzdWJ0OlByZXR0eSBtdWNoIGEgY29tcGxldGUgcmV3cml0ZS4gTm93IGEgbG9vcGJhc2VkIGVsZW1lbnQuIE1heSBzdGlsbAoJICByZXF1aXJlIHdvcmsgdG8gcHJvcGVybHkgc3luY2hyb25pc2Ugc3VidGl0bGUgYnVmZmVycy4KCSAgbXBlZ2RlbXV4OgoJICBkdmRkZW11eDogRG9uJ3QgYXR0ZW1wdCB0byBjcmVhdGUgc3ViYnVmZmVycyBvZiBzaXplIDAKCSAgUmVkdWNlIGEgY291cGxlIG9mIGVycm9yIG91dHB1dHMgdG8gd2FybmluZ3MuCgkgIHk0bWVuY29kZTpPdXRwdXQgdGhlIHk0bSBmcmFtZSBoZWFkZXIgY29ycmVjdGx5CgoyMDA0LTAzLTE1IDE5OjMyOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gZG9uJ3QgbWl4IHRhYnMgYW5kIHNwYWNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgbWl4IHRhYnMgYW5kIHNwYWNlcwoKMjAwNC0wMy0xNSAxNjozMjo1NCArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQURdICouaDogUmV2ZXJ0IGluZGVudGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAqLmg6IFJldmVydCBpbmRlbnRpbmcKCjIwMDQtMDMtMTQgMjI6MzQ6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuaDoKCSAgW01PVkVEIEZST00gQkFEXSBnc3QtaW5kZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBnc3QtaW5kZW50CgoyMDA0LTAxLTEyIDAyOjAxOjUyICswMDAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRF0gZ3N0LWxpYnMvZ3N0L3ZpZGVvL3ZpZGVvLmg6IEZpeCBjYXBzIHRlbXBsYXRlIG5hbWVzIHRvIGJlIHVuZGVyc3RhbmRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNC0wMS0xMiAgQmVuamFtaW4gT3R0ZSAgPGluN3kxMThAcHVibGljLnVuaS1oYW1idXJnLmRlPgoJICAqIGdzdC1saWJzL2dzdC92aWRlby92aWRlby5oOgoJICBGaXggY2FwcyB0ZW1wbGF0ZSBuYW1lcyB0byBiZSB1bmRlcnN0YW5kYWJsZS4KCSAgUHJlZml4IGV2ZXJ5dGhpbmcgd2l0aCBHU1RfVklERU8uCgkgICogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJICAqIGV4dC9kaXZ4L2dzdGRpdnhkZWMuYzoKCSAgKiBleHQvZGl2eC9nc3RkaXZ4ZW5jLmM6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkgICogZXh0L2hlcm1lcy9nc3Rjb2xvcnNwYWNlLmM6IChnc3RfY29sb3JzcGFjZV9iYXNlX2luaXQpOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKHJhd19jYXBzX2ZhY3RvcnkpOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzogKHJhd19jYXBzX2ZhY3RvcnkpOgoJICAqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzogKHJhd19jYXBzX2ZhY3RvcnkpOgoJICAqIGV4dC9zbmFwc2hvdC9nc3RzbmFwc2hvdC5jOgoJICAqIGV4dC9zd2ZkZWMvZ3N0c3dmZGVjLmM6CgkgICogZXh0L3h2aWQvZ3N0eHZpZGRlYy5jOgoJICAqIGV4dC94dmlkL2dzdHh2aWRlbmMuYzoKCSAgKiBnc3QvY2hhcnQvZ3N0Y2hhcnQuYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RlZmZlY3R2LmM6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuYzogKGdzdF9mbHhkZWNfbG9vcCk6CgkgICogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJICAqIGdzdC9tZWRpYW4vZ3N0bWVkaWFuLmM6CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzogKGdzdF9tb25vc2NvcGVfaW5pdCksCgkgIChnc3RfbW9ub3Njb3BlX3NyY2Nvbm5lY3QpLCAoZ3N0X21vbm9zY29wZV9jaGFpbik6CgkgICogZ3N0L292ZXJsYXkvZ3N0b3ZlcmxheS5jOgoJICAqIGdzdC9zbW9vdGgvZ3N0c21vb3RoLmM6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkgICogZ3N0L3N5bmFlc3RoZXNpYS9nc3RzeW5hZXN0aGVzaWEuYzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJICAqIGdzdC92aWRlb2Ryb3AvZ3N0dmlkZW9kcm9wLmM6CgkgICogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgKiBzeXMvcWNhbS9nc3RxY2Ftc3JjLmM6CgkgICogc3lzL3Y0bC9nc3R2NGxzcmMuYzogKGdzdF92NGxzcmNfcGFsZXR0ZV90b19jYXBzKToKCSAgTWFrZSB0aGVtIHdvcmsgd2l0aCBuZXcgdmlkZW8uaCBmaWxlLgoJICAqIHN5cy94aW1hZ2UveGltYWdlc2luay5jOiAoZ3N0X3hpbWFnZXNpbmtfY2hhaW4pLAoJICAoZ3N0X3hpbWFnZXNpbmtfYnVmZmVyX2ZyZWUpLCAoZ3N0X3hpbWFnZXNpbmtfYnVmZmVyX2FsbG9jKToKCSAgKiBzeXMveHZpbWFnZS94dmltYWdlc2luay5jOiAoZ3N0X3h2aW1hZ2VzaW5rX2NoYWluKSwKCSAgKGdzdF94dmltYWdlc2lua19idWZmZXJfZnJlZSksIChnc3RfeHZpbWFnZXNpbmtfYnVmZmVyX2FsbG9jKToKCSAgTWFrZSBpdCB3b3JrIHdpdGggbmV3IGJ1ZmZlciBhbGxvY2F0aW9uIHN5c3RlbS4KCjIwMDMtMTItMjIgMDE6NDc6MDkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgW01PVkVEIEZST00gQkFEXSBNZXJnZSBDQVBTIGJyYW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVyZ2UgQ0FQUyBicmFuY2gKCjIwMDMtMTItMDQgMTA6Mzc6MzggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gcmVtb3ZlIGNvcHlyaWdodCBmaWVsZCBmcm9tIHBsdWdpbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb3B5cmlnaHQgZmllbGQgZnJvbSBwbHVnaW5zCgoyMDAzLTExLTE2IDIyOjAyOjIzICswMDAwICBMZWlmIEpvaG5zb24gPGxlaWZAYW1iaWVudC4yeS5uZXQ+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdICsgY2hlY2tpbmcgaW4gcGx1Z2luIGNhdGVnb3J5IGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICsgY2hlY2tpbmcgaW4gcGx1Z2luIGNhdGVnb3J5IGNoYW5nZXMKCjIwMDMtMTEtMDcgMTI6NDc6MDIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gUmVtb3ZlIGFsbCBjb25maWcuaCBpbmNsdWRlcyBmcm9tIGhlYWRlciBmaWxlcywgYWRkIGl0IHRvIGVhY2ggc291cmNlIGZpbGUgYW5kIHJlbW92ZSBkdXBsaWNhdGUgY29uZmlnLmggaW5jbHVkZXMgZnJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgYWxsIGNvbmZpZy5oIGluY2x1ZGVzIGZyb20gaGVhZGVyIGZpbGVzLCBhZGQgaXQgdG8gZWFjaCBzb3VyY2UgZmlsZSBhbmQgcmVtb3ZlIGR1cGxpY2F0ZSBjb25maWcuaCBpbmNsdWRlcyBmcm9tIHNldmVyYWwgc291cmNlIGZpbGVzCgoyMDAzLTExLTAyIDE5OjE3OjI3ICswMDAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gZml4IHRvIG5ldyBwbHVnaW4gc3lzdGVtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdG8gbmV3IHBsdWdpbiBzeXN0ZW0KCjIwMDMtMTAtMDggMTY6MDg6MTkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gL0dzdEJ1ZmZlci9Hc3REYXRhLyBpbiB0aGUgQVBJIHdoZXJlIHlvdSBjYW4gcGFzcyBldmVudHMuIEZpeCB0aGUgcGx1Z2lucyB0byBkZWFsIHdpdGggdGhhdC4gRml4ZXMgIzExMzQ4OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIC9Hc3RCdWZmZXIvR3N0RGF0YS8gaW4gdGhlIEFQSSB3aGVyZSB5b3UgY2FuIHBhc3MgZXZlbnRzLiBGaXggdGhlIHBsdWdpbnMgdG8gZGVhbCB3aXRoIHRoYXQuIEZpeGVzICMxMTM0ODguCgoyMDAzLTA4LTEwIDAwOjAxOjU4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgIFtNT1ZFRCBGUk9NIEJBRF0gUmVtb3ZlIHJlZHVuZGFudCBwbHVnaW5kaXIgZGVmaW5pdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIHJlZHVuZGFudCBwbHVnaW5kaXIgZGVmaW5pdGlvbgoKMjAwMy0wNy0wNiAyMDo0OTo1MiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuaDoKCSAgW01PVkVEIEZST00gQkFEXSBOZXcgbWltZXR5cGVzIGdvbmUgaW50byBlZmZlY3QgdG9kYXkgLSB0aGlzIGNvbW1pdCBjaGFuZ2VzIGFsbCBvbGQgbWltZXR5cGVzIG92ZXIgdG8gdGhlIG5ldyBtaW1ldHlwZXMgc3BlYyBhcyBkZXNjcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5ldyBtaW1ldHlwZXMgZ29uZSBpbnRvIGVmZmVjdCB0b2RheSAtIHRoaXMgY29tbWl0IGNoYW5nZXMgYWxsIG9sZCBtaW1ldHlwZXMgb3ZlciB0byB0aGUgbmV3IG1pbWV0eXBlcyBzcGVjIGFzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgY29tbWl0J3MgZG9jdW1lbnQuIE5vdGU6IHNvbWUgcGx1Z2lucyB3aWxsIGJyZWFrLCBzb21lIHBpcGVsaW5lcyB3aWxsIGJyZWFrLCBleHBlY3QgSEVBRCB0byBiZSBicm9rZW4gb3IgYXQgbGVhc3Qgbm90IDEwMCUgd29ya2luZyBmb3IgYSBmZXcgZGF5cywgYnV0IGRvbid0IGZvcmdldCB0byByZXBvcnQgYnVncwoKMjAwMy0wNi0yOSAxOTo0NjoxMyArMDAwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdIGNvbXBhdGliaWxpdHkgZml4IGZvciBuZXcgR1NUX0RFQlVHIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tcGF0aWJpbGl0eSBmaXggZm9yIG5ldyBHU1RfREVCVUcgc3R1ZmYuCgkgIEluY2x1ZGVzIGZpeGVzIGZvciBtaXNzaW5nIGluY2x1ZGVzIGZvciBjb25maWcuaCBhbmQgdW5pc3RkLmgKCSAgSSBvbmx5IGVuc3VyZWQgZm9yIHBsdWdpbnMgSSBjYW4gYnVpbGQgdGhhdCB0aGV5IHdvcmssIHNvIGlmIHNvbWUgb2YgdGhlbSBhcmUgc3RpbGwgYnJva2VuLCB5b3UgZ290dGEgZml4IHRoZW0geW91cnNlbHZlcyB1bmZvcnR1bmF0ZWx5LgoKMjAwMy0wMS0xMCAxMzozODozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdIFBhZENvbm5lY3QgLT4gUGFkTGluawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGFkQ29ubmVjdCAtPiBQYWRMaW5rCgoyMDAzLTAxLTEwIDEwOjIyOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gYW5vdGhlciBiYXRjaCBvZiBjb25uZWN0LT5saW5rIGZpeGVzIHBsZWFzZSBsZXQgbWUga25vdyBhYm91dCBpc3N1ZXMgYW5kIHBsZWFzZSByZWZyYWluIG9mIG1ha2luZyB0aGVtIHlvdXJzZWxmLCBzbyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGJhdGNoIG9mIGNvbm5lY3QtPmxpbmsgZml4ZXMKCSAgcGxlYXNlIGxldCBtZSBrbm93IGFib3V0IGlzc3VlcwoJICBhbmQgcGxlYXNlIHJlZnJhaW4gb2YgbWFraW5nIHRoZW0geW91cnNlbGYsIHNvIHRoYXQgSSBkb24ndCBzcGVuZCBkb3VibGUKCSAgdGhlIHRpbWUgcmVzb2x2aW5nIGNvbmZsaWN0cwoKMjAwMi0xMi0wOCAxNDo1MDoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QveTRtL01ha2VmaWxlLmFtOgoJICBbTU9WRUQgRlJPTSBCQURdIHBhcmFsbGVsIGluc3RhbGwgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhcmFsbGVsIGluc3RhbGwgZml4ZXMKCjIwMDItMDktMTggMTk6MDI6NTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gcGx1Z2lucyBwYXJ0IG9mIGxpY2Vuc2UgZmllbGQgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWdpbnMgcGFydCBvZiBsaWNlbnNlIGZpZWxkIHBhdGNoCgoyMDAyLTA2LTE3IDEwOjI5OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgIFtNT1ZFRCBGUk9NIEJBRF0gY29zbWV0aWMgY2hhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpYyBjaGFuZ2UKCjIwMDItMDUtMDMgMDk6NTk6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgW01PVkVEIEZST00gQkFEXSB2YXJpb3VzIG5hbWUgZml4ZXMgYW5kIHN1bmRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBuYW1lIGZpeGVzIGFuZCBzdW5kcnkKCjIwMDItMDQtMjAgMjE6NDI6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC95NG0vZ3N0eTRtZW5jb2RlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRF0gYSBoYWNrIHRvIHdvcmsgYXJvdW5kIGludGx0b29sJ3MgYnJva2VubmVzcyBhIGN1cnJlbnQgY2hlY2sgZm9yIG1wZWcyZGVjIGRldGFpbHMtPmtsYXNzIHJlb3JnYW5pemF0aW9ucyBhbiBlbGVtZW50IGJyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGEgaGFjayB0byB3b3JrIGFyb3VuZCBpbnRsdG9vbCdzIGJyb2tlbm5lc3MKCSAgKiBhIGN1cnJlbnQgY2hlY2sgZm9yIG1wZWcyZGVjCgkgICogZGV0YWlscy0+a2xhc3MgcmVvcmdhbml6YXRpb25zCgkgICogYW4gZWxlbWVudCBicm93c2VyIHRoYXQgdXNlcyBkZXRhaWxzLT5rbGFzcwoJICAqIHNlcGFyYXRlZCBjZHhhIHBhcnNlIG91dCBmcm9tIHRoZSBhdmkgZGlyZWN0b3J5CgoyMDAyLTA0LTExIDIwOjQyOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdIEdzdFBhZFRlbXBsYXRlIDwtPiBnc3RfcGFkX3RlbXBsYXRlIDwtPiBHU1RfUEFEX1RFTVBMQVRFIHNhbWUgd2l0aCAqZmFjdG9yeSBhbmQgdHlwZWZpbmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHc3RQYWRUZW1wbGF0ZSA8LT4gZ3N0X3BhZF90ZW1wbGF0ZSA8LT4gR1NUX1BBRF9URU1QTEFURQoJICBzYW1lIHdpdGggKmZhY3RvcnkgYW5kIHR5cGVmaW5kLgoJICBhbHNvLCBzb21lIC1XZXJyb3IgZml4ZXMuCgoyMDAyLTAzLTMwIDE3OjA2OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgW01PVkVEIEZST00gQkFEXSBDaGFuZ2VkIHRvIHRoZSBuZXcgcHJvcHMgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VkIHRvIHRoZSBuZXcgcHJvcHMgQVBJCgkgIE90aGVyIHNtYWxsIHR1ZmYuCgoyMDAyLTAzLTIwIDIxOjQ1OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5oOgoJICBbTU9WRUQgRlJPTSBCQURdIHMvR25vbWUtU3RyZWFtZXIvR1N0cmVhbWVyLwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcy9Hbm9tZS1TdHJlYW1lci9HU3RyZWFtZXIvCgoyMDAyLTAzLTE5IDA0OjEwOjA2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QveTRtL01ha2VmaWxlLmFtOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5oOgoJICBbTU9WRUQgRlJPTSBCQURdIHJlbW92YWwgb2YgLy8tc3R5bGUgY29tbWVudHMgZG9uJ3QgbGluayBwbHVnaW5zIHRvIGNvcmUgbGlicyAtLSB0aGUgdmVyc2lvbmluZyBpcyBkb25lIGludGVybmFsbHkgdG8gdGhlIHBsdWdpbnMgd2l0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiByZW1vdmFsIG9mIC8vLXN0eWxlIGNvbW1lbnRzCgkgICogZG9uJ3QgbGluayBwbHVnaW5zIHRvIGNvcmUgbGlicyAtLSB0aGUgdmVyc2lvbmluZyBpcyBkb25lIGludGVybmFsbHkgdG8gdGhlIHBsdWdpbnMgd2l0aCB0aGUgcGx1Z2luX2luZm8gc3RydWN0LAoJICBhbmQgc3ltYm9sIHJlc29sdXRpb24gaXMgbGF6eSwgc28gd2UgY2FuIGFsd2F5cyBrbm93IGlmIGEgcGx1Z2luIGNhbiBiZSBsb2FkZWQgYnkgdGhlIHBsdWdpbl9pbmZvIGRhdGEuIGluIHRoZW9yeS4KCjIwMDItMDMtMTkgMDE6Mzk6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgIFtNT1ZFRCBGUk9NIEJBRF0gcy9AR1NUX1BMVUdJTl9MREZMQUdTQC8kKEdTVF9QTFVHSU5fTERGTEFHUykvIEAtc3Vic3RpdHVlZCB2YXJpYWJsZXMgdmFyaWFibGVzIGFyZSBkZWZpbmVkIGFzIG1ha2UgdmFyaWFibGVzIGF1dG9tYWdpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzL0BHU1RfUExVR0lOX0xERkxBR1NALyQoR1NUX1BMVUdJTl9MREZMQUdTKS8KCSAgQC1zdWJzdGl0dWVkIHZhcmlhYmxlcyB2YXJpYWJsZXMgYXJlIGRlZmluZWQgYXMgbWFrZSB2YXJpYWJsZXMgYXV0b21hZ2ljYWxseSwKCSAgYW5kIHRoaXMgZ2l2ZXMgdGhlIHVzZXIgdGhlIGZyZWVkb20gdG8gc2F5IG1ha2UgR1NUX1BMVUdJTl9MREZMQUdTPS1teWZsYWcKCjIwMDItMDEtMTggMTE6Mzc6MTkgKzAwMDAgIFdyb2JlbGwgPHdyb2JlbGxAaXRlLnBsPgoKCSogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSAgW01PVkVEIEZST00gQkFEXSAtIHBsdWdpbnMgYXJlIGJ1aWx0IHdpdGhvdXQgdmVyc2lvbmluZyBpbmZvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAtIHBsdWdpbnMgYXJlIGJ1aWx0IHdpdGhvdXQgdmVyc2lvbmluZyBpbmZvCgoyMDAyLTAxLTEzIDIyOjI3OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgW01PVkVEIEZST00gQkFEXSBCcmluZyB0aGUgcGx1Z2lucyBpbiBzeW5jIHdpdGggdGhlIG5ldyBjb3JlIGNhcHNuZWdvIHN5c3RlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJyaW5nIHRoZSBwbHVnaW5zIGluIHN5bmMgd2l0aCB0aGUgbmV3IGNvcmUgY2Fwc25lZ28gc3lzdGVtLgoJICBBZGRlZCBzb21lIGZlYXR1cmVzLCBlbmhhbmNlbWVudHMuLi4KCjIwMDItMDEtMTIgMDM6MzQ6MjcgKzAwMDAgIERhdmlkIEkuIExlaG4gPGRsZWhuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgIFtNT1ZFRCBGUk9NIEJBRF0gcy9maWx0ZXIvcGx1Z2luLyBsaW5rIHBsdWdpbnMgdG8gR1NUX0xJQlMgcmVhcnJhbmdlIHJ1bGVzIHRvIGEgY29tbW9uIGZvcm1hdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzL2ZpbHRlci9wbHVnaW4vCgkgICogbGluayBwbHVnaW5zIHRvIEdTVF9MSUJTCgkgICogcmVhcnJhbmdlIHJ1bGVzIHRvIGEgY29tbW9uIGZvcm1hdAoKMjAwMS0xMi0yMyAyMDoyMToyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QveTRtL01ha2VmaWxlLmFtOgoJKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICBbTU9WRUQgRlJPTSBCQURdIG1vcmUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZml4ZXMKCjIwMDEtMTItMjMgMTM6MTc6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3k0bS9NYWtlZmlsZS5hbToKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuaDoKCSAgW01PVkVEIEZST00gQkFEXSBCQkIgYXNrZWQgbWUgdG8gcmVuYW1lIGxhdiB0byB5NG0gY2FuIHNvbWVvbmUgd2hvIGtub3dzIHRoZSBwbHVnaW4gZG8gdGhpcyBpbiB0aGUgc291cmNlIGFzIHdlbGwgPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQkJCIGFza2VkIG1lIHRvIHJlbmFtZSBsYXYgdG8geTRtCgkgIGNhbiBzb21lb25lIHdobyBrbm93cyB0aGUgcGx1Z2luIGRvIHRoaXMgaW4gdGhlIHNvdXJjZSBhcyB3ZWxsID8KCjIwMDktMDUtMTUgMTg6MTc6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBhZGQgTWFrZXZhcnMgbWFnaWMgc28gd2UgZG9uJ3QgZ2V0IGxpbmUgbnVtYmVycyBpbiAqLnBvIGZpbGVzCgkgIFRoaXMgYXZvaWRzIHRoZSBudW1iZXIgb25lIHJlYXNvbiBmb3IgbG9jYWwgbW9kaWZpY2F0aW9ucyBpbiAqLnBvCgkgIGZpbGVzIGFuZCBhbmQgbWFrZXMgdGhpbmdzIGxlc3MgYW5ub3lpbmcgd2hlbiB3b3JraW5nIHdpdGggZ2l0IChvcgoJICBhbnkgb3RoZXIgVkNTIGZvciB0aGF0IG1hdHRlcikuCgoyMDA5LTA1LTE1IDE3OjExOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9hdWRpb3Rlc3RzcmMuZmxhYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzZGVtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc291cGh0dHBzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSogdGVzdHMvY2hlY2svdGVzdC1jZXJ0LnBlbToKCSogdGVzdHMvY2hlY2svdGVzdC1rZXkucGVtOgoJKiB0ZXN0cy9maWxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZmlsZXMvYXVkaW90ZXN0c3JjLmZsYWM6CgkqIHRlc3RzL2ZpbGVzL3Rlc3QtY2VydC5wZW06CgkqIHRlc3RzL2ZpbGVzL3Rlc3Qta2V5LnBlbToKCSAgY2hlY2tzOiBtb3ZlIGZpbGVzIHJlcXVpcmVkIGJ5IHVuaXQgdGVzdHMgaW50byB0ZXN0cy9maWxlcyBhbmQgbWFrZSBzdXJlIHRoZXkncmUgZGlzdGVkCgkgIE1vdmUgdW5pdCB0ZXN0IGRhdGEgaW50byB0aGUgZGlyZWN0b3J5IHdoZXJlIGl0IGJlbG9uZ3MgYW5kIG1ha2UgaW4gcGFydGljdWxhcgoJICB0aGUgZmxhY2RlYyB1bml0IHRlc3QgY2QgaW50byB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIHRlc3QgZmlsZXMgaW5zdGVhZCBvZiBtYWtpbmcKCSAgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgaW4gdGhhdCB1bml0IHRlc3QuIEFzIGEgc2lkZSBlZmZlY3QKCSAgb2YgbW92bmcgdGhvc2UgZmlsZXMsIHRoZXJlJ3Mgb25seSBvbmUgRVhUUkFfRElTVCBpbiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbSBub3csCgkgIHdoaWNoIGlzIGxpa2VseSB0byB3b3JrIGJldHRlciB0aGFuIGhhdmluZyB0d28uIEhvcGVmdWxseSBmaXhlcyAjNTgyNzUzLgoKMjAwOS0wNS0xNCAyMTo0MzoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UvZ3N0ZGVpbnRlcmxhY2UuYzoKCSAgZGVpbnRlcmxhY2U6IElmIHRoZSB1cHN0cmVhbSBtYXggbGF0ZW5jeSBpcyB1bmJvdW5kIHJldHVybiB1bmJvdW5kIG1heCBsYXRlbmN5CgkgIEZpeGVzIGJ1ZyAjNTgyNjYxLgoKMjAwOS0wNS0xNSAwODo0NDozOSArMDIwMCAgSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwQHVjYy5ndS51d2EuZWR1LmF1PgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVydHJhY2suYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmdzCgkgIEZpeGVzIGJ1ZyAjNTgyNzE1LgoKMjAwOS0wNS0xMyAyMjo0Njo0NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBSZWNvdmVyZWQgZGVidWd1dGlscyBsaW5lIGFjY2lkZW50YWxseSByZW1vdmVkIGluIGRlaW50ZXJsYWNlMiBtb3ZlLgoKMjAwOS0wNS0xMyAxMDo0Njo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWludGVybGFjZS54bWw6CgkqIGdzdC9kZWludGVybGFjZS9NYWtlZmlsZS5hbToKCSogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5oOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYXNtOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL2dyZWVkeWguYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9ncmVlZHlobWFjcm9zLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvbGluZWFyLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvbGluZWFyYmxlbmQuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9tbXguaDoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS9wbHVnaW5zLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvc2NhbGVyYm9iLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvc3NlLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcDBBLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BCb3R0b20uaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcEVkZ2VBLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BFZGdlQTguaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEEuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEEyLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BPZGRBNi5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQUguaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEFIMi5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVG9wLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BWQS5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVkFILmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS90b21zbW9jb21wL1N0cmFuZ2VCb2IuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbC5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsMi5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC9XaWVyZEJvYi5pbmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdG9tc21vY29tcC90b21zbW9jb21wbWFjcm9zLmg6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvdmZpci5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3dlYXZlLmM6CgkqIGdzdC9kZWludGVybGFjZS90dnRpbWUvd2VhdmViZmYuYzoKCSogZ3N0L2RlaW50ZXJsYWNlL3R2dGltZS93ZWF2ZXRmZi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UvdHZ0aW1lL3g4Ni02NF9tYWNyb3MuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHkuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5hc206CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWguYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aG1hY3Jvcy5oOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9saW5lYXIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvbGluZWFyYmxlbmQuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvbW14Lmg6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3BsdWdpbnMuaDoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvc2NhbGVyYm9iLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NzZS5oOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcDBBLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wQm90dG9tLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wRWRnZUEuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BFZGdlQTguaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BPZGRBLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQTIuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BPZGRBNi5pbmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEFILmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQUgyLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVG9wLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVkEuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BWQUguaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1N0cmFuZ2VCb2IuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwuaW5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwyLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9XaWVyZEJvYi5pbmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvdG9tc21vY29tcG1hY3Jvcy5oOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS92ZmlyLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3dlYXZlLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3dlYXZlYmZmLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3dlYXZldGZmLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3g4Ni02NF9tYWNyb3MuaW5jOgoJICBNb3ZlZCAnZGVpbnRlcmxhY2UyJyBmcm9tIC1iYWQgdG8gLWdvb2QKCSAgQW5kIHJlbmFtZSBpdCB0byBkZWludGVybGFjZS4KCjIwMDktMDUtMDggMTU6Mzk6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgW01PVkVEIEZST00gQkFEIDU2LzU2XSBkZWludGVybGFjZTI6IEFkZCBhIGRpc2FibGVkIG1vZGUgZm9yIHBhc3N0aHJvdWdoIG9wZXJhdGlvbgoJICBBbHNvIGFsbG93IHRvIGNoYW5nZSB0aGUgbW9kZSBpbiBQQVVTRUQgYW5kIFBMQVlJTkcgYnkgdXBkYXRpbmcKCSAgdGhlIGNhcHMgaWYgbmVjZXNzYXJ5LgoKMjAwOS0wNC0yMiAxOTo0MzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJICBbTU9WRUQgRlJPTSBCQUQgNTUvNTZdIGRlaW50ZXJsYWNlMjogQWRkIGRvY3VtZW50YXRpb24gYW5kIGludGVncmF0ZSBpbnRvIHRoZSBidWlsZCBzeXN0ZW0KCjIwMDktMDQtMTkgMTc6MTg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgW01PVkVEIEZST00gQkFEIDU0LzU2XSBkZWludGVybGFjZTI6IE1ha2UgaXQgcG9zc2libGUgdG8gc2VsZWN0IGludGVybGFjaW5nIGF1dG9kZXRlY3Rpb24gb3IgdG8gZW5mb3JlIGRlaW50ZXJsYWNpbmcKCSAgRm9yIHRoaXMgYWRkIGEgIm1vZGUiIHByb3BlcnR5IHRoYXQgZGVmYXVsdHMgdG8gImludGVybGFjZWQiIGZvciBub3cgYXMKCSAgbW9zdCBkZWNvZGVycy9kZW11eGVycyBkb24ndCBwcm9wZXJseSBzZXQgdGhlICJpbnRlcmxhY2VkIiBmaWVsZCBvbiB0aGUKCSAgY2FwcyB5ZXQuCgkgIElmIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvICJhdXRvIiB0aGUgZWxlbWVudCB3aWxsIHdvcmsgaW4gcGFzc3Rocm91Z2gKCSAgbW9kZSB1bmxlc3MgdGhlIGNhcHMgY29udGFpbiB0aGUgImludGVybGFjZWQiIGZpZWxkLgoKMjAwOS0wNC0xNyAxNTozOTo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICBbTU9WRUQgRlJPTSBCQUQgNTMvNTZdIGRlaW50ZXJsYWNlMjogVXNlIEdTVF8oREVCVUd8V0FSTklOR3xFUlJPUilfT0JKRUNUIGluc3RlYWQgb2YgdGhlIG5vbi1PQkpFQ1Qgb25lcwoKMjAwOS0wNC0xNyAxNTozOTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICBbTU9WRUQgRlJPTSBCQUQgNTIvNTZdIGRlaW50ZXJsYWNlMjogUmVzZXQgaGlzdG9yeSBpZiBESVNDT05UIGlzIHNldCBvbiB0aGUgaW5jb21pbmcgYnVmZmVyCgoyMDA5LTA0LTE3IDE1OjM5OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1MS81Nl0gZGVpbnRlcmxhY2UyOiBGaXggdGltZXN0YW1wcyBmb3IgYnVmZmVycyB3aXRoIFJGRiBmbGFnIHNldAoKMjAwOS0wNC0xNiAxNzo0MTozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHkuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9zY2FsZXJib2IuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsLmluYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvd2VhdmUuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvd2VhdmViZmYuYzoKCSogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvd2VhdmV0ZmYuYzoKCSAgW01PVkVEIEZST00gQkFEIDUwLzU2XSBkZWludGVybGFjZTI6IFJlbmFtZSBsaW5lX2xlbmd0aCB0byByb3dfc3RyaWRlIGFuZCByZW1vdmUgb3V0cHV0X3N0cmlkZQoKMjAwOS0wNC0xNiAxNTo1MjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICBbTU9WRUQgRlJPTSBCQUQgNDkvNTZdIGRlaW50ZXJsYWNlMjogSW1wbGVtZW50IHN1cHBvcnQgZm9yIFJGRiBhbmQgT05FRklFTEQgYnVmZmVyIGZsYWdzCgoyMDA5LTA0LTE1IDE1OjQ2OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmg6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOgoJKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmM6CgkqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbC5pbmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA0OC81Nl0gZGVpbnRlcmxhY2UyOiBNb3ZlIG91dHB1dCBidWZmZXIgZnJvbSB0aGUgaW5zdGFuY2Ugc3RydWN0IHRvIGEgZnVuY3Rpb24gcGFyYW1ldGVyCgoyMDA5LTA0LTE1IDE1OjMzOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCA0Ny81Nl0gZGVpbnRlcmxhY2UyOiBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBhdXRvbWF0aWMgZGV0ZWN0aW9uIG9mIHRoZSBmaWVsZCBvcmRlcgoKMjAwOS0wNC0xNSAxNDo0Nzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICBbTU9WRUQgRlJPTSBCQUQgNDYvNTZdIGRlaW50ZXJsYWNlMjogQWRkIHN1cHBvcnQgZm9yIFlWWVUgY29sb3JzcGFjZQoJICBUaGlzIGlzIHRoZSBzYW1lIGFzIFlVWTIgd2l0aCBqdXN0IENyIGFuZCBDYiBzd2FwcGVkLiBBcwoJICB3ZSBkb24ndCBtYWtlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZW0gd2hlbiBkZWludGVybGFjaW5nCgkgIHRoaXMgd29ya3MuCgoyMDA4LTExLTA2IDE0OjA1OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgW01PVkVEIEZST00gQkFEIDQ1LzU2XSBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOiBCcmluZyBwcm9wZXJ0aWVzIGludG8gdGhpcyBjZW50dXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlMl9jbGFzc19pbml0KSwgKGdzdF9kZWludGVybGFjZTJfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldF9wcm9wZXJ0eSksIChnc3RfZGVpbnRlcmxhY2UyX2dldF9wcm9wZXJ0eSk6CgkgIEJyaW5nIHByb3BlcnRpZXMgaW50byB0aGlzIGNlbnR1cnkuCgoyMDA4LTExLTA0IDEyOjQyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDQvNTZdIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIC1iYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbHNhc3BkaWYvTWFrZWZpbGUuYW06CgkgICogZXh0L2FtcndiL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcGV4c2luay9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXJ0cy9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXJ0c2QvTWFrZWZpbGUuYW06CgkgICogZXh0L2F1ZGlvZmlsZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXVkaW9yZXNhbXBsZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvYnoyL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jZGF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jZWx0L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kYzEzOTQvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpcmFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9kaXJlY3RmYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvZGl2eC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZHRzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mYWFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mYWFkL01ha2VmaWxlLmFtOgoJICAqIGV4dC9nc20vTWFrZWZpbGUuYW06CgkgICogZXh0L2hlcm1lcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvaXZvcmJpcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvanAyay9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9sY3MvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYmZhbWUvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYm1tcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogZXh0L21wZWcyZW5jL01ha2VmaWxlLmFtOgoJICAqIGV4dC9tcGxleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXVzZXBhY2svTWFrZWZpbGUuYW06CgkgICogZXh0L211c2ljYnJhaW56L01ha2VmaWxlLmFtOgoJICAqIGV4dC9teXRodHYvTWFrZWZpbGUuYW06CgkgICogZXh0L25hcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbmVvbi9NYWtlZmlsZS5hbToKCSAgKiBleHQvb2ZhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9wb2x5cC9NYWtlZmlsZS5hbToKCSAgKiBleHQvcmVzaW5kdmQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NkbC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2hvdXQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NuYXBzaG90L01ha2VmaWxlLmFtOgoJICAqIGV4dC9zbmRmaWxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zb3VuZHRvdWNoL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zcGMvTWFrZWZpbGUuYW06CgkgICogZXh0L3N3ZmRlYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFya2luL01ha2VmaWxlLmFtOgoJICAqIGV4dC90aGVvcmEvTWFrZWZpbGUuYW06CgkgICogZXh0L3RpbWlkaXR5L01ha2VmaWxlLmFtOgoJICAqIGV4dC90d29sYW1lL01ha2VmaWxlLmFtOgoJICAqIGV4dC94MjY0L01ha2VmaWxlLmFtOgoJICAqIGV4dC94aW5lL01ha2VmaWxlLmFtOgoJICAqIGV4dC94dmlkL01ha2VmaWxlLmFtOgoJICAqIGdzdC1saWJzL2dzdC9hcHAvTWFrZWZpbGUuYW06CgkgICogZ3N0LWxpYnMvZ3N0L2RzaG93L01ha2VmaWxlLmFtOgoJICAqIGdzdC9haWZmcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FwcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9idWZmZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2JheWVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jZHhhcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoYXJ0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9jb2xvcnNwYWNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kY2NwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kdmRzcHUvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Zlc3RpdmFsL01ha2VmaWxlLmFtOgoJICAqIGdzdC9maWx0ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZsYWNwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmx2L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nYW1lcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaDI2NHBhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9saWJyZmIvTWFrZWZpbGUuYW06CgkgICogZ3N0L21peG1hdHJpeC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbW9kcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZzFzeXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWc0dmlkZW9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZ2RlbXV4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVndHNtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWd2aWRlb3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L25zZi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbnV2ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L292ZXJsYXkvTWFrZWZpbGUuYW06CgkgICogZ3N0L3Bhc3N0aHJvdWdoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wY2FwcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmF3cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlYWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0anBlZy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwbWFuYWdlci9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2NhbGV0ZW1wby9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2RwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zZWxlY3Rvci9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc21vb3RoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbW9vdGh3YXZlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVlZC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3BlZXhyZXNhbXBsZS9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3RlcmVvL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zdWJlbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3R0YS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdmJpZGVjL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2Ryb3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvc2lnbmFsL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aXJ0dWFsZHViL01ha2VmaWxlLmFtOgoJICAqIGdzdC92bW5jL01ha2VmaWxlLmFtOgoJICAqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgICogc3lzL2FjbWVuYy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvY2Ryb20vTWFrZWZpbGUuYW06CgkgICogc3lzL2RzaG93ZGVjd3JhcHBlci9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHNob3dzcmN3cmFwcGVyL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kdmIvTWFrZWZpbGUuYW06CgkgICogc3lzL2R4cjMvTWFrZWZpbGUuYW06CgkgICogc3lzL2ZiZGV2L01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3M0L01ha2VmaWxlLmFtOgoJICAqIHN5cy9xY2FtL01ha2VmaWxlLmFtOgoJICAqIHN5cy9xdHdyYXBwZXIvTWFrZWZpbGUuYW06CgkgICogc3lzL3ZjZC9NYWtlZmlsZS5hbToKCSAgKiBzeXMvd2luaW5ldC9NYWtlZmlsZS5hbToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIC1iYWQuCgoyMDA4LTEwLTA5IDE5OjM4OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDMvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAuYzogRml4IHVudXNlZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nIHdoZW4gbm90IGJ1aWxkaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAuYzoKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfdG9tc21vY29tcF9jbGFzc19pbml0KToKCSAgRml4IHVudXNlZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nIHdoZW4gbm90IGJ1aWxkaW5nCgkgIFg4NiBhc3NlbWJseS4KCjIwMDgtMDgtMjggMTc6MTY6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgW01PVkVEIEZST00gQkFEIDQyLzU2XSBnc3QvZGNjcC86IEZpeCBjb21waWxhdGlvbiBvbiBTb2xhcmlzIGJ5IGluY2x1ZGluZyBmaWxpby5oIGFzIG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RjY3AvZ3N0ZGNjcC5jOgoJICAqIGdzdC9kY2NwL2dzdGRjY3BjbGllbnRzcmMuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIFNvbGFyaXMgYnkgaW5jbHVkaW5nIGZpbGlvLmggYXMgbmVlZGVkLgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbC5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsMi5pbmM6CgkgIEZpeCBjb21waWxhdGlvbiB3aXRoIEZvcnRlIC0gYXBwYXJlbnRseSBpdCBoYXRlcyBjb25jYXRlbmF0aW5nIGEKCSAgbWFjcm8gYXJndW1lbnQgdGhhdCBzdGFydHMgd2l0aCBhbiB1bmRlcnNjb3JlPz8KCjIwMDgtMDgtMjYgMTI6MzM6MTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCA0MS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC86IFVucm9sbCB0aGUgbG9vcCB0byBoYW5kbGUgdHdvIGJ5dGVzIGF0IG9uY2UuIFRoaXMgc2hvdWxkIGdpdmUgYSBzbWFsbCBzcGVlZHVwIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcEJvdHRvbS5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVG9wLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1N0cmFuZ2VCb2IuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvV2llcmRCb2IuaW5jOgoJICBVbnJvbGwgdGhlIGxvb3AgdG8gaGFuZGxlIHR3byBieXRlcyBhdCBvbmNlLiBUaGlzIHNob3VsZCBnaXZlCgkgIGEgc21hbGwgc3BlZWR1cCBhbmQgbWFrZXMgaXQgcG9zc2libGUgdG8gaGFuZGxlIGNocm9tYSBhbmQgbHVtYQoJICBkaWZmZXJlbnQgd2hpY2ggaXMgbmVlZGVkIGxhdGVyLgoKMjAwOC0wOC0yNSAxNDozNzo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDQwLzU2XSBnc3QvZGVpbnRlcmxhY2UyLzogRmlyc3QgcGFydCBvZiB0aGUgQyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdG9tc21vY29tcCBkZWludGVybGFjaW5nIGFsZ29yaXRobS4gVGhpcyBvbmx5IHN1cHBvcnRzIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmM6CgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3RvbXNtb2NvbXBfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wQm90dG9tLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BUb3AuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU3RyYW5nZUJvYi5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwyLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1dpZXJkQm9iLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL3RvbXNtb2NvbXBtYWNyb3MuaDoKCSAgRmlyc3QgcGFydCBvZiB0aGUgQyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdG9tc21vY29tcCBkZWludGVybGFjaW5nCgkgIGFsZ29yaXRobS4gVGhpcyBvbmx5IHN1cHBvcnRzIHNlYXJjaC1lZmZvcnQ9MCBjdXJyZW50bHksIGlzIHBhaW5mdWxseQoJICBzbG93IGFuZCBuZWVkcyBzb21lIGNsZWFudXAgbGF0ZXIgd2hlbiBhbGwgc2VhcmNoLWVmZm9ydCBzZXR0aW5ncwoJICBhcmUgaW1wbGVtZW50ZWQgaW4gQy4KCjIwMDgtMDgtMDIgMTg6NDg6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzOS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi86IFVzZSBvaWxfbWVtY3B5KCkgaW5zdGVhZCBvZiBtZW1jcHkoKSBhcyBpdCdzIGZhc3RlciBmb3IgdGhlIHNpemVzIHRoYXQgYXJlIHVzdWFsbHkgdXNlZCBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlX3NpbXBsZV9tZXRob2RfaW50ZXJwb2xhdGVfc2NhbmxpbmUpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX3NpbXBsZV9tZXRob2RfY29weV9zY2FubGluZSksCgkgIChnc3RfZGVpbnRlcmxhY2Vfc2ltcGxlX21ldGhvZF9kZWludGVybGFjZV9mcmFtZSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6IChkZWludGVybGFjZV9mcmFtZV9kaV9ncmVlZHkpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWguYzoKCSAgKGRlaW50ZXJsYWNlX2ZyYW1lX2RpX2dyZWVkeWgpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJICAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfc2NhbGVyX2JvYik6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC5jOiAoRmllbGRjb3B5KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS93ZWF2ZS5jOiAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfd2VhdmUpLAoJICAoY29weV9zY2FubGluZSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvd2VhdmViZmYuYzogKGRlaW50ZXJsYWNlX3NjYW5saW5lX3dlYXZlKSwKCSAgKGNvcHlfc2NhbmxpbmUpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3dlYXZldGZmLmM6IChkZWludGVybGFjZV9zY2FubGluZV93ZWF2ZSksCgkgIChjb3B5X3NjYW5saW5lKToKCSAgVXNlIG9pbF9tZW1jcHkoKSBpbnN0ZWFkIG9mIG1lbWNweSgpIGFzIGl0J3MgZmFzdGVyIGZvciB0aGUgc2l6ZXMgdGhhdAoJICBhcmUgdXN1YWxseSB1c2VkIGhlcmUuCgoyMDA4LTA4LTAyIDE4OjM2OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzgvNTZdIGdzdC9kZWludGVybGFjZTIvOiBBZGQgdGhlIHJlbWFpbmluZyB0dnRpbWUgZGVpbnRlcmxhY2luZyBtZXRob2RzIGFuZCBmaXggdGhlIGRlaW50ZXJsYWNlX2ZyYW1lKCkgaW1wbGVtZW50YXRpb24gb2YgRy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkgIChnc3RfZGVpbnRlcmxhY2Vfc2ltcGxlX21ldGhvZF9kZWludGVybGFjZV9mcmFtZSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX21ldGhvZHNfZ2V0X3R5cGUpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zZXRfbWV0aG9kKToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2xpbmVhci5jOgoJICAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfbGluZWFyX2MpLCAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfbGluZWFyX21teCksCgkgIChkZWludGVybGFjZV9zY2FubGluZV9saW5lYXJfbW14ZXh0KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfbGluZWFyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9saW5lYXJfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvbGluZWFyYmxlbmQuYzoKCSAgKGRlaW50ZXJsYWNlX3NjYW5saW5lX2xpbmVhcl9ibGVuZF9jKSwKCSAgKGRlaW50ZXJsYWNlX3NjYW5saW5lX2xpbmVhcl9ibGVuZDJfYyksCgkgIChkZWludGVybGFjZV9zY2FubGluZV9saW5lYXJfYmxlbmRfbW14KSwKCSAgKGRlaW50ZXJsYWNlX3NjYW5saW5lX2xpbmVhcl9ibGVuZDJfbW14KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfbGluZWFyX2JsZW5kX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9saW5lYXJfYmxlbmRfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvcGx1Z2lucy5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NjYWxlcmJvYi5jOgoJICAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfc2NhbGVyX2JvYiksCgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3NjYWxlcl9ib2JfY2xhc3NfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3NjYWxlcl9ib2JfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvd2VhdmUuYzogKGRlaW50ZXJsYWNlX3NjYW5saW5lX3dlYXZlKSwKCSAgKGNvcHlfc2NhbmxpbmUpLCAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF93ZWF2ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2Rfd2VhdmVfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvd2VhdmViZmYuYzogKGRlaW50ZXJsYWNlX3NjYW5saW5lX3dlYXZlKSwKCSAgKGNvcHlfc2NhbmxpbmUpLCAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF93ZWF2ZV9iZmZfY2xhc3NfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3dlYXZlX2JmZl9pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS93ZWF2ZXRmZi5jOiAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfd2VhdmUpLAoJICAoY29weV9zY2FubGluZSksIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3dlYXZlX3RmZl9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2Rfd2VhdmVfdGZmX2luaXQpOgoJICBBZGQgdGhlIHJlbWFpbmluZyB0dnRpbWUgZGVpbnRlcmxhY2luZyBtZXRob2RzIGFuZCBmaXggdGhlCgkgIGRlaW50ZXJsYWNlX2ZyYW1lKCkgaW1wbGVtZW50YXRpb24gb2YgR3N0RGVpbnRlcmxhY2VTaW1wbGVNZXRob2QuCgoyMDA4LTA4LTAyIDE4OjMwOjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzcvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzogSW1wbGVtZW50IHRoZSBWRklSIGRlaW50ZXJsYWNpbmcgbWV0aG9kIGFzIHNpbXBsZSBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzogKGRlaW50ZXJsYWNlX2xpbmVfYyksCgkgIChkZWludGVybGFjZV9saW5lX21teCksIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3ZmaXJfY2xhc3NfaW5pdCk6CgkgIEltcGxlbWVudCB0aGUgVkZJUiBkZWludGVybGFjaW5nIG1ldGhvZCBhcyBzaW1wbGUgbWV0aG9kLgoKMjAwOC0wOC0wMiAxODoxODo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDM2LzU2XSBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi4qOiBBZGQgYSBHc3REZWludGVybGFjZVNpbXBsZU1ldGhvZCBzdWJjbGFzcyBvZiBHc3REZWludGVybGFjZU1ldGhvZCB0aGF0IGNhbiBiZSB1c2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgKGdzdF9kZWludGVybGFjZV9zaW1wbGVfbWV0aG9kX2ludGVycG9sYXRlX3NjYW5saW5lKSwKCSAgKGdzdF9kZWludGVybGFjZV9zaW1wbGVfbWV0aG9kX2NvcHlfc2NhbmxpbmUpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX3NpbXBsZV9tZXRob2RfZGVpbnRlcmxhY2VfZnJhbWUpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX3NpbXBsZV9tZXRob2RfY2xhc3NfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2Vfc2ltcGxlX21ldGhvZF9pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJICBBZGQgYSBHc3REZWludGVybGFjZVNpbXBsZU1ldGhvZCBzdWJjbGFzcyBvZiBHc3REZWludGVybGFjZU1ldGhvZCB0aGF0CgkgIGNhbiBiZSB1c2VkIGJ5IHNpbXBsZSBkZWludGVybGFjaW5nIG1ldGhvZHMuIFRoZXkgb25seSBoYXZlIHRvIHByb3ZpZGUKCSAgYSBmdW5jdGlvbiBmb3IgaW50ZXJwb2xhdGluZyBhIHNjYW5saW5lIG9yIGNvcHlpbmcgYSBzY2FubGluZS4KCjIwMDgtMDgtMDIgMTg6MTU6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzNS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzogUmVzcGVjdCB0aGUgbGF0ZW5jeSBvZiB0aGUgZGVpbnRlcmxhY2luZyBhbGdvcml0aG0gZm9yIHRoZSB0aW1lc3RhbXBzIG9mIGV2ZXJ5IGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6IChnc3RfZGVpbnRlcmxhY2UyX2NoYWluKToKCSAgUmVzcGVjdCB0aGUgbGF0ZW5jeSBvZiB0aGUgZGVpbnRlcmxhY2luZyBhbGdvcml0aG0gZm9yIHRoZSB0aW1lc3RhbXBzCgkgIG9mIGV2ZXJ5IGJ1ZmZlci4KCjIwMDgtMDgtMDIgMTg6MTM6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzNC81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvOiBBZGQgdGhlIE1NWCByZWdpc3RlcnMgdG8gdGhlIGNsb2JiZXJlZCByZWdpc3RlcnMgb25seSBpZiBfX01NWF9fIGlzIGRlZmluZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWguYXNtOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcEJvdHRvbS5pbmM6CgkgIEFkZCB0aGUgTU1YIHJlZ2lzdGVycyB0byB0aGUgY2xvYmJlcmVkIHJlZ2lzdGVycyBvbmx5IGlmIF9fTU1YX18gaXMKCSAgZGVmaW5lZC4KCjIwMDgtMDgtMDIgMTg6MDk6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzMy81Nl0gZ3N0L2RlaW50ZXJsYWNlMi86IEVuYWJsZSB0b21zbW9jb21wIGFnYWluIGFzIHRoZSBDIHBvcnQgd2lsbCBiZSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlMl9tZXRob2RzX2dldF90eXBlKSwgKGdzdF9kZWludGVybGFjZTJfc2V0X21ldGhvZCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2NsYXNzX2luaXQpOgoJICBFbmFibGUgdG9tc21vY29tcCBhZ2FpbiBhcyB0aGUgQyBwb3J0IHdpbGwgYmUgcmVhZHkgZm9yIHRoZSBuZXh0CgkgIHJlbGVhc2UuCgoyMDA4LTA4LTAyIDE4OjAyOjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzIvNTZdIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6IERvbid0IHVzZSBwcm94eV9nZXRjYXBzKCkgYnV0IGltcGxlbWVudCBvdXIgb3duIGdldGNhcHMoKSBmdW5jdGlvbiB0aGF0IGRvdWJsZXMvaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOiAoZ3N0X2RlaW50ZXJsYWNlMl9pbml0KSwKCSAgKGdzdF9ncmVhdGVzdF9jb21tb25fZGl2aXNvciksIChnc3RfZnJhY3Rpb25fZG91YmxlKSwKCSAgKGdzdF9kZWludGVybGFjZTJfZ2V0Y2FwcyksIChnc3RfZGVpbnRlcmxhY2UyX3NldGNhcHMpOgoJICBEb24ndCB1c2UgcHJveHlfZ2V0Y2FwcygpIGJ1dCBpbXBsZW1lbnQgb3VyIG93biBnZXRjYXBzKCkgZnVuY3Rpb24KCSAgdGhhdCBkb3VibGVzL2hhbGZzIHRoZSBmcmFtZXJhdGUgaWYgYWxsIGZpZWxkcyBzaG91bGQgYmUgc2VudCBvdXQuCgoyMDA4LTA3LTE4IDA4OjM0OjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzEvNTZdIERpc2FibGUgdGhlIHRvbXNtb2NvbXAgYWxnb3JpdGhtIGZvciB0aGlzIHJlbGVhc2UgYXMgaXQncyBidWdneSBhbmQgaGFzIG5vIEMgaW1wbGVtZW50YXRpb24geWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlMl9tZXRob2RzX2dldF90eXBlKSwgKGdzdF9kZWludGVybGFjZTJfc2V0X21ldGhvZCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2NsYXNzX2luaXQpLCAoZ3N0X2RlaW50ZXJsYWNlMl9pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfbF9jbGFzc19pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmM6CgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX2dyZWVkeV9oX2NsYXNzX2luaXQpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzoKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfdmZpcl9jbGFzc19pbml0KToKCSAgRGlzYWJsZSB0aGUgdG9tc21vY29tcCBhbGdvcml0aG0gZm9yIHRoaXMgcmVsZWFzZSBhcyBpdCdzIGJ1Z2d5CgkgIGFuZCBoYXMgbm8gQyBpbXBsZW1lbnRhdGlvbiB5ZXQuCgkgIEJ1aWxkIHRoZSBkZWludGVybGFjZTIgcGx1Z2luIG9uIGFsbCBhcmNoaXRlY3R1cmVzIGJ1dCBzdGlsbCBtYXJrIGl0CgkgIGFzIGV4cGVyaW1lbnRhbC4KCSAgQnVpbGQgdGhlIHg4NiBpbmxpbmUgYXNzZW1ibHkgb25seSBpZiBHQ0MgaW5saW5lIGFzc2VtYmx5IGlzIHN1cHBvcnRlZAoJICBhbmQgb25seSBvbiB4ODYgb3IgYW1kNjQuIEZpeGVzIGJ1ZyAjNTQzMjg2LgoKMjAwOC0wNy0xNCAxNDoxMzo1NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzMC81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvOiBGaXggYnVpbGQgb24geDg2XzY0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfbF9jbGFzc19pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmM6CgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX2dyZWVkeV9oX2NsYXNzX2luaXQpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzoKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfdmZpcl9jbGFzc19pbml0KToKCSAgRml4IGJ1aWxkIG9uIHg4Nl82NAoKMjAwOC0wNy0xMyAxMDo1Njo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDI5LzU2XSBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmFzbTogQWx3YXlzIHVzZSB0aGUgQyBpbXBsZW1lbnRhdGlvbiBpZiB3aWR0aCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0LiBUaGUgYXNzZW1ibHkgb3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5hc206CgkgIEFsd2F5cyB1c2UgdGhlIEMgaW1wbGVtZW50YXRpb24gaWYgd2lkdGggaXMgbm90IGEgbXVsdGlwbGUgb2YgNC4gVGhlCgkgIGFzc2VtYmx5IG9wdGltaXplZCB2ZXJzaW9uIG9ubHkgaGFuZGxlIHRoaXMgYW5kIGNhbGxpbmcgdGhlIEMKCSAgaW1wbGVtZW50YXRpb24gZm9yIHRoZSByZW1haW5pbmcgcGFydCBkb2Vzbid0IHdvcmsgYmVjYXVzZSBpdCBuZWVkcwoJICBwcmV2aW91cyBjYWxjdWxhdGlvbnMuCgoyMDA4LTA3LTEzIDEwOjUyOjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMjgvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lLzogU29tZSBjbGVhbnVwLCB1c2UgM0ROT1cgaW5zdGVhZCBvZiBURE5PVyBpbiBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWguYXNtOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWguYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHlobWFjcm9zLmg6CgkgIFNvbWUgY2xlYW51cCwgdXNlIDNETk9XIGluc3RlYWQgb2YgVEROT1cgaW4gbWFjcm9zLgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAuYzoKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfdG9tc21vY29tcF9jbGFzc19pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvdG9tc21vY29tcG1hY3Jvcy5oOgoJICBUaGUgU1NFIG1ldGhvZCBpbiBmYWN0IG9ubHkgbmVlZHMgTU1YRVhULCBkZWNsYXJlIGl0IGFzIHN1Y2guCgoyMDA4LTA3LTA4IDEzOjMxOjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMjcvNTZdIERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cyBpbiB0aGUgcmVtYWluaW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGMvZ3N0c3BjLmM6IChzcGNfc2V0dXApOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcFRvcC5pbmM6CgkgIERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cyBpbiB0aGUgcmVtYWluaW5nIGNvZGUuCgoyMDA4LTA3LTA2IDIwOjQzOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMjYvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbDIuaW5jOiBNYXJrIGludGVybmFsIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGFzIHN0YXRpYyBpbmxpbmUgZm9yIHF1aXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwyLmluYzoKCSAgTWFyayBpbnRlcm5hbCBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBhcyBzdGF0aWMgaW5saW5lIGZvciBxdWl0ZSBzb21lCgkgIHNwZWVkdXAgYXMgdGhleSdyZSB1c2VkIG9ubHkgb25jZSBhbmQgbmVlZCB0byBnZXQgbWFueSBsb2NhbCB2YXJpYWJsZXMKCSAgcGFzc2VkIGFzIHBhcmFtZXRlci4KCjIwMDgtMDctMDUgMTk6MjA6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyNS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuKjogQ2FsbCB0aGUgY3VycmVudCBpbnN0YW5jZSAic2VsZiIgaW5zdGVhZCBvZiAib2JqZWN0Ii4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfZGVpbnRlcmxhY2VfZnJhbWUpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9zZXRfbWV0aG9kKSwgKGdzdF9kZWludGVybGFjZTJfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3Jlc2V0X2hpc3RvcnkpLCAoZ3N0X2RlaW50ZXJsYWNlMl9yZXNldCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldF9wcm9wZXJ0eSksIChnc3RfZGVpbnRlcmxhY2UyX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3BvcF9oaXN0b3J5KSwgKGdzdF9kZWludGVybGFjZTJfaGVhZF9oaXN0b3J5KSwKCSAgKGdzdF9kZWludGVybGFjZTJfcHVzaF9oaXN0b3J5KSwgKGdzdF9kZWludGVybGFjZTJfY2hhaW4pLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9zZXRjYXBzKSwgKGdzdF9kZWludGVybGFjZTJfc2lua19ldmVudCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2NoYW5nZV9zdGF0ZSksIChnc3RfZGVpbnRlcmxhY2UyX3NyY19ldmVudCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NyY19xdWVyeSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgQ2FsbCB0aGUgY3VycmVudCBpbnN0YW5jZSAic2VsZiIgaW5zdGVhZCBvZiAib2JqZWN0Ii4KCjIwMDgtMDctMDUgMTk6MTE6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyNC81Nl0gZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuKjogSW5jbHVkZSBsYXRlbmN5IG9mIHRoZSBtZXRob2QgaW4gdGhlIHJldHVybmVkIGxhdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX2dldF9sYXRlbmN5KSwKCSAgKGdzdF9kZWludGVybGFjZTJfc2V0X21ldGhvZCksIChnc3RfZGVpbnRlcmxhY2UyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9wdXNoX2hpc3RvcnkpLCAoZ3N0X2RlaW50ZXJsYWNlMl9jaGFpbiksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldGNhcHMpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zcmNfcXVlcnkpOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmg6CgkgIEluY2x1ZGUgbGF0ZW5jeSBvZiB0aGUgbWV0aG9kIGluIHRoZSByZXR1cm5lZCBsYXRlbmN5LgoJICBGaXggb3V0cHV0dGluZyBvZiBhbGwgZmllbGRzLCBpLmUuIGRvdWJsaW5nIG9mIHRoZSBmcmFtZXJhdGUuCgoyMDA4LTA3LTA1IDE2OjQ3OjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMjMvNTZdIGdzdC9kZWludGVybGFjZTIvOiBVc2UgYSBHc3RPYmplY3Qgc3VidHlwZSBmb3IgdGhlIGRlaW50ZXJsYWNpbmcgbWV0aG9kcyBhbmQgZXhwb3J0IHRoZSBkaWZmZXJlbnQgc2V0dGluZ3MgZm9yIGVhY2ggZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX2NsYXNzX2luaXQpLCAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9pbml0KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfZGVpbnRlcmxhY2VfZnJhbWUpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9nZXRfZmllbGRzX3JlcXVpcmVkKSwKCSAgKGdzdF9kZWludGVybGFjZTJfbWV0aG9kc19nZXRfdHlwZSksIChfZG9faW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldF9tZXRob2QpLCAoZ3N0X2RlaW50ZXJsYWNlMl9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWludGVybGFjZTJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9kZWludGVybGFjZTJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwKCSAgKGdzdF9kZWludGVybGFjZTJfY2hpbGRfcHJveHlfaW50ZXJmYWNlX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9pbml0KSwgKGdzdF9kZWludGVybGFjZTJfZmluYWxpemUpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9jaGFpbiksIChnc3RfZGVpbnRlcmxhY2UyX3NyY19xdWVyeSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHkuYzoKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmVfYyksCgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChkZWludGVybGFjZV9mcmFtZV9kaV9ncmVlZHkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfbF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfbF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfbF9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfZ3JlZWR5X2xfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5hc206CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOiAoZ3JlZWR5RFNjYWxlcl9DKSwKCSAgKGRlaW50ZXJsYWNlX2ZyYW1lX2RpX2dyZWVkeWgpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfaF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfaF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF9ncmVlZHlfaF9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfZ3JlZWR5X2hfaW5pdCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3BsdWdpbnMuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmM6CgkgIChnc3RfZGVpbnRlcmxhY2VfbWV0aG9kX3RvbXNtb2NvbXBfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9kZWludGVybGFjZV9tZXRob2RfdG9tc21vY29tcF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF90b21zbW9jb21wX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF90b21zbW9jb21wX2luaXQpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzogKGRlaW50ZXJsYWNlX2ZyYW1lX3ZmaXIpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF92ZmlyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlX21ldGhvZF92ZmlyX2luaXQpOgoJICBVc2UgYSBHc3RPYmplY3Qgc3VidHlwZSBmb3IgdGhlIGRlaW50ZXJsYWNpbmcgbWV0aG9kcyBhbmQgZXhwb3J0CgkgIHRoZSBkaWZmZXJlbnQgc2V0dGluZ3MgZm9yIGVhY2ggZGVpbnRlcmxhY2luZyBtZXRob2QgdmlhIEdPYmplY3QKCSAgcHJvcGVydGllcy4KCSAgSW1wbGVtZW50IEdzdENoaWxkUHJveHkgaW50ZXJmYWNlIHRvIGFsbG93IGFjY2VzcyB0byB0aGUgdXNlZAoJICBkZWludGVybGFjaW5nIG1ldGhvZCBhbmQgdG8gYWxsb3cgYWRqdXN0aW5nIHRoZSBkaWZmZXJlbnQgc2V0dGluZ3MuCgkgIE1vdmUgZ2xvYmFsIHZhcmlhYmxlcyBvZiB0aGUgdG9tc21vY29tcCBkZWludGVybGFjaW5nIG1ldGhvZCBpbnRvCgkgIGZ1bmN0aW9uIGxvY2FsIHZhcmlhYmxlcyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSB0aGlzIGRlaW50ZXJsYWNpbmcKCSAgbWV0aG9kIGZyb20gZGlmZmVyZW50IGluc3RhbmNlcy4KCjIwMDgtMDctMDUgMTI6MjI6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyMi81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5hc206IFN1cHBvcnQgd2lkdGhzIHRoYXQgYXJlIG5vdCBhIG11bHRpcGx5IG9mIDQgd2hlbiB1c2luZyB0aGUgYXNzZW1ibHkgb3B0aW1pemVkIGdyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWguYXNtOgoJICBTdXBwb3J0IHdpZHRocyB0aGF0IGFyZSBub3QgYSBtdWx0aXBseSBvZiA0IHdoZW4gdXNpbmcgdGhlIGFzc2VtYmx5CgkgIG9wdGltaXplZCBncmVlZHloIGltcGxlbWVudGF0aW9ucy4KCjIwMDgtMDctMDQgMTg6NTQ6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyMS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOiBPbmx5IGJ1aWxkIHRoZSBhc3NlbWJseSBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb25zIG9uIHg4Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOgoJICAoZGVpbnRlcmxhY2VfZnJhbWVfZGlfZ3JlZWR5aCk6CgkgIE9ubHkgYnVpbGQgdGhlIGFzc2VtYmx5IG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbnMgb24geDg2LgoKMjAwOC0wNi0zMCAwNzo1MTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDIwLzU2XSBnc3QvZGVpbnRlcmxhY2UyLzogUmVtb3ZlIHVzZWxlc3MgZmlsZSBhbmQgbWFyayBldmVyeXRoaW5nIHBvc3NpYmxlIGFzIHN0YXRpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmM6ICh0b21zbW9jb21wX2luaXQpLAoJICAodG9tc21vY29tcF9maWx0ZXJfbW14KSwgKHRvbXNtb2NvbXBfZmlsdGVyXzNkbm93KSwKCSAgKHRvbXNtb2NvbXBfZmlsdGVyX3NzZSksIChkZWludGVybGFjZV9mcmFtZV9kaV90b21zbW9jb21wKToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmg6CgkgIFJlbW92ZSB1c2VsZXNzIGZpbGUgYW5kIG1hcmsgZXZlcnl0aGluZyBwb3NzaWJsZSBhcyBzdGF0aWMuCgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOgoJICBVc2UgIl9zdGRpbnQuaCIgaW5zdGVhZCBvZiA8c3RkaW50Lmg+LgoKMjAwOC0wNi0yOSAxMDo1Njo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDE5LzU2XSBnc3QvZGVpbnRlcmxhY2UyLzogR2V0IHJpZCBvZiBzcGVlZHkuW2NoXSBhcyB3ZSBkb24ndCB1c2UgbW9zdCBvZiBpdCdzIGNvZGUgYW55d2F5IGFuZCBpdCBkb2Vzbid0IHNlZW0gdG8gYmUgcmVsaWNlbnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOiAoZ3N0X2RlaW50ZXJsYWNlMl9pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHkuYzogKGRlaW50ZXJsYWNlX2ZyYW1lX2RpX2dyZWVkeSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOgoJICAoZGVpbnRlcmxhY2VfZnJhbWVfZGlfZ3JlZWR5aCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvc3BlZWR0b29scy5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NwZWVkeS5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NwZWVkeS5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAuYzogKEZpZWxkY29weSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS92ZmlyLmM6IChkZWludGVybGFjZV9mcmFtZV92ZmlyKToKCSAgR2V0IHJpZCBvZiBzcGVlZHkuW2NoXSBhcyB3ZSBkb24ndCB1c2UgbW9zdCBvZiBpdCdzIGNvZGUgYW55d2F5CgkgIGFuZCBpdCBkb2Vzbid0IHNlZW0gdG8gYmUgcmVsaWNlbnNlZCB0byBMR1BMLiBVc2UgbWVtY3B5KCkgaW5zdGVhZAoJICBvZiB0aGUgc3BlZWR5IG1lbWNweSBldmVyeXdoZXJlIGluc3RlYWQuCgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgUmVtb3ZlIG1hbnkgdW51c2VkIGRlY2xhcmF0aW9ucy4KCjIwMDgtMDYtMjggMTg6MTM6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAxOC81Nl0gZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzogRGl2aWRlIGxhdGVuY3kgYmUgMiB0byBjb252ZXJ0IGZyb20gZmllbGRzIHRvIGZyYW1lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzogKGdzdF9kZWludGVybGFjZTJfc3JjX3F1ZXJ5KToKCSAgRGl2aWRlIGxhdGVuY3kgYmUgMiB0byBjb252ZXJ0IGZyb20gZmllbGRzIHRvIGZyYW1lcy4KCjIwMDgtMDYtMjggMTg6MTA6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAxNy81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6IERvbid0IHVzZSBzY2FubGluZXMgZnVuY3Rpb24gZnJvbSBnc3RkZWludGVybGFjZTIgYXMgaXQncyBub3QgYXBwcm9waWF0ZSBmb3IgdGhpcyBtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOgoJICAoZGVpbnRlcmxhY2VfZ3JlZWR5X3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14KSwKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGRlaW50ZXJsYWNlX2ZyYW1lX2RpX2dyZWVkeSk6CgkgIERvbid0IHVzZSBzY2FubGluZXMgZnVuY3Rpb24gZnJvbSBnc3RkZWludGVybGFjZTIgYXMgaXQncwoJICBub3QgYXBwcm9waWF0ZSBmb3IgdGhpcyBtZXRob2QuIEluc3RlYWQgaW1wbGVtZW50IGRlaW50ZXJsYWNlX2ZyYW1lCgkgIGZ1bmN0aW9uIGJ5IHRha2luZyB0aGUgb25lIGZyb20gZ3JlZWR5aC4KCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmM6IChncmVlZHlEU2NhbGVyX0MpOgoJICBTbWFsbCBmaXggZm9yIHRoZSBDIGltcGxlbWVudGF0aW9uLgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzogKGRlaW50ZXJsYWNlX2ZyYW1lX3ZmaXIpOgoJICBEb24ndCB1c2UgdGhlIHNjYW5saW5lcyBmdW5jdGlvbiBmcm9tIGdzdGRlaW50ZXJsYWNlMiBhcyBpdCdzIG9ubHkKCSAgdXNlZCBmb3IgdGhpcyBtZXRob2QgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gSW5zdGVhZCBpbXBsZW1lbnQKCSAgZGVpbnRlcmxhY2VfZnJhbWUgZnVuY3Rpb24gYW5kIG1ha2UgaXQgYSBiaXQgbW9yZSBlZmZpY2llbnQuCgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgKGdzdF9kZWludGVybGFjZTJfY2xhc3NfaW5pdCksIChnc3RfZGVpbnRlcmxhY2UyX3NldF9tZXRob2QpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9wdXNoX2hpc3RvcnkpLCAoZ3N0X2RlaW50ZXJsYWNlMl9jaGFpbiksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldGNhcHMpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zaW5rX2V2ZW50KSwKCSAgKGdzdF9kZWludGVybGFjZTJfY2hhbmdlX3N0YXRlKSwgKGdzdF9kZWludGVybGFjZTJfc3JjX2V2ZW50KSwKCSAgKGdzdF9kZWludGVybGFjZTJfc3JjX3F1ZXJ5KToKCSAgRml4IGNvZGluZyBzdHlsZSBhbmQgcmVtb3ZlIHNjYW5saW5lcyBmdW5jdGlvbiBhcyBpdCdzIHVudXNlZCBub3cuCgoyMDA4LTA2LTI4IDE3OjI1OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTYvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lLzogQWRkIGEgQyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGdyZWVkeWggZGVpbnRlcmxhY2luZyBtZXRob2QsIGNsZWFuIHVwIHRoZSBjb2RlIGEgYml0IGFuZCBtYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmFzbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmM6IChncmVlZHlEU2NhbGVyX0MpLAoJICAoZGVpbnRlcmxhY2VfZnJhbWVfZGlfZ3JlZWR5aCksIChkc2NhbGVyX2dyZWVkeWhfZ2V0X21ldGhvZCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aG1hY3Jvcy5oOgoJICBBZGQgYSBDIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZ3JlZWR5aCBkZWludGVybGFjaW5nIG1ldGhvZCwgY2xlYW4KCSAgdXAgdGhlIGNvZGUgYSBiaXQgYW5kIG1hcmsgdGhlIFNTRSB2ZXJzaW9uIGFzIE1NWEVYVCBhcyBpdCBkb2Vzbid0CgkgIHJlcXVpcmUgYW55IFNTRSBpbnN0cnVjdGlvbnMuCgoyMDA4LTA2LTI3IDEzOjIyOjM0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTUvNTZdIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6IElmIHdlJ3JlIG91dHB1dHRpbmcgYWxsIGZpZWxkcyB0aGUgZnJhbWVyYXRlIGhhcyB0byBiZSBkb3VibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5jOgoJICAoZ3N0X2RlaW50ZXJsYWNlMl9zZXRfcHJvcGVydHkpLCAoZ3N0X2RlaW50ZXJsYWNlMl9jaGFpbiksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldGNhcHMpOgoJICBJZiB3ZSdyZSBvdXRwdXR0aW5nIGFsbCBmaWVsZHMgdGhlIGZyYW1lcmF0ZSBoYXMgdG8gYmUgZG91YmxlZC4KCSAgU2V0IGR1cmF0aW9uIG9uIHRoZSBvdXRnb2luZyBidWZmZXJzLgoKMjAwOC0wNi0yNSAxNjowNTowOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAxNC81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC90b21zbW9jb21wbWFjcm9zLmg6IFJlbW92ZSB1bm5lZWRlZCBtYWNyb3MgdGhhdCBicmVhayBidWlsZCBvbiBtYWNvc3guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvdG9tc21vY29tcG1hY3Jvcy5oOgoJICBSZW1vdmUgdW5uZWVkZWQgbWFjcm9zIHRoYXQgYnJlYWsgYnVpbGQgb24gbWFjb3N4LgoKMjAwOC0wNi0yNCAxMjowODo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDEzLzU2XSBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHkuYzogT3B0aW1pemUgTU1YL01NWEVYVCBpbXBsZW1lbnRhdGlvbnMgYSBiaXQgYnkgcmVxdWlyaW5nIHR3byBsZXNzIG1lbW9yeSBhY2Nlc3NlcyBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6CgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCk6CgkgIE9wdGltaXplIE1NWC9NTVhFWFQgaW1wbGVtZW50YXRpb25zIGEgYml0IGJ5IHJlcXVpcmluZyB0d28gbGVzcwoJICBtZW1vcnkgYWNjZXNzZXMgYW5kIGZpeCB0aGUgd29ya2Fyb3VuZCBmb3IgdGhlIG1pc3NpbmcgcmlnaHQgc2hpZnQKCSAgb24gYnl0ZXMgdG8gdW5zZXQgdGhlIGhpZ2hlc3QgYml0IG9mIGV2ZXJ5IGJ5dGUuCgoyMDA4LTA2LTI0IDEwOjE1OjQxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTIvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOiBSZW1vdmUgc2ZlbmNlIGluc3RydWN0aW9uIGFzIGl0J3Mgbm90IG5lZWRlZCBhbmQgYWN0dWFsbHkgaXMgYW4gU1NFIGluc3RydWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHkuYzoKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KToKCSAgUmVtb3ZlIHNmZW5jZSBpbnN0cnVjdGlvbiBhcyBpdCdzIG5vdCBuZWVkZWQgYW5kIGFjdHVhbGx5IGlzIGFuIFNTRQoJICBpbnN0cnVjdGlvbi4KCjIwMDgtMDYtMjQgMTA6MTI6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAxMS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6IEFkZCBwbGFpbiBNTVggaW1wbGVtZW50YXRpb24gZm9yIHRoZSBncmVlZHlsIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6CgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lKToKCSAgQWRkIHBsYWluIE1NWCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGdyZWVkeWwgbWV0aG9kLgoKMjAwOC0wNi0yNCAwOTo0MDowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDEwLzU2XSBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOiBNb3ZlIHRoZSBhc3NlbWJseSBpbmNsdWRlcyB0byBub2luc3RfSEVBREVSUyB3aGVyZSB0aGV5IGJlbG9uZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9NYWtlZmlsZS5hbToKCSAgTW92ZSB0aGUgYXNzZW1ibHkgaW5jbHVkZXMgdG8gbm9pbnN0X0hFQURFUlMgd2hlcmUgdGhleSBiZWxvbmcuCgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdmZpci5jOiAoZGVpbnRlcmxhY2VfbGluZV9jKSwKCSAgKGRlaW50ZXJsYWNlX2xpbmVfbW14KToKCSAgRml4IEMgYW5kIE1NWCBpbXBsZW1lbnRhdGlvbnMgYSBiaXQgbW9yZS4KCjIwMDgtMDYtMjQgMDk6MTA6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAwOS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6IEZpeCB0aGUgQyBpbXBsZW1lbnRhdGlvbiB0byBwcm9kdWNlIGNvcnJlY3QgcmVzdWx0cyBhbmQgb3B0aW1pemUgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOgoJICAoZGVpbnRlcmxhY2VfZ3JlZWR5X3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmUpOgoJICBGaXggdGhlIEMgaW1wbGVtZW50YXRpb24gdG8gcHJvZHVjZSBjb3JyZWN0IHJlc3VsdHMgYW5kIG9wdGltaXplIHRoZQoJICBNTVhFWFQgaW1wbGVtZW50YXRpb24uCgkgIEhhbmRsZSBvZGQgd2lkdGhzIGFuZCBkb24ndCByZWFkIG92ZXIgYXJyYXkgYm91bmRhcmllcyBpbiB0aGUgTU1YRVhUCgkgIGltcGxlbWVudGF0aW9uLgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzogKGRlaW50ZXJsYWNlX2xpbmVfYyksCgkgIChkZWludGVybGFjZV9saW5lX21teCksIChkZWludGVybGFjZV9zY2FubGluZV92ZmlyKToKCSAgRml4IGEgc21hbGwgcm91bmRpbmcgYnVnIGluIHRoZSBNTVggaW1wbGVtZW50YXRpb24sIHRoZSBNTVgKCSAgaW1wbGVtZW50YXRpb24gZG9lc24ndCBhY3R1YWxseSBuZWVkIE1NWEVYVCBpbnN0cnVjdGlvbnMgc28gZG9uJ3QgbWFyawoJICBpdCBhcyBzdWNoLgoJICBIYW5kbGUgb2RkIHdpZHRocyBpbiBib3RoIGltcGxlbWVudGF0aW9ucy4KCjIwMDgtMDYtMjEgMDk6MDU6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAwOC81Nl0gZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6IEltcGxlbWVudCBhIEMgdmVyc2lvbiBvZiB0aGUgZ3JlZWR5IGxvdyBtb3Rpb24gYWxnb3JpdGhtIGFuZCBtYXJrIHRoZSBhc3NlbWJseSBvcHRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOgoJICAoZGVpbnRlcmxhY2VfZ3JlZWR5X3BhY2tlZDQyMl9zY2FubGluZV9zc2UpLAoJICAoZGVpbnRlcmxhY2VfZ3JlZWR5X3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmUpOgoJICBJbXBsZW1lbnQgYSBDIHZlcnNpb24gb2YgdGhlIGdyZWVkeSBsb3cgbW90aW9uIGFsZ29yaXRobSBhbmQgbWFyayB0aGUKCSAgYXNzZW1ibHkgb3B0aW1pemVkIHZlcnNpb24gYXMgU1NFIGFzIGl0IHVzZXMgU1NFIGluc3RydWN0aW9ucwoJICBhZGRpdGlvbmFsIHRvIE1NWCBpbnN0cnVjdGlvbnMuCgoyMDA4LTA2LTIwIDE0OjQ4OjQwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMDcvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3ZmaXIuYzogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgdGhlIHZmaXIgbWV0aG9kIG9uIFg4NiBDUFVzIHdpdGhvdXQgTU1YRVhUIHRvbyBidXQgdXNlIHRoZSBNTS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS92ZmlyLmM6IChkZWludGVybGFjZV9saW5lX21teGV4dCksCgkgIChkZWludGVybGFjZV9saW5lX2MpLCAoZGVpbnRlcmxhY2Vfc2NhbmxpbmVfdmZpcik6CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIHRoZSB2ZmlyIG1ldGhvZCBvbiBYODYgQ1BVcyB3aXRob3V0IE1NWEVYVCB0b28KCSAgYnV0IHVzZSB0aGUgTU1YRVhUIG9wdGltaXplZCBjb2RlIHdoZW5ldmVyIHBvc3NpYmxlLgoKMjAwOC0wNi0yMCAxNDozNToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDA2LzU2XSBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi4qOiBSZXNldCBlbGVtZW50IHN0YXRlIG9uIFBBVVNFRC0+UkVBRFkgcHJvcGVybHksIGRvbid0IGxlYWsgYW55IGJ1ZmZlcnMgd2hlbiBmaW5hbGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgKGdzdF9kZWludGVybGFjZTJfY2xhc3NfaW5pdCksIChnc3RfZGVpbnRlcmxhY2UyX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9yZXNldF9oaXN0b3J5KSwgKGdzdF9kZWludGVybGFjZTJfcmVzZXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9maW5hbGl6ZSksIChnc3RfZGVpbnRlcmxhY2UyX2NoYWluKSwKCSAgKGdzdF9kZWludGVybGFjZTJfc2lua19ldmVudCksIChnc3RfZGVpbnRlcmxhY2UyX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NyY19xdWVyeSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgUmVzZXQgZWxlbWVudCBzdGF0ZSBvbiBQQVVTRUQtPlJFQURZIHByb3Blcmx5LCBkb24ndCBsZWFrIGFueSBidWZmZXJzCgkgIHdoZW4gZmluYWxpemluZywgYWxsb2NhdGUgYnVmZmVycyB3aXRoIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYW5kCgkgIHByb3Blcmx5IHJldHVybiBmbG93IHJldHVybnMgZnJvbSBnc3RfcGFkX3B1c2goKSBpbnN0ZWFkIG9mIGlnbm9yaW5nIHRoZW0uCgoyMDA4LTA2LTIwIDEzOjQ1OjA4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMDUvNTZdIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvdG9tc21vY29tcG1hY3Jvcy5oOiBBZGQgbWlzc2luZyBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvdG9tc21vY29tcG1hY3Jvcy5oOgoJICBBZGQgbWlzc2luZyBoZWFkZXIuCgoyMDA4LTA2LTIwIDEzOjI0OjI5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMDQvNTZdIEZpeCBjb21waWxhdGlvbiBvbiBnZW5lcmljIHg4Ni9hbWQ2NCBhbmQgaW5jbHVkZSBkZWludGVybGFjZTIgaW4gdGhlIGJ1aWxkIHN5c3RlbS4gQmVjYXVzZSBvZiBzZXZlcmFsIGJ1Z3MgaXQncyBzdGlsbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmFzbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BCb3R0b20uaW5jOgoJICBGaXggY29tcGlsYXRpb24gb24gZ2VuZXJpYyB4ODYvYW1kNjQgYW5kIGluY2x1ZGUgZGVpbnRlcmxhY2UyIGluIHRoZQoJICBidWlsZCBzeXN0ZW0uIEJlY2F1c2Ugb2Ygc2V2ZXJhbCBidWdzIGl0J3Mgc3RpbGwgZW5hYmxlZCBvbmx5CgkgIGJ5IC0tZW5hYmxlLWV4cGVyaW1lbnRhbC4KCjIwMDgtMDYtMTggMDY6MzE6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAwMy81Nl0gRml4IGd0ay1kb2Mgd2FybmluZ3MuIEFsc28gZG9uJ3QgbWlzdXNlIGFwaS1kb2MgY29tbWVudHMgZm9yIG5vcm1hbCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBleGFtcGxlcy9hcHAvYXBwc3JjLXJhLmM6CgkgICogZXhhbXBsZXMvYXBwL2FwcHNyYy1zZWVrYWJsZS5jOgoJICAqIGV4YW1wbGVzL2FwcC9hcHBzcmMtc3RyZWFtLmM6CgkgICogZXhhbXBsZXMvYXBwL2FwcHNyYy1zdHJlYW0yLmM6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5oOgoJICAqIGV4dC9tZXRhZGF0YS9nc3RiYXNlbWV0YWRhdGEuYzoKCSAgKiBleHQvbWV0YWRhdGEvZ3N0YmFzZW1ldGFkYXRhLmg6CgkgICogZXh0L21ldGFkYXRhL21ldGFkYXRhLmM6CgkgICogZXh0L21ldGFkYXRhL21ldGFkYXRhZXhpZi5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmg6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9zcGVlZHkuYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9zcGVlZHkuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS92ZmlyLmM6CgkgIEZpeCBndGstZG9jIHdhcm5pbmdzLiBBbHNvIGRvbid0IG1pc3VzZSBhcGktZG9jIGNvbW1lbnRzIGZvciBub3JtYWwKCSAgY29tbWVudHMuCgoyMDA4LTA2LTExIDExOjEyOjQ5ICswMDAwICBNYXJ0aW4gRWlrZXJtYW5uIDxtZWlrZXJAdXBiLmRlPgoKCSAgW01PVkVEIEZST00gQkFEIDAyLzU2XSBnc3QvZGVpbnRlcmxhY2UyLzogQWRkIGEgZGVpbnRlcmxhY2VyIHBsdWdpbiBiYXNlZCBvbiB0aGUgdHZ0aW1lL0RTY2FsZXIgZGVpbnRlcmxhY2VyLCB3aGljaCB3YXMgcmVsaWNlbnNlZCB0byBMR1BMIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnk6IE1hcnRpbiBFaWtlcm1hbm4gPG1laWtlciBhdCB1cGIgZG90IGRlPgoJICAqIGdzdC9kZWludGVybGFjZTIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlaW50ZXJsYWNlMi9nc3RkZWludGVybGFjZTIuYzoKCSAgKGdzdF9kZWludGVybGFjZTJfbWV0aG9kX2dldF90eXBlKSwKCSAgKGdzdF9kZWludGVybGFjZTJfZmllbGRzX2dldF90eXBlKSwKCSAgKGdzdF9kZWludGVybGFjZTJfZmllbGRfbGF5b3V0X2dldF90eXBlKSwKCSAgKGdzdF9kZWludGVybGFjZTJfYmFzZV9pbml0KSwgKGdzdF9kZWludGVybGFjZTJfY2xhc3NfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2luaXQpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zZXRfbWV0aG9kKSwKCSAgKGdzdF9kZWludGVybGFjZTJfc2V0X3Byb3BlcnR5KSwgKGdzdF9kZWludGVybGFjZTJfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9kZWludGVybGFjZTJfZmluYWxpemUpLCAoZ3N0X2RlaW50ZXJsYWNlMl9wb3BfaGlzdG9yeSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2hlYWRfaGlzdG9yeSksIChnc3RfZGVpbnRlcmxhY2UyX3B1c2hfaGlzdG9yeSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2RlaW50ZXJsYWNlX3NjYW5saW5lcyksIChnc3RfZGVpbnRlcmxhY2UyX2NoYWluKSwKCSAgKGdzdF9kZWludGVybGFjZTJfc2V0Y2FwcyksIChnc3RfZGVpbnRlcmxhY2UyX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zcmNfZXZlbnQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9zcmNfcXVlcnkpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zcmNfcXVlcnlfdHlwZXMpLAoJICAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmg6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5LmM6IChjb3B5X3NjYW5saW5lKSwKCSAgKGRlaW50ZXJsYWNlX2dyZWVkeV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGRzY2FsZXJfZ3JlZWR5bF9nZXRfbWV0aG9kKToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmFzbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmM6CgkgIChkZWludGVybGFjZV9mcmFtZV9kaV9ncmVlZHloKSwgKGRzY2FsZXJfZ3JlZWR5aF9nZXRfbWV0aG9kKSwKCSAgKGdyZWVkeWhfaW5pdCksIChncmVlZHloX2ZpbHRlcl9tbXgpLCAoZ3JlZWR5aF9maWx0ZXJfM2Rub3cpLAoJICAoZ3JlZWR5aF9maWx0ZXJfc3NlKToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9ncmVlZHloLmg6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aG1hY3Jvcy5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL21teC5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3BsdWdpbnMuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9zcGVlZHRvb2xzLmg6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvc3BlZWR5LmM6IChtdWx0aXBseV9hbHBoYSksIChjbGlwMjU1KSwKCSAgKGNvbWJfZmFjdG9yX3BhY2tlZDQyMl9zY2FubGluZV9tbXgpLAoJICAoZGlmZl9mYWN0b3JfcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoZGlmZl9mYWN0b3JfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgIChkaWZmX3BhY2tlZDQyMl9ibG9jazh4OF9tbXgpLCAoZGlmZl9wYWNrZWQ0MjJfYmxvY2s4eDhfYyksCgkgIChwYWNrZWQ0NDRfdG9fcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAocGFja2VkNDIyX3RvX3BhY2tlZDQ0NF9zY2FubGluZV9jKSwKCSAgKHBhY2tlZDQyMl90b19wYWNrZWQ0NDRfcmVjNjAxX3NjYW5saW5lX2MpLAoJICAodmZpbHRlcl9jaHJvbWFfMTIxX3BhY2tlZDQyMl9zY2FubGluZV9tbXgpLAoJICAodmZpbHRlcl9jaHJvbWFfMTIxX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKHZmaWx0ZXJfY2hyb21hXzMzMl9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14KSwKCSAgKHZmaWx0ZXJfY2hyb21hXzMzMl9wYWNrZWQ0MjJfc2NhbmxpbmVfYyksCgkgIChraWxsX2Nocm9tYV9wYWNrZWQ0MjJfaW5wbGFjZV9zY2FubGluZV9tbXgpLAoJICAoa2lsbF9jaHJvbWFfcGFja2VkNDIyX2lucGxhY2Vfc2NhbmxpbmVfYyksCgkgIChpbnZlcnRfY29sb3VyX3BhY2tlZDQyMl9pbnBsYWNlX3NjYW5saW5lX21teCksCgkgIChpbnZlcnRfY29sb3VyX3BhY2tlZDQyMl9pbnBsYWNlX3NjYW5saW5lX2MpLAoJICAobWlycm9yX3BhY2tlZDQyMl9pbnBsYWNlX3NjYW5saW5lX2MpLAoJICAoaW50ZXJwb2xhdGVfcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoY29udmVydF91eXZ5X3RvX3l1eXZfc2NhbmxpbmVfbW14KSwKCSAgKGNvbnZlcnRfdXl2eV90b195dXl2X3NjYW5saW5lX2MpLAoJICAoaW50ZXJwb2xhdGVfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgIChpbnRlcnBvbGF0ZV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGJsaXRfY29sb3VyX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGJsaXRfY29sb3VyX3BhY2tlZDQyMl9zY2FubGluZV9tbXgpLAoJICAoYmxpdF9jb2xvdXJfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChibGl0X2NvbG91cl9wYWNrZWQ0NDQ0X3NjYW5saW5lX2MpLAoJICAoYmxpdF9jb2xvdXJfcGFja2VkNDQ0NF9zY2FubGluZV9tbXgpLAoJICAoYmxpdF9jb2xvdXJfcGFja2VkNDQ0NF9zY2FubGluZV9tbXhleHQpLCAoc21hbGxfbWVtY3B5KSwKCSAgKHNwZWVkeV9tZW1jcHlfYyksIChzcGVlZHlfbWVtY3B5X21teCksIChzcGVlZHlfbWVtY3B5X21teGV4dCksCgkgIChibGl0X3BhY2tlZDQyMl9zY2FubGluZV9jKSwgKGJsaXRfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgIChibGl0X3BhY2tlZDQyMl9zY2FubGluZV9tbXhleHQpLAoJICAoY29tcG9zaXRlX2NvbG91cjQ0NDRfYWxwaGFfdG9fcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoY29tcG9zaXRlX2NvbG91cjQ0NDRfYWxwaGFfdG9fcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChjb21wb3NpdGVfcGFja2VkNDQ0NF9hbHBoYV90b19wYWNrZWQ0MjJfc2NhbmxpbmVfYyksCgkgIChjb21wb3NpdGVfcGFja2VkNDQ0NF9hbHBoYV90b19wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGNvbXBvc2l0ZV9wYWNrZWQ0NDQ0X3RvX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGNvbXBvc2l0ZV9wYWNrZWQ0NDQ0X3RvX3BhY2tlZDQyMl9zY2FubGluZV9tbXhleHQpLAoJICAoY29tcG9zaXRlX2FscGhhbWFza190b19wYWNrZWQ0NDQ0X3NjYW5saW5lX2MpLAoJICAoY29tcG9zaXRlX2FscGhhbWFza190b19wYWNrZWQ0NDQ0X3NjYW5saW5lX21teGV4dCksCgkgIChjb21wb3NpdGVfYWxwaGFtYXNrX2FscGhhX3RvX3BhY2tlZDQ0NDRfc2NhbmxpbmVfYyksCgkgIChwcmVtdWx0aXBseV9wYWNrZWQ0NDQ0X3NjYW5saW5lX2MpLAoJICAocHJlbXVsdGlwbHlfcGFja2VkNDQ0NF9zY2FubGluZV9tbXhleHQpLAoJICAoYmxlbmRfcGFja2VkNDIyX3NjYW5saW5lX2MpLCAoYmxlbmRfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChxdWFydGVyX2JsaXRfdmVydGljYWxfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChxdWFydGVyX2JsaXRfdmVydGljYWxfcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoc3VicGl4X2JsaXRfdmVydGljYWxfcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoYThfc3VicGl4X2JsaXRfc2NhbmxpbmVfYyksIChteXJvdW5kKSwgKGluaXRfUkdCX3RvX1lDYkNyX3RhYmxlcyksCgkgIChpbml0X1lDYkNyX3RvX1JHQl90YWJsZXMpLCAocmdiMjRfdG9fcGFja2VkNDQ0X3JlYzYwMV9zY2FubGluZV9jKSwKCSAgKHJnYmEzMl90b19wYWNrZWQ0NDQ0X3JlYzYwMV9zY2FubGluZV9jKSwKCSAgKHBhY2tlZDQ0NF90b19yZ2IyNF9yZWM2MDFfc2NhbmxpbmVfYyksCgkgIChwYWNrZWQ0NDRfdG9fbm9ucHJlbXVsdGlwbGllZF9wYWNrZWQ0NDQ0X3NjYW5saW5lX2MpLAoJICAoYXNwZWN0X2FkanVzdF9wYWNrZWQ0NDQ0X3NjYW5saW5lX2MpLCAoc2V0dXBfc3BlZWR5X2NhbGxzKSwKCSAgKHNwZWVkeV9nZXRfYWNjZWwpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NwZWVkeS5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NzZS5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAuYzogKEZpZWxkY29weSksCgkgIChkZWludGVybGFjZV9mcmFtZV9kaV90b21zbW9jb21wKSwgKGRzY2FsZXJfdG9tc21vY29tcF9nZXRfbWV0aG9kKSwKCSAgKHRvbXNtb2NvbXBfaW5pdCksICh0b21zbW9jb21wX2ZpbHRlcl9tbXgpLAoJICAodG9tc21vY29tcF9maWx0ZXJfM2Rub3cpLCAodG9tc21vY29tcF9maWx0ZXJfc3NlKToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmg6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wMEEuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcEJvdHRvbS5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wRWRnZUEuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcEVkZ2VBOC5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQS5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQTIuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEE2LmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BPZGRBSC5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQUgyLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BUb3AuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcFZBLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BWQUguaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU3RyYW5nZUJvYi5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1RvbXNNb0NvbXBBbGwyLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1dpZXJkQm9iLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS92ZmlyLmM6IChkZWludGVybGFjZV9saW5lKSwKCSAgKGRlaW50ZXJsYWNlX3NjYW5saW5lX3ZmaXIpLCAoY29weV9zY2FubGluZSksCgkgIChkc2NhbGVyX3ZmaXJfZ2V0X21ldGhvZCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUveDg2LTY0X21hY3Jvcy5pbmM6CgkgIEFkZCBhIGRlaW50ZXJsYWNlciBwbHVnaW4gYmFzZWQgb24gdGhlIHR2dGltZS9EU2NhbGVyIGRlaW50ZXJsYWNlciwKCSAgd2hpY2ggd2FzIHJlbGljZW5zZWQgdG8gTEdQTCBmb3IgR1N0cmVhbWVyIGFuZCBpbiB0aGVvcnkgcHJvdmlkZXMKCSAgYmV0dGVyIGFuZCBmYXN0ZXIgcmVzdWx0cyB0aGFuIHRoZSBzaW1wbGUgZGVpbnRlcmxhY2UgZWxlbWVudC4KCSAgRml4ZXMgYnVnICMxNjM1NzguCgkgIFBvcnRlZCB0byBHU3RyZWFtZXIgMC4xMCBidXQgc3RpbGwgbm90IGVuYWJsZWQgb3IgaW5jbHVkZWQgaW4gdGhlCgkgIGJ1aWxkIHN5c3RlbSBieSBkZWZhdWx0IGJlY2F1c2Ugb2YgYmFkIGFydGVmYWN0cyBjYXVzZWQgYnkgYSBidWcKCSAgc29tZXdoZXJlIGFuZCBhcyBpdCBjYW4gYmUgb25seSBidWlsZCBvbiB4ODYvYW1kNjQgQVRNIGFuZCByZXF1aXJlcwoJICBzcGVjaWFsIENGTEFHUy4gV2lsbCBiZSBmaXhlZCBzb29uLgoKMjAwOC0wNi0xMSAxMToxMjoxNCArMDAwMCAgTWFydGluIEVpa2VybWFubiA8bWVpa2VyQHVwYi5kZT4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAwMS81Nl0gZ3N0L2RlaW50ZXJsYWNlMi86IEFkZCBhIGRlaW50ZXJsYWNlciBwbHVnaW4gYmFzZWQgb24gdGhlIHR2dGltZS9EU2NhbGVyIGRlaW50ZXJsYWNlciwgd2hpY2ggd2FzIHJlbGljZW5zZWQgdG8gTEdQTCBmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5OiBNYXJ0aW4gRWlrZXJtYW5uIDxtZWlrZXIgYXQgdXBiIGRvdCBkZT4KCSAgKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZTIvZ3N0ZGVpbnRlcmxhY2UyLmM6CgkgIChnc3RfZGVpbnRlcmxhY2UyX21ldGhvZF9nZXRfdHlwZSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2ZpZWxkc19nZXRfdHlwZSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2ZpZWxkX2xheW91dF9nZXRfdHlwZSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2Jhc2VfaW5pdCksIChnc3RfZGVpbnRlcmxhY2UyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9pbml0KSwgKGdzdF9kZWludGVybGFjZTJfc2V0X21ldGhvZCksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldF9wcm9wZXJ0eSksIChnc3RfZGVpbnRlcmxhY2UyX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZGVpbnRlcmxhY2UyX2ZpbmFsaXplKSwgKGdzdF9kZWludGVybGFjZTJfcG9wX2hpc3RvcnkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9oZWFkX2hpc3RvcnkpLCAoZ3N0X2RlaW50ZXJsYWNlMl9wdXNoX2hpc3RvcnkpLAoJICAoZ3N0X2RlaW50ZXJsYWNlMl9kZWludGVybGFjZV9zY2FubGluZXMpLCAoZ3N0X2RlaW50ZXJsYWNlMl9jaGFpbiksCgkgIChnc3RfZGVpbnRlcmxhY2UyX3NldGNhcHMpLCAoZ3N0X2RlaW50ZXJsYWNlMl9zaW5rX2V2ZW50KSwKCSAgKGdzdF9kZWludGVybGFjZTJfY2hhbmdlX3N0YXRlKSwgKGdzdF9kZWludGVybGFjZTJfc3JjX2V2ZW50KSwKCSAgKGdzdF9kZWludGVybGFjZTJfc3JjX3F1ZXJ5KSwgKGdzdF9kZWludGVybGFjZTJfc3JjX3F1ZXJ5X3R5cGVzKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL2dzdGRlaW50ZXJsYWNlMi5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeS5jOiAoY29weV9zY2FubGluZSksCgkgIChkZWludGVybGFjZV9ncmVlZHlfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChkc2NhbGVyX2dyZWVkeWxfZ2V0X21ldGhvZCk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5hc206CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5jOgoJICAoZGVpbnRlcmxhY2VfZnJhbWVfZGlfZ3JlZWR5aCksIChkc2NhbGVyX2dyZWVkeWhfZ2V0X21ldGhvZCksCgkgIChncmVlZHloX2luaXQpLCAoZ3JlZWR5aF9maWx0ZXJfbW14KSwgKGdyZWVkeWhfZmlsdGVyXzNkbm93KSwKCSAgKGdyZWVkeWhfZmlsdGVyX3NzZSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvZ3JlZWR5aC5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL2dyZWVkeWhtYWNyb3MuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9tbXguaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9wbHVnaW5zLmg6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvc3BlZWR0b29scy5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3NwZWVkeS5jOiAobXVsdGlwbHlfYWxwaGEpLCAoY2xpcDI1NSksCgkgIChjb21iX2ZhY3Rvcl9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14KSwKCSAgKGRpZmZfZmFjdG9yX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGRpZmZfZmFjdG9yX3BhY2tlZDQyMl9zY2FubGluZV9tbXgpLAoJICAoZGlmZl9wYWNrZWQ0MjJfYmxvY2s4eDhfbW14KSwgKGRpZmZfcGFja2VkNDIyX2Jsb2NrOHg4X2MpLAoJICAocGFja2VkNDQ0X3RvX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKHBhY2tlZDQyMl90b19wYWNrZWQ0NDRfc2NhbmxpbmVfYyksCgkgIChwYWNrZWQ0MjJfdG9fcGFja2VkNDQ0X3JlYzYwMV9zY2FubGluZV9jKSwKCSAgKHZmaWx0ZXJfY2hyb21hXzEyMV9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14KSwKCSAgKHZmaWx0ZXJfY2hyb21hXzEyMV9wYWNrZWQ0MjJfc2NhbmxpbmVfYyksCgkgICh2ZmlsdGVyX2Nocm9tYV8zMzJfcGFja2VkNDIyX3NjYW5saW5lX21teCksCgkgICh2ZmlsdGVyX2Nocm9tYV8zMzJfcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoa2lsbF9jaHJvbWFfcGFja2VkNDIyX2lucGxhY2Vfc2NhbmxpbmVfbW14KSwKCSAgKGtpbGxfY2hyb21hX3BhY2tlZDQyMl9pbnBsYWNlX3NjYW5saW5lX2MpLAoJICAoaW52ZXJ0X2NvbG91cl9wYWNrZWQ0MjJfaW5wbGFjZV9zY2FubGluZV9tbXgpLAoJICAoaW52ZXJ0X2NvbG91cl9wYWNrZWQ0MjJfaW5wbGFjZV9zY2FubGluZV9jKSwKCSAgKG1pcnJvcl9wYWNrZWQ0MjJfaW5wbGFjZV9zY2FubGluZV9jKSwKCSAgKGludGVycG9sYXRlX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGNvbnZlcnRfdXl2eV90b195dXl2X3NjYW5saW5lX21teCksCgkgIChjb252ZXJ0X3V5dnlfdG9feXV5dl9zY2FubGluZV9jKSwKCSAgKGludGVycG9sYXRlX3BhY2tlZDQyMl9zY2FubGluZV9tbXgpLAoJICAoaW50ZXJwb2xhdGVfcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChibGl0X2NvbG91cl9wYWNrZWQ0MjJfc2NhbmxpbmVfYyksCgkgIChibGl0X2NvbG91cl9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14KSwKCSAgKGJsaXRfY29sb3VyX3BhY2tlZDQyMl9zY2FubGluZV9tbXhleHQpLAoJICAoYmxpdF9jb2xvdXJfcGFja2VkNDQ0NF9zY2FubGluZV9jKSwKCSAgKGJsaXRfY29sb3VyX3BhY2tlZDQ0NDRfc2NhbmxpbmVfbW14KSwKCSAgKGJsaXRfY29sb3VyX3BhY2tlZDQ0NDRfc2NhbmxpbmVfbW14ZXh0KSwgKHNtYWxsX21lbWNweSksCgkgIChzcGVlZHlfbWVtY3B5X2MpLCAoc3BlZWR5X21lbWNweV9tbXgpLCAoc3BlZWR5X21lbWNweV9tbXhleHQpLAoJICAoYmxpdF9wYWNrZWQ0MjJfc2NhbmxpbmVfYyksIChibGl0X3BhY2tlZDQyMl9zY2FubGluZV9tbXgpLAoJICAoYmxpdF9wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGNvbXBvc2l0ZV9jb2xvdXI0NDQ0X2FscGhhX3RvX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGNvbXBvc2l0ZV9jb2xvdXI0NDQ0X2FscGhhX3RvX3BhY2tlZDQyMl9zY2FubGluZV9tbXhleHQpLAoJICAoY29tcG9zaXRlX3BhY2tlZDQ0NDRfYWxwaGFfdG9fcGFja2VkNDIyX3NjYW5saW5lX2MpLAoJICAoY29tcG9zaXRlX3BhY2tlZDQ0NDRfYWxwaGFfdG9fcGFja2VkNDIyX3NjYW5saW5lX21teGV4dCksCgkgIChjb21wb3NpdGVfcGFja2VkNDQ0NF90b19wYWNrZWQ0MjJfc2NhbmxpbmVfYyksCgkgIChjb21wb3NpdGVfcGFja2VkNDQ0NF90b19wYWNrZWQ0MjJfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGNvbXBvc2l0ZV9hbHBoYW1hc2tfdG9fcGFja2VkNDQ0NF9zY2FubGluZV9jKSwKCSAgKGNvbXBvc2l0ZV9hbHBoYW1hc2tfdG9fcGFja2VkNDQ0NF9zY2FubGluZV9tbXhleHQpLAoJICAoY29tcG9zaXRlX2FscGhhbWFza19hbHBoYV90b19wYWNrZWQ0NDQ0X3NjYW5saW5lX2MpLAoJICAocHJlbXVsdGlwbHlfcGFja2VkNDQ0NF9zY2FubGluZV9jKSwKCSAgKHByZW11bHRpcGx5X3BhY2tlZDQ0NDRfc2NhbmxpbmVfbW14ZXh0KSwKCSAgKGJsZW5kX3BhY2tlZDQyMl9zY2FubGluZV9jKSwgKGJsZW5kX3BhY2tlZDQyMl9zY2FubGluZV9tbXhleHQpLAoJICAocXVhcnRlcl9ibGl0X3ZlcnRpY2FsX3BhY2tlZDQyMl9zY2FubGluZV9tbXhleHQpLAoJICAocXVhcnRlcl9ibGl0X3ZlcnRpY2FsX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKHN1YnBpeF9ibGl0X3ZlcnRpY2FsX3BhY2tlZDQyMl9zY2FubGluZV9jKSwKCSAgKGE4X3N1YnBpeF9ibGl0X3NjYW5saW5lX2MpLCAobXlyb3VuZCksIChpbml0X1JHQl90b19ZQ2JDcl90YWJsZXMpLAoJICAoaW5pdF9ZQ2JDcl90b19SR0JfdGFibGVzKSwgKHJnYjI0X3RvX3BhY2tlZDQ0NF9yZWM2MDFfc2NhbmxpbmVfYyksCgkgIChyZ2JhMzJfdG9fcGFja2VkNDQ0NF9yZWM2MDFfc2NhbmxpbmVfYyksCgkgIChwYWNrZWQ0NDRfdG9fcmdiMjRfcmVjNjAxX3NjYW5saW5lX2MpLAoJICAocGFja2VkNDQ0X3RvX25vbnByZW11bHRpcGxpZWRfcGFja2VkNDQ0NF9zY2FubGluZV9jKSwKCSAgKGFzcGVjdF9hZGp1c3RfcGFja2VkNDQ0NF9zY2FubGluZV9jKSwgKHNldHVwX3NwZWVkeV9jYWxscyksCgkgIChzcGVlZHlfZ2V0X2FjY2VsKToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9zcGVlZHkuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS9zc2UuaDoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wLmM6IChGaWVsZGNvcHkpLAoJICAoZGVpbnRlcmxhY2VfZnJhbWVfZGlfdG9tc21vY29tcCksIChkc2NhbGVyX3RvbXNtb2NvbXBfZ2V0X21ldGhvZCksCgkgICh0b21zbW9jb21wX2luaXQpLCAodG9tc21vY29tcF9maWx0ZXJfbW14KSwKCSAgKHRvbXNtb2NvbXBfZmlsdGVyXzNkbm93KSwgKHRvbXNtb2NvbXBfZmlsdGVyX3NzZSk6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC5oOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcDBBLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BCb3R0b20uaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcEVkZ2VBLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BFZGdlQTguaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEEuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEEyLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BPZGRBNi5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wT2RkQUguaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvU2VhcmNoTG9vcE9kZEFIMi5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVG9wLmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1NlYXJjaExvb3BWQS5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9TZWFyY2hMb29wVkFILmluYzoKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL3R2dGltZS90b21zbW9jb21wL1N0cmFuZ2VCb2IuaW5jOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3RvbXNtb2NvbXAvVG9tc01vQ29tcEFsbC5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9Ub21zTW9Db21wQWxsMi5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdG9tc21vY29tcC9XaWVyZEJvYi5pbmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlMi90dnRpbWUvdmZpci5jOiAoZGVpbnRlcmxhY2VfbGluZSksCgkgIChkZWludGVybGFjZV9zY2FubGluZV92ZmlyKSwgKGNvcHlfc2NhbmxpbmUpLAoJICAoZHNjYWxlcl92ZmlyX2dldF9tZXRob2QpOgoJICAqIGdzdC9kZWludGVybGFjZTIvdHZ0aW1lL3g4Ni02NF9tYWNyb3MuaW5jOgoJICBBZGQgYSBkZWludGVybGFjZXIgcGx1Z2luIGJhc2VkIG9uIHRoZSB0dnRpbWUvRFNjYWxlciBkZWludGVybGFjZXIsCgkgIHdoaWNoIHdhcyByZWxpY2Vuc2VkIHRvIExHUEwgZm9yIEdTdHJlYW1lciBhbmQgaW4gdGhlb3J5IHByb3ZpZGVzCgkgIGJldHRlciBhbmQgZmFzdGVyIHJlc3VsdHMgdGhhbiB0aGUgc2ltcGxlIGRlaW50ZXJsYWNlIGVsZW1lbnQuCgkgIEZpeGVzIGJ1ZyAjMTYzNTc4LgoJICBQb3J0ZWQgdG8gR1N0cmVhbWVyIDAuMTAgYnV0IHN0aWxsIG5vdCBlbmFibGVkIG9yIGluY2x1ZGVkIGluIHRoZQoJICBidWlsZCBzeXN0ZW0gYnkgZGVmYXVsdCBiZWNhdXNlIG9mIGJhZCBhcnRlZmFjdHMgY2F1c2VkIGJ5IGEgYnVnCgkgIHNvbWV3aGVyZSBhbmQgYXMgaXQgY2FuIGJlIG9ubHkgYnVpbGQgb24geDg2L2FtZDY0IEFUTSBhbmQgcmVxdWlyZXMKCSAgc3BlY2lhbCBDRkxBR1MuIFdpbGwgYmUgZml4ZWQgc29vbi4KCjIwMDktMDUtMTMgMTA6MzA6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBmbHY6IEFjdHVhbGx5IGFkZCB0aGUgZmx2IHBsdWdpbiB0byBjb25maWd1cmUuYWMKCjIwMDktMDUtMTMgMDk6MjQ6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSAgY2hlY2tzOiBmaXggZmxhY2RlYyB1bml0IHRlc3RzIG9uIGJpZy1lbmRpYW4gbWFjaGluZXMgYW5kIHVuZGVyIHZhbGdyaW5kCgkgIEZsYWNkZWMgb3V0cHV0cyAxNi1iaXQgc2FtcGxlcywgc28gbGV0J3MgY2hlY2sgaWYgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdAoJICBzYW1wbGUgaXMgd2hhdCB3ZSBleHBlY3QgcmF0aGVyIHRoYW4ganVzdCB0aGUgZmlyc3QgYnl0ZSwgd2hpY2ggbWF5IGJlCgkgIGRpZmZlcmVudCBmcm9tIHdoYXQgd2UgZXhwZWN0IGRlcGVuZGluZyBvbiB0aGUgaG9zdCdzIGVuZGlhbm5lc3MuIEZpeGVzCgkgIHRoZSBmbGFjZGVjIHVuaXQgdGVzdHMgb24gUFBDLiBBbHNvIGZpeCBhIGJ1bmNoIG9mIGxlYWtzIGluIHRoZSB1bml0CgkgIHRlc3RzIHRvIG1ha2UgdmFsZ3JpbmQgaGFwcHkuIEZpeGVzICM1ODI0MjAuCgoyMDA5LTA1LTEzIDA5OjE4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZmxhY2RlYzogZml4IGJ1ZmZlciBsZWFrCgkgIGdzdF9idWZmZXJfcmVwbGFjZSgpIHdpbGwgdGFrZSBpdHMgb3duIHJlZiwgc28gd2Ugc3RpbGwgaGF2ZQoJICB0byB1bnJlZiB0aGUgYnVmZmVyIGlmIHdlIGRvbid0IG5lZWQgaXQgYW55IGxvbmdlci4KCjIwMDktMDUtMTIgMjE6MjA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogRml4IHBvaW50ZXIgYXJpdGhtZXRpYwoJICBUaGlzIGZpeGVzIGEgc2Vla2luZyByZWdyZXNzaW9uLCBidWcgIzEzNDUyMi4KCjIwMDktMDUtMTIgMjE6MzY6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wdWxzZWF1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkgIE1vdmVkICdmbHYnIGZyb20gLWJhZCB0byAtZ29vZAoKMjAwOS0wNS0wNyAxNzo1Mzo0MiArMDEwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICBbTU9WRUQgRlJPTSBCQUQgNTcvNTddIEFkZCByYW5rcyB0byB2YXJpb3VzIG11eGVycyBhbmQgZW5jb2RlcnMgaW4gLWJhZAoKMjAwOS0wNC0yOSAxODo1MjoyMCArMDEwMCAgVHJpc3RhbiBNYXR0aGV3cyA8bGUuYnVzaW5lc3NtYW5AZ21haWwuY29tPgoKCSogZ3N0L2Zsdi9nc3RmbHZtdXguYzoKCSAgW01PVkVEIEZST00gQkFEIDU2LzU3XSBmbHZtdXg6IGluaXQgdmFyaWFibGUgdG8gTlVMTCB0byBmaXggY29tcGlsZXIgd2FybmluZwoJICBGaXhlcyAjNTgwNzg2LgoKMjAwOS0wNC0yOSAxMzo1NjowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdm11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1NS81N10gZmx2OiBTZXQvcmVxdWlyZSB0aGUgZnJhbWVkL3BhcnNlZCBmaWVsZHMgb2YgdGhlIGF1ZGlvL21wZWcgY2FwcyB0byBUUlVFCgoyMDA5LTA0LTI5IDEzOjE2OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1NC81N10gZmx2OiBBbHdheXMgd3JpdGUgYXQgbGVhc3QgdGhlIG1pbmltYWwgdGFncyBhbmQgd3JpdGUgdGhlIFBBUiBhcyB0YWdzCgoyMDA5LTA0LTI5IDEzOjAzOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4Lmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1My81N10gZmx2OiBBZGQgc3VwcG9ydCBmb3IgbXV4aW5nIHNvbWUgdGFncwoKMjAwOS0wNC0yOSAxMzowMzoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1Mi81N10gZmx2OiBBZGQgc3VwcG9ydCBmb3IgdGl0bGUgdGFnCgoyMDA5LTA0LTI5IDA5OjQwOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSAgW01PVkVEIEZST00gQkFEIDUxLzU3XSBmbHY6IEZpeCBwYXJzaW5nIG9mIHRhZ3MgYW5kIGFkZCBuZXcgbWFwcGluZ3MKCSAgV2Ugc2hvdWxkbid0IHJlZ2lzdGVyIGEgbmV3IEdzdFRhZyBmb3IgZXZlcnkgdW5rbm93biB0YWcKCSAgd2UgZmluZCBhcyB0aGlzIG1pZ2h0IGxlYWQgdG8gY29uZmxpY3RzIGFuZCBhbHNvIHRob3NlCgkgIHRhZ3MgYXJlIGVzc2VudGlhbGx5IHVua25vd24uCgkgIEFkZCBtYXBwaW5ncyBmb3Igc29tZSBrbm93biB0YWdzIGFuZCBhbHNvIGNvbnZlcnQgc3RyaW5nCgkgIGRhdGVzIHRvIEdEYXRlLCBhcyBmb3VuZCBpbiBtYW55IEZMViBmaWxlcy4KCjIwMDktMDQtMjIgMTk6NTI6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6CgkqIGdzdC9mbHYvZ3N0Zmx2bXV4Lmg6CgkgIFtNT1ZFRCBGUk9NIEJBRCA1MC81N10gZmx2OiBBZGQgZG9jdW1lbnRhdGlvbiB0byBmbHZtdXggYW5kIGZsdmRlbXV4CgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU3MzczNy4KCjIwMDktMDEtMjIgMTM6Mzk6MzQgKzAxMDAgIEphbiBVcmJhbnNraSA8ai51cmJhbnNraUBzdHVkZW50cy5taW11dy5lZHUucGw+CgoJKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgIFtNT1ZFRCBGUk9NIEJBRCA0OS81N10gQWRkIHN1cHBvcnQgZm9yIEVDTUEgYXJyYXlzIGluIHNjcmlwdCB0YWdzLiBGaXhlcyBidWcgIzU2Nzk2NS4KCSAgQWRkIHN1cHBvcnQgZm9yIEVDTUEgYXJyYXlzIGluIHNjcmlwdCB0YWdzLiBUaGlzIGZpeGVzCgkgIHNlZWtpbmcgb24gc29tZSBmaWxlcyB0aGF0IGhhdmUgdGhlIHNlZWsgdGFibGUgc3RvcmVkCgkgIGluc2lkZSBhbiBFQ01BIGFycmF5IGluc3RlYWQgb2YgdGhlIG5vcm1hbCBhcnJheS4KCjIwMDgtMTItMDMgMTE6NDM6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCA0OC81N10gZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiBDaGVjayBpZiBzdHJpbmdzIGFyZSB2YWxpZCBVVEY4IGJlZm9yZSB1c2luZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChGTFZfR0VUX1NUUklORyk6CgkgIENoZWNrIGlmIHN0cmluZ3MgYXJlIHZhbGlkIFVURjggYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA4LTExLTI0IDExOjE3OjE5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRCA0Ny81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiBGaXggbm9uIGtleSB1bml0IHNlZWtpbmcgYnkgYWx3YXlzIGdvaW5nIHRvIHRoZSBwcmV2aW91cyBrZXlmcmFtZS4gTWFyayB0aGUgZGlzY29udCBmbGFnIHdoZW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTI0ICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfZmluZF9vZmZzZXQpLAoJICAoZ3N0X2Zsdl9kZW11eF9oYW5kbGVfc2Vla19wdXNoKSwKCSAgKGdzdF9mbHZfZGVtdXhfaGFuZGxlX3NlZWtfcHVsbCk6CgkgIEZpeCBub24ga2V5IHVuaXQgc2Vla2luZyBieSBhbHdheXMgZ29pbmcgdG8gdGhlIHByZXZpb3VzCgkgIGtleWZyYW1lLiBNYXJrCgkgIHRoZSBkaXNjb250IGZsYWcgd2hlbiB3ZSd2ZSBtb3ZlZCBpbiB0aGUgZmlsZS4KCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX2F1ZGlvX25lZ290aWF0ZSk6IE1QMwoJICBzdHJlYW1zCgkgIGFyZSBwYXJzZWQgYWxyZWFkeSwgbWFrZXMgYXV0b3BsdWdnZWQgcGlwZWxpbmVzIHNob3J0ZXIuCgoyMDA4LTExLTA0IDEyOjQyOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDYvNTddIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIC1iYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbHNhc3BkaWYvTWFrZWZpbGUuYW06CgkgICogZXh0L2FtcndiL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hcGV4c2luay9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXJ0cy9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXJ0c2QvTWFrZWZpbGUuYW06CgkgICogZXh0L2F1ZGlvZmlsZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvYXVkaW9yZXNhbXBsZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvYnoyL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jZGF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jZWx0L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kYzEzOTQvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpcmFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9kaXJlY3RmYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvZGl2eC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZHRzL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mYWFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mYWFkL01ha2VmaWxlLmFtOgoJICAqIGV4dC9nc20vTWFrZWZpbGUuYW06CgkgICogZXh0L2hlcm1lcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvaXZvcmJpcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvamFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvanAyay9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9sY3MvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYmZhbWUvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYm1tcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogZXh0L21wZWcyZW5jL01ha2VmaWxlLmFtOgoJICAqIGV4dC9tcGxleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvbXVzZXBhY2svTWFrZWZpbGUuYW06CgkgICogZXh0L211c2ljYnJhaW56L01ha2VmaWxlLmFtOgoJICAqIGV4dC9teXRodHYvTWFrZWZpbGUuYW06CgkgICogZXh0L25hcy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbmVvbi9NYWtlZmlsZS5hbToKCSAgKiBleHQvb2ZhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9wb2x5cC9NYWtlZmlsZS5hbToKCSAgKiBleHQvcmVzaW5kdmQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NkbC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2hvdXQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NuYXBzaG90L01ha2VmaWxlLmFtOgoJICAqIGV4dC9zbmRmaWxlL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zb3VuZHRvdWNoL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zcGMvTWFrZWZpbGUuYW06CgkgICogZXh0L3N3ZmRlYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFya2luL01ha2VmaWxlLmFtOgoJICAqIGV4dC90aGVvcmEvTWFrZWZpbGUuYW06CgkgICogZXh0L3RpbWlkaXR5L01ha2VmaWxlLmFtOgoJICAqIGV4dC90d29sYW1lL01ha2VmaWxlLmFtOgoJICAqIGV4dC94MjY0L01ha2VmaWxlLmFtOgoJICAqIGV4dC94aW5lL01ha2VmaWxlLmFtOgoJICAqIGV4dC94dmlkL01ha2VmaWxlLmFtOgoJICAqIGdzdC1saWJzL2dzdC9hcHAvTWFrZWZpbGUuYW06CgkgICogZ3N0LWxpYnMvZ3N0L2RzaG93L01ha2VmaWxlLmFtOgoJICAqIGdzdC9haWZmcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FwcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9idWZmZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2JheWVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jZHhhcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2NoYXJ0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9jb2xvcnNwYWNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kY2NwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWludGVybGFjZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVpbnRlcmxhY2UyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kdmRzcHUvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Zlc3RpdmFsL01ha2VmaWxlLmFtOgoJICAqIGdzdC9maWx0ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZsYWNwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmx2L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nYW1lcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaDI2NHBhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9saWJyZmIvTWFrZWZpbGUuYW06CgkgICogZ3N0L21peG1hdHJpeC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbW9kcGx1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZzFzeXMvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWc0dmlkZW9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXBlZ2RlbXV4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9tcGVndHNtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L21wZWd2aWRlb3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L25zZi9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbnV2ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L292ZXJsYXkvTWFrZWZpbGUuYW06CgkgICogZ3N0L3Bhc3N0aHJvdWdoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wY2FwcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmF3cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlYWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0anBlZy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwbWFuYWdlci9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2NhbGV0ZW1wby9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2RwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zZWxlY3Rvci9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc21vb3RoL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbW9vdGh3YXZlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVlZC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3BlZXhyZXNhbXBsZS9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3RlcmVvL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zdWJlbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3R0YS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvdmJpZGVjL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2Ryb3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvc2lnbmFsL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aXJ0dWFsZHViL01ha2VmaWxlLmFtOgoJICAqIGdzdC92bW5jL01ha2VmaWxlLmFtOgoJICAqIGdzdC95NG0vTWFrZWZpbGUuYW06CgkgICogc3lzL2FjbWVuYy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvY2Ryb20vTWFrZWZpbGUuYW06CgkgICogc3lzL2RzaG93ZGVjd3JhcHBlci9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZHNob3dzcmN3cmFwcGVyL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kdmIvTWFrZWZpbGUuYW06CgkgICogc3lzL2R4cjMvTWFrZWZpbGUuYW06CgkgICogc3lzL2ZiZGV2L01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3M0L01ha2VmaWxlLmFtOgoJICAqIHN5cy9xY2FtL01ha2VmaWxlLmFtOgoJICAqIHN5cy9xdHdyYXBwZXIvTWFrZWZpbGUuYW06CgkgICogc3lzL3ZjZC9NYWtlZmlsZS5hbToKCSAgKiBzeXMvd2luaW5ldC9NYWtlZmlsZS5hbToKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIC1iYWQuCgoyMDA4LTEwLTI4IDE4OjQ0OjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDUvNTddIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogSW1wbGVtZW50IHBvc2l0aW9uIHF1ZXJ5IGluIHRpbWUgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X3F1ZXJ5KToKCSAgSW1wbGVtZW50IHBvc2l0aW9uIHF1ZXJ5IGluIHRpbWUgZm9ybWF0LgoKMjAwOC0xMC0yOCAxODo0MToxOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDQ0LzU3XSBnc3QvZmx2LzogUHV0IHRoZSBHc3RTZWdtZW50IGRpcmVjdGx5IGludG8gdGhlIGluc3RhbmNlIHN0cnVjdCBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgYW5kIGZyZWUnaW5nIGl0IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X2NsZWFudXApLAoJICAoZ3N0X2Zsdl9kZW11eF9sb29wKSwgKGdzdF9mbHZfZGVtdXhfaGFuZGxlX3NlZWtfcHVzaCksCgkgIChnc3RfZmx2X2RlbXV4X2hhbmRsZV9zZWVrX3B1bGwpLCAoZ3N0X2Zsdl9kZW11eF9zaW5rX2V2ZW50KSwKCSAgKGdzdF9mbHZfZGVtdXhfZGlzcG9zZSksIChnc3RfZmx2X2RlbXV4X2luaXQpOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyksIChnc3RfZmx2X3BhcnNlX3RhZ190aW1lc3RhbXApOgoJICBQdXQgdGhlIEdzdFNlZ21lbnQgZGlyZWN0bHkgaW50byB0aGUgaW5zdGFuY2Ugc3RydWN0IGluc3RlYWQgb2YKCSAgYWxsb2NhdGluZyBhbmQgZnJlZSdpbmcgaXQgYWdhaW4uCgkgIFB1c2ggdGFncyBhbHJlYWR5IGlmIG9ubHkgb25lIHBhZCB3YXMgYWRkZWQsIG5vIG5lZWQgdG8gd2FpdCBmb3IKCSAgdGhlIHNlY29uZCBvbmUuCgkgIFdoZW4gZ2VuZXJhdGluZyBvdXIgaW5kZXggc2V0IGhhc192aWRlbyBhbmQgaGFzX2F1ZGlvIGlmIHdlIGZpbmQKCSAgdmlkZW8gb3IgYXVkaW8gaW4gY2FzZSB0aGUgRkxWIGhlYWRlciBoYXMgaW5jb3JyZWN0IGRhdGEuCgoyMDA4LTEwLTI3IDA5OjQ1OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDMvNTddIGdzdC9mbHYvOiBEb24ndCBtZW1jcHkoKSBhbGwgZGF0YSB3ZSB3YW50IHRvIHB1c2ggZG93bnN0cmVhbSwgaW5zdGVhZCBqdXN0IGNyZWF0ZSBzdWJidWZmZXJzIGFuZCBwdXNoIHRoZW0gZG93bnN0cmVhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAoZ3N0X2Zsdl9kZW11eF9jaGFpbiksCgkgIChnc3RfZmx2X2RlbXV4X3B1bGxfdGFnKSwgKGdzdF9mbHZfZGVtdXhfcHVsbF9oZWFkZXIpLAoJICAoZ3N0X2Zsdl9kZW11eF9jcmVhdGVfaW5kZXgpOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfdGFnX3NjcmlwdCksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ190aW1lc3RhbXApLCAoZ3N0X2Zsdl9wYXJzZV90YWdfdHlwZSksCgkgIChnc3RfZmx2X3BhcnNlX2hlYWRlcik6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5oOgoJICBEb24ndCBtZW1jcHkoKSBhbGwgZGF0YSB3ZSB3YW50IHRvIHB1c2ggZG93bnN0cmVhbSwgaW5zdGVhZCBqdXN0CgkgIGNyZWF0ZSBzdWJidWZmZXJzIGFuZCBwdXNoIHRoZW0gZG93bnN0cmVhbS4KCSAgRml4IHNvbWUgbWlub3IgbWVtb3J5IGxlYWtzLgoKMjAwOC0xMC0yNyAwOTo0MToxOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDQyLzU3XSBnc3QvZmx2L01ha2VmaWxlLmFtOiBGaXggKG5vbi1jcml0aWNhbCkgc3ludGF4IGVycm9yIGFuZCBhZGQgYWxsIHJlcXVpcmVkIENGTEFHUyBhbmQgTElCUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9NYWtlZmlsZS5hbToKCSAgRml4IChub24tY3JpdGljYWwpIHN5bnRheCBlcnJvciBhbmQgYWRkIGFsbCByZXF1aXJlZCBDRkxBR1MgYW5kIExJQlMuCgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiAoRkxWX0dFVF9TVFJJTkcpLAoJICAoZ3N0X2Zsdl9wYXJzZV9tZXRhZGF0YV9pdGVtKSwgKGdzdF9mbHZfcGFyc2VfdGFnX3NjcmlwdCksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ190aW1lc3RhbXApLCAoZ3N0X2Zsdl9wYXJzZV90YWdfdHlwZSk6CgkgIFJld3JpdGUgdGhlIHNjcmlwdCB0YWcgcGFyc2luZyB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgdHJ5IHRvIHJlYWQKCSAgbW9yZSBkYXRhIHRoYW4gd2UgaGF2ZS4gQWxzbyB1c2UgR1NUX1JFQURfVUlOVDI0X0JFIGRpcmVjdGx5IGFuZAoJICBmaXggc29tZSBtaW5vciBtZW1vcnkgbGVha3MuCgkgIFRoaXMgc2hvdWxkIG1ha2UgYWxsIGNyYXNoZXMgb24gZnV6emVkIEZMViBmaWxlcyBkaXNhcHBlYXIuCgoyMDA4LTEwLTI3IDA5OjM3OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDEvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogUHJvcGVybHkgY2hlY2sgZXZlcnl3aGVyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGRhdGEgdG8gcGFyc2UgYW5kIGRvbid0IHJlYWQgb3V0c2lkZSB0aGUgYWxsb2NhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChGTFZfR0VUX1NUUklORyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ190eXBlKSwgKGdzdF9mbHZfcGFyc2VfaGVhZGVyKToKCSAgUHJvcGVybHkgY2hlY2sgZXZlcnl3aGVyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGRhdGEgdG8gcGFyc2UgYW5kCgkgIGRvbid0IHJlYWQgb3V0c2lkZSB0aGUgYWxsb2NhdGVkIG1lbW9yeSByZWdpb24uCgoyMDA4LTEwLTI3IDA5OjM1OjM0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgNDAvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogSWYgdGhlIGNhcHMgY2hhbmdlIGR1cmluZyBwbGF5YmFjayBhbmQgbmVnb3RpYXRpb24gZmFpbHMgZXJyb3Igb3V0IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGNvbnRpbnVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyk6CgkgIElmIHRoZSBjYXBzIGNoYW5nZSBkdXJpbmcgcGxheWJhY2sgYW5kIG5lZ290aWF0aW9uIGZhaWxzIGVycm9yIG91dAoJICBpbnN0ZWFkIG9mIHRyeWluZyB0byBjb250aW51ZS4KCjIwMDgtMTAtMjcgMDk6MzM6NDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzOS81N10gZ3N0L2Zsdi86IEFkZCBzdXBwb3J0IGZvciBTcGVleCBhdWRpbyBhbmQgYWxsb3cgYnVmZmVycyB3aXRob3V0IHZhbGlkIHRpbWVzdGFtcCBpbiB0aGUgbXV4ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6IChnc3RfZmx2X211eF9hdWRpb19wYWRfc2V0Y2FwcyksCgkgIChnc3RfZmx2X211eF9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X2Zsdl9tdXhfd3JpdGVfYnVmZmVyKSwKCSAgKGdzdF9mbHZfbXV4X2NvbGxlY3RlZCk6CgkgICogZ3N0L2Zsdi9nc3RmbHZtdXguaDoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX2F1ZGlvX25lZ290aWF0ZSk6CgkgIEFkZCBzdXBwb3J0IGZvciBTcGVleCBhdWRpbyBhbmQgYWxsb3cgYnVmZmVycyB3aXRob3V0IHZhbGlkCgkgIHRpbWVzdGFtcCBpbiB0aGUgbXV4ZXIuCgoyMDA4LTEwLTI3IDA5OjMyOjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzgvNTddIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogRG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlIG9uIHRoZSBidXMgaWYgc2VuZGluZyBFT1MgZG93bnN0cmVhbSBkaWRuJ3Qgd29yay4gRml4ZXMgYnVnICM1NTA0NTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfbG9vcCksCgkgIChnc3RfZmx2X2RlbXV4X2ZpbmRfb2Zmc2V0KSwgKGdzdF9mbHZfZGVtdXhfaGFuZGxlX3NlZWtfcHVzaCksCgkgIChnc3RfZmx2X2RlbXV4X2hhbmRsZV9zZWVrX3B1bGwpOgoJICBEb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2Ugb24gdGhlIGJ1cyBpZiBzZW5kaW5nIEVPUyBkb3duc3RyZWFtCgkgIGRpZG4ndCB3b3JrLiBGaXhlcyBidWcgIzU1MDQ1NC4KCSAgRml4IHNlZWsgZXZlbnQgaGFuZGxpbmcgdG8gbG9vayBhdCB0aGUgZmxhZ3Mgb2YgdGhlIHNlZWsgZXZlbnQKCSAgaW5zdGVhZCBvZiBhc3N1bWluZyBzb21lIHJhbmRvbSBmbGFncywgZG9uJ3Qgc2VuZCBzZWdtZW50LXN0YXJ0CgkgIG1lc3NhZ2VzIHdoZW4gb3BlcmF0aW5nIGluIHB1c2ggbW9kZSBhbmQgcHVzaCBzZWVrIGV2ZW50cyB1cHN0cmVhbQoJICBpZiB3ZSBjb3VsZG4ndCBoYW5kbGUgdGhlbS4KCjIwMDgtMTAtMjcgMDk6Mjc6MTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzNy81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiBFcnJvciBvdXQgZWFybHkgaWYgcHVsbGluZyBhIHRhZyBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfcHVsbF90YWcpOgoJICBFcnJvciBvdXQgZWFybHkgaWYgcHVsbGluZyBhIHRhZyBmYWlsZWQuCgoyMDA4LTEwLTI3IDA5OjI1OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzYvNTddIGdzdC9mbHYvOiBJbiBwdWxsIG1vZGUgd2UgY3JlYXRlIG91ciBvd24gaW5kZXggYmVmb3JlIGRvaW5nIGFueXRoaW5nIGVsc2UgYW5kIGRvbid0IHVzZSB0aGUgaW5kZXggcHJvdmlkZWQgYnkgc29tZSBmaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X2NyZWF0ZV9pbmRleCksCgkgIChnc3RfZmx2X2RlbXV4X2xvb3ApOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfdGFnX3NjcmlwdCksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ190aW1lc3RhbXApOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuaDoKCSAgSW4gcHVsbCBtb2RlIHdlIGNyZWF0ZSBvdXIgb3duIGluZGV4IGJlZm9yZSBkb2luZyBhbnl0aGluZyBlbHNlCgkgIGFuZCBkb24ndCB1c2UgdGhlIGluZGV4IHByb3ZpZGVkIGJ5IHNvbWUgZmlsZXMgKHdoaWNoIGFyZSBtb3JlIHRoYW4KCSAgb2Z0ZW4gaW5jb3JyZWN0IGFuZCBjYXVzZSBmYWlsZWQgc2Vla3MpLgoJICBGb3IgcHVzaCBtb2RlIHdlIHN0aWxsIHVzZSB0aGUgaW5kZXggcHJvdmlkZWQgYnkgdGhlIGZpbGUgYW5kIGV4dGVuZCBpdAoJICB3aGlsZSBkb2luZyB0aGUgcGxheWJhY2suCgoyMDA4LTEwLTI3IDA5OjIwOjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzUvNTddIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogSW5zdGVhZCBvZiB1c2luZyBnc3RfcGFkX2V2ZW50X2RlZmF1bHQoKSB1c2UgYSBzbWFsbCBnc3RfcGFkX3B1c2hfZXZlbnQoKSB3cmFwcGVyIHRoYXQgb25seSBkby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X3B1c2hfc3JjX2V2ZW50KSwKCSAgKGdzdF9mbHZfZGVtdXhfbG9vcCksIChnc3RfZmx2X2RlbXV4X2hhbmRsZV9zZWVrX3B1bGwpLAoJICAoZ3N0X2Zsdl9kZW11eF9zaW5rX2V2ZW50KToKCSAgSW5zdGVhZCBvZiB1c2luZyBnc3RfcGFkX2V2ZW50X2RlZmF1bHQoKSB1c2UgYSBzbWFsbAoJICBnc3RfcGFkX3B1c2hfZXZlbnQoKSB3cmFwcGVyIHRoYXQgb25seSBkb2VzIHdoYXQgd2Ugd2FudCBhbmQgaXMgbXVjaAoJICBtb3JlIHNpbXBsZS4KCjIwMDgtMTAtMjcgMDk6MTQ6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzNC81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC4qOiBJZiBvdXIgaW5kZXggd2FzIGNyZWF0ZWQgYnkgdGhlIGVsZW1lbnQgYW5kIG5vdCBwcm92aWRlZCBmcm9tIHRoZSBvdXRzaWRlIHdlIHNob3VsZCBkZXN0cm95IGl0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9mbHZfZGVtdXhfc2V0X2luZGV4KSwgKGdzdF9mbHZfZGVtdXhfaW5pdCk6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5oOgoJICBJZiBvdXIgaW5kZXggd2FzIGNyZWF0ZWQgYnkgdGhlIGVsZW1lbnQgYW5kIG5vdCBwcm92aWRlZCBmcm9tIHRoZQoJICBvdXRzaWRlIHdlIHNob3VsZCBkZXN0cm95IGl0IHdoZW4gc3RhcnRpbmcgYSBuZXcgc3RyZWFtIHRvIGdldAoJICBhbGwgb2xkIGVudHJpZXMgcmVtb3ZlZC4KCjIwMDgtMTAtMjcgMDk6MTI6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzMy81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCB3aGVuIHB1bGxpbmcgYSBidWZmZXIgZnJvbSB1cHN0cmVhbSBmYWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAoZ3N0X2Zsdl9kZW11eF9wdWxsX3JhbmdlKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQgd2hlbiBwdWxsaW5nIGEgYnVmZmVyIGZyb20gdXBzdHJlYW0gZmFpbHMuCgoyMDA4LTEwLTI3IDA5OjEwOjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzIvNTddIGdzdC9mbHYvOiBDbG9zZSB0aGUgY3VycmVudGx5IHBsYXlpbmcgc2VnbWVudCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGluc3RlYWQgb2YgdGhlIHRocmVhZCB3aGVyZSB0aGUgc2VlayBldmVudCBpcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X2NsZWFudXApLAoJICAoZ3N0X2Zsdl9kZW11eF9oYW5kbGVfc2Vla19wdWxsKSwgKGdzdF9mbHZfZGVtdXhfZGlzcG9zZSk6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5oOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKToKCSAgQ2xvc2UgdGhlIGN1cnJlbnRseSBwbGF5aW5nIHNlZ21lbnQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZAoJICBpbnN0ZWFkIG9mIHRoZSB0aHJlYWQgd2hlcmUgdGhlIHNlZWsgZXZlbnQgaXMgaGFuZGxlZC4KCjIwMDgtMTAtMTYgMTU6MjE6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAzMS81N10gZ3N0L2Zsdi9nc3RmbHZtdXguYzogRG9uJ3Qgc2V0IHZpZGVvX2NvZGVjIHRvIHRoZSB2YWx1ZSB0aGF0IGFjdHVhbGx5IHNob3VsZCBnbyBpbnRvIGF1ZGlvIGNvZGVjLCBvdGhlcndpc2Ugd2UgY3JlYXRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6IChnc3RfZmx2X211eF9hdWRpb19wYWRfc2V0Y2FwcyksCgkgIChnc3RfZmx2X211eF93cml0ZV9idWZmZXIpOgoJICBEb24ndCBzZXQgdmlkZW9fY29kZWMgdG8gdGhlIHZhbHVlIHRoYXQgYWN0dWFsbHkgc2hvdWxkIGdvCgkgIGludG8gYXVkaW8gY29kZWMsIG90aGVyd2lzZSB3ZSBjcmVhdGUgaW52YWxpZCBmaWxlcy4KCSAgRml4ZXMgYnVnICM1NTY1NjQuCgoyMDA4LTEwLTEyIDE3OjA4OjEwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMzAvNTddIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogRml4IHJlZ3Jlc3Npb24gb2YgaGFuZGxpbmcgZmxvdyByZXR1cm5zIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAoZ3N0X2Zsdl9kZW11eF9wdWxsX3RhZyksCgkgIChnc3RfZmx2X2RlbXV4X3B1bGxfaGVhZGVyKToKCSAgRml4IHJlZ3Jlc3Npb24gb2YgaGFuZGxpbmcgZmxvdyByZXR1cm5zIGluIHB1bGwgbW9kZS4KCSAgRml4ZXMgYnVnICM1NTYwMDMuCgoyMDA4LTEwLTEwIDE2OjMzOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMjkvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogVXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyX2FuZF9zZXRfY2FwcygpIHRvIG1ha2Ugc3VyZSB3ZSBnZXQgYSBidWZmZXIgd2l0aCBjYXBzIHRoYXQgd2UgY2FuIHdvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyk6CgkgIFVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMoKSB0byBtYWtlIHN1cmUgd2UgZ2V0CgkgIGEgYnVmZmVyIHdpdGggY2FwcyB0aGF0IHdlIGNhbiB3b3JrIHdpdGggKGkuZS4gdGhlIHBhZCdzIGNhcHMpLgoJICBBZGQgbm9uLWtleWZyYW1lIHZpZGVvIGZyYW1lcyB0byB0aGUgaW5kZXggdG9vIGJ1dCB3aXRob3V0IHRoZQoJICBrZXlmcmFtZSBmbGFnLgoJICBBZGQgYXVkaW8gZnJhbWVzIHRvIHRoZSBpbmRleCBvbmx5IGlmIHdlIGhhdmUgbm8gdmlkZW8gc3RyZWFtLgoKMjAwOC0xMC0xMCAxNjoxNTowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDI4LzU3XSBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IENyZWF0ZSBwYWRzIGZyb20gdGhlIHBhZCB0ZW1wbGF0ZXMsIHVzZSBmaXhlZCBjYXBzIG9uIHRoZW0gYW5kIG9ubHkgYWN0aXZhdGUgdGhlbSBhZnRlciB0aGUgY2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiAoZ3N0X2Zsdl9wYXJzZV90YWdfYXVkaW8pLAoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfdmlkZW8pOgoJICBDcmVhdGUgcGFkcyBmcm9tIHRoZSBwYWQgdGVtcGxhdGVzLCB1c2UgZml4ZWQgY2FwcyBvbiB0aGVtCgkgIGFuZCBvbmx5IGFjdGl2YXRlIHRoZW0gYWZ0ZXIgdGhlIGNhcHMgYXJlIHNldC4KCjIwMDgtMTAtMDkgMTY6MjA6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyNy81N10gZ3N0L2Zsdi86IEdldCBhbiBhcHByb3hpbWF0ZSBkdXJhdGlvbiBvZiB0aGUgZmlsZSBieSBsb29raW5nIGF0IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGxhc3QgdGFnIGluIHB1bGwgbW9kZS4gSWYgd2UgZ2V0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfbG9vcCk6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiAoZ3N0X2Zsdl9wYXJzZV90YWdfdGltZXN0YW1wKToKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmg6CgkgIEdldCBhbiBhcHByb3hpbWF0ZSBkdXJhdGlvbiBvZiB0aGUgZmlsZSBieSBsb29raW5nIGF0IHRoZSB0aW1lc3RhbXAKCSAgb2YgdGhlIGxhc3QgdGFnIGluIHB1bGwgbW9kZS4gSWYgd2UgZ2V0IChtYXliZSBiZXR0ZXIpIGR1cmF0aW9uIGZyb20KCSAgbWV0YWRhdGEgbGF0ZXIgd2UnbGwgdXNlIHRoYXQgaW5zdGVhZC4KCjIwMDgtMTAtMDkgMTU6NDM6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyNi81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiBSZWZhY3RvciBfcHVsbF9yYW5nZSgpIGxvZ2ljIHdpdGggY2hlY2tzIGludG8gYSBzZXBlcmF0ZSBmdW5jdGlvbiB0byBtYWtlIHRoaW5ncyBhIGJpdCBtb3JlIHJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfcHVsbF9yYW5nZSksCgkgIChnc3RfZmx2X2RlbXV4X3B1bGxfdGFnKSwgKGdzdF9mbHZfZGVtdXhfcHVsbF9oZWFkZXIpOgoJICBSZWZhY3RvciBfcHVsbF9yYW5nZSgpIGxvZ2ljIHdpdGggY2hlY2tzIGludG8gYSBzZXBlcmF0ZSBmdW5jdGlvbgoJICB0byBtYWtlIHRoaW5ncyBhIGJpdCBtb3JlIHJlYWRhYmxlLgoKMjAwOC0xMC0wOSAxNToyNjo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDI1LzU3XSBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAoZ3N0X2Zsdl9kZW11eF9jaGFpbiksCgkgIChnc3RfZmx2X2RlbXV4X2Jhc2VfaW5pdCk6CgkgIFVzZSBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKS4KCSAgSWYgd2UgZ2V0IEdTVF9GTE9XX05PVF9MSU5LRUQgaW4gdGhlIHBhcnNlIGxvb3AgYnV0IGF0IGxlYXN0CgkgIG9uZSBvZiB0aGUgcGFkcyBpcyBsaW5rZWQgY29udGludWUgdGhlIGxvb3AuCgoyMDA4LTEwLTA5IDEwOjAwOjUxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBbTU9WRUQgRlJPTSBCQUQgMjQvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogQ29ycmVjdCBjYXBzIGZvciB2aWRlbyBjb2RlYyBpZCA1OiBJdCdzIE9uMiBWUDYgd2l0aCBhbHBoYSBjaGFubmVsIHdoaWNoIG5lZWRzIGEgZGlmZmVyZW50IGRlYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX2F1ZGlvX25lZ290aWF0ZSksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksIChnc3RfZmx2X3BhcnNlX3ZpZGVvX25lZ290aWF0ZSk6CgkgIENvcnJlY3QgY2FwcyBmb3IgdmlkZW8gY29kZWMgaWQgNTogSXQncyBPbjIgVlA2IHdpdGggYWxwaGEgY2hhbm5lbAoJICB3aGljaCBuZWVkcyBhIGRpZmZlcmVudCBkZWNvZGVyIGFuZCBoYXMgZGlmZmVyZW50IGNhcHMuCgkgIEFkZCBzdXBwb3J0IGZvciBhdWRpbyBjb2RlYyBpZCAxNCwgd2hpY2ggaXMgTVAzIHdpdGggOGtIeiBzYW1wbGluZwoJICByYXRlLgoJICBGaXggZW5kaWFubmVzcyBhbmQgc2lnbmVkbmVzcyBmb3IgcmF3IGF1ZGlvIGNvZGVjIGlkcy4KCSAgQWRkIHN1cHBvcnQgZm9yIGFsYXcgYW5kIG11bGF3IGF1ZGlvLgoKMjAwOC0xMC0wOSAwOTo0ODo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgW01PVkVEIEZST00gQkFEIDIzLzU3XSBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IEdvIG91dCBvZiB0aGUgcGFyc2UgbG9vcCBhcyBzb29uIGFzIHdlIGdldCBhbiBlcnJvciBpbnN0ZWFkIG9mIHBhcnNpbmcgdW50aWwgdGhlIEdzdEFkYXB0ZXIgaXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAoZ3N0X2Zsdl9kZW11eF9jaGFpbik6CgkgIEdvIG91dCBvZiB0aGUgcGFyc2UgbG9vcCBhcyBzb29uIGFzIHdlIGdldCBhbiBlcnJvciBpbnN0ZWFkCgkgIG9mIHBhcnNpbmcgdW50aWwgdGhlIEdzdEFkYXB0ZXIgaXMgZW1wdHkuCgkgIEFkZCBzb21lIGV4cGxhbmF0aW9ucyBhYm91dCB0aGUgaGVhZGVyIGFuZCB0YWcgc2l6ZS4KCSAgRG9uJ3QgcHJpbnQgc3luY2hyb25pemluZyBtZXNzYWdlIGlmIGV2ZXJ5dGhpbmcgaXMgZmluZS4KCjIwMDgtMTAtMDkgMDk6MjY6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyMi81N10gZ3N0L2Zsdi86IEFkZCBmaXJzdCB2ZXJzaW9uIG9mIGEgRkxWIG11eGVyLiBUaGUgb25seSBtaXNzaW5nIGZlYXR1cmUgaXMgd3JpdGluZyBvZiBzdHJlYW0gbWV0YWRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9mbHYvZ3N0Zmx2bXV4LmM6IChnc3RfZmx2X211eF9iYXNlX2luaXQpLAoJICAoZ3N0X2Zsdl9tdXhfY2xhc3NfaW5pdCksIChnc3RfZmx2X211eF9pbml0KSwKCSAgKGdzdF9mbHZfbXV4X2ZpbmFsaXplKSwgKGdzdF9mbHZfbXV4X3Jlc2V0KSwKCSAgKGdzdF9mbHZfbXV4X2hhbmRsZV9zcmNfZXZlbnQpLCAoZ3N0X2Zsdl9tdXhfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Zsdl9tdXhfdmlkZW9fcGFkX3NldGNhcHMpLCAoZ3N0X2Zsdl9tdXhfYXVkaW9fcGFkX3NldGNhcHMpLAoJICAoZ3N0X2Zsdl9tdXhfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF9mbHZfbXV4X3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9mbHZfbXV4X3dyaXRlX2hlYWRlciksIChnc3RfZmx2X211eF93cml0ZV9idWZmZXIpLAoJICAoZ3N0X2Zsdl9tdXhfY29sbGVjdGVkKSwgKGdzdF9mbHZfbXV4X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Zsdi9nc3RmbHZtdXguaDoKCSAgQWRkIGZpcnN0IHZlcnNpb24gb2YgYSBGTFYgbXV4ZXIuIFRoZSBvbmx5IG1pc3NpbmcgZmVhdHVyZSBpcyB3cml0aW5nCgkgIG9mIHN0cmVhbSBtZXRhZGF0YS4KCjIwMDgtMDYtMTMgMjI6NDY6NDMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDIxLzU3XSBnc3QvZmx2LzogSW50cm9kdWNlIGRlbXV4aW5nIHN1cHBvcnQgZm9yIEFBQyBhbmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDYtMTQgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiAoZ3N0X2Zsdl9kZW11eF9jbGVhbnVwKSwKCSAgKGdzdF9mbHZfZGVtdXhfZGlzcG9zZSk6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5oOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfYXVkaW9fbmVnb3RpYXRlKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwgKGdzdF9mbHZfcGFyc2VfdmlkZW9fbmVnb3RpYXRlKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKTogSW50cm9kdWNlIGRlbXV4aW5nIHN1cHBvcnQgZm9yIEFBQwoJICBhbmQKCSAgSC4yNjQvQVZDIGluc2lkZSBGTFYuCgkgICogc3lzL2RzaG93ZGVjd3JhcHBlci9nc3Rkc2hvd2F1ZGlvZGVjLmM6CgkgIChnc3RfZHNob3dhdWRpb2RlY19pbml0KSwKCSAgKGdzdF9kc2hvd2F1ZGlvZGVjX2NoYWluKSwgKGdzdF9kc2hvd2F1ZGlvZGVjX3B1c2hfYnVmZmVyKSwKCSAgKGdzdF9kc2hvd2F1ZGlvZGVjX3NpbmtfZXZlbnQpLCAoZ3N0X2RzaG93YXVkaW9kZWNfc2V0dXBfZ3JhcGgpOgoJICAqIHN5cy9kc2hvd2RlY3dyYXBwZXIvZ3N0ZHNob3dhdWRpb2RlYy5oOgoJICAqIHN5cy9kc2hvd2RlY3dyYXBwZXIvZ3N0ZHNob3d2aWRlb2RlYy5jOgoJICAoZ3N0X2RzaG93dmlkZW9kZWNfaW5pdCksCgkgIChnc3RfZHNob3d2aWRlb2RlY19zaW5rX2V2ZW50KSwgKGdzdF9kc2hvd3ZpZGVvZGVjX2NoYWluKSwKCSAgKGdzdF9kc2hvd3ZpZGVvZGVjX3B1c2hfYnVmZmVyKSwKCSAgKGdzdF9kc2hvd3ZpZGVvZGVjX3NyY19nZXRjYXBzKToKCSAgKiBzeXMvZHNob3dkZWN3cmFwcGVyL2dzdGRzaG93dmlkZW9kZWMuaDogTG90IG9mIHJhbmRvbSBmaXhlcwoJICB0byBpbXByb3ZlIHN0YWJpbGl0eSAocmVmIGNvdW50aW5nLCBzYWZldHkgY2hlY2tzLi4uKQoKMjAwOC0wNC0yNSAwODowNzozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAyMC81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiBGb3J3YXJkIHVua25vd24gcXVlcmllcyB1cHN0cmVhbSBpbnN0ZWFkIG9mIHJldHVybmluZyBGQUxTRSBvbiB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X3F1ZXJ5KToKCSAgRm9yd2FyZCB1bmtub3duIHF1ZXJpZXMgdXBzdHJlYW0gaW5zdGVhZCBvZiByZXR1cm5pbmcgRkFMU0Ugb24gdGhlbS4KCjIwMDgtMDQtMTEgMjM6MTk6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTkvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogSGFuZGxlIE5VTEwgcmV0dXJucyBmcm9tIEZMVl9HRVRfU1RSSU5HKCkgbW9yZSBncmFjZWZ1bGx5LiBGaXhlcyBjcmFzaCBjYXVzZWQgYnkgYSBzdHJsZW4gb24gYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX21ldGFkYXRhX2l0ZW0pLAoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfc2NyaXB0KToKCSAgSGFuZGxlIE5VTEwgcmV0dXJucyBmcm9tIEZMVl9HRVRfU1RSSU5HKCkgbW9yZSBncmFjZWZ1bGx5LiBGaXhlcwoJICBjcmFzaCBjYXVzZWQgYnkgYSBzdHJsZW4gb24gYSBOVUxMIHN0cmluZyAoIzUyNzYyMikuCgoyMDA3LTEyLTExIDExOjU0OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDE4LzU3XSBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IERvbid0IHN0cmR1cCAoYW5kIHRodXMgbGVhaykgY29kZWMgbmFtZSBzdHJpbmdzIHdoZW4gcGFzc2luZyB0aGVtIHRvIGdzdF90YWdfbGlzdF9hZGQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiAoZ3N0X2Zsdl9wYXJzZV90YWdfYXVkaW8pLAoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfdmlkZW8pOgoJICBEb24ndCBzdHJkdXAgKGFuZCB0aHVzIGxlYWspIGNvZGVjIG5hbWUgc3RyaW5ncyB3aGVuIHBhc3NpbmcKCSAgdGhlbSB0byBnc3RfdGFnX2xpc3RfYWRkKCkuCgoyMDA3LTEyLTA5IDE5OjM3OjUzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgW01PVkVEIEZST00gQkFEIDE3LzU3XSBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IEZpeCBsaXN0IG9mIHN1cHBvcnRlZCBhbmQga25vd24gY29kZWNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyk6CgkgIEZpeCBsaXN0IG9mIHN1cHBvcnRlZCBhbmQga25vd24gY29kZWNzLgoJICBFbWl0IHRhZyB3aXRoIHRoZSBjb2RlYyBuYW1lIHNvIGl0IGdldHMgcHJvcGVybHkgcmVwb3J0ZWQgaW4gdG90ZW0gYW5kCgkgIG90aGVyIGFwcGxpY2F0aW9ucy4KCjIwMDctMTEtMjUgMTA6NDU6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTYvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogT3V0cHV0IHNlZ21lbnQgd2l0aCBwcm9wZXIgJ3N0b3AnIHZhbHVlLCBtYWtlcyBmbHZkZW11eCAxMDAlIGNvbXBhdGlibGUgd2l0aCBnbm9ubGluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyk6CgkgIE91dHB1dCBzZWdtZW50IHdpdGggcHJvcGVyICdzdG9wJyB2YWx1ZSwgbWFrZXMgZmx2ZGVtdXggMTAwJSBjb21wYXRpYmxlCgkgIHdpdGggZ25vbmxpbi4KCjIwMDctMTEtMTIgMTk6MjI6MjQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTUvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogQWRkIG1hcHBpbmcgZm9yIE5lbGx5bW9zZXIgQVNBTyBhdWRpbyBjb2RlYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOgoJICBBZGQgbWFwcGluZyBmb3IgTmVsbHltb3NlciBBU0FPIGF1ZGlvIGNvZGVjLgoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfYXVkaW8pLCAoZ3N0X2Zsdl9wYXJzZV90YWdfdmlkZW8pOiBNYWtlIHN1cmUgd2UKCSAgYWN0dWFsbHkgaGF2ZSBkYXRhIHRvIHJlYWQgYXQgdGhlIGVuZCBvZiB0aGUgdGFnLiBUaGlzIGF2b2lkcyB0cnlpbmcKCSAgdG8gYWxsb2NhdGUgbmVnYXRpdmUgYnVmZmVycy4KCjIwMDctMTAtMjIgMTU6NDU6NDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDE0LzU3XSBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IERvbid0IGVtaXQgbm8tbW9yZS1wYWRzIGZvciBzaW5nbGUgcGFkIHNjZW5hcmlvcyBhcyB0aGUgaGVhZGVyIGlzIGRlZmluaXRlbHkgbm90IHJlbGlhYmxlLiBXZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTAtMjIgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyksIChnc3RfZmx2X3BhcnNlX3RhZ190eXBlKTogRG9uJ3QKCSAgZW1pdCBuby1tb3JlLXBhZHMgZm9yIHNpbmdsZSBwYWQgc2NlbmFyaW9zIGFzIHRoZSBoZWFkZXIKCSAgaXMgZGVmaW5pdGVseSBub3QgcmVsaWFibGUuIFdlIGVtaXQgdGhlbSBmb3IgMiBwYWRzIHNjZW5hcmlvcwoJICB0aG91Z2ggdG8gc3BlZWQgdXAgbWVkaWEgZGlzY292ZXJ5LgoKMjAwNy0wOS0yNyAxMDowNjoyMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTMvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogSSBnb3QgaXQgd3JvbmcgYWdhaW4sIGF1ZGlvIHJhdGUgd2FzIG5vdCBkZXRlY3RlZCBjb3JyZWN0bHkgaW4gYWxsIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOS0yNyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKTogSSBnb3QgaXQgd3JvbmcgYWdhaW4sIGF1ZGlvIHJhdGUKCSAgd2FzIG5vdCBkZXRlY3RlZCBjb3JyZWN0bHkgaW4gYWxsIGNhc2VzLgoKMjAwNy0wOS0yNiAxNjozMDo1MCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTIvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogY29kZWNfZGF0YSBpcyBuZWVkZWQgZm9yIGV2ZXJ5IHRhZyBub3QganVzdCB0aGUgZmlyc3Qgb25lLiAoRml4IGEgc3R1cGlkIGJ1ZyBpIGludHJvZHVjZWQgd2l0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOS0yNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKTogY29kZWNfZGF0YSBpcyBuZWVkZWQgZm9yIGV2ZXJ5IHRhZwoJICBub3QganVzdCB0aGUgZmlyc3Qgb25lLiAoRml4IGEgc3R1cGlkIGJ1ZyBpIGludHJvZHVjZWQgd2l0aG91dAoJICB0ZXN0aW5nKQoKMjAwNy0wOS0yNiAxMToxNzowOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMTEvNTddIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogRml4IGJpdCBtYXNrcyBvcGVyYXRpb25zIHRvIGJlIHN1cmUgd2UgZGV0ZWN0IHRoZSBjb2RlY190YWdzIGFuZCBzYW1wbGUgcmF0ZXMgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOS0yNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKTogRml4IGJpdCBtYXNrcyBvcGVyYXRpb25zIHRvIGJlCgkgIHN1cmUgd2UgZGV0ZWN0IHRoZSBjb2RlY190YWdzIGFuZCBzYW1wbGUgcmF0ZXMgY29ycmVjdGx5LgoJICBGaXggcmF3IGF1ZGlvIGNhcHMgZ2VuZXJhdGlvbi4KCjIwMDctMDktMTIgMDg6Mzg6MjIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgW01PVkVEIEZST00gQkFEIDEwLzU3XSBnc3QvOiBQcmludGYgZm9ybWF0IGZpeGVzICgjNDc2MTI4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgIDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5jOgoJICBQcmludGYgZm9ybWF0IGZpeGVzICgjNDc2MTI4KS4KCjIwMDctMDgtMjcgMTQ6NTY6MDUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDA5LzU3XSBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IE1ha2Ugc3VyZSB3ZSBpbml0aWFsaXplIHRoZSBzZWVrIHJlc3VsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDgtMjcgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X2hhbmRsZV9zZWVrX3B1bGwpOgoJICBNYWtlIHN1cmUgd2UgaW5pdGlhbGl6ZSB0aGUgc2VlayByZXN1bHQuCgoyMDA3LTA4LTI0IDE3OjAzOjE1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAwOC81N10gZ3N0L2Zsdi9nc3RmbHZkZW11eC5jOiBSZW1vdmUgc29tZSB1c2VsZXNzIGlmZGVmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0yNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfZmx1c2gpLAoJICAoZ3N0X2Zsdl9kZW11eF9jaGFpbiksIChnc3RfZmx2X2RlbXV4X3B1bGxfdGFnKSwKCSAgKGdzdF9mbHZfZGVtdXhfZmluZF9vZmZzZXQpLCAoZ3N0X2Zsdl9kZW11eF9oYW5kbGVfc2Vla19wdXNoKSwKCSAgKGdzdF9mbHZfZGVtdXhfaGFuZGxlX3NlZWtfcHVsbCksIChnc3RfZmx2X2RlbXV4X3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Zsdl9kZW11eF9zcmNfZXZlbnQpOiBSZW1vdmUgc29tZSB1c2VsZXNzIGlmZGVmLgoKMjAwNy0wOC0yNCAxNTozMToyNiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMDcvNTddIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogSW1wbGVtZW50IHNlZWtpbmcgaW4gcHVzaCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0yNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfZmx1c2gpLAoJICAoZ3N0X2Zsdl9kZW11eF9jbGVhbnVwKSwgKGdzdF9mbHZfZGVtdXhfY2hhaW4pLAoJICAoZ3N0X2Zsdl9kZW11eF9wdWxsX3RhZyksIChnc3RfZmx2X2RlbXV4X2ZpbmRfb2Zmc2V0KSwKCSAgKGdzdF9mbHZfZGVtdXhfaGFuZGxlX3NlZWtfcHVzaCksCgkgIChnc3RfZmx2X2RlbXV4X2hhbmRsZV9zZWVrX3B1bGwpLAoJICAoZ3N0X2Zsdl9kZW11eF9zaW5rX2V2ZW50KSwgKGdzdF9mbHZfZGVtdXhfc3JjX2V2ZW50KTogSW1wbGVtZW50CgkgIHNlZWtpbmcgaW4gcHVzaCBtb2RlLgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCjIwMDctMDgtMjIgMTQ6NTA6NTEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDA2LzU3XSBnc3QvZmx2LzogSGFuZGxlIHBpeGVsIGFzcGVjdCByYXRpbyB0aHJvdWdoIG1ldGFkYXRhIHRhZ3MgbGlrZSBBU0YgZG9lcy4gRmx1ZW5kbyBtdXhlciBzdXBwb3J0cyB0aGlzIGFuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0yMiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfY2xlYW51cCksCgkgIChnc3RfZmx2X2RlbXV4X3B1bGxfdGFnKToKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiAoZ3N0X2Zsdl9wYXJzZV9tZXRhZGF0YV9pdGVtKSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX3NjcmlwdCksIChnc3RfZmx2X3BhcnNlX3RhZ19hdWRpbyksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ192aWRlbyk6IEhhbmRsZSBwaXhlbCBhc3BlY3QgcmF0aW8gdGhyb3VnaAoJICBtZXRhZGF0YSB0YWdzIGxpa2UgQVNGIGRvZXMuIEZsdWVuZG8gbXV4ZXIgc3VwcG9ydHMgdGhpcyBhbmQKCSAgRmxhc2ggcGxheWVycyBjYW4gc3VwcG9ydCBpdCBhcyB3ZWxsIHRoaXMgd2F5LgoKMjAwNy0wOC0yMiAxNDowMzo0MiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMDUvNTddIGdzdC9mbHYvOiBNYWtlIHN1cmUgd2UgZG9uJ3QgdHJ5IGZpbGxpbmcgdXAgdGhlIGluZGV4IGlmIG5vIHRpbWVzIG9iamVjdCB3YXMgcGFyc2VkLiBGaXggdGhlIHdheSB3ZSBkZWNpZGUgdG8gcHVzaCB0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wOC0yMiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfcHVsbF90YWcpOgoJICAqIGdzdC9mbHYvZ3N0Zmx2cGFyc2UuYzogKGdzdF9mbHZfcGFyc2VfbWV0YWRhdGFfaXRlbSksCgkgIChnc3RfZmx2X3BhcnNlX3RhZ19zY3JpcHQpLCAoZ3N0X2Zsdl9wYXJzZV90YWdfYXVkaW8pLAoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfdmlkZW8pOiBNYWtlIHN1cmUgd2UgZG9uJ3QgdHJ5IGZpbGxpbmcgdXAgdGhlCgkgIGluZGV4IGlmIG5vIHRpbWVzIG9iamVjdCB3YXMgcGFyc2VkLiBGaXggdGhlIHdheSB3ZSBkZWNpZGUgdG8KCSAgcHVzaAoJICB0YWdzIGFuZCBlbWl0IG5vLW1vcmUtcGFkcy4gRml4IHNvbWUgcHJpbnRmIHR5cGluZyBpbiBkZWJ1Z2dpbmcuCgoyMDA3LTA4LTE0IDE0OjU2OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgW01PVkVEIEZST00gQkFEIDA0LzU3XSBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IEZpeCBsb2NraW5nIGFuZCByZWZjb3VudGluZyBvbiB0aGUgaW5kZXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfc2V0X2luZGV4KSwKCSAgKGdzdF9mbHZfZGVtdXhfZ2V0X2luZGV4KToKCSAgRml4IGxvY2tpbmcgYW5kIHJlZmNvdW50aW5nIG9uIHRoZSBpbmRleC4KCjIwMDctMDgtMTQgMTQ6MjI6MDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgW01PVkVEIEZST00gQkFEIDAzLzU3XSBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IEZpcnN0IG1ldGhvZCBmb3Igc2Vla2luZyBpbiBwdWxsIG1vZGUgdXNpbmcgdGhlIGluZGV4IGJ1aWx0IHN0ZXAgYnkgc3RlcCBvciBjb21pbmcgZnJvbSBtZXRhZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDgtMTQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4LmM6IChnc3RfZmx2X2RlbXV4X2NsZWFudXApLAoJICAoZ3N0X2Zsdl9kZW11eF9hZGFwdGVyX2ZsdXNoKSwgKGdzdF9mbHZfZGVtdXhfY2hhaW4pLAoJICAoZ3N0X2Zsdl9kZW11eF9wdWxsX3RhZyksIChnc3RfZmx2X2RlbXV4X2RvX3NlZWspLAoJICAoZ3N0X2Zsdl9kZW11eF9oYW5kbGVfc2VlayksIChnc3RfZmx2X2RlbXV4X3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Zsdl9kZW11eF9zcmNfZXZlbnQpLCAoZ3N0X2Zsdl9kZW11eF9xdWVyeSksCgkgIChnc3RfZmx2X2RlbXV4X2NoYW5nZV9zdGF0ZSksIChnc3RfZmx2X2RlbXV4X3NldF9pbmRleCksCgkgIChnc3RfZmx2X2RlbXV4X2dldF9pbmRleCksIChnc3RfZmx2X2RlbXV4X2Rpc3Bvc2UpLAoJICAoZ3N0X2Zsdl9kZW11eF9jbGFzc19pbml0KTogRmlyc3QgbWV0aG9kIGZvciBzZWVraW5nIGluIHB1bGwKCSAgbW9kZSB1c2luZyB0aGUgaW5kZXggYnVpbHQgc3RlcCBieSBzdGVwIG9yIGNvbWluZyBmcm9tIG1ldGFkYXRhLgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChGTFZfR0VUX1NUUklORyksCgkgIChnc3RfZmx2X3BhcnNlX21ldGFkYXRhX2l0ZW0pLCAoZ3N0X2Zsdl9wYXJzZV90YWdfc2NyaXB0KSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKTogUGFyc2UKCSAgbW9yZSBtZXRhZGF0YSB0eXBlcyBhbmQga2V5ZnJhbWVzIGluZGV4LgoKMjAwNy0wNy0yNSAxMzoyOTowNCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBbTU9WRUQgRlJPTSBCQUQgMDIvNTddIGdzdC9mbHYvOiBIYW5kbGUgbm90IGxpbmtlZCBwYWRzLCB0cnkgdG8gbWFrZSBpdCByZXVzYWJsZSwgbW9yZSBzYWZldHkgY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNy0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAoZ3N0X2Zsdl9kZW11eF9jaGFpbiksIChnc3RfZmx2X2RlbXV4X3B1bGxfdGFnKSwKCSAgKGdzdF9mbHZfZGVtdXhfY2hhbmdlX3N0YXRlKSwgKGdzdF9mbHZfZGVtdXhfZGlzcG9zZSksCgkgIChnc3RfZmx2X2RlbXV4X2luaXQpOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguaDoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6IChGTFZfR0VUX1NUUklORyksCgkgIChnc3RfZmx2X3BhcnNlX21ldGFkYXRhX2l0ZW0pLCAoZ3N0X2Zsdl9wYXJzZV90YWdfc2NyaXB0KSwKCSAgKGdzdF9mbHZfcGFyc2VfdGFnX2F1ZGlvKSwgKGdzdF9mbHZfcGFyc2VfdGFnX3ZpZGVvKSwKCSAgKGdzdF9mbHZfcGFyc2VfaGVhZGVyKToKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmg6IEhhbmRsZSBub3QgbGlua2VkIHBhZHMsIHRyeSB0byBtYWtlIGl0CgkgIHJldXNhYmxlLCBtb3JlIHNhZmV0eSBjaGVja3MuCgoyMDA3LTA3LTE5IDE1OjA1OjMwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIFtNT1ZFRCBGUk9NIEJBRCAwMS81N10gQWRkcyBhIGZpcnN0IGRyYWZ0IG9mIGFuIEZMViBkZW11eGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNy0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZmx2L01ha2VmaWxlLmFtOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzogKGdzdF9mbHZfZGVtdXhfZmx1c2gpLAoJICAoZ3N0X2Zsdl9kZW11eF9jbGVhbnVwKSwgKGdzdF9mbHZfZGVtdXhfY2hhaW4pLAoJICAoZ3N0X2Zsdl9kZW11eF9wdWxsX3RhZyksIChnc3RfZmx2X2RlbXV4X3B1bGxfaGVhZGVyKSwKCSAgKGdzdF9mbHZfZGVtdXhfc2Vla190b19wcmV2X2tleWZyYW1lKSwgKGdzdF9mbHZfZGVtdXhfbG9vcCksCgkgIChnc3RfZmx2X2RlbXV4X3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Zsdl9kZW11eF9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Zsdl9kZW11eF9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Zsdl9kZW11eF9zaW5rX2V2ZW50KSwKCSAgKGdzdF9mbHZfZGVtdXhfY2hhbmdlX3N0YXRlKSwgKGdzdF9mbHZfZGVtdXhfZGlzcG9zZSksCgkgIChnc3RfZmx2X2RlbXV4X2Jhc2VfaW5pdCksIChnc3RfZmx2X2RlbXV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zsdl9kZW11eF9pbml0KSwgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvZmx2L2dzdGZsdmRlbXV4Lmg6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5jOiAoRkxWX0dFVF9CRVVJMjQpLCAoRkxWX0dFVF9TVFJJTkcpLAoJICAoZ3N0X2Zsdl9kZW11eF9xdWVyeV90eXBlcyksIChnc3RfZmx2X2RlbXV4X3F1ZXJ5KSwKCSAgKGdzdF9mbHZfcGFyc2VfbWV0YWRhdGFfaXRlbSksIChnc3RfZmx2X3BhcnNlX3RhZ19zY3JpcHQpLAoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfYXVkaW8pLCAoZ3N0X2Zsdl9wYXJzZV90YWdfdmlkZW8pLAoJICAoZ3N0X2Zsdl9wYXJzZV90YWdfdHlwZSksIChnc3RfZmx2X3BhcnNlX2hlYWRlcik6CgkgICogZ3N0L2Zsdi9nc3RmbHZwYXJzZS5oOiBBZGRzIGEgZmlyc3QgZHJhZnQgb2YgYW4gRkxWIGRlbXV4ZXIuCgkgIEl0IGRvZXMgbm90IGRvIHNlZWtpbmcgeWV0LCBpdCBzdXBwb3J0cyBwdWxsIGFuZCBwdXNoIG1vZGUgc28KCSAgWUVTCgkgIHlvdSBjYW4gdXNlIGl0IHRvIHBsYXkgeW91dHViZSB2aWRlb3MgZGlyZWN0bHkgZnJvbSBhbiBIVFRQIHVyaS4KCSAgTm90IHNvIG11Y2ggdGVzdGluZyBkb25lIHlldCBidXQgaXQgcGFyc2VzIG1ldGFkYXRhLCByZXBseSB0bwoJICBkdXJhdGlvbiBxdWVyaWVzLCBldGMuLi4KCjIwMDktMDUtMTIgMTM6MDA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgcnRwOiBMaW5rIHRvIC1sbQoJICBGaXhlcyBidWcgIzU4MjI4MS4KCjIwMDktMDUtMTIgMTE6MTY6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOgoJICByZ2FuYWx5c2lzOiBSZW1vdmUgaW52YWxpZCB1bml0IHRlc3QKCSAgVGhlIHRlc3QgY3JlYXRlcyBidWZmZXJzIHdpdGggbm9uLXNpbGVuY2UsIHNldHMgdGhlIEdBUAoJICBmbGFnIG9uIGl0IGFuZCBleHBlY3RzIHJnYW5hbHlzaXMgdG8gaWdub3JlIHRoZSBjb250ZW50IGFuZCBhc3N1bWUgc2lsZW5jZS4KCSAgVGhhdCdzIG5vdCB0aGUgd2F5IGhvdyBHQVAgYnVmZmVycyBzaG91bGQgYmUgdXNlZCwgaWYgdGhlIEdBUCBmbGFnIGlzIHNldAoJICBlbGVtZW50cyAqY2FuKiBhc3N1bWUgdGhhdCB0aGV5IG9ubHkgY29udGFpbiBzaWxlbmNlIGJ1dCB0aGV5J3JlIG5vdCAqcmVxdWlyZWQqCgkgIHRvIGFzc3VtZSB0aGF0LiBUaGUgR0FQIGZsYWcgbXVzdCBvbmx5IGJlIHNldCBvbiBzaWxlbmNlIGJ1ZmZlcnMuCgkgIEZpeGVzIGJ1ZyAjNTgyMjUyLgoKMjAwOS0wNS0xMiAwMDo0ODo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9tdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjE0LjIgcHJlLXJlbGVhc2UKCjIwMDktMDUtMTEgMjM6MTM6MjAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2ZpbGVzL01ha2VmaWxlLmFtOgoJICBjaGVja3M6IGRpc3QgaWQzLTU3NzQ2OC11bnN5bmNlZC10YWcudGFnIHRlc3QgZmlsZQoKMjAwOS0wNS0xMSAyMTowMjoyNyArMDIwMCAgVHJpc3RhbiBNYXR0aGV3cyA8bGUuYnVzaW5lc3NtYW4gYXQgZ21haWwuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogaW5pdGlhbGl6ZSB2YXJpYWJsZSB0byAwCgkgIEZpeGVzICM1ODIyMTguCgoyMDA5LTA1LTExIDE4OjIxOjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBPbmx5IHNlYXJjaCBmb3IgdGhlIGluZGV4IGVudHJ5IG9uY2UKCjIwMDktMDUtMTEgMTg6MTg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFVzZSB0aGUgZmlyc3QgaW5kZXggZW50cnkgaWYgaXQncyBhZnRlciB0aGUgc2VlayBwb3NpdGlvbgoKMjAwOS0wNS0xMSAxODoxNToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBVc2UgdGhlIGZpcnN0IGVudHJ5IGZvciBhIGdpdmVuIHN0cmVhbSBpZiB0aGUgZmlyc3QgZW50cnkgaXMgYWZ0ZXIgdGhlIHNlZWsgcG9zaXRpb24KCjIwMDktMDUtMTEgMTY6NTA6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogVXNlIGJpbmFyeSBzZWFyY2ggZm9yIGZpbmRpbmcgdGhlIHJlcXVlc3RlZCBpbmRleCBlbnRyeSB3aGVuIHNlZWtpbmcKCjIwMDktMDUtMTEgMTU6MzY6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgbWF0cm9za2FkZW11eDogSW1wcm92ZS9vcHRpbWl6ZSBzZWVraW5nCgkgIEZpcnN0IG9mIGFsbCBhIGtleWZyYW1lIHNlZWsgc2hvdWxkIGJlIGRvbmUgdG8gdGhlCgkgIGtleWZyYW1lIHJpZ2h0IGJlZm9yZSB0aGUgcmVxdWVzdGVkIHBvc2l0aW9uIGFuZCBub3QKCSAgdG8gdGhlIGtleWZyYW1lIHRoYXQgaXMgbmVhcmVzdCB0byB0aGUgcmVxdWVzdGVkIHBvc2l0aW9uLgoJICBVc2UgcGVyIHRyYWNrIGluZGV4IGFycmF5cyBhbmQgdXNlIG91ciBuZXcgYmluYXJ5IHNlYXJjaCBmdW5jdGlvbgoJICBmcm9tIGNvcmUgdG8gc3BlZWQgdXAgdGhlIHNlYXJjaC4KCjIwMDktMDUtMTEgMTU6MzY6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIHJlbGVhc2VkIHZlcnNpb25zIG9mIGNvcmUvYmFzZQoKMjAwOS0wNS0xMSAxMDoxNTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ2RrcGl4YnVmOiBVc2UgdGhlIGxpYnMgYW5kIGNmbGFncyBvZiBnZGsgcGl4YnVmIGluc3RlYWQgb2YgZ3RrCgkgIFRoaXMgZml4ZXMgdGhlIGJ1aWxkIGlmIGdkay1waXhidWYgaXMgZm91bmQgYnV0IGd0ayBpc24ndAoKMjAwOS0wNS0xMSAwOTo1ODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEFsd2F5cyBkZWZpbmUgdGhlIGNvbmRpdGlvbmFsIEhBVkVfR1RLIHRvIGZpeCBjb25maWd1cmUgaW4gc29tZSBjYXNlcwoKMjAwOS0wNS0xMCAxMToxNzoyMyArMDIwMCAgTWFyYy1BbmRyZSBMdXJlYXUgPG1hcmNhbmRyZS5sdXJlYXVAZ21haWwuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgUnVuIGxpYnRvb2xpemUgYmVmb3JlIGFjbG9jYWwKCSAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgaW4gc29tZSBjYXNlcy4gRml4ZXMgYnVnICM1ODIwMjEKCjIwMDktMDUtMDkgMTA6NTA6NDUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thOiBmaXggcHJpbnRmIGZvcm1hdCB0byBhZ3JlZSB3aXRoIGFyZ3VtZW50CgoyMDA5LTA1LTA4IDE5OjQyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkgIHJhdzEzOTQ6IGluY2x1ZGUgc3RkbGliLmggZm9yIHN0cnRvbCgpCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmcgd2hlbiBjb21waWxpbmcgd2l0aCB4bWwgc3R1ZmYgaW4gY29yZSBkaXNhYmxlZC4KCjIwMDktMDUtMDggMTY6NDA6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IEFjdHVhbGx5IG91dHB1dCB0aGUgcGVuZGluZyBidWZmZXIuLiBhbmQgbm90IGEgYmxhbmsgb25lLgoJICBJdCB3YXMgcHJldmlvdXNseSBzZW5kaW5nIHRoZSBib2d1cyBidWZmZXIgd2hpY2ggd2FzIHJldHVybmVkIGZyb20KCSAgdGhlIGJ1ZmZlcmFsbG9jIChyZXF1aXJlZCBmb3IgcmV2ZXJzZSBuZWdvdGlhdGlvbiBhcHBhcmVudGx5KSBpbnN0ZWFkCgkgIG9mIHRoZSBwZW5kaW5nIGJ1ZmZlci4KCjIwMDktMDUtMDggMTI6MDA6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgc291cGh0dHBzcmM6IEFsbG93IG5vbi1zdHJpbmcgZmllbGRzIGluIHRoZSBleHRyYS1oZWFkZXJzIHByb3BlcnR5CgoyMDA5LTA1LTA4IDExOjM1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGoya2RlcGF5Lmg6CgkgIHJ0ajJrZGVwYXk6IGFkZCBiYXNpYyBKUEVHIDIwMDAgZGVwYXlsb2FkZXIKCjIwMDktMDUtMDggMTE6MzE6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGoya3BheS5jOgoJICBydHBqMmtwYXk6IHNldCBtYXJrZXIgYml0IGNvcnJlY3RseQoKMjAwOS0wNS0wOCAxMToyOTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBzb3VwaHR0cHNyYzogQWRkIHN1cHBvcnQgZm9yIGV4dHJhLWhlYWRlcnMgYXBwZW5kZWQgdG8gdGhlIEhUVFAgcmVxdWVzdAoJICBUaGlzIGFsbG93cyB0byBzZXQgdGhlIFJlZmVyZXIgaGVhZGVyIGFtb25nIG90aGVyIHRoaW5ncyBieQoJICBhZGRpbmcgYSAiZXh0cmEtaGVhZGVycyIgcHJvcGVydHkgdGhhdCB0YWtlcyBhIEdzdFN0cnVjdHVyZQoJICB3aXRoIGZpZWxkPXN0cmluZyBwYWlycy4KCSAgRml4ZXMgYnVnICM1ODE4MDYuCgoyMDA5LTA1LTA4IDEwOjM4OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqMmtwYXkuaDoKCSAgcnRwajJrcGF5OiBhZGQgYSBzaW1wbGUgSlBFRyAyMDAwIHBheWxvYWRlcgoKMjAwOS0wNS0wOCAxMDozMToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJICBydHBqcGVncGF5OiB3ZSBvbmx5IG5lZWQgdG8gc3dhcCBiaXRzIG9uIExFCgoyMDA5LTA1LTA3IDE4OjEwOjA4ICswMTAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZmxhYy9nc3RmbGFjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWcuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmcuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgQWRkIFJBTktTIGZvciB2YXJpb3VzIGVuY29kZXJzIGFuZCBtdXhlcnMKCjIwMDktMDUtMDcgMTc6MDk6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgbWF0cm9za2FkZW11eDogYWRkIHNvbWUgZGVidWdnaW5nCgoyMDA5LTA1LTA3IDE1OjU4OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IHBhcnNlIHhpcGggaGVhZGVycyBsZW5ndGggY29ycmVjdGx5CgkgIFNlZSAjNTgwOTgwCgoyMDA5LTA1LTA3IDE2OjI1OjQxICswMjAwICBHYWJyaWVsIEJvdXZpZ25lIDxib3V2aWduZUBtcDMtdGVjaC5vcmc+CgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuaDoKCSogZ3N0L3JlcGxheWdhaW4vcmdhbmFseXNpcy5jOgoJKiBnc3QvcmVwbGF5Z2Fpbi9yZ2FuYWx5c2lzLmg6CgkgIHJnYW5hbHlzaXM6IEFkZCBhYmlsaXR5IHRvIHBvc3QgbGV2ZWwgbWVzc2FnZXMKCSAgRml4ZXMgYnVnICM1ODE1NjguCgoyMDA5LTA1LTA2IDIzOjU2OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIHJ0cGpwZWdwYXk6IHJlZnVzZSBzb21lIHVuc3VwcG9ydGVkIGpwZWcgZm9ybWF0cwoKMjAwOS0wNS0wNiAxODowNjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgIHJ0cHRoZW9yYXBheTogZml4IGRlc2NyaXB0aW9uCgoyMDA5LTA1LTA2IDE2OjA5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIHJ0cGpwZWdwYXk6IHJld3JpdGUgcXVhbnQgdGFibGUgaGFuZGxpbmcKCSAgUmV3cml0ZSB0aGUgcXVhbnQgdGFibGUgcGFyc2luZyB0byBhbHNvIGhhbmRsZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIEpQRUcgSERRCgkgIHNlZ21lbnQuCgkgIEhhbmRsZSBtb3JlIGpwZWcgdHlwZXMgYnkga2VlcGluZyB0cmFjayBvZiB0aGUgdGFibGVzIHVzZWQgcGVyIGNvbXBvbmVudCBhbmQKCSAgcHV0dGluZyB0aGUgdXNlZCBvbmVzIGluIHRoZSBxdWFudCBoZWFkZXJzLgoKMjAwOS0wNC0xOCAxNzoyMzo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzoKCSAgaWQzdjJtdXg6IE1ha2UgdGhlIHRlc3QgZmFpbHVyZSBzbGlnaHRseSBtb3JlIGluZm9ybWF0aXZlCgoyMDA5LTA0LTIwIDE4OjMzOjA5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWM6IE1ha2UgYnVmZmVycyBjcmVhdGVkIGR1cmluZyBzZWVrIGFjdCBsaWtlIG5vcm1hbCBidWZmZXJzLgoJICBTdG9yZSB0aGUgb2Zmc2V0IGFuZCBjYXBzIHdoZW4gYWxsb2NhdGluZyBhIGJ1ZmZlciBkdXJpbmcgc2Vla2luZywgYW5kIHRoZW4KCSAgYWxsb2NhdGUgYSBuZXcgYnVmZmVyIHdpdGggYnVmZmVyX2FsbG9jIGJlZm9yZSB3ZSBwdXNoIGl0IG91dC4gVGhpcyBlbnN1cmVzCgkgIHRoYXQgaW4gYWxsIHJlc3BlY3RzIHRoZSBmaXJzdCBidWZmZXIgZGVjb2RlZCBkdXJpbmcgc2Vla2luZyBiZWhhdmVzIGxpa2UKCSAgYWxsIG90aGVyIGJ1ZmZlcnMsIGluY2x1ZGluZyBhbGxvd2luZyBkb3duc3RyZWFtIHJlLW5lZ290aWF0aW9uLgoKMjAwOS0wNC0xOCAxODowMDo1NCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGZsYWNkZWM6IGRvbid0IHVzZSBwYWRfYWxsb2Mgd2hlbiBkZWNvZGluZyB3aGlsZSBzZWVraW5nLiBGaXhlcyAjNTc5NDIyCgoyMDA5LTA1LTA2IDEzOjIyOjUxICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IHJlZmFjdG9yZWQgZ3N0X2pwZWdfZGVjX3BhcnNlX2ltYWdlX2RhdGEKCSAgRml4ZXMgIzU3OTgwOAoKMjAwOS0wNS0wNiAxMzoxMTo1MyArMDIwMCAgQXJub3V0IFZhbmRlY2FwcGVsbGUgPGFybm91dEBtaW5kLmJlPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBqcGVnZGVjOiBzdXBwb3J0IGFkZGl0aW9uYWwgMHhmZiBiZWZvcmUgZW5kIG1hcmtlci4KCSAgSlBFRyBtYXJrZXJzIG1heSBiZSBwcmVjZWRlZCBieSBhZGRpdGlvbmFsIDB4ZmYuICBqcGVnZGVjIHNob3VsZAoJICBza2lwIG92ZXIgdGhlc2UsIGV2ZW4gYmVmb3JlIHRoZSBlbmQgbWFya2VyLgoJICBTZWUgIzU3OTgwOAoKMjAwOS0wNS0wNiAxMjo1NDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5jOgoJICBydHBqcGVncGF5OiBoYW5kbGUgaW5wdXQgd2l0aCAxIHF1YW50IHRhYmxlCgkgIEFsc28gaGFuZGxlIGlucHV0IHdpdGgganVzdCBvbmUgcXVhbnQgdGFibGUsIHNpbXBseSBkdXBsaWNhdGUgdGhlIHF1YW50IHRhYmxlLgoJICBIYW5kbGUgaW52YWxpZCBTT0YgY29ycmVjdGx5IGFuZCBzb21lIHNtYWxsIGNsZWFudXBzLgoJICBGaXhlcyAjNTc4MjU3CgoyMDA5LTA0LTI5IDE1OjU4OjEwICswMzAwICBNYXJjbyBCYWxsZXNpbyA8bWFyY28uYmFsbGVzaW9Abm9raWEuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBmaXggYnl0ZSBvcmRlciBzd2FwcGluZyBpbiAzR1BQIGNsYXNzaWZpY2F0aW9uIGVudGl0eSB0YWcKCSAgRml4ZXMgIzU4MDc0Ni4KCjIwMDktMDUtMDUgMTc6MDc6MTMgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSAgbXVsdGlwYXJ0ZGVtdXg6IGF2b2lkIHJlYWRpbmcgZnJvbSBpbmF2bGlkIG1lbW9yeQoJICBSZWFkIHRoZSB0aW1lc3RhbXAgb2YgdGhlIGluY29tbWluZyBidWZmZXIgYmVmb3JlIHdlIHB1c2ggaXQgaW4gdGhlIGFkYXB0ZXIgYW5kCgkgIGZsdXNoIGl0IG91dCBhZ2FpbiBhcyB0aGUgYnVmZmVyIG1pZ2h0IGJlIHVucmVmZmVkIHRoZW4gYW5kIHdlIHJlYWQgZnJvbSBpbnZhbGlkCgkgIG1lbW9yeS4KCSAgRml4ZXMgIzU4MTQ0NC4KCjIwMDktMDUtMDUgMTc6MDM6MjkgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSAgbXVsdGlwYXJ0ZGVtdXg6IGRvbid0IGxlYWsgZHluYW1pYyBwYWRzCgkgIEZyZWUgdGhlIGR5bmFtaWMgcGFkcyBkYXRhIGluIGZpbmFsaXplLgoJICBGaXhlcyAjNTgxNDMyCgoyMDA5LTA1LTA1IDE2OjMyOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwanBlZ3BheS5oOgoJICBydHBqcGVncGF5OiBjb3JyZWN0bHkgc2V0IHRoZSB0eXBlIGhlYWRlcgoJICBEb24ndCByZXF1aXJlIHdpZHRoL2hlaWdodCBvbiB0aGUgY2Fwcy4gVXNlIHRoZSBTT0YgaGVhZGVyIHRvIGZpbmQgd2lkdGgvaGVpZ2h0CgkgIGFuZCBmYWxsIGJhY2sgdG8gdGhlIGNhcHMgaWYgdGhlcmUgaXMgbm8gU09GLiBBbHNvIHVzZSB0aGUgU09GIGluZm8gdG8gZmluZCB0aGUKCSAgc3Vic2FtcGxpbmcgYW5kIHF1YW50aXphdGlvbiB0YWJsZXMgdXNlZC4gVGhpcyBhbGxvd3MgdXMgdG8gc2V0IHRoZSByaWdodCB0eXBlCgkgIHZhbHVlIGluIHRoZSBKUEVHIHJ0cCBoZWFkZXIuCgkgIERlcHJlY2F0ZSB0aGUgcXVhbGl0eSBwcm9wZXJ0eSwgaXQncyB1bnVzZWQgbm93IGFuZCBpdCB3YXMgdXNlZCB3cm9uZ2x5IGJlZm9yZS4KCSAgQWx3YXlzIHNlbmQgZnVsbCBxdWFudCB0YWJsZXMgZm9yIG5vdyB1bnRpbCB3ZSBoYXZlIHNvbWUgY29kZSB0byBkZXRlY3QgZGVmYXVsdAoJICBvbmVzLgoJICBGaXhlcyAjNTgwODgwCgoyMDA5LTA1LTA1IDE2OjI4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuaDoKCSAgcnRwanBlZ2RlcGF5OiB1c2Ugd2lkdGgvaGVpZ2h0IGZyb20gcGF5bG9hZAoJICBVc2UgdGhlIHdpZHRoIGFuZCB0aGUgaGVpZ2h0IGZyb20gdGhlIHBheWxvYWQgaGVhZGVycyBhbmQgc2V0IHRoZW0gb24gdGhlCgkgIG91dHB1dCBjYXBzIGZvciBhZGRlZCBhd2Vzb21lbmVzcy4KCSAgRml4IHF1YW50IHBhcnNpbmcsIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHR5cGUgaW4gdGhlIGxvd2VyIDYgYml0cy4KCSAgQWRkIGZpcnN0IGJpdHMgb2YgY2FjaGluZyBxdWFudGl6YXRpb24gdGFibGVzLgoKMjAwOS0wNS0wNSAxNjoyNDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAganBlZ2VuYzogc2V0IGNvbG9yc3BhY2UgYmVmb3JlIF9zZXRfZGVmYXVsdHMoKQoJICBUaGUgbGlianBlZyBhcGkgc2F5cyB0aGF0IHdlIG5lZWQgdG8gc2V0IHRoZSBjb2xvcnNwYWNlIGJlZm9yZSB3ZSBjYWxsCgkgIF9zZXRfZGVmYXVsdHMoKS4gSW5kZWVkLCBpZiB3ZSBkb24ndCBkbyB0aGF0IHdlIGVuZCB1cCB3aXRoIHNvbWUgdmVyeSBmcmVha3kKCSAgbm9uLXN0YW5kYXJkIHF1YW50IHRhYmxlIGFuZCBodWZmbWFuIHRhYmxlIGluZGV4ZXMuCgoyMDA5LTA1LTA1IDEzOjE5OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICB0ZXN0czogZG9uJ3QgYnVpbGQgZXhhbXBsZXMgaWYgLS1kaXNhYmxlLWV4YW1wbGVzIHdhcyBwYXNzZWQgdG8gY29uZmlndXJlCgoyMDA5LTA1LTA1IDEyOjMzOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBjbGVhbiB1cCBtZXNzIGFyb3VuZCBndGsrIGNoZWNraW5nCgkgIEFuZCBkb24ndCBjaGVjayBmb3IgZ3RrKyB3aGVuIGl0J3Mgbm90IG5lZWRlZCAoaWUuIGlmIGV4YW1wbGVzIGFyZSBkaXNhYmxlZCkKCjIwMDktMDUtMDUgMTI6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuaDoKCSAgY29uZmlndXJlOiBtYWtlIGdkay1waXhidWYgcGx1Z2luIGRlcGVuZCBvbmx5IG9uIGdkay1waXhidWYsIG5vdCBndGsrCgoyMDA5LTA1LTA0IDE4OjU1OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBGaXggZmluZF9zdHJlYW1fYnlfKiBmdW5jdGlvbnMKCSAgRml4IHZhcmlvdXMgdmVyc2lvbiBvZiBmaW5kX3N0cmVhbV9ieV8qIGJ5IG5vdCB0cnlpbmcgdG8gY29udmVydCBhbiBpbnQgdG8gYQoJICBwb2ludGVyIGFuZCB2aWNlIHZlcnNhLCBmb3IgcG9ydGFiaWxpdHkgcmVhc29ucy4KCSAgRml4ZXMgIzU4MTMzMwoKMjAwOS0wNS0wNCAxODozMjowNSArMDIwMCAgQ2hyaXMgV2ludGVyIDxlbHdpbnRybyBhdCBnbWFpbC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IGZpeCBkdW1teSBuYXQgcGFja2V0IGxvZ2ljCgkgIEZpeCBhIHR5cG8gaW4gdGhlIGR1bW15IE5BVCBwYWNrZXQgc2VuZGluZyBjb2RlLgoJICBGaXhlcyAjNTgxMzI5CgoyMDA5LTA0LTMwIDEwOjI0OjI3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogYXZvaWQgZXJyb3JzIGFmdGVyIHNlcnZlciBlb2YKCSAgU2VydmVyIGVvZiAoZS5nLiBjb25uZWN0aW9uIGNsb3NlZCkgaXMgYW5ub3VuY2VkIGFzIGNvbm5lY3Rpb24gY2xvc2VkLAoJICBzbyBiZXR0ZXIgcmVjb3JkIHN0YXRlIGFuZCBhY3QgYWNjb3JkaW5nbHkgdG8gcHJldmVudCAocmVhZC93cml0ZSkKCSAgZXJyb3JzIGR1cmluZyBzdWJzZXF1ZW50IHRlYXJkb3duL2NsZWFudXAgc2VxdWVuY2VzLiAgI0ZpeGVzIDU4MDg1MS4oYykuCgoyMDA5LTA0LTMwIDEwOjE5OjI3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogYWxzbyBzZXQgYmFzZV90aW1lIG9uIHNyYyBhZnRlciBmbHVzaAoJICB0aW1lc3RhbXBzIGZvbGxvd2luZyBmbHVzaC9zZWVrIHNob3VsZCBiZSBjb25zaXN0ZW50IGJldHdlZW4KCSAgVURQIGFuZCBUQ1AgaW50ZXJsZWF2ZWQgY2FzZS4gIEZpeGVzICM1ODA4NTEuKGIpLgoKMjAwOS0wNC0zMCAxMDoxNzoyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHNhbml0eSBjaGVja3Mgb24gcmFuZ2UgaW5mbwoJICBBIG1heCByYW5nZSB0aGF0IG92ZXJmbG93cyBzaG91bGQgbm90IGJlIHRydXN0ZWQsCgkgIG5vciBzaG91bGQgYSBtYXggcmFuZ2UgdGhhdCBlcXVhbHMgdGhlIG1pbiByYW5nZS4KCSAgRml4ZXMgIzU4MDg1MS4oYSkuCgoyMDA5LTA1LTA0IDE2OjE2OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIHJ0c3BzcmM6IHVzZSBTS0lQIGZsYWcgdG8gdXNlIFNDQUxFIGhlYWRlcnMKCSAgV2UgY2FuIHVzZSB0aGUgU0tJUCBzZWVrIGZsYWcgdG8gaW5zdHJ1Y3QgdGhlIHNlcnZlciB0byBzZW5kIGRhdGEgZmFzdGVyIHRoZW4KCSAgbm9ybWFsIGJ1dCB3aXRoIHRoZSBzYW1lIGJhbmR3aWR0aC4KCSAgRml4ZXMgIzUzNzYwOQoKMjAwOS0wNS0wNCAxNDoxOToyMiArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSAgc3BlZXhkZWM6IG1ha2Ugc3BlZXhfZGVjX2NvbnZlcnQgd29yayB3aXRoIHNhbWUtZm9ybWF0IHZhbHVlcyB3aGVuIG5vIGRhdGEgaGFzIGJlZW4gZGVjb2RlZC4KCjIwMDktMDUtMDQgMTI6NDM6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBmbGFjOiBJbXBsZW1lbnQgcHJlc2V0IGludGVyZmFjZQoKMjAwOS0wNS0wNCAxMjo0MTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSAgc3BlZXg6IEltcGxlbWVudCBwcmVzZXQgaW50ZXJmYWNlCgoyMDA5LTA1LTA0IDEyOjQwOjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSAgd2F2cGFjazogSW1wbGVtZW50IHByZXNldCBpbnRlcmZhY2UKCjIwMDktMDUtMDQgMTI6MzU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IHVzZSBiaW5hcnkgc2VhcmNoIGZvciBpbmRleAoJICBVc2UgdGhlIG5ldyBiaW5hcnkgc2VhcmNoIG1ldGhvZCBmb3IgZmluZGluZyB0aGUgcmlnaHQgaW5kZXggZW50cnkgZmFzdGVyLgoKMjAwOS0wNS0wNCAxMToyNjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJICB2aWRlb2JveDogZHJhdyB0aGUgY29tcGxldGUgVSBhbmQgViBwbGFuZXMKCSAgUm91bmQgdXAgdGhlIHNjYWxlZCBVIGFuZCBWIHdpZHRoIGFuZCBoZWlnaHQgc28gdGhhdCB3ZSBhbHdheXMgZHJhdyB0aGUgY29ycmVjdAoJICBhbW91bnQgb2YgcGl4ZWxzIHRvIGZpbGwgdGhlIGNvbXBsZXRlIGltYWdlLgoJICBGaXhlcyAjNTY5NjExCgoyMDA5LTA1LTAxIDE5OjM1OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBhZGQgc29tZSBtb3JlIG1pY3JvIG9wdGltaXNhdGlvbnMKCjIwMDktMDQtMzAgMTg6NDE6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmM6CgkgIHF0ZGVtdXg6IG1pY3JvIG9wdGltaXplIHF0ZGVtdXggYSBsaXR0bGUKCSAgU3ByaW5rbGUgc29tZSBHX0xJS0VMWSBhcm91bmQuCgkgIEF2b2lkIHRyYXZlcnNpbmcgYW5kIGR1bXBpbmcgdGhlIHRyZWUgd2hlbiBkZWJ1Z2dpbmcgaXMgbm90IGFjdGl2YXRlZC4KCjIwMDktMDQtMzAgMTQ6MjI6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSAgcXRkZW11eDogYWRkIHN1cHBvcnQgZm9yIHN1YnRpdGxlIHBpY3R1cmVzCgkgIEFkZCBzdXBwb3J0IGZvciBzdWJ0aXRsZSBwaWN0dXJlcy4KCSAgRml4ZXMgIzU2ODI3OC4KCjIwMDktMDQtMzAgMTA6MzI6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogbWFrZSBzdXJlIHdlIGFsd2F5cyBzaWduYWwgd2FpdGVycwoJICBBbHdheXMgc2lnbmFsIHRoZSB3YWl0ZXJzIGluIHRoZSBhc3luYyBjYWxsYmFja3MuIEVzcGVjaWFsbHkgZm9yIHRoZSB2b2x1bWUKCSAgY2FsbGJhY2tzIHNpbmNlIHRoaXMgbWlnaHQgY2F1c2UgZGVhZGxvY2tzLgoKMjAwOS0wNC0yOSAxODowOTowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogcmVsZWFzZSBzdGF0ZSBsb2NrIGJlZm9yZSBzdG9wcGluZyB0YXNrCgkgIFdlIG5lZWQgdG8gcmVsZWFzZSB0aGUgc3RhdGUgbG9jayBiZWZvcmUgdHJ5aW5nIHRvIHdhaXQgZm9yIHRoZSB0YXNrIHRvIGVuZAoJICBiZWNhdXNlIHRoZSB0YXNrIG1pZ2h0IGFsc28gdGFrZSB0aGUgbG9jay4KCSAgRml4ZXMgIzU3NzY3MQoKMjAwOS0wNC0yOSAxMjoxOToyNyArMDIwMCAgSGFucyBkZSBHb2VkZSA8andyZGVnb2VkZSBhdCBmZWRvcmFwcm9qZWN0Lm9yZz4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogaGFuZGxlIGFjLTMgYXVkaW8KCSAgZml4IGRlbXV4aW5nIG9mIG00diBzdHJlYW1zIHdpdGggYWMtMyBhdWRpbwoJICBGaXhlcyAjNTgwNTU0CgoyMDA5LTA0LTI5IDExOjEyOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgZmxhY2VuYzogVXNlIHRoZSB0YWcgbWVyZ2UgbW9kZSB0aGF0IHdhcyBzZXQgb24gdGhlIGludGVyZmFjZSBmb3IgbWVyZ2luZyB0YWcgZXZlbnRzCgoyMDA5LTA0LTI1IDA5OjQzOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwc3JjOiBmaXggZ2V0YWRkcmluZm8gZXJyb3IgcmVwb3J0aW5nCgkgIGdldGFkZHJpbmZvIGVycm9ycyBzaG91bGQgYmUgcmVwb3J0ZWQgd2l0aCBnYWlfc3RyZXJyb3IgaW5zdGVhZCBvZiBlcnJubyBhcwoJICBzcG90dGVkIGJ5IE1pa2VTLgoKMjAwOS0wNC0yNyAxMDowODozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5jOgoJICBnNzI2cGF5OiBmaXggY29tcGlsYXRpb24KCjIwMDktMDQtMjcgMTA6MDI6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI2cGF5Lmg6CgkgIGc3MjZwYXk6IGFkZCBSRkMgY29tcGxpYW50IHBhY2tldGl6aW5nCgkgIFNodWZmbGUgdGhlIGlucHV0IGJpdHMgYWNjb3JkaW5nIHRvIFJGQyAzNTUxIGZvciBHNzI2IHBheWxvYWRzLgoJICBBZGQgb3B0aW9uIHRvIGZvcmNlIHRoZSBwcmV2aW91cyBiZWhhdmlvdXIuCgkgIEZpeGVzICM1NjcxNDAKCjIwMDktMDQtMjcgMDk6NTk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5jOgoJICBnNzI2ZGVwYXk6IGFkZCBkZWJ1ZyBjYXRlZ29yeQoJICBBZGQgYSBkZWJ1Z2dpbmcgY2F0ZWdvcnksIGFkZCBzb21lIGNvbW1lbnRzIGFuZCByZW1vdmUgX3BlZWtfcGFyZW50KCkuCgoyMDA5LTA0LTI2IDE1OjU5OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgaWQzdjJtdXg6IHdlIG5lZWQgdGFnbGliIDEuNSBmb3IgSUQzdjI6OlJlbGF0aXZlVm9sdW1lRnJhbWU6OnNldElkZW50aWZpY2F0aW9uCgkgIEJ1bXAgdGFnbGliIHJlcXVpcmVtZW50LgoKMjAwOS0wNC0yNCAwMjoxMToyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDNkZW11eC5jOgoJKiB0ZXN0cy9maWxlcy9pZDMtNTc3NDY4LXVuc3luY2VkLXRhZy50YWc6CgkgIGlkM2RlbXV4OiBhZGQgdW5pdCB0ZXN0IGZpbGUgZm9yIHVuc3luY2VkIGlkMyB0YWdzCgoyMDA5LTA0LTI0IDAxOjUxOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkgIGlkM2RlbXV4OiBwYXJzZSB1bnN5bmNocm9uaXNlZCB0YWdzIHByb3Blcmx5CgkgIFdlIGRpZG4ndCBoYW5kbGUgdW5zeW5jaHJvbml6YXRpb24gYXQgYWxsIHVwIHRvIG5vdywgd2hpY2ggbWlnaHQgaGF2ZQoJICBjYXVzZWQgZnJhbWVzIHRvIG5vdCBiZSBleHRyYWN0ZWQgLSBlc3AuIGZyYW1lcyBhZnRlciBhbiBBUElDIHBpY3R1cmUKCSAgZnJhbWUuIEZpeGVzICM1Nzc0NjguCgoyMDA5LTA0LTI0IDAxOjAxOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkgIGlkM2RlbXV4OiBwYXNzIHRoZSByaWdodCBzaXplIHZhbHVlIGZvciBzaXplIG9mIGFsbCBmcmFtZXMgdG8gdGhlIHBhcnNlcgoJICBGcmFtZSBkYXRhIHNpemUgaXMgdGFnIHNpemUgYWRqdXN0ZWQgZm9yIHNpemUgb2YgdGhlIHRhZyBoZWFkZXIgYW5kCgkgIGZvb3Rlciwgbm90IHRhZyBzaXplIGluY2x1ZGluZyBoZWFkZXIgYW5kIGZvb3Rlci4KCjIwMDktMDQtMjIgMTU6MjQ6NTUgKzAyMDAgIFBhdHJpY2sgUmFkaXppIDxwYXRyaWNrLnJhZGl6aSBhdCBheGlzLmNvbT4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IHNvbWUgbW9yZSBwYWQgbGVha3MKCSAgRml4IHNvbWUgcGFkIGxlYWtzLgoJICBTZWUgIzU3NzMxOC4KCjIwMDktMDQtMjEgMjI6MTI6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjM5NDFlYSB0byA2YWIxMWQxCgoyMDA5LTA0LTIxIDE0OjAyOjAxIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogb3ZlcnJpZGUgY2FwcyBiYXNlZCBvbiBkYXRhIGZyb20gRVNEUyBhdG9tcyBpbiBtcGVnNC4KCSAgSWYgdGhlIGNvZGVjIGlzIGFjdHVhbGx5IHNvbWV0aGluZyBlbHNlIChlLmcuIG1qcGVnKSBjaGFuZ2UgdGhlIGNhcHMgdG8KCSAgbWF0Y2ggd2hlbiBwYXJzaW5nIHRoZSBFU0RTIGF0b20uCgkgIEFsc28sIGZvciBBQUMsIG92ZXJyaWRlIHJhdGUgYW5kIGNoYW5uZWxzIHdpdGggY29ycmVjdCB2YWx1ZXMgcmVhZCBmcm9tCgkgIEVTRFMsIHNpbmNlIHRoZSByYXRlL2NoYW5uZWxzIHZhbHVlcyBlbHNld2hlcmUgYXJlIG9mdGVuIHdyb25nLgoKMjAwOS0wNC0yMCAxOTozMjowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgIGpwZWdkZWM6IGZpeCB3YXJuaW5nIGZvciBzdGlsbCBpbWFnZXMgYnkgbm90IHRyeWluZyB0byBkaXZpZGUgYnkgMAoJICBEb24ndCBwYXNzIGEgMCBkaXZpc29yIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpLCBvciBpdCB3aWxsIGNvbXBsYWluCgkgIGluIHRoZSBzaW5nbGUgaW1hZ2UgY2FzZSB3aGVyZSBmcHM9MC8xIChhcmUgd2Ugc3VwcG9zZWQgdG8gZGlmZmVyZW50aWF0ZQoJICBiZXR3ZWVuIG5vIGZwcz1zdGlsbCBpbWFnZSBhbmQgZnBzPTAvMT12YXJpYWJsZSByYXRlIGhlcmUgYnR3PykKCjIwMDktMDQtMjAgMTc6MjU6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzoKCSAgdWRwOiBGaXggYSBzaW1wbGUgdHlwbyBpbiB0aGUgcHJldmlvdXMgY29tbWl0CgkgIFVzZSAjaWZkZWYgaW5zdGVhZCBvZiAjaWYsIHRvIGZpeCB0aGUgYnVpbGQKCjIwMDktMDQtMjAgMTU6NDg6MjEgKzAyMDAgIEFuZHkgV2luZ28gPHdpbmdvQHdpbmdvbWFjLmJjbi5vYmxvbmcubmV0PgoKCSAgZml4IGZvcm1hdCBzdHJpbmcgaW4gcG5nZGVjCgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogRml4IHNpemVfdCB2cyB1bnNpZ25lZCBpbnQgZm9ybWF0IGluIGVycm9yIG1lc3NhZ2UuCgoyMDA5LTA0LTIwIDE1OjQ2OjAzICswMjAwICBBbmR5IFdpbmdvIDx3aW5nb0B3aW5nb21hYy5iY24ub2Jsb25nLm5ldD4KCgkgIG9ubHkgdXNlIHN0cnVjdCBpcF9tcmVxbiBpZiBpdCBpcyBkZXRlY3RlZAoJICAqIGNvbmZpZ3VyZS5hYzogTWFrZSBhbiBleHBsaWNpdCBjaGVjayBmb3Igc3RydWN0IGlwX21yZXFuLgoJICAqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzogVXNlIEhBVkVfSVBfTVJFUU4gaW5zdGVhZCBvZiB0aGUgYWQtaG9jIGNoZWNrcy4KCjIwMDktMDQtMjAgMTM6NDU6MzIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBGaXggcHVzaCBtb2RlIGJ1ZmZlcmluZyBzYW5pdHkgY2hlY2sgdG8gYWN0dWFsbHkgZml0IHRoZSBkZXNjcmlwdGlvbi4KCjIwMDktMDQtMTggMTk6MTE6MDYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSAgcnRwaDI2M3BheTogQW5kIGxldCdzIG5vdCBmb3JnZXQgdG8gcmVtb3ZlIHRoZSB1bnVzZWQgdmFyaWFibGUuCgoyMDA5LTA0LTE4IDE4OjUwOjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkgIHJ0cGgyNjNwYXk6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLCB0aGUgdmFyaWFibGVzIGFyZSBuZXZlciByZWFkIGFmdGVyLgoKMjAwOS0wNC0xOCAxODo0OTo0OSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICBydHBtcDR2cGF5OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LiBUaGUgdmFsdWUgaXMgbmV2ZXIgcmVhZCBhZnRlci4KCjIwMDktMDQtMTggMTg6NDg6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIHQgaXMgYmVpbmcgb3ZlcndyaXR0ZW4gYWZ0ZXIsIGJlZm9yZSBpdCdzIHVzZWQuCgoyMDA5LTA0LTE4IDE4OjQ4OjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJICBydHBhbXJkZXBheTogUmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlLCB0aGUgdmFsdWUgaXMgb25seSByZWFkIG9uY2UuCgoyMDA5LTA0LTE4IDE4OjQ3OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSAgcnRwYW1ycGF5OiBSZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUsIHRoZSB2YWx1ZSBpcyBvbmx5IHJlYWQgb25jZS4KCjIwMDktMDQtMTggMTg6NDY6MTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ29vbS9maWx0ZXJzLmM6CgkgIGdvb20vZmlsdGVyczogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4gVmFsdWUgb3ZlcndyaXR0ZW4ganVzdCBhZnRlci4KCjIwMDktMDQtMTggMTg6NDU6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJICBydHB2b3JiaXNwYXk6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuIFZhbHVlIG5ldmVyIHJlYWQgYWZ0ZXIuCgoyMDA5LTA0LTE4IDE4OjQ1OjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSAgcnRwdGhlb3JhcGF5OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LiBWYWx1ZSBuZXZlciByZWFkIGFmdGVyLgoKMjAwOS0wNC0xOCAxODo0MzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSAgcnRwdGhlb3JhZGVwYXk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUsIGl0J3MgbmV2ZXIgYmVpbmcgcmVhZC4KCjIwMDktMDQtMTggMTg6NDI6NDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuICdyZXMnIGlzbid0IHJlYWQgYWZ0ZXIuCgoyMDA5LTA0LTE4IDE4OjQxOjU4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLiAncmVzJyBpcyBuZXZlciByZWFkLgoKMjAwOS0wNC0xOCAxODo0MDo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogUmVtb3ZlIGRlYWQgdmFyaWFibGUuICdzdHJlYW0nIGlzIG5ldmVyIHJlYWQgYWZ0ZXIuCgoyMDA5LTA0LTE4IDE4OjM5OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHZpZGVib3g6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLgoJICBUaGVzZSB2YXJpYWJsZXMgYXJlIG5ldmVyIHJlYWQgYWZ0ZXIgdGhpcyBwb2ludC4KCjIwMDktMDQtMTggMTg6Mzg6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ29vbS9jb252b2x2ZV9meC5jOgoJICBnb29tOiBmZiBhbmQgaWZmIGFyZSBvbmx5IHVzZWQgaW4gYSAnI2lmZGVmIERSQVdfTU9USUYnIGJsb2NrLgoKMjAwOS0wNC0xOCAxODozNDoxMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICB3YXZwYXJzZTogUmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgcmVzIGlzbid0IHJlYWQgYWZ0ZXIgdGhpcy4KCjIwMDktMDQtMTggMTg6MzI6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLCBtb3ZlIHZhcmlhYmxlIHRvIHdoZXJlIGl0J3MgbmVlZGVkLgoJICBUaGUgaGVhZGVyX3JlYWRfZXJyb3IgbGFiZWwgd2lsbCByZXR1cm4gR1NUX0ZMT1dfRVJST1IKCjIwMDktMDQtMTggMTg6MjE6MjIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJICBydHB2cmF3ZGVwYXk6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgIFRoZSB2YWx1ZSBvZiAnc3RyJyB3aWxsIG5ldmVyIGJlIHVzZWQgaW4gdGhlc2UgY2FzZXMuCgoyMDA5LTA0LTE4IDE4OjE5OjEyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFJlbW92ZSB1c2VsZXNzIHZhcmlhYmxlLgoJICBpcmV0IHdhcyBuZXZlciByZWFkIG91dHNpZGUgb2YgdGhhdCBsb29wLCBhbmQgaXMgYWx3YXlzIGJlaW5nIGV4aXRlZCBpZgoJICBpcmV0IHdhcyAhPSBHU1RfRkxPV19PSyBhbnl3YXkuCgoyMDA5LTA0LTE4IDE4OjE3OjM1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogTW92ZSAncmVzJyB0byB3aGVyZSBpdCdzIGFjdHVhbGx5IGJlaW5nIHVzZWQuCgkgIHJlcyB3YXMgbmV2ZXIgdXNlZCBvdXRzaWRlIG9mIHRoYXQgYmxvY2sgZXhjZXB0IGZvciBhIGRlYWQgYXNzaWdubWVudC4KCjIwMDktMDQtMTggMTg6MTY6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkgIGF1ZGlvZng6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIHJ6IGlzIG5ldmVyIHVzZWQgaW4gdGhlc2UgbWV0aG9kcy4KCjIwMDktMDQtMTggMTg6MTU6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5jOgoJICBvc3hyaW5nYnVmZmVyOiBSdW4gZ3N0LWluZGVudC4KCjIwMDktMDQtMTggMTg6MTQ6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICB4aW1hZ2U6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzLgoJICBUaG9zZSB2YXJpYWJsZXMgYXJlIG5vdCByZWFkIGFmdGVyIHRoYXQgcG9pbnQuCgoyMDA5LTA0LTE4IDE4OjExOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMXNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVucGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuYzoKCSogZ3N0L3NtcHRlL3BhaW50LmM6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIFJlbW92ZSB0cml2aWFsIHVudXNlZCB2YXJpYWJsZXMgZGV0ZWN0ZWQgYnkgQ0xhbmcgc3RhdGljIGFuYWx5emVyLgoKMjAwOS0wNC0xOCAxNzo1MjowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6CgkqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMXNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd3BheS5jOgoJICBSZW1vdmUgYmxhbmsge3NldHxnZXR9X3Byb3BlcnR5L2NoYW5nZV9zdGF0ZS9maW5hbGl6ZSBtZXRob2RzLgoKMjAwOS0wNC0xOCAxNzo0Mjo1NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJKiBleHQvZXNkL2VzZHNpbmsuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0dGFnaW5qZWN0LmM6CgkqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RyZXYuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJKiBnc3QvZWZmZWN0di9nc3R2ZXJ0aWdvLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBkdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVucGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc2luay5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBpbiBfY2xhc3NfaW5pdAoJICBEZXRlY3RlZCBieSBMTFZNJ3MgQ0xhbmcgc3RhdGljIGFuYWx5emVyCgoyMDA5LTA0LTE4IDEzOjU0OjA4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOgoJICBjaGVjazogQ2hlY2sgd2hldGhlciB0aHJlYWRzIGFyZSBhbHJlYWR5IGluaXRpYWxpc2VkIGJlZm9yZSBnX3RocmVhZF9pbml0KCkKCjIwMDktMDQtMTggMTQ6MzI6NDAgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogbWFyayBkaXNjb250IG9uIHRoZSBzdHJlYW1zIGFzIHdhcyBzYWlkIHRoZSBkZWJ1ZyBsaW5lCgkgIEFmdGVyIGEgc2VlayBtYXJrIGFsbCBzdHJlYW1zIHdpdGggZGlzY29udCBhcyBpdCB3YXMgc2FpZCBpbiB0aGUgZGVidWcgbGluZS4KCSAgRml4ZXMgdGhhdCBidWZmZXJzIGFmdGVyIGEgc2VlayBhcmUgZ2VuZXJhdGVkIHdpdGhvdXQgYSB2YWxpZCB0aW1lc3RhbXAuCgoyMDA5LTA0LTE4IDA4OjQ1OjE4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IG1hcCBHU1RfUlRTUF9FRU9GIHRvIEVPUyBvbiBzZXJ2ZXIgcmVxdWVzdHMKCSAgUGVybWl0IHByb3Blcmx5IGhhbmRsZSB0aGUgRU9TIGNvbmRpdGlvbiB3aGVuIHNlcnZlciByZXBvcnQgaXQgaW4gYSByZXF1ZXN0LgoKMjAwOS0wNC0xOCAwODozOTo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSAgcnRwdGhlb3JhZGVwYXk6IEZpeCBidWlsZCBvbiBtYWNvc3guCgkgIFVzZSBHX0dTSVpFX0ZPUk1BVCBpbnN0ZWFkIG9mIHUuCgoyMDA5LTA0LTE2IDIyOjUwOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGZpeCBzYW1wbGUgb2Zmc2V0IGNhbGN1bGF0aW9uIGFnYWluCgoyMDA5LTA0LTE1IDE5OjMyOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOgoJICBzdW5hdWRpbzogZml4IGJyb2tlbiBpbmRlbnRhdGlvbiBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKCjIwMDktMDQtMTUgMTk6Mjg6NTMgKzAxMDAgIEphbWVzIEFuZHJld2FydGhhIDx0cnM4MEB1Y2MuZ3UudXdhLmVkdS5hdT4KCgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6CgkgIHN1bmF1ZGlvOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzIGFuZCBnb3RvIGxhYmVscwoJICBGaXhlcyAjNTc5MDcwLgoKMjAwOS0wNC0xNSAxOToyNDo0OSArMDIwMCAgSmFtZXMgQW5kcmV3YXJ0aGEgPHRyczgwIGF0IHVjYy5ndS51d2EuZWR1LmF1PgoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJICBydHBoMjYzcGF5OiBmaXggY29tcGlsYXRpb24gb24gYmlnLWVuZGlhbgoJICBTb21lIHNlbWljb2xvbnMgd2VyZSBtaXNzaW5nIGZyb20gdGhlIGJpZy1lbmRpYW4gc3RydWN0cyBpbiBnc3RydHBoMjYzcGF5LmguCgkgIEEgR1NUX0RFQlVHIGNhbGwgd2FzIG1pc3NpbmcgYSBmb3JtYXQgc3BlY2lmaWVyLgoJICBGaXhlcyAjNTc5MDY5CgoyMDA5LTA0LTE1IDIwOjEwOjA0ICswMzAwICBNYXJjbyBCYWxsZXNpbyA8bWFyY28uYmFsbGVzaW9Abm9raWEuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuYzoKCSogZ3N0L3F0ZGVtdXgvcXVpY2t0aW1lLmM6CgkgIHF0ZGVtdXg6IGltcGxlbWVudCAzR1BQIChUUyAyNi4yNDQgVjguMC4wKSBBc3NldCBtZXRhZGF0YSBoYW5kbGluZywgRml4ZXMgIzEzMjE5MwoJICBJbXBsZW1lbnRzIDNncHAgaXNvIG1ldGFkYXRhIHRhZ3Mgd2hpY2ggYXJlIGRpZmZlcmVudCBmcm9tIG1vdiB1ZHRhIGF0b21zLgoKMjAwOS0wNC0xNSAxNTo1MToyNCArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UuaDoKCSAgZGVidWd1dGlsczogVXNlIEdfQkVHSU5fREVDTFMvR19FTkRfREVDTFMuCgkgIFVzZSBHX0JFR0lOX0RFQ0xTL0dfRU5EX0RFQ0xTIHRvIGF2b2lkIGdzdC1pbmRlbnQgbWVzc2luZyB1cCB0aGUKCSAgaW5kZW50YXRpb24gZHVlIHRvIGV4dGVybiAiQyIgeyB9LgoKMjAwOS0wNC0xNSAxNjowMzoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGdzdC9kZWJ1Zy9NYWtlZmlsZS5hbToKCSogZ3N0L2RlYnVnL2JyZWFrbXlkYXRhLmM6CgkqIGdzdC9kZWJ1Zy9kZWJ1Zy52Y3Byb2o6CgkqIGdzdC9kZWJ1Zy9lZmVuY2UuYzoKCSogZ3N0L2RlYnVnL2VmZW5jZS5oOgoJKiBnc3QvZGVidWcvZWZlbmNlLnZjcHJvajoKCSogZ3N0L2RlYnVnL2dzdGRlYnVnLmM6CgkqIGdzdC9kZWJ1Zy9nc3RuYXZpZ2F0aW9udGVzdC5jOgoJKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuaDoKCSogZ3N0L2RlYnVnL2dzdG5hdnNlZWsuYzoKCSogZ3N0L2RlYnVnL2dzdG5hdnNlZWsuaDoKCSogZ3N0L2RlYnVnL2dzdHB1c2hmaWxlc3JjLmM6CgkqIGdzdC9kZWJ1Zy9nc3RwdXNoZmlsZXNyYy5oOgoJKiBnc3QvZGVidWcvZ3N0dGFnaW5qZWN0LmM6CgkqIGdzdC9kZWJ1Zy9nc3R0YWdpbmplY3QuaDoKCSogZ3N0L2RlYnVnL25hdmlnYXRpb250ZXN0LnZjcHJvajoKCSogZ3N0L2RlYnVnL25lZ290aWF0aW9uLmM6CgkqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuaDoKCSogZ3N0L2RlYnVnL3JuZGJ1ZmZlcnNpemUuYzoKCSogZ3N0L2RlYnVnL3Rlc3RwbHVnaW4uYzoKCSogZ3N0L2RlYnVnL3Rlc3RzLmM6CgkqIGdzdC9kZWJ1Zy90ZXN0cy5oOgoJKiBnc3QvZGVidWd1dGlscy9NYWtlZmlsZS5hbToKCSogZ3N0L2RlYnVndXRpbHMvYnJlYWtteWRhdGEuYzoKCSogZ3N0L2RlYnVndXRpbHMvZGVidWcudmNwcm9qOgoJKiBnc3QvZGVidWd1dGlscy9lZmVuY2UuYzoKCSogZ3N0L2RlYnVndXRpbHMvZWZlbmNlLmg6CgkqIGdzdC9kZWJ1Z3V0aWxzL2VmZW5jZS52Y3Byb2o6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdGRlYnVnLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdmlnYXRpb250ZXN0LmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdmlnYXRpb250ZXN0Lmg6CgkqIGdzdC9kZWJ1Z3V0aWxzL2dzdG5hdnNlZWsuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0bmF2c2Vlay5oOgoJKiBnc3QvZGVidWd1dGlscy9nc3RwdXNoZmlsZXNyYy5jOgoJKiBnc3QvZGVidWd1dGlscy9nc3RwdXNoZmlsZXNyYy5oOgoJKiBnc3QvZGVidWd1dGlscy9nc3R0YWdpbmplY3QuYzoKCSogZ3N0L2RlYnVndXRpbHMvZ3N0dGFnaW5qZWN0Lmg6CgkqIGdzdC9kZWJ1Z3V0aWxzL25hdmlnYXRpb250ZXN0LnZjcHJvajoKCSogZ3N0L2RlYnVndXRpbHMvbmVnb3RpYXRpb24uYzoKCSogZ3N0L2RlYnVndXRpbHMvcHJvZ3Jlc3NyZXBvcnQuYzoKCSogZ3N0L2RlYnVndXRpbHMvcHJvZ3Jlc3NyZXBvcnQuaDoKCSogZ3N0L2RlYnVndXRpbHMvcm5kYnVmZmVyc2l6ZS5jOgoJKiBnc3QvZGVidWd1dGlscy90ZXN0cGx1Z2luLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RzLmM6CgkqIGdzdC9kZWJ1Z3V0aWxzL3Rlc3RzLmg6CgkgIGRlYnVnOiByZW5hbWUgZGVidWcgdG8gZGVidWd1dGlscyB0byBhdm9pZCBjbGFzaCB3aXRoIC0tZGlzYWJsZS1kZWJ1Zy4gRml4ZXMgIzU2MjE2OAoKMjAwOS0wNC0xNSAxNTo0MzowNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2RlYnVnL2VmZW5jZS5jOgoJKiBnc3QvZGVidWcvZWZlbmNlLmg6CgkqIGdzdC9kZWJ1Zy9nc3RuYXZpZ2F0aW9udGVzdC5oOgoJKiBnc3QvZGVidWcvZ3N0bmF2c2Vlay5oOgoJKiBnc3QvZGVidWcvZ3N0cHVzaGZpbGVzcmMuaDoKCSogZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC5oOgoJKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuaDoKCSogZ3N0L2RlYnVnL3Rlc3RzLmg6CgkgIGRlYnVnOiBpbmRlbnQgYmVmb3JlIHJlbmFtaW5nCgoyMDA5LTA0LTE1IDE0OjA3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzoKCSAgZzcyNmRlcGF5OiBhZGQgcHJvcGVydHkgZm9yIGFhbDIgZm9yY2UKCjIwMDktMDQtMTUgMTM6NTY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MjZkZXBheS5oOgoJICBnNzI2ZGVwYXk6IGltcGxlbWVudCBSRkMzNTUxIHBhY2tpbmcKCSAgV2UgaW1wbGVtZW50ZWQgdGhlIEFBTDIgcGFja2luZywgYWRkIHRoZSBlbmNvZGluZy1uYW1lIGZvciB0aG9zZSB0byB0aGUgY2FwcyBhbmQKCSAgYSBwcm9wZXJ0eSB0byBmb3JjZSBBQUwyIGRlY29kaW5nIChhbHdheXMgVFJVRSBmb3Igbm93KS4KCSAgSW1wbGVtZW50IFJGQzM1NTEgdW5wYWNraW5nIGZvciByZWd1bGFyIEc3MjYuCgkgIFNlZSAjNTY3MTQwLgoKMjAwOS0wNC0xNSAwMDoyMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJICBydHBoMjYzcGF5OiBmaXggYnVpbGQKCjIwMDktMDQtMTQgMTg6NTI6NDggKzAyMDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aSBhdCBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSAgaDI2M3BheTogdmFyaW91cyBmaXhlcwoJICBSZS1lbmFibGUgbW9kZSBBIHN1cHBvcnQgYW5kIGEgcHJvcGVydHkgdG8gY29udHJvbCBpdC4KCSAgRml4IG1lbW9yeSBsZWFrIG9mIEdzdFJ0cEgyNjNQYXlCb3VuZHJ5IG9iamVjdHMuCgkgIEZpeCBtYXJrZXIuCgkgIEZpeGVzICM1MDkzMTEKCjIwMDktMDQtMTQgMTg6NDQ6NTEgKzAyMDAgIEphbmluIEtvbGVuYyA8amFuaW4ua29sZW5jIGF0IG1hcmFuZC5zaT4KCgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuaDoKCSAgaDI2M3BheTogRml4IHRoZSBwYXlsb2FkZXIKCSAgRml4IHRoZSBIMjYzIHBheWxvYWRlciB0byBiZSBtb3JlIFJGQyAyMTkwIGNvbXBsaWFudC4KCSAgU2VlICM1MDkzMTEKCjIwMDktMDQtMTQgMTc6Mjc6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBkb24ndCBwdXNoIEVPUyBpbiBzdHJlYW1pbmcgbW9kZQoJICBJbiBzdHJlYW1pbmcgbW9kZSwgYXZpZGVtdXggaXMgbm90IHN1cHBvc2VkIHRvIHNlbmQgYW4gRU9TIGV2ZW50IGRvd25zdHJlYW0gYnV0CgkgIGl0IGlzIHN1cHBvc2VkIHRvIHJldHVybiBVTkVYUEVDVEVEIGZyb20gdGhlIGNoYWluIGZ1bmN0aW9uIGluc3RlYWQgc28gdGhhdAoJICB1cHN0cmVhbSBjYW4gZG8gdGhlIHJpZ2h0IEVPUyBoYW5kbGluZy4KCjIwMDktMDQtMTMgMTQ6MDM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBtdXhpbmcvZGVtdXhpbmcgU3BlZXggYXVkaW8KCSAgTm90ZTogVGhpcyBpcyBub3QgaW4gdGhlIE1hdHJvc2thIHNwZWMgeWV0CgkgIEZpeGVzIGJ1ZyAjNTc4MzEwLgoKMjAwOS0wNC0xMCAyMTozMTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBoYW5kbGUgTlVMTCB0aW1pbmcgaW5mbwoJICBEb24ndCBjcmFzaCB3aGVuIHRoZSB0aW1pbmcgaW5mbyBpcyBub3QgeWV0IGF2YWlsYWJsZS4KCjIwMDktMDQtMTAgMjE6NDI6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJICBwdWxzZTogbWFrZSBpdCB3b3JrIG9uIDAuOS4xMgoJICBGaXJzdCB3ZSBpZ25vcmUgcmVxdWVzdCB0byBmaWxsIHRoZSByaW5nYnVmZmVyIHdoaWNoIGFyZSBsZXNzIHRoZW4gYSBzZWdtZW50LgoJICBUaGUgc21hbGwgcmVxdWVzdCB3aGVyZSBjYXVzaW5nIHN0dXR0ZXIuCgkgIFRoZW4gd2UgZGlzYWJsZSBmbHVzaGluZyB0aGUgc3RyZWFtIHdoZW4gcnVubmluZyBhZ2FpbnN0IHBhIDAuOS4xMiBhcyB0aGlzCgkgIHRyaWdnZXJzIGFuIGFzc2VydGlvbmcgaW4gdGhlIHNvdW5kIHNlcnZlciBhbmQgdGVybWluYXRlcyBpdC4gSXQgZG9lcyBub3QgaGFwcGVuCgkgIHdpdGggMC45LjEwIGFuZCAwLjkuMTQuCgoyMDA5LTA0LTEwIDE0OjE4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGhhbmRsZSBzZXJ2ZXIgZGlzY29ubmVjdCBpbiBnZXRfdGltZQoJICBXaGVuIHRoZSBzZXJ2ZXIgaXMgZGlzY29ubmVjdGVkIG9yIHdoZW4gd2UgYXJlIHNodXQgZG93biwgbWFrZSBvdXIgY2xvY2sgcmV0dXJuCgkgIGFuIGludmFsaWQgdGltZSBpbnN0ZWFkIG9mIGVycm9yaW5nIG91dC4KCjIwMDktMDQtMTAgMTI6MDE6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogYnBzIGlzIHNpZ25lZCBpbnQgdG8gYXZvaWQgb3ZlcmZsb3cKCSAgS2VlcCBicHMgYXMgZ2ludCBpbnN0ZWFkIG9mIGd1aW50IGJlY2F1c2Ugd2Ugd2lsbCBiZSBkb2luZyBzaWduZWQgbWF0aCB3aXRoIGl0CgkgIGxhdGVyIG9uIGFuZCB3ZSBkb24ndCB3YW50IHdlaXJkIHJlc3VsdHMuCgoyMDA5LTA0LTEwIDAwOjI2OjQ0ICswMjAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogYWRkIGNvbnZlcnQgcXVlcnksIGZpeCBkdXJhdGlvbiBxdWVyeQoJICBGaXggdGhlIGR1cmF0aW9uIHF1ZXJ5IHNvIHRoYXQgaXQgYWxzbyB3b3JrcyB3aXRoIGZvcm1hdHMgb3RoZXIgdGhhbgoJICBUSU1FLCBzdWNoIGFzIERFRkFVTFQgdG8gZ2V0IHRoZSBudW1iZXIgb2YgZnJhbWVzLgoJICBBZGQgYSBjb252ZXJ0IGZ1bmN0aW9uLgoJICBGaXhlcyAjNTc4MDUyLgoKMjAwOS0wNC0wOSAyMzo0Mzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBjaGVjayBmb3IgYSBzdHJlYW0KCSAgRG9uJ3QgdHJ5IHRvIGNoYW5nZSB0aGUgc3RyZWFtIHZvbHVtZSAoYW5kIG90aGVyIHRoaW5ncykgd2hlbiB3ZSBkb24ndCBoYXZlIGEKCSAgc3RyZWFtIHlldC4gSnVzdCBzdG9yZSB0aGUgdmFsdWVzIGZvciBsYXRlci4KCjIwMDktMDQtMDkgMTg6MDc6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogZml4IGNvbXBpbGF0aW9uIGZvciBuZXdlciBwdWxzZWF1ZGlvCgoyMDA5LTA0LTA5IDE3OjE4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHVuY29yayBmaXhlcyBhbmQgdXNlIHByZWJ1ZiA9IDAKCSAgV2UgY2FuIHVzZSBwcmVidWYgPSAwIHRvIGluc3RydWN0IHB1bHNlIHRvIG5vdCBwYXVzZSB0aGUgc3RyZWFtIG9uIHVuZGVyZmxvd3MuCgkgIFRoaXMgd2F5IHdlIGNhbiByZW1vdmUgdGhlIHVuZGVyZmxvdyBjYWxsYmFjay4gV2UgaG93ZXZlciBoYXZlIHRvIG1hbnVhbGx5CgkgIHVuY29yayB0aGUgc3RyZWFtIG5vdyB3aGVuIHdlIGhhdmUgbm8gYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBidWZmZXIgb3Igd2hlbiB3ZQoJICBhcmUgd3JpdGluZyB0b28gZmFyIGF3YXkgZnJvbSB0aGUgY3VycmVudCByZWFkX2luZGV4LgoKMjAwOS0wNC0wOSAxNDozODoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBoYW5kbGUgd3JpdGUgZXJyb3JzCgoyMDA5LTA0LTA5IDE0OjE2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IHdyaXRlIHNpbGVuY2Ugb24gdW5kZXJmbG93CgkgIFN0YXJ0IGZpbGxpbmcgdXAgdGhlIGJ1ZmZlciB3aXRoIGVtcHR5IHNhbXBsZXMgd2hlbiBhbiB1bmRlcmZsb3cgaGFwcGVucy4gV2UKCSAgbmVlZCB0byBkbyB0aGlzIHRvIGtlZXAgcHVsc2VhdWRpbyByZXBvcnRpbmcgdGhlIHJpZ2h0IHRpbWUgZm9yIHVzLgoKMjAwOS0wNC0wOSAxMzoxNDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBoYW5kbGUgcHVsbC1iYXNlZCBzY2hlZHVsaW5nCgkgIFVzZSB0aGUgZGVmYXVsdCBiYXNlc2luayBtZXRob2RzIGZvciBpbXBsZW1lbnRpbmcgcHVsbCBiYXNlZCBzY2hlZHVsaW5nLCBpdAoJICB3b3JrcyBmaW5lIGZvciB1cy4KCjIwMDktMDQtMDkgMTI6MTM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgIHB1bHNlc2luazogYWRkIGJlZ2lubmluZ3Mgb2YgcHVsbC1iYXNlZCBzY2hlZHVsaW5nCgoyMDA5LTA0LTA4IDE4OjE3OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGtlZXAgdHJhY2sgb2YgY2xvY2sgcmVzZXQKCSAgd2hlbiB3ZSBzd2l0Y2ggc3RyZWFtcywgdGhlIGNsb2NrIHdpbGwgcmVzZXQgdG8gMC4gTWFrZSBzdXJlIHRoYXQgdGhlIHByb3ZpZGVkCgkgIGNsb2NrIGRvZXNuJ3QgZ2V0IHN0dWNrIHdoZW4gdGhpcyBoYXBwZW5zIGJ5IGtlZXBpbmcgYW4gaW5pdGlhbCBvZmZzZXQuIFdlIGFsc28KCSAgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBzdWJ0cmFjdCB0aGlzIG9mZnNldCBpbiBzYW1wbGVzIHdoZW4gd3JpdGluZyB0byB0aGUKCSAgcmluZ2J1ZmZlci4KCjIwMDktMDQtMDggMTM6NTI6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgcHVsc2VzaW5rOiByZXdyaXRlIHB1bHNlc2luawoJICBEZXJpdmUgZnJvbSBCYXNlQXVkaW9TaW5rIGFuZCBpbXBsZW1lbnQgb3VyIGN1c3RvbSByaW5nYnVmZmVyIHRoYXQgbWFwcyB0byB0aGUKCSAgaW50ZXJuYWwgcHVsc2VhdWRpbyByaW5nYnVmZmVyLgoKMjAwOS0wNC0wOCAxMzo1MjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSAgcHVsc2U6IHJlbW92ZSBzb21lIHN0cmF5IGRlYnVnIGxpbmVzCgoyMDA5LTA0LTA5IDExOjMwOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJICBqcGVnZGVjOiB1c2Ugc2xpZ2h0bHkgbW9yZSBhZGFwdGl2ZSBmb3JtdWxhIGZvciBRb1MKCSAgU2hvdWxkIHdvcmsgYXQgbGVhc3QgYSB0YWQgYmV0dGVyIGlmIHRoZSBkZWNvZGVyIGNhbid0IGtlZXAgdXAsIGFuZAoJICBzaG91bGQgYWxzbyBzcHJlYWQgZHJvcHBlZCBmcmFtZXMgYSBiaXQgbW9yZSBldmVubHkgb3ZlciB0aW1lLgoKMjAwOS0wNC0wNyAyMjozNTozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIHdhdnBhcnNlOiBkb24ndCBsZWFrIHBhZC10ZW1wbGF0ZQoJICBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKCkgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAuCgoyMDA5LTA0LTA0IDIxOjE4OjU1ICswMzAwICBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDBlYTg5ZSB0byBiMzk0MWVhCgoyMDA5LTA0LTAxIDAxOjE1OjMxICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIGFkZCBwZW5kaW5nX3NhbXBsZXMgc28gdGhhdCB3ZSBvbmx5IHVwZGF0ZSBzZWdtZW50J3MgbGFzdCBzdG9wIGFmdGVyIHJlYWxseSBzZW5kaW5nIHRoZSBzYW1wbGVzCgoyMDA5LTAzLTE1IDIxOjMxOjQ5ICswMTAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2ZsYWNkZWMuYzoKCSAgYWRkIGRlYnVnIGFuZCBhbiBhc3NlcnQKCjIwMDktMDMtMTUgMjE6MzA6MzIgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGFkZCBkZWJ1Z2dpbmcKCjIwMDktMDMtMDMgMTA6MTQ6MDIgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svYXVkaW90ZXN0c3JjLmZsYWM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9mbGFjZGVjLmM6CgkgIGFkZCBhIHRlc3QgdG8gY2hlY2sgdGhhdCB3ZSBnZXQgYWxsIGRlY29kZWQgYnl0ZXMgZnJvbSBhIDEwLWJ1ZmZlciBhdWRpb3Rlc3RzcmMgZmxhYywgaW4gdGhlIGNhc2Ugb2Y6ICAtIGEgZnVsbCBkZWNvZGUgIC0gYSBkZWNvZGUgb2YgYSBzZWVrIGZvciB0aGUgZnVsbCBmaWxlICAtIGEgZGVjb2RlIG9mIGEgc2VlayBmb3IgYSBzbWFsbCBwYXJ0LCBzbWFsbGVyIHRoYW4gdGhlIGZpcnN0IGJ1ZmZlcgoJICBUaGUgdGVzdCBmYWlscyBiZWNhdXNlIGZsYWNkZWMgZHJvcHMgdGhlIGZpcnN0IG91dGdvaW5nIGJ1ZmZlciBvbiBhIHNlZWsKCjIwMDktMDMtMDMgMTA6MDY6NTIgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGNsaXBwaW5nIHNob3VsZCBhbHNvIHdvcmsgaWYgaXQncyBkb25lIG9uIHRoZSBmaXJzdCBidWZmZXIgc3RhcnRpbmcgYXQgMAoKMjAwOS0wNC0wNCAxNDo1NDowMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjhiM2Q5MSB0byBkMGVhODllCgoyMDA5LTA0LTAzIDA5OjU3OjE1ICswMTAwICBaYWhlZXIgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogZ3N0L3F0ZGVtdXgvTEVHQUw6CgkgIEZpeCBncmFtbWFyLgoKMjAwOS0wNC0wMiAyMjo0MTowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogYWxsb3cgaHR0cDovLyBvbiB0aGUgcHJveHkgc2V0dGluZwoJICBBbGxvdyBhbmQgaWdub3JlIGh0dHA6Ly8gYXQgdGhlIHN0YXJ0IG9mIHRoZSBwcm94eSBzZXR0aW5nLCBsaWtlCgkgIHNvdXBodHRwc3JjLgoJICBGaXhlcyAjNTczMTczCgoyMDA5LTA0LTAyIDIxOjA4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBkb24ndCBsZWFrIHRoZSB1ZHBzcmMgcGFkCgkgIEZpeCBtZW1vcnkgbGVhayBpbiBydHNwc3JjIGJlY2F1c2Ugd2UgZGlkbid0IHVucmVmIHRoZSB1ZHBzcmMgcGFkLgoJICBTZWUgIzU3NzMxOAoKMjAwOS0wNC0wMSAxNzozMToxOCAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJICBydHB0aGVvcmFwYXk6IGZpeCBsZW5ndGggZW5jb2RpbmcgaW4gcGFja2VkIGhlYWRlcnMuCgkgIEFzIGZvciB2b3JiaXMgcGF5bG9hZGVyOyB0aGlzIGJ5IGluc3BlY3Rpb24gaGFkIHRoZSBzYW1lIGJ1Zy4KCjIwMDktMDQtMDEgMTc6MjM6MzMgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzoKCSAgcnRwdm9yYmlzcGF5OiBpbiBwYWNrZWQgaGVhZGVycywgcHJvcGVybHkgZmxhZyBtdWx0aWJ5dGUgbGVuZ3Rocy4KCSAgSW4gdGhlIHNlcXVlbmNlIG9mIGhlYWRlciBsZW5ndGhzLCBmb3IgaGVhZGVycyA+MTI3IGJ5dGVzLCB3ZSB1c2UKCSAgbXVsdGlwbGUgYnl0ZXMgdG8gZW5jb2RlIHRoZSBsZW5ndGguIEJ5dGVzIG90aGVyIHRoYW4gdGhlIGxhc3QgbXVzdCBoYXZlCgkgIHRoZSB0b3AgKGZsYWcpIGJpdCBzZXQuCgoyMDA5LTA0LTAyIDAwOjIwOjAyICswMTAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkBkMTRuLm9yZz4KCgkqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM3YybXV4LmM6CgkgIGlkM3YybXV4OiB3cml0ZSBSVkEyIGZyYW1lcyBjb250YWluaW5nIHBlYWsvZ2FpbiB2b2x1bWUgZGF0YQoKMjAwOS0wNC0wMiAwMDowNToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogZGVtb3RlIHNvbWUgbG9nIG1lc3NhZ2UgZnJvbSBERUJVRyB0byBMT0cKCSAgQW5kIGxvZyBkZWNvZGVyIG9iamVjdC4KCjIwMDktMDQtMDEgMjE6MTU6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIGpwZWdkZWM6IGltcGxlbWVudCBiYXNpYyBRb1MKCSAgRG9uJ3QgZGVjb2RlIGZyYW1lcyB0aGF0IGFyZSBnb2luZyB0byBiZSB0b28gbGF0ZSBhbnl3YXkuCgoyMDA5LTA0LTAxIDEyOjI2OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZG9uJ3QgZW1pdCB1Z2x5IHdhcm5pbmdzIHdpdGggb2xkZXIgcnRwaml0dGVyYnVmZmVyIHZlcnNpb25zCgkgIFRoZSBvbi1ucHQtc3RvcCBzaWduYWxzIHdhcyBhZGRlZCBvbmx5IHJlY2VudGx5IHRvIHJ0cGppdHRlcmJ1ZmZlciBpbgoJICAtYmFkLCBzbyBjaGVjayBpZiB0aGUgc2lnbmFsIGV4aXN0cyBiZWZvcmUgZ19zaWduYWxfY29ubmVjdCgpaW5nIHRvCgkgIGl0LCB0byBhdm9pZCB3YXJuaW5ncy4KCjIwMDktMDMtMzEgMTk6MDg6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogYWRkIHByb3h5IHN1cHBvcnQKCjIwMDktMDMtMzEgMTc6MTY6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgbWF0cm9za2E6IGRvbid0IGxlYWsgc2VyaWFsaXplZCB2YWx1ZXMgd2hlbiB3cml0aW5nIHRhZ3MKCjIwMDktMDMtMzEgMTc6MDY6NTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYTogZG9uJ3QgYWx0ZXIgcGFzc2VkIGRhdGEgYW5kIGVzcGVjaWFseSBkb24ndCBsZWFrLgoJICBJZiB3ZSBuZWVkIGRpZmZlcmVudCBzaXplLCBNYWtlIGEgY29weSwgd29yayB3aXRoIHRoYXQgYW5kIGZyZWUgaXQuCgoyMDA5LTAzLTMxIDE2OjQyOjE1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ29vbS9wbHVnaW5faW5mby5jOgoJICBnb29tOiB0aGUgc3RydWN0dXJlIGlzIG5vdCBmdWxseSBpbml0aWFsaXplZCwgYnV0IHRoZSBjb3BpZWQuCgkgIFNldCB0byBmdWxseSB0byAwIHRvIGF2b2lkIGNyZWVwIG9mIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgoKMjAwOS0wMy0zMSAxNjoyNTo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBtYXRyb3NrYTogaW5pdCBlbmRpYW5lc3MgYXMgc3VjaCBhbmQgc2lnbmVkbmVzcyBhcyBib29sZWFuLgoKMjAwOS0wMy0zMSAxNjoyMjo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBkb24ndCB1c2UgaW5pbml0aWFsaXplZCB2YXIgaW4gZGVidWcgbG9nIHN0YXRlbWVudAoJICBBbHNvIG1ha2UgdGhlIGxvZyBzdGF0ZW1lbnQgdXNlZnVsIGJ5IHByaW50aW5nIHRoZSBodW1hbiByZWFkYWJsZSBmb3JtYXQgbmFtZS4KCjIwMDktMDMtMzEgMTI6MDE6MjEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogZG9uJ3QgbGVhayBhdG9tIGRhdGEgaW4gY2FzZSBvZiBhIHdyb25nIGZvdXJjYwoKMjAwOS0wMy0zMSAxMTo1NzozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thOiBkb24ndCBsZWFrIHJlYWQgZGF0YSBpbiBkZW11eGVyCgoyMDA5LTAzLTMxIDExOjUwOjQxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgdWRwOiBkb24ndCB1c2UgcHJvdG9jb2wgaW4gZGVidWcgbWVzc2FnZSBhZnRlciBmcmVlaW5nCgoyMDA5LTAzLTMwIDE0OjEwOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkgIHJ0cG1wNGFkZXBheTogb3V0cHV0IHNob3VsZCBiZSBmcmFtZWQgYWxyZWFkeQoKMjAwOS0wMy0yNyAyMToxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmg6CgkgIGZsYWM6IHJlcXVpcmUgYSAnbmV3ZXInIGZsYWMgYW5kIHJlbW92ZSBzdXBwb3J0IGZvciB0aGUgbGVnYWN5IGZsYWMgQVBJCgoyMDA5LTAzLTI3IDE3OjQ4OjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBsaW5rIHRvIHRoZSBvbl9ucHRfc3RvcCBzaWduYWwgdG8gRU9TCgkgIENvbm5lY3QgdG8gdGhlIG9uX25wdF9zdG9wIHNpZ25hbCBvZiB0aGUgc2Vzc2lvbiBtYW5hZ2VyIHRvIHNjaGVkdWxlIHRoZSBFT1MKCSAgYWN0aW9ucy4KCjIwMDktMDMtMjYgMTQ6Mzk6MDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBxdGRlbXV4OiBzb21lIHN0cmVhbSBzeW5jaHJvbml6YXRpb24gdG8gYWlkIHNlZWtpbmcgaW4gdW5iYWxhbmNlZCBjbGlwcwoJICBTb21lIGNsaXBzICh0cmFpbGVycykgbWF5IGhhdmUgKGxlbmd0aC13aXNlKSB1bmJhbGFuY2VkIHN0cmVhbXMsCgkgIHdoaWNoIHN0YWxscyB0aGUgcGlwZWxpbmUgaWYgc2Vla2luZyBpbnRvIHRoYXQgcmVnaW9uLgoJICBBZGRpdGlvbmFsIHN0cmVhbSBzeW5jaHJvbml6YXRpb24gY2FuIGhhbmRsZSB0aGlzLCBhcyB3ZWxsIGFzCgkgIHNwYXJzZSAoc3VidGl0bGUpIHN0cmVhbXMgKGF0IHNvbWUgbGF0ZXIgdGltZSA/KQoKMjAwOS0wMy0yNiAxMDozMToxOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGFkZGl0aW9uYWwgc2FmZXR5IGFuZCBzYW5pdHkgY2hlY2tzIChwdXNoIGJhc2VkIG1vZGUpCgoyMDA5LTAzLTI2IDEwOjE4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBzb21lIG1vcmUgaW5kZW50IGZpeGVzCgoyMDA5LTAzLTI0IDE2OjAwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICB2aWRlb21peGVyOiBmaXggZ3N0LWluZGVudCBzY3Jld3VwCgoyMDA5LTAzLTI1IDE3OjU0OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3AuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcnRzcHNyYzogYmV0dGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgUlRTUCBleHRlbnNpb24gZm9yIFJlYWwgc3RyZWFtcyBpcyBtaXNzaW5nCgkgIFRyeSB0byBwb3N0IGEgZGVjZW50IGVycm9yIG1lc3NhZ2Ugd2hlbiBpdCBsb29rcyBsaWtlIHdlJ3JlIGZhaWxpbmcKCSAgYmVjYXVzZSB0aGUgUmVhbCBSVFNQIGV4dGVuc2lvbiBwbHVnaW4gaXMgbWlzc2luZy4gQWxzbyBhZGQgaTE4bgoJICBiaXRzIGZvciBydHNwc3JjIHNvIG91ciBlcnJvciBtZXNzYWdlcyBnZXQgdHJhbnNsYXRlZC4KCjIwMDktMDMtMjUgMTU6NDI6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F2aS9nc3RhdmkuYzoKCSogZ3N0L3F0ZGVtdXgvcXVpY2t0aW1lLmM6CgkgIGkxOG46IG1ha2Ugc3VyZSBnZXR0ZXh0IGdpdmVzIHVzIFVURi04IGF0IGFsbCB0aW1lcwoKMjAwOS0wMy0yNSAwMToyODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSAgcnRwbXA0YXBheSxydHBtcDRkZXBheTogZml4IGJ1ZmZlciBsZWFrcyBpbiBBQUMgcGF5bG9hZGVyIGFuZCBkZXBheWxvYWRlcgoKMjAwOS0wMy0yNSAwMToyMjoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzoKCSAgcnRwbXA0YXBheTogd2FybiBpZiBpbnB1dCBpcyB1bmZyYW1lZAoKMjAwOS0wMy0yMiAyMToyMDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAganBlZ2RlYzogcHV0IEdzdFNlZ21lbnQgaW5zaWRlIHRoZSBlbGVtZW50IHN0cnVjdCBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgaXQgc2VwYXJhdGVseQoKMjAwOS0wMy0yNSAxMDowODo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIHY0bDJzcmM6IG1vdmUgZHVwbGljYXRlZCB0aW1lc3RhbXBpbmcgYW5kIGJ1ZmZlciBtZXRhZGF0YSBjb2RlIHRvIF9jcmVhdGUoKQoJICBUaGlzIHdpbGwgaW5jbHVkZSB0aGUgbGF0ZW5jeSBjaGFuZ2VzIGFsc28gaW4gdGhlIG1tYXAgY2FzZS4KCjIwMDktMDMtMjUgMTA6MDY6NDggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc3JjOiByZW1vdmUgd2luMzIgaWZkZWZzIGludHJvZHVjZWQgYnkgY29tbWl0IGNmZjNmNDY3NjBlYWM3NGM5YmJkN2EzNmFjYTQ0ZmVkZjMyNzQyNGIKCSAgVjRsMnNyYyBpcyB1bmRlciBzeXMgYW5kIGRvZXMgbm90IGV4aXN0cy9ydW4gdW5kZXIgd2luZG93cyBhbnl3YXkuCgoyMDA5LTAzLTI0IDE1OjQ0OjQyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogaGFuZGxlIEZMVVNIX1NUT1AgZXZlbnQKCSAgQ2xlYW4gdXAgc29tZSBzdGF0ZSAobW9zdCBub3RhYmx5IHBhZCBmbG93IHJldHVybnMpIHRvIHJlc3VtZQoJICBwcm9wZXIgc3RyZWFtaW5nIGZvbGxvd2luZyBmbHVzaGluZyBzZWVrLgoKMjAwOS0wMy0yNCAxMjo0MjoxMyArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGRvbid0IHBvc3QgYW4gZXJyb3IgaWYgRU9TIGNhbid0IGJlIHB1c2hlZCBkb3duc3RyZWFtLgoJICBUaGlzIGFsaWducyBhdmlkZW11eCB3aXRoIG90aGVyIGRlbXV4ZXJzIGFuZCBmaXhlcyBhIGJ1ZyB1c2luZyBhdmlkZW11eAoJICB3aXRoIGEgcmVjZW50IGdub25saW4uCgoyMDA5LTAzLTIzIDExOjIyOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZXNpbms6IGNsZWFuIHVwIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24KCSAgTWFrZSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0IG1vcmUgcmVhZGFibGUgYW5kIG9ubHkgcGF1c2UgYWZ0ZXIgdGhlCgkgIHBhcmVudCBoYWQgYSBjaGFuZ2UgdG8gcGF1c2UgZmlyc3QuCgoyMDA5LTAzLTIwIDE3OjIyOjMyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogc3VwcG9ydCBzZWVraW5nIGluIHB1c2ggYmFzZWQgbW9kZQoKMjAwOS0wMy0yMCAxNzoxMTozOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGFsaWduIHB1c2ggYmFzZWQgYmVoYXZpb3VyIG1vcmUgd2l0aCBwdWxsIGJhc2VkCgkgIENhdGVyIGZvciBERUxUQV9VTklUIGZsYWcgb24gYnVmZmVycywga2VlcCB0cmFjayBvZiBjdXJyZW50CgkgIHBvc2l0aW9uLCByZW1vdmUgYW5kIHdhcm4gYWJvdXQgZWRpdCBsaXN0cyBpZiBhbnkgKGFzIHRob3NlCgkgIGFzIGFyZSBkZSBmYWN0byBkaXNjYXJkZWQgYW55d2F5KSwgYWRkIHNvbWUgZGVidWcgc3RhdGVtZW50cwoJICBhbmQgaW5kZW50IGZpeGVzLgoKMjAwOS0wMy0yMCAxNzowMzowMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIHF0ZGVtdXg6IGZpeCBtZW0gbGVha3MgYW5kIHByZXZlbnQgZXhjZXNzaXZlIGJ1ZmZlcmluZyBpbiBwdXNoIGJhc2VkIG1vZGUKCjIwMDktMDMtMjAgMTM6Mjc6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJICBwdWxzZXNpbms6IFRyYWNrIHRoZSBjb3JrZWQvdW5jb3JrZWQgc3RhdGUgb3Vyc2VsdmVzCgkgIFVzZSBhbiBpbnN0YW5jZSB2YXJpYWJsZSB0byB0cmFjayB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgY29ya2VkIG9yIG5vdCwKCSAgaW5zdGVhZCBvZiB1c2luZyBQQSBBUEkgdGhhdCB3YXMgb25seSBpbnRyb2R1Y2VkIGluIDAuOS4xMQoKMjAwOS0wMy0xOSAxODozOTowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBwdWxzZTogTWFrZSBzdXJlIHRoZSBzdHJlYW0gaXMgdW5jb3JrZWQgaW4gdGhlIHdyaXRlIGZ1bmN0aW9uCgkgIElmIHRoZSBjYXBzIGNoYW5nZXMsIHRoZSBzaW5rIGlzIHJlc2V0IHdpdGhvdXQgdHJhbnNpdGlvbmluZyB0aHJvdWdoCgkgIGEgUEFVU0VELT5QTEFZSU5HIHN0YXRlIGNoYW5nZSwgcmVzdWx0aW5nIGluIGEgY29ya2VkIHN0cmVhbS4gVGhpcyBhdm9pZHMKCSAgdGhlIHByb2JsZW0gYnkgY2hlY2tpbmcgdGhhdCB0aGUgc3RyZWFtIGlzIHVuY29ya2VkIHdoZW4gd3JpdGluZyBzYW1wbGVzCgkgIHRvIGl0LgoKMjAwOS0wMy0yMCAwMTowMjoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSAgc3BlZXhlbmM6IGZpeCBkaXJlY3Rpb24gb2YgbGF0ZW5jeSBxdWVyeSBhbmQgb3RoZXIgdXBzdHJlYW0gcXVlcmllcwoJICBEb24ndCBzZW5kIHF1ZXJpZXMgYmFjayB0byB0aGUgZWxlbWVudCB0aGV5IGp1c3QgY2FtZSBmcm9tIGJ5IHNlbmRpbmcKCSAgdGhlbSB0byB0aGUgcGVlciBvZiB0aGUgd3JvbmcgcGFkLgoKMjAwOS0wMy0xOSAxMToxMDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBpZ25vcmUgbW9yZQoKMjAwOS0wMy0xOCAxNjo1NToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJICBydHBtcDRhZGVwYXk6IGRvbid0IGFwcGVuZCBhbiBleHRyYSAwIGJ5dGUgdG8gdGhlIGNvZGVjIGRhdGEKCSAgVGhlIGF1ZGlvTXV4VmVyc2lvbiBzdHJ1Y3R1cmUgaXMgcGFja2VkIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGUgY29kZWMKCSAgZGF0YSBkb2VzIG5vdCBzdGFydCBieXRlLWFsaWduZWQsIHdoaWNoIG1lYW5zIHRoZXJlJ3MgYW4gZXh0cmEgYml0IG9mCgkgIHBhZGRpbmcgYXQgdGhlIGVuZC4gV2UgZG9uJ3Qgd2FudCB0aGF0IGJpdCBpbiB0aGUgY29kZWMgZGF0YSwgc2luY2UKCSAgc29tZSBkZWNvZGVycyBzZWVtIGdldCBjb25mdXNlZCB3aGVuIHRoZXkncmUgZmVkIHdpdGggYW4gZXh0cmEgY29kZWMKCSAgZGF0YSBieXRlIChhbHNvIGl0J3MganVzdCBub3QgcmlnaHQgb2YgY291cnNlKS4KCjIwMDktMDMtMTkgMTM6MjU6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICBydHBoMjY0ZGVwYXk6IGZpeCBiYXNlNjQgZGVjb2RpbmcKCSAgV2UgY2FuJ3QgcGFzcyAtMSB0byBfZGVjb2RlX3N0ZXAsIHRoYXQgZnVuY3Rpb25zIHJldHVybnMgMCByaWdodCBhd2F5IGluc3RlYWQgb2YKCSAgZGVjb2RpbmcgdXAgdG8gdGhlIHN0cmluZyBlbmQuCgoyMDA5LTAzLTE5IDEzOjI0OjAyICswMTAwICBEYXZpZCBBZGFtIDx6YW5jaGV5IGF0IHVjYy5ndS51d2EuZWR1LmF1PgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOgoJICB1ZHA6IEZpeCBidWlsZCBpZiBvbiBTb2xhcmlzCgkgIFRoaXMgcGF0Y2ggY2hlY2tzIGZvciBTb2xhcmlzIGFuZCB1c2VzIGlwX21yZXEgaW5zdGVhZCBvZiBpcF9tcmVxbiBpZiBvbiB0aGlzCgkgIHBsYXRmb3JtLgoJICBGaXhlcyAjNTc1OTM3LgoKMjAwOS0wMy0xOCAxNDo1MDoxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJICBydHA6IFVzZSBHTGliIGZ1bmN0aW9ucyBmb3IgZW5jb2RpbmcvZGVjb2RpbmcgYmFzZTY0CgoyMDA5LTAzLTE2IDE5OjE3OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhZGQgc29tZSBkZWJ1ZyBmb3IgdGhlIHRpbWVzdGFtcHMKCSAgV2hlbiB0aW1lc3RhbXBpbmcgaW4gVENQIG1vZGUsIGxvZyB0aGUgZmlyc3QgdGltZXN0YW1wIHdlIHB1dCBvbiB0aGUgYnVmZmVycy4KCjIwMDktMDMtMTUgMjM6MjY6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMnNyYzogbG9nIGRldGFpbHMgaWYgd2UgaGF2ZSB0aGVtLCBuZWVkZWQgZm9yICM1NzUzOTEKCjIwMDktMDMtMTMgMTg6MzI6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB1ZHBzcmM6IGNvbnZlcnQgXyBpbiBwcm9wZXJ0aWVzIHRvIC0KCSAgLS0KCjIwMDktMDMtMTMgMTg6Mjg6NTkgKzAxMDAgIEVkZ2FyIEUuIElnbGVzaWFzIDxlZGdhci5pZ2xlc2lhc0BnbWFpbC5jb20+CgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuaDoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgdWRwc3JjOiBBZGQgbmV0d29yayBpbnRlcmZhY2Ugc2VsZWN0aW9uCgkgIEFkZCBuZXR3b3JrIGludGVyZmFjZSBzZWxlY3Rpb24gd2hlbiBqb2luaW5nIG11bHRpY2FzdCBncm91cHMuCgkgIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSB1ZHBzcmMgb24gbXVsdGlob21lZCBob3N0cy4KCSAgRml4ZXMgIzU3NTIzNC4KCSAgQVBJOiBHc3RVRFBTcmM6Om11bHRpY2FzdC1pZmFjZQoKMjAwOS0wMy0xMyAxNTo0Mzo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICB2NGwyc3JjOiBQcmVwZW5kIHRvIGxpc3RzIGFuZCByZXZlcnNlIHRoZW0gYXQgdGhlIGVuZC4KCSAgR3JhdHVpdG91cyBtaWNyby1vcHRpbWlzYXRpb24gLSBwcmVwZW5kIHRvIGxpc3RzIGFuZCByZXZlcnNlIHRoZW0sIHJhdGhlcgoJICB0aGFuIGFwcGVuZGluZyB0byB0aGVtIGVhY2ggdGltZS4KCjIwMDktMDMtMTMgMTU6NDA6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgcHVsc2VzaW5rOiBXYWl0IHVudGlsIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGFuIGVudGlyZSBzZWdtZW50CgkgIFdoZW4gdHJ5aW5nIHRvIHdyaXRlIG91dCBhIHNlZ21lbnQsIHdhaXQgdW50aWwgdGhlcmUgaXMgZW5vdWdoIGZyZWUgc3BhY2UKCSAgZm9yIHRoZSBlbnRpcmUgc2VnbWVudC4gVGhpcyBoZWxwcyB0byByZWR1Y2UgcmlwcGxlIGluIHRoZSBjbG9jayByZXBvcnRpbmcsCgkgIHdoZXJlIHRoZSBhcHAgbWlnaHQgcXVlcnkgdGhlIHBsYXliYWNrIHBvc2l0aW9uIHdoaWxlIG9ubHkgaGFsZiBhIHNlZ21lbnQKCSAgaGFzIGJlZW4gd3JpdHRlbiAoYW5kIGlzIHRoZXJlZm9yZSByZXBvcnRlZCBieSBfZGVsYXkoKSwgZXZlbiB0aG91Z2gKCSAgdGhlIHJpbmcgYnVmZmVyIGhhcyBub3QgeWV0IGJlZW4gYWR2YW5jZWQpCgoyMDA5LTAzLTEyIDIwOjM4OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBkb24ndCBzZW5kIFBBVVNFIHdoZW4gbm90IGNvbm5lY3RlZAoJICBkb24ndCBzZW5kIGEgUEFVU0UgcmVxdWVzdCB3aGVuIHdlIGFyZSBubyBsb25nZXIgY29ubmVjdGVkLgoKMjAwOS0wMy0xMiAxNjoxMDoyNSArMDEwMCAgTGFzemxvIFBhbmR5IDxsYXN6bG9rMkBnbWFpbC5jb20+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIERvbid0IGNhbGwgRkxBQ19fIG1ldGhvZHMgYmVmb3JlIGl0J3MgaW5pdGlhbGl6ZWQuIEZpeGVzICM1MTYwMzEKCSAgSW4gdGhlIGV2ZW50IGhhbmRsZXIsIGdzdF9mbGFjX2RlY19zaW5rX2V2ZW50KCksIHR3byBmdW5jdGlvbnMgYXJlIGNhbGxlZCBvbgoJICB0aGUgRkxBQyBzdHJlYW0gd2l0aG91dCBjaGVja2luZyBpZiBpdCBoYXMgYmVlbiBpbml0aWFsaXplZDoKCSAgRkxBQ19fc3RyZWFtX2RlY29kZXJfZmx1c2goKQoJICBGTEFDX19zdHJlYW1fZGVjb2Rlcl9wcm9jZXNzX3VudGlsX2VuZF9vZl9zdHJlYW0oKQoJICBCb3RoIHRoZXNlIEZMQUNfXyooKSBmdW5jdGlvbnMgbW9kaWZ5IHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgRkxBQyBzdHJlYW0uCgkgIExhdGVyLCB3aGVuIHRoZSBidWZmZXJzIHN0YXJ0IGZsb3dpbmcsIGdzdF9mbGFjX2RlY19jaGFpbigpIHRyaWVzIHRvIGluaXRpYWxpemUKCSAgdGhlIHN0cmVhbS4gdGhlIEZMQUNfX3N0cmVhbV9kZWNvZGVyX2luaXRfc3RyZWFtKCkgY2FsbCB3aWxsIGZhaWwgYmVjYXVzZSB0aGUKCSAgcHJldmlvdXMgY2FsbHMgdG8gRkxBQ19fKigpIGNoYW5nZWQgdGhlIHN0cmVhbSBzdGF0ZSBzbyBpdCBpcyBubyBsb25nZXIgaW4gdGhlCgkgIGluaXRpYWxpemVkIHN0YXRlLgoKMjAwOS0wMy0xMSAxNzo1OTowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IHRpbWVvdXQgY2hlY2sKCSAgLS0tCgoyMDA5LTAzLTExIDEyOjQ4OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL01BTklGRVNUOgoJICB3aW4zMjogdXBkYXRlIE1BTklGRVNULCBmaXhpbmcgJ21ha2UgZGlzdCcKCSAgY29uZmlnLmguaW4gbm8gbG9uZ2VyIGV4aXN0cy4KCjIwMDktMDMtMTAgMjE6MTQ6NDMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tdWx0aXBhcnQvTWFrZWZpbGUuYW06CgkgIG1ha2VmaWxlOiBmaXggdHlwbyBpbiBuby1zdGF0aWMgcGx1Z2lucyBydWxlCgoyMDA5LTAzLTEwIDExOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgcG5nZGVjOiB2YXJpb3VzIGNsZWFudXBzLgoJICBNYWtlIHNvbWUgY29kZSBtb3JlIHJlYWRhYmxlLgoJICBGaXggYSBsZWFrIHdoZW4gcHVsbCByYW5nZSByZXR1cm5zIGEgc2hvdCBidWZmZXIuCgkgIFB1c2ggRU9TIGFmdGVyIHBvc3RpbmcgdGhlIGVycm9yLgoKMjAwOS0wMy0xMCAxMDoxNjoyNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSAgZ3N0cnRwdm9yYmlzZGVwYXk6IEZpeCBidWlsZCBvbiBtYWNvc3gKCjIwMDktMDMtMDEgMTc6Mzc6NTYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBJZ25vcmUgbTQgZGlyZWN0b3J5CgoyMDA5LTAzLTA5IDIzOjEyOjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDcwMzIxNjMgdG8gZjhiM2Q5MQoKMjAwOS0wMy0wOSAxODowNzoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSAgdm9yYmlzZGVwYXk6IGZpeCBzb21lIGxlYWtzCgkgIEFuZCBsZWFrIHRoZSBjb2RlYm9va3MuCgkgIFVzZSBnbGliIGJhc2U2NCBkZWNvZGVycy4KCSAgVXNlIHN1YmJ1ZmZlcnMgdG8gYXZvaWQgYSBtZW1jcHkgb2YgdGhlIGhlYWRlcnMuCgoyMDA5LTAzLTA5IDE3OjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIGZsYWNkZWM6IGRvbid0IGxvc2UgdGhlIGZpcnN0IGJ1ZmZlciBhZnRlciBhIHNlZWsKCSAgVGhlIGZsYWNkZWMgQVBJIGNhbGxzIHRoZSB3cml0ZSBjYWxsYmFjayB3aGVuIHBlcmZvcm1pbmcgYSBzZWVrLiBXZSBjYW5ub3QgeWV0CgkgIHB1c2ggb3V0IGEgYnVmZmVyIGF0IHRoYXQgdGltZSBzbyB3ZSBtdXN0IGtlZXAgaXQgYW5kIHB1c2ggaXQgb3V0IGxhdGVyLgoJICBGbHVzaCBvdXQgdGhlIHVwc3RyZWFtIHBhcnQgb2YgdGhlIHBpcGVsaW5lIHdoZW4gZG9pbmcgYSBzZWVrLgoJICBGaXhlcyAjNTc0Mjc1LgoKMjAwOS0wMy0wOSAxNToyMDowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgcXRkZW11eDogc2FuaXRpemUgdGFnIG5hbWVzCgkgIFNhbml0aXplIHRoZSB0YWcgbmFtZXMgYmVmb3JlIHR1cm5pbmcgdGhlbSBpbnRvIGEgc3RydWN0dXJlIG5hbWUuIFdlIGNhbiBvbmx5CgkgIGFkZCBhbHBoYW51bWVyaWMgdmFsdWVzIGFzIHRoZSBzdHJ1Y3R1cmUgbmFtZS4KCjIwMDktMDMtMDggMTI6MDQ6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZmE3MzhkIHRvIDcwMzIxNjMKCjIwMDktMDMtMDggMTE6MTk6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzZjEzZTRlIHRvIGZmYTczOGQKCjIwMDktMDMtMDcgMTE6NDU6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzYzc0NTZiIHRvIDNmMTNlNGUKCjIwMDktMDMtMDcgMTA6NDU6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1N2M4M2YyIHRvIDNjNzQ1NmIKCjIwMDktMDMtMDYgMjE6NTY6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgdjRsMnNyYzogZml4IHBhZHMsIHNvIHRoYXQgdGhleSBhcmUgc3Vic2V0IG9mIHRlbXBsYXRlIGNhcHMKCSAgRG8gbm90IGFkZCB3PTAgfCBoPTAuIFdoZW4gd2UgY2FuJ3QgZ2V0IGEgZnJhbWVyYXRlIGFkZCBmcmFjdGlvbiByYW5nZS4KCjIwMDktMDMtMDUgMTQ6MDg6MTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogZml4IHJhbmdlIHBhcnNpbmcKCSAgRml4IHBhcnNpbmcgb2YgdGhlIHJhbmdlIGhlYWRlcnMuCgoyMDA5LTAyLTEwIDE3OjIwOjU3ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdHJ0cC5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNpcmVuZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwc2lyZW5wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzaXJlbnBheS5oOgoJICBNb3ZlIHNpcmVuIHJ0cCBwYXkvZGVwYXkgZnJvbSBnc3QtcGx1Z2lucy1mYXJzaWdodAoKMjAwOS0wMy0wNCAxNjoyNTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IG1lbW9yeSBsZWFrIGluIGNsb3NlCgkgIENsb3NlIHRoZSBjb25uZWN0aW9uIGV2ZW4gd2hlbiB3ZSBmYWlsIHRvIHNlbmQgdGhlIHRlYXJkb3duIG1lc3NhZ2UuCgkgIFVzZSB0aGUgY29ubmVjdGlvbiB1cmwgKHdoaWNoIGlzIGEgY29weSBvZiB0aGUgc3JjIHVybCkuCgoyMDA5LTAzLTA0IDE2OjE1OjA1ICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogZ3N0LXBsdWdpbnMtZ29vZC5zdXBwIG5lZWRzIHRvIGJlIGRpc3RyaWJ1dGVkLgoKMjAwOS0wMy0wNCAxMjoyOTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgcnRzcHNyYzogZml4IGRvLXJ0Y3AgcHJvcGVydHkgZGVzY3JpcHRpb24KCSAgLS0tCgoyMDA5LTAzLTAzIDEyOjIwOjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaDoKCSAgc291cGh0dHBzcmM6IEV4cG9zZSB0aGUgU291cFNlc3Npb24gJ3RpbWVvdXQnIHByb3BlcnR5LgoKMjAwOS0wMy0wMiAxNTowNzoyNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IElnbm9yZSB0aGUgbTQvIGRpcmVjdG9yeQoKMjAwOS0wMy0wMiAxNzoxODo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICBydHBtcDR2cGF5OiBBZGQgc3VwcG9ydCBmb3IgbW9yZSBmb3JtYXRzCgkgIEhhY2sgYXJvdW5kIHNob3J0IGhlYWRlciBtcGVnNCB2aWRlbyBmaWxlcyBhbmQgcHV0IHRoZSBzaG9ydCBoZWFkZXIgYXMgdGhlCgkgIGNvbmZpZyBzdHJpbmcuCgkgIEZpeGVzICM1NzI1NTEuCgoyMDA5LTAzLTAyIDE2OjA4OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhZGQgc3VwcG9ydCBmb3IgaHR0cCB0dW5uZWxpbmcKCSAgQWRkIHN1cHBvcnQgZm9yIGh0dHAgdHVubmVsaW5nIGFuZCBhIG5ldyBydHNwaDovLyB1cmkgZm9yIGl0LgoJICBTZWUgIzU3MzE3My4KCjIwMDktMDMtMDIgMDk6NDM6MzAgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vdGhvbWFzdnNAZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWdvb2QKCjIwMDktMDMtMDIgMDg6NDE6MTUgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIEFkZC9jbGFyaWZ5L2ZpeCBzb21lIGxvZ2dpbmcuCgoyMDA5LTAzLTAxIDEyOjQ3OjM3IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BodXRjaC0yLmxvY2FsPgoKCSogc3lzL29zeHZpZGVvL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgaGFyZGNvZGVkIGRlZmluaXRpb24gb2YgT0JKQwoKMjAwOS0wMy0wMSAxOTo1NToyNiArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgV2FpdCBmb3IgYSBmcmFtZSB0byBiZWNvbWUgYXZhaWxhYmxlIGJlZm9yZSBjYXB0dXJpbmcgaXQKCSAgVXNlIEdzdFBvbGwgdG8gd2FpdCBmb3IgdGhlIGZkIG9mIHRoZSB2aWRlbyBkZXZpY2UgdG8gYmVjb21lIHJlYWRhYmxlIGJlZm9yZQoJICB0cnlpbmcgdG8gY2FwdHVyZSBhIGZyYW1lLiBUaGlzIHNwZWVkcyB1cCBzdG9wcGluZyB2NGwyc3JjIGEgbG90IGFzIGl0IG5vCgkgIGxvbmdlciBoYXMgdG8gd2FpdCBmb3IgdGhlIG5leHQgZnJhbWUsIGVzcGVjaWFsbHkgd2hlbiBjYXB0dXJpbmcgd2l0aCBsb3cKCSAgZnJhbWVyYXRlcyBvciB3aGVuIHRoZSB2aWRlbyBkZXZpY2UganVzdCBuZXZlciBnZW5lcmF0ZXMgYSBmcmFtZSAod2hpY2ggc2VlbXMgYQoJICBjb21tb24gaXNzdWUgZm9yIHV2Y3ZpZGVvIGRldmljZXMpCgkgIEZpeGVzIGJ1ZyAjNTYzNTc0LgoKMjAwOS0wMi0xNCAxNzo1NjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkgIGFsYXdkZWMsIG11bGF3ZGVjOiBkZW1vdGUgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmcm9tIEVSUk9SIHRvIFdBUk5JTkcgb3IgREVCVUcKCSAgTm9uLW9rIGZsb3cgcmV0dXJucyBtYXkgaGFwcGVuIGZvciBhIHZhcmlldHkgb2YgcGVyZmVjdGx5IGxlZ2l0aW1hdGUgYW5kIGV4cGVjdGVkIHJlYXNvbnMKCSAgKHRlbXBvcmFyaWx5IG5vdCBsaW5rZWQsIHNlZWtpbmcsIHBpcGVsaW5lIHNodXRkb3duKSwgc28gd2UgcmVhbGx5IHNob3VsZG4ndCBzcGV3IEVSUk9SCgkgIGRlYnVnIG1lc3NhZ2VzIHRvIHN0ZGVyciBpbiB0aG9zZSBjYXNlcy4gRml4ZXMgIzU3MDc4MS4gKFNlZW1zIGxpa2Ugc29tZW9uZSBhbHJlYWR5IHRvb2sKCSAgY2FyZSBvZiBzb21lIG9mIHRoZXNlLikKCjIwMDktMDItMjggMTU6MjY6MDAgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOgoJICByZ3ZvbHVtZTogSW1wcm92ZSBsb2cgbWVzc2FnZSBmb3IgcGVhayB2YWx1ZXMgPjEuMCBieSBjbGFtcGluZyBleHBsaWNpdGx5LgoKMjAwOS0wMi0yNyAyMzoyNTozMiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvZHYvZ3N0ZHZkZWMuYzoKCSAgRml4IHRoZSBmaWVsZCBkb21pbmFuY2UKCSAgUEFMIGlzIFRGRiwgTlRTQyBpcyBCRkYuICBTb21lIGRheSBJIHdpbGwgbGVhcm4gdG8ga2VlcCB0aGlzCgkgIHN0cmFpZ2h0LgoKMjAwOS0wMi0yNyAyMDo0MDozMSArMDEwMCAgTFJOIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgIGRpcmVjdGRyYXdzaW5rOiBGaXggdHlwZSBtaXNtYXRjaGVzCgkgIEZpeGVzIGJ1ZyAjNTczMzQzLgoKMjAwOS0wMi0yNyAyMDoyODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWdvb2QKCjIwMDktMDItMjcgMjA6MjQ6NTMgKzAxMDAgIExSTiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIHVkcDogRG9uJ3Qgc2V0IGVycm5vIHRvIEVBRk5PU1VQUE9SVCB1bmNvbmRpdGlvbmFsbHkKCSAgRml4ZXMgYnVnICM1NzMzNDIuCgoyMDA5LTAyLTI3IDExOjE3OjUwIC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmM6CgkgIHJndm9sdW1lOiBpZ25vcmUgb3V0LW9mLXJhbmdlIHBlYWsgdmFsdWVzCgkgIElmIHRoZSBwZWFrIHZhbHVlIGlzID4gMSAoYW5kIHRodXMgbm9uc2Vuc2ljYWwpIGlnbm9yZSBpdC4gUHJldmVudHMKCSAgcmd2b2x1bWUgcmVkdWNpbmcgdm9sdW1lIHRvIGVmZmVjdGl2ZWx5IHNpbGVudCBvbiBmaWxlcyB3aXRoIGJvZ3VzIHBlYWsKCSAgdmFsdWVzLgoKMjAwOS0wMi0yNyAxMzoyOTo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgd2F2cGFyc2U6IEZpeCBTRUVLIGV2ZW50IGhhbmRsaW5nIGluIHB1c2ggbW9kZSwgYW5kIFNFRUtBQkxZIHF1ZXJ5IGhhbmRsaW5nCgkgIFN0YW5kYXJkIHB1bGwgbW9kZSBsb29wIGJhc2VkIFNFRUsgaGFuZGxpbmcgZmFpbHMgaW4gcHVzaCBtb2RlLAoJICBzbyBjb252ZXJ0IHRoZSBTRUVLIGV2ZW50IGFwcHJvcHJpYXRlbHkgYW5kIGRpc3BhdGNoIHRvIHVwc3RyZWFtLgoJICBBbHNvIGNhdGVyIGZvciBORVdTRUdNRU5UIGV2ZW50IGhhbmRsaW5nLCBhbmQgcHJvcGVybHkgaW5mb3JtCgkgIGRvd25zdHJlYW0gYW5kIGFwcGxpY2F0aW9uIG9mIFNFRUtBQkxFIGNhcGFiaWxpdGllcywgZGVwZW5kaW5nCgkgIG9uIHNjaGVkdWxpbmcgbW9kZSBhbmQgdXBzdHJlYW0uCgoyMDA5LTAyLTI3IDExOjA0OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIG1hdHJvc2thZGVtdXg6IFJlbW92ZSBnc3RfdXRpbF9kdW1wX21lbSgpIGNhbGxzLgoKMjAwOS0wMi0yNiAxOTowNzozNSArMDEwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQGZsdWVuZG8uY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBhdmlkZW11eDogZml4IFNFRUsgZXZlbnQgaGFuZGxpbmcgaW4gcHVzaCBtb2RlCgkgIFdoZW4gaW4gcHVzaCBtb2RlIHdlIHNob3VsZCBub3QgdHJ5IHRvIGhhbmRsZSB0aGUgU0VFSyBldmVudCBhcyB0aGVyZSdzCgkgIG5vIGNvZGUgdG8gaGFuZGxlIGl0IHByb3Blcmx5LiBQcm9wYWdhdGUgdXBzdHJlYW0uCgoyMDA5LTAyLTI2IDE5OjA1OjA2ICswMTAwICBQYXRyaWNrIFJhZGl6aSA8cGF0cmljayBkb3QgcmFkaXppIGF0IGF4aXMgZG90IGNvbT4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgcnRzcHNyYzogYWRkIHRoZSAuaCBmaWxlIGNoYW5nZSB0b28KCSAgQWRkIHRoZSAuaCBmaWxlIGNoYW5nZSBmb3IgdGhlIG5ldyBwcm9wZXJ0eS4KCjIwMDktMDItMjYgMTk6MDM6NTIgKzAxMDAgIFBhdHJpY2sgUmFkaXppIDxwYXRyaWNrIGRvdCByYWRpemkgYXQgYXhpcyBkb3QgY29tPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBydHNwc3JjOiBhZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBSVENQCgkgIFNvbWUgb2xkIHNlcnZlcnMgZG9uJ3QgbGlrZSB1cyBkb2luZyBSVENQIGFuZCB0aHVzIHdlIG5lZWQgYSBwcm9wZXJ0eSB0byBkaXNhYmxlCgkgIGl0LiBTZWUgIzU3MzE3My4KCjIwMDktMDItMjYgMTM6MTk6MzEgKzAxMDAgIEphbiBTbW91dCA8amFuIGRvdCBzbW91dCBhdCBnbWFpbCBkb3QgY29tPgoKCSogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOgoJICB1ZHA6IGZpeCBnc3RfdWRwX3NldF9sb29wX3R0bCgpIGFnYWluCgkgIEZpeCB0aGUgZ3N0X3VkcF9zZXRfbG9vcF90dGwoKSBmdW5jdGlvbiB0aGF0IHdhcyBjb21tZW50ZWQgb3V0IGluIGEKCSAgcHJldmlvdXMgY29tbWl0LiBTZWUgIzU3MzExNS4KCjIwMDktMDItMjYgMTM6MDY6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOgoJICBydHB2cmF3ZGVwYXk6IGZhaWwgb24gaW50ZXJsYWNlZCB2aWRlbwoJICBGYWlsIG9uIGludGVybGFjZWQgdmlkZW8gdW50aWwgd2Ugc3VwcG9ydCBpdC4KCjIwMDktMDItMjYgMTM6MDA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzoKCSAgcnRwdnJhd3BheTogZmFpbCBvbiBpbnRlcmxhY2VkIHZpZGVvCgkgIERldGVjdCBhbmQgZmFpbCB3aGVuIHRyeWluZyB0byBwYXlsb2FkIGludGVybGFjZWQgdmlkZW8uCgoyMDA5LTAyLTI1IDIwOjQ3OjE1IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgQ2hhbmdlIGhvdyB3aW4zMi9jb21tb24vY29uZmlnLmggaXMgdXBkYXRlZAoJICBHZW5lcmF0ZSB3aW4zMi9jb21tb24vY29uZmlnLmgtbmV3IGRpcmVjdGx5IGZyb20gY29uZmlnLmguaW4sCgkgIHVzaW5nIHNoZWxsIHZhcmlhYmxlcyBpbiBjb25maWd1cmUgYW5kIHNvbWUgaGFyZC1jb2RlZCBpbmZvcm1hdGlvbi4KCSAgQ2hhbmdlIHRvcC1sZXZlbCBtYWtlZmlsZSBzbyB0aGF0ICdtYWtlIHdpbjMyLXVwZGF0ZScgY29waWVzIHRoZQoJICBnZW5lcmF0ZWQgZmlsZSB0byB3aW4zMi9jb21tb24vY29uZmlnLmgsIHdoaWNoIHdlIGtlZXAgaW4gc291cmNlCgkgIGNvbnRyb2wuICBJdCdzIGtlcHQgaW4gc291cmNlIGNvbnRyb2wgc28gdGhhdCB0aGUgZ2l0IHRyZWUgaXMKCSAgYnVpbGRhYmxlIGZyb20gVlMuCgkgIFRoaXMgY2hhbmdlIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSByZWNlbnRseSBhcHBsaWVkIHRvIEdTdHJlYW1lcgoJICBhbmQgZ3N0LXBsdWdpbnMtZ29vZC4gIFRoZSBwcmV2aW91cyBjb25maWcuaCBmaWxlIGluIC1nb29kIHdhcyBpbgoJICBwcmV0dHkgYmFkIHNoYXBlLCBzbyB1bmxpa2UgY29yZSBhbmQgYmFzZSwgSSBkaWRuJ3QgYXR0ZW1wdCB0bwoJICBsZWF2ZSBpdCBzdHJpY3RseSB0aGUgc2FtZSwgYnV0IGZpeGVkIGl0IGFzIG5lY2Vzc2FyeS4gIE5lZWRzCgkgIHRlc3RpbmcgSSBjYW5ub3QgZG8gbXlzZWxmLgoKMjAwOS0wMi0yNSAxOTo1ODoyOSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBleHQvZHYvZ3N0ZHZkZWMuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmg6CgkgIGR2ZGVjOiBBZGQgaW50ZXJsYWNpbmcgaW5mbyB0byBjYXBzIGFuZCBidWZmZXJzCgoyMDA5LTAyLTI1IDE0OjU3OjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IFVwZGF0ZSBzaGF2ZSBpbml0IHN0YXRlbWVudCBmb3IgY2hhbmdlcyBpbiBjb21tb24uIEJ1bXAgY29tbW9uLgoKMjAwOS0wMi0yNSAxNDowMToyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogZml4IGNvbXBpbGF0aW9uCgkgIEZpeCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIE1TR19FUlJRVUVVRSBhbmQgSVBfUkVDVkVSUi4KCjIwMDktMDItMTkgMjA6MTQ6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICBqcGVnZW5jOiBlcnJvciBvdXQgaW5zdGVhZCBvZiBjcmFzaGluZyBpZiBubyBjYXBzIGhhdmUgYmVlbiBzZXQKCSAgRG9uJ3QgY3Jhc2ggaWYgd2UgcmVjZWl2ZSBhIGJ1ZmZlciB3aXRob3V0IGNhcHMuIEZpeGVzICM1NzI0MTMuCgoyMDA5LTAyLTI1IDExOjM1OjMxICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogTWFrZSBzdXJlIHRoZSBzb2NrYWRkciBsZW5ndGggdXNlZCBmb3IgcmVjdmZyb20oKSBpcyBiaWcgZW5vdWdoLgoJICBQcmV2aW91c2x5IHRoZSBzb2NrYWRkciBsZW5ndGggdXNlZCBmb3IgcmVjdmZyb20oKSB3YXMgY2FsY3VsYXRlZCBhcwoJICBzaXplb2YgKHN0cnVjdCBzb2NrYWRkcikuIEhvd2V2ZXIsIHRoaXMgaXMgdG9vIGxpdHRsZSB0byBob2xkIGFuIElQdjYKCSAgYWRkcmVzcywgc28gdGhlIGZ1bGwgc2l6ZSBvZiB0aGUgZ3N0X3NvY2thZGRyIHVuaW9uIHNob3VsZCBiZSB1c2VkCgkgIGluc3RlYWQuCgoyMDA5LTAyLTI1IDExOjMyOjI4ICswMTAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcHNyYzogVW5pZnkgdGhlIHVzZSBvZiB1bmlvbiBnc3Rfc29ja2FkZHIuCgoyMDA5LTAyLTI1IDExOjMyOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDljZjhjOWIgdG8gYTZjZTVjNgoKMjAwOS0wMi0yNSAxMjowNToyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgYXZpZGVtdXg6IGF2b2lkIGNyYXNoaW5nIG9uIHN1YnRpdGxlcwoJICBBdm9pZCBhIGNyYXNoIGluIGF2aSB3aXRoIHN1YnRpdGxlcyBieSBvbmx5IGRlcmVmZXJlbmNpbmcgdGhlIHZpZGVvIGRlc2NyaXB0aW9uCgkgIHdoZW4gd2UgYWN0dWFsbHkgYXJlIGRlYWxpbmcgd2l0aCB2aWRlbyBpbiB0aGUgX2ludmVydCBmdW5jdGlvbi4KCjIwMDktMDItMjQgMTc6NTg6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIHVkcDogRml4IHN0cmljdC1hbGlhc2luZyB3YXJuaW5ncyBmcm9tIGdjYyA0LjQuMAoJICBGaXggc3RyaWN0IGFsaWFzaW5nIHdhcm5pbmdzIGJ5IGRlZmluaW5nIGEgdW5pb24gb24gdGhlIGRpZmZlcmVudAoJICBzb2NrYWRkciBzdHJ1Y3RzIHRoYXQgd2UgbmVlZC4KCjIwMDktMDItMjQgMTc6MzU6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgIHJ0cDogRml4IGNvbXBpbGVyIHdhcm5pbmcgaW4gaDI2NCBwYXlsb2FkZXIKCSAgRml4IGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIgd2FybmluZyBmcm9tIGdjYyA0LjQuMAoJICBQYXRjaCBCeTogVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgkgIEZpeGVzOiAjNTcwOTk1CgkgIFNpZ25lZC1PZmYtQnk6IEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKMjAwOS0wMi0yMiAxNzoyMzowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIFVzZSBzaGF2ZSBmb3IgdGhlIGJ1aWxkIG91dHB1dAoKMjAwOS0wMi0yNCAxNDo1NToyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvZ2NvbmYvTWFrZWZpbGUuYW06CgkqIGV4dC9nY29uZi9nY29uZi5jOgoJKiBleHQvZ2NvbmYvZ2NvbmYuaDoKCSogZXh0L2djb25mL2dzdGdjb25mLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZi5oOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZlbGVtZW50cy5oOgoJICBnY29uZjogUmVuYW1lIGdjb25mLltjaF0gdG8gZ3N0Z2NvbmYuW2NoXSB0byBwcmV2ZW50IG5hbWUgY29uZmxpY3RzCgoyMDA5LTAyLTI0IDE0OjQxOjI2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICBxdGRlbXV4OiBBbHNvIHVzZSAiKGMpaW5mIiB0byBmaWxsIHRoZSBjb21tZW50IHRhZwoKMjAwOS0wMS0yNiAxMTowNjoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIHJ0c3BzcmM6IHBlcmZvcm0gVURQIFNFVFVQIGFjY29yZGluZyB0byBNUyBSVFNQIHNwZWMKCSAgTVMgUlRTUCBzcGVjIHN0YXRlcyB0aGF0IHRoZSBVRFAgcG9ydCBwYWlyIHVzZWQgaW4gc3Vic2VxdWVudCBTRVRVUAoJICByZXF1ZXN0cyBmb3IgdmFyaW91cyBzdHJlYW1zIG11c3QgYmUgaWRlbnRpY2FsIChzaW5jZSB0aGVyZSB3aWxsIGFjdHVhbGx5CgkgIGJlIG9ubHkgMSBzdHJlYW0gb2YgbXV4ZWQgYXNmIHBhY2tldHMpLiAgRm9sbG93aW5nIHRyYWRpdGlvbmFsIHNwZWNzIGFuZAoJICB1c2luZyBkaWZmZXJlbnQgcG9ydCBwYWlycyBpbiB0aGUgU0VUVVBzIGZvciBzZXBhcmF0ZSBzdHJlYW1zIHdpbGwgcmVzdWx0CgkgIGluIGFsbCBidXQgdGhlIGZpcnN0IG9uZSBmYWlsaW5nIGFuZCBvbmx5IG9uZSBzdHJlYW0gYmVpbmcgc3RyZWFtZWQuCgkgIFNvLCBpbiBhcHByb3ByaWF0ZSBjaXJjdW1zdGFuY2VzLCByZXRyeSBVRFAgU0VUVVAgdXNpbmcgcHJldmlvdXNseSB1c2VkCgkgIHBvcnQgcGFpci4gIEZpeGVzICM1NTI2NTAuCgoyMDA5LTAyLTIzIDIwOjQ5OjM3ICswMTAwICBBdXJlbGllbiBHcmltYXVkIDxnc3RlbHp6IGF0IHlhaG9vIGRvdCBmcj4KCgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIFJlYWQgSUNNUCBlcnJvciBtZXNzYWdlcyBpbnN0ZWFkIG9mIGxvb3BpbmcKCSAgV2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGNvbm5lY3RlZCBzb2NrZXRzIHNoYXJlZCBiZXR3ZWVuIGEgdWRwc3JjIGFuZCBhIHVkcHNpbmsKCSAgd2UgbWlnaHQgcmVjZWl2ZSBJQ01QIGNvbm5lY3Rpb24gcmVmdXNlZCBlcnJvciBtZXNzYWdlcyBpbiB1ZHBzcmMgdGhhdCB3aWxsCgkgIGNhdXNlIGl0IHRvIGdvIGludG8gYSBidXJzdHkgbG9vcCBiZWNhdXNlIHRoZSBwb2xsIHJldHVybnMgcmlnaHQgYXdheSB3aXRob3V0IGEKCSAgbWVzc2FnZSB0byByZWFkLgoJICBJbnN0ZWFkIG9mIGxvb3BpbmcsIHJlYWQgdGhlIGVycm9yIG1lc3NhZ2UgZnJvbSB0aGUgZXJyb3IgcXVldWUgaW4gdWRwc3JjLgoJICBGaXhlcyAjNTY3ODU3LgoKMjAwOS0wMi0yMyAxOTo1Mzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgQ29uZGl0aW9uYWxseSBjb21waWxlIGNvZGUgZm9yIFlWWVUKCSAgT25seSBjb21waWxlIHRoZSBjb2RlIGZvciB0aGUgWVZZVSBmb3JtYXQgd2hlbiB0aGUgZm9ybWF0IGlzIGFjdHVhbGx5IGRlZmluZWQuCgkgIFNwb3R0ZWQgYnkgdG1hdHRoIG9uIElSQy4KCjIwMDktMDItMTcgMTE6MDE6NDcgLTA4MDAgIExldmVudGUgRmFya2FzIDxsZmFya2FzQGxmYXJrYXMub3JnPgoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICB2NGwyc3JjOiBNYWtlIHNvcnRfYnlfZnJhbWVfc2l6ZSBjb25kaXRpb25hbGx5IGNvbXBpbGVkCgkgIHNvcnRfYnlfZnJhbWVfc2l6ZSBpcyBkZWNsYXJlZCBzdGF0aWMgYW5kIG9ubHkgdXNlZCBpbnNpZGUKCSAgYW4gaWZkZWYsIHNvIHVzZSB0aGUgc2FtZSBpZmRlZiB0byBkZWZpbmUgdGhlIGZ1bmN0aW9uLiAgRml4ZXMgIzU3MjE4NQoJICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCjIwMDktMDItMjMgMTc6MDU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIEFkZCBZVllVIGZvcm1hdCB0byBjYXBzCgkgIEFkZCBZVllVIGZvcm1hdCB0byB0aGUgY2Fwcy4gV2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBoYW5kbGUgdGhlc2UgY2FwcyB5ZXQsCgkgIHRob3VnaC4KCjIwMDktMDItMjMgMTU6NDg6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAgU29tZSBjbGVhbnVwcwoJICBSZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoJICBBdm9pZCBhIHVzZWxlc3MgX3Jlc3luYyBjYWxsLgoJICBDb3JyZWN0bHkgdXNlIGEgZ2Jvb2xlYW4uCgoyMDA5LTAyLTIzIDE1OjQzOjUxICswMTAwICBXYWktTWluZyBIbyA8d2FpbWluZyBhdCBhaWx1cm9wb2RhIGRvdCBuZXQ+CgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzoKCSAgQWx3YXlzIGFkZCBQUFMgdG8gdGhlIHNwcm9wLXBhcmFtZXRlcnMtc2V0CgkgIFJld29yayB0aGUgcGFyc2luZyBjb2RlIHRoYXQgdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzIGRyb3BwZWQgdGhlIFBQUyBmcm9tCgkgIHRoZSBzcHJvcC1wYXJhbWV0ZXJzLXNldC4KCSAgRml4ZXMgIzU3Mjg1NC4KCjIwMDktMDItMjMgMTI6MTQ6MjMgKzAxMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXQgYXQgbWluZCBkb3QgYmU+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIERvbid0IGRvIGNyYXp5IHRoaW5ncyB3aXRoIDAvMSBmcmFtZXJhdGVzCgkgIFdlIHVzZSAwLzEgZnJhbWVyYXRlcyB0byBtYXJrIHZhcmlhYmxlIGZyYW1lcmF0ZXMgYW5kIG1hdHJvc2thbXV4IHNob3VsZCBub3QgdHJ5CgkgIHRvIGNhbGN1bGF0ZSBhIGZyYW1lIGR1cmF0aW9uIGZvciBpdC4KCSAgRml4ZXMgIzU3MTI5NC4KCjIwMDktMDItMjMgMTE6NDU6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgbmV3ZXIgZ3N0LXAtYiBmb3IgdGhlIFJUU1AgZXh0ZW5zaW9ucy4KCSAgLS0KCjIwMDktMDItMjMgMTE6NDI6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIENhbGwgbmV3IHJlY2VpdmVfcmVxdWVzdCBtZXRob2QKCSAgQ2FsbCB0aGUgcmVjZWl2ZV9yZXF1ZXN0IGV4dGVuc2lvbiBtZXRob2RzIHNvIHRoYXQgZXh0ZW5zaW9ucyBjYW4gaGFuZGxlIHRoZQoJICBzZXJ2ZXIgcmVxdWVzdCBpZiB0aGV5IHdhbnQuCgoyMDA5LTAyLTIzIDExOjEzOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3J0c3AvZ3N0cnRzcGV4dC5jOgoJKiBnc3QvcnRzcC9nc3RydHNwZXh0Lmg6CgkgIEFkZCBtZXRob2QgZm9yIGhhZGxpbmcgc2VydmVyIHJlcXVlc3RzCgkgIEFkZCBtZXRob2QgdG8gaGFuZGxlIHNlcnZlciByZXF1ZXN0cyBvbiB0aGUgbGlzdCBvZiBSVFNQIGV4dGVuc2lvbnMuCgoyMDA5LTAyLTEzIDE0OjM5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOgoJICBEb24ndCB1c2UgR1NUX0VSUk9SIGZvciBub24tZXJyb3IgY2FzZXMuCgkgIFR1cm4gYSBHU1RfRVJST1IgbGluZSBpbnRvIGEgR1NUX0RFQlVHIGxpbmUgc28gdGhhdCB3ZSBkb24ndCBzcGFtIHRoZSBsb2cgd2l0aAoJICBlcnJvcnMuIEZpeGVzICM1NzA3ODEuCgoyMDA5LTAyLTIyIDE5OjMwOjMyICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuYzoKCSogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmg6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmg6CgkgIGdjb25mdmlkZW8oc3JjfHNpbmspOiBEaXNjb25uZWN0IEdDb25mIG5vdGlmaWNhdGlvbnMKCSAgRml4ZXMgYnVnICM1NzEzMjEuCgoyMDA5LTAyLTIyIDE5OjI1OjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICBtYXRyb3NrYWRlbXV4OiBVbnJlZiB0aGUgYnVmZmVyIGFuZCBub3QgdGhlIG1lbW9yeSBhZGRyZXNzIG9mIHRoZSBidWZmZXIKCjIwMDktMDItMjIgMTg6NDc6MzUgKzAxMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkgIGFsYXcvbXVsYXc6IEltcGxlbWVudCBfZ2V0Y2FwcyBmdW5jdGlvbiBmb3IgYWxhdy9tdWxhdyBkZWNvZGVycwoJICBGaXhlcyBidWcgIzU3MjM1OC4KCjIwMDktMDItMjIgMTg6NDY6MDMgKzAxMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkgIGFsYXcvbXVsYXc6IERvbid0IHJlcXVpcmUgYm90aCwgcmF0ZSBhbmQgY2hhbm5lbCwgdG8gYmUgc2V0IGluIF9nZXRjYXBzCgkgIEZpeGVzIGJ1ZyAjNTcyMzU4LgoKMjAwOS0wMi0yMiAxODozMjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGF2aWRlbXV4OiBGaXggYWxpZ25tZW50IGlzc3VlcyBieSB1c2luZyBHU1RfUkVBRF8qCgkgIFJlYWRpbmcgaW50ZWdlcnMgZnJvbSByYW5kb20gbWVtb3J5IGFkZHJlc3NlcyB3aWxsIHJlc3VsdAoJICBpbiBTSUdCVVMgb24gc29tZSBhcmNoaXRlY3R1cmVzIGlmIHRoZSBtZW1vcnkgYWRkcmVzcwoJICBpcyBub3QgY29ycmVjdGx5IGFsaWduZWQuIFRoaXMgY2FuIGhhcHBlbiBhdCB0d28KCSAgcGxhY2VzIGluIGF2aWRlbXV4IHNvIHdlIHNob3VsZCB1c2UgR1NUX1JFQURfVUlOVDMyX0xFCgkgIGFuZCBmcmllbmRzIGhlcmUuIEZpeGVzIGJ1ZyAjNTcyMjU2LgoKMjAwOS0wMi0yMiAxODowODo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuYzoKCSAgcHVsc2VtaXhlcjogRG9uJ3QgdXNlIGdfYXRvbWljX2ludF8oZ2V0fHNldCkgZm9yIGFjY2Vzc2luZyB0aGUgbWl4ZXIgdHJhY2sgZmxhZ3MKCSAgZ19hdG9taWNfaW50XyhnZXR8c2V0KSBvbmx5IHdvcmsgb24gaW50cyBhbmQgdGhlIGZsYWdzIGFyZQoJICBhbiBlbnVtICh3aGljaCBvbiBtb3N0IGFyY2hpdGVjdHVyZXMgaXMgc3RvcmVkIGFzIGFuIGludCkuCgkgIEFsc28gdGhlIHdheSB0aGUgZmxhZ3Mgd2VyZSBhY2Nlc3NlZCBhdG9taWNhbGx5IHdvdWxkIHN0aWxsCgkgIGxlYXZlIGEgcG9zc2libGUgcmFjZSBjb25kaXRpb24gYW5kIHdlIGRvbid0IGRvIGl0IGluIGFueQoJICBvdGhlciBtaXhlciB0cmFjayBpbXBsZW1lbnRhdGlvbiwgbGV0IGFsb25lIGF0IGFueSBvdGhlcgoJICBwbGFjZSB3aGVyZSBhbiBpbnRlZ2VyIGNvdWxkIGJlIGNoYW5nZWQgZnJvbSBkaWZmZXJlbnQKCSAgdGhyZWFkcy4gUmVtb3ZpbmcgdGhlIGdfYXRvbWljX2ludF8oZ2V0fHNldCkgd2lsbCBvbmx5CgkgIGludHJvZHVjZSBhIG5ldyByYWNlIGNvbmRpdGlvbiBvbiBhcmNoaXRlY3R1cmVzIHdoZXJlCgkgIGludGVnZXJzIGNvdWxkIGJlIGhhbGYtd3JpdHRlbiB3aGlsZSByZWFkaW5nIHRoZW0KCSAgd2hpY2ggc2hvdWxkbid0IGJlIHRoZSBjYXNlIGZvciBhbnkgbW9kZXJuIGFyY2hpdGVjdHVyZQoJICBhbmQgaWYgd2UgcmVhbGx5IGNhcmUgYWJvdXQgdGhpcyB3ZSBuZWVkIHRvIHVzZQoJICBnX2F0b21pY19pbnRfKGdldHxzZXQpIGF0IG1hbnkgb3RoZXIgcGxhY2VzIHRvby4KCSAgQXBhcnQgZnJvbSB0aGF0IGdfYXRvbWljX2ludF8oc2V0fGdldCkgd2lsbCByZXN1bHQgaW4KCSAgYWxpYXNpbmcgd2FybmluZ3MgaWYgdGhlaXIgYXJndW1lbnQgaXMgZXhwbGljaXRlbHkKCSAgY2FzdGVkIHRvIGFuIGludCAqLiBGaXhlcyBidWcgIzU3MTE1My4KCjIwMDktMDItMjIgMTU6NTI6MDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWQ3YzljYyB0byA5Y2Y4YzliCgoyMDA5LTAyLTIyIDEyOjQxOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9yYXcxMzk0L2dzdGhkdjEzOTRzcmMuYzoKCSAgaGR2MTM5NHNyYzogRG9uJ3QgdXNlIHZvaWQgKiBwb2ludGVyIGFyaXRobWV0aWMKCjIwMDktMDItMjEgMTE6MTM6NDMgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4MGM2MjdkIHRvIDVkN2M5Y2MKCjIwMDktMDItMjEgMTg6NDI6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjE0LjEKCjIwMDktMDItMjEgMTI6NDc6MDAgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIHJlc3BlY3QgREVGQVVMVCBzZWdtZW50IGJ5IGNsaXBwaW5nIHRoZSBsYXN0IGJ1ZmZlciB0byBiZSBzZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjE0ID09PQoKMjAwOS0wMi0xOSAyMDowOTowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE0CgoyMDA5LTAyLTE5IDIwOjA3OjQxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDItMTkgMTM6MTY6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6CgkgIFVwZGF0ZSBTaW5jZTogdGFncyBpbiBhdXRvZGV0ZWN0IHNyY3MgYW5kIGF1ZGlvZWNobwoKMjAwOS0wMi0xOSAxMToxMjo1OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBVcGRhdGUgQ2hhbmdlTG9nIGZvciAwLjEwLjEzLjMKCjIwMDktMDItMTkgMTE6MDk6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAwLjEwLjEzLjMgcHJlLXJlbGVhc2UKCjIwMDktMDItMTAgMTE6MjU6NDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkgIHB1bHNlbWl4ZXI6IEZpeCBjb21waWxlciB3YXJuaW5ncy4KCSAgQ2FzdCAoZW51bSAqKSB0byAoaW50ICopLCBub3QgbmVjZXNzYXJpbHkgdGVjaG5pY2FsbHkgcmlnaHQsCgkgIGJ1dCBwbHVncyAjNTcxMTUzLgoKMjAwOS0wMi0xMyAxODowMzoxNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgcHVsc2VzaW5rOiBJc3N1ZSBwcm9wZXJ0eSBjaGFuZ2Ugbm90aWZpY2F0aW9uIGluIHN0cmVhbWluZyB0aHJlYWQsIHJhdGhlciB0aGFuIFBBIHRocmVhZC4KCSAgcGFfdGhyZWFkZWRfbWFpbmxvb3BfbG9jaygpIChhLm8uKSBhbmQgYnkgZXh0ZW5zaW9uIGdldF9wcm9wZXJ0eSBzaG91bGQKCSAgbm90IGJlIGRvbmUgZnJvbSBhIFBBIHRocmVhZCwgYnV0IHRoZSBsYXR0ZXIgbWF5IG9jY3VyIGFzIGEgcmVzdWx0IG9mIGEKCSAgcHJvcGVydHkgY2hhbmdlIG5vdGlmaWNhdGlvbi4gIEZpeGVzICM1NzEyMDQgKHRob3VnaCBjdXJyZW50IHNpdHVhdGlvbgoJICBub3QgaWRlYWwsIGUuZy4gcG9zdCBtZXNzYWdlIHJhdGhlciB0aGFuIHNpZ25hbCkuCgoyMDA5LTAyLTEwIDExOjI3OjUxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSAgYXNwZWN0cmF0aW9jcm9wOiBEb24ndCBmb3JnZXQgdG8gY2FsbCBwYXJlbnQgZmluYWxpemUgaW1wbGVtZW50YXRpb24uCgkgIFRoaXMgZml4ZXMgYSBtZW1vcnkgbGVhayAobGVha2luZyB0aGUgY29udGFpbmVkIGVsZW1lbnRzIG9mIHRoZSBiaW4pLgoKMjAwOS0wMi0xMCAwODo0Mzo1OSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiBGaXggYnVpbGQuIEZpeGVzICM1NzEwMzgKCjIwMDktMDItMDkgMTI6MTg6MzYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEJ1bXAgcmV2aXNpb24gdG8gdXNlIGZvciBjb21tb24gc3VibW9kdWxlLgoKMjAwOS0wMi0wNyAxNjowMDo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2c6IFVwZGF0ZSBDaGFuZ2VMb2cgZm9yIDAuMTAuMTMuMgoKMjAwOS0wMi0wNyAxNTo1ODo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL210LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfSEsucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgMC4xMC4xMy4yCgoyMDA5LTAyLTA3IDE1OjQ2OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjEzLjIKCjIwMDktMDItMDcgMTU6NDA6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL210LnBvOgoJICBwbzogQWRkIE1hbHRlc2UgdHJhbnNsYXRpb24KCjIwMDktMDItMDYgMTY6MTY6MDUgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuYzoKCSAgcXRkZW11eDogQWRkIGhhbmRsaW5nIGZvciBzdHBzIGF0b21zCgkgIHN0cHMgYXRvbXMgY29udGFpbiAicGFydGlhbCBzeW5jIiBpbmZvcm1hdGlvbiwgd2hpY2ggbWVhbnMgdGhhdCBpdCdzCgkgIGEgc3luYyBwb2ludCB3aGVyZSBwdHMgIT0gZHRzLiAgVGhpcyBpcyBuZWVkZWQgdG8gcHJvcGVybHkgaGFuZGxlCgkgIE1QRUcyLCBILjI2NCwgRGlyYWMsIGV0Yy4sIGluIHF1aWNrdGltZS4KCjIwMDktMDItMDUgMTU6NTE6NDIgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBmbGFjZGVjOiBpZiB3ZSBhYm9ydGVkIHJlYWRpbmcsIGRvbid0IGRvIGludG8gYW4gaW5maW5pdGUgbG9vcC4KCSAgSWYgb3VyIHJlYWQgY2FsbGJhY2sgcmFuIG91dCBvZiBkYXRhLCBzbyBoYWQgdG8gYWJvcnQgcmVhZGluZywgd2UgcmV0dXJuCgkgIEdTVF9GTE9XX0VSUk9SIGluc3RlYWQgb2YgZ29pbmcgaW50byBhbiBpbmZpbml0ZSBsb29wLgoKMjAwOS0wMi0wNSAxMDoxOTozNyAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgb3N4dmlkZW9zaW5rOiByZW1vdmUgbm9uLWVtYmVkZGVkIG1vZGUgYW5kIGZpeCBtZW1vcnkgbWFuYWdlbWVudC4KCSAgUmVtb3ZlIG5vbi1lbWJlZGRlZCBtb2RlLiBFbWJlZCBtb2RlIGJlY29tZXMgZGVmYXVsdCBhbmQgb25seSBtb2RlLgoJICBlbWJlZCBwcm9wZXJ0eSBpcyByZXRhaW5lZCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkuCgkgIEFkZGVkIGF1dG9yZWxlYXNlIHBvb2xzIGFyb3VuZCBhbGwgb2JqYyBmdW5jdGlvbnMgdGhhdCBtaWdodCBiZSBjYWxsZWQKCSAgZnJvbSBhIG5vbi1tYWluIHRocmVhZC4KCjIwMDktMDItMDUgMjA6MDI6MDEgKzAxMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkgIGRlYnVnIG9uIHRoZSBvYmplY3QKCjIwMDktMDItMDQgMTY6NDA6MTMgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuYzoKCSAgb3N4YXVkaW8gZml4ZXM6IG11bHRpY2hhbm5lbCBhbmQgY2hhbmdpbmcgY2Fwcy4KCSAgRW5zdXJlIHdlIGNyZWF0ZSB0aGUgcmluZ2J1ZmZlciBzZWdtZW50IHNpemUgYXMgYSBtdWx0aXBsZSBvZiB0aGUKCSAgYnl0ZXMgcGVyIHNhbXBsZSAoZml4ZXMgNi1jaGFubmVsIG91dHB1dCkuCgkgIFJlc2V0IHRoZSBzZWdvZmZzZXQgd2hlbiBhY3F1aXJpbmcgdGhlIHJpbmdidWZmZXIsIHNvIHdlIGRvbid0IHJldGFpbgoJICBhIGJvZ3VzIG9mZnNldCB3aGVuIGNhcHMgY2hhbmdlLgoKMjAwOS0wMi0wNCAxMTozODozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBydHNwc3JjOiBLZWVwIHRyYWNrIG9mIGNvbm5lY3RlZCBzdGF0ZQoJICBLZWVwIHRyYWNrIG9mIHRoZSBzdGF0ZSBvZiB0aGUgY29ubmVjdGlvbiBhbmQgZG9uJ3QgdHJ5IHRvIHNlbmQgVEVBUkRPV04gd2hlbgoJICB0aGUgc2VydmVyIGhhcyBjbG9zZWQgdGhlIGNvbm5lY3Rpb24uCgoyMDA5LTAyLTA0IDA5OjIwOjI4ICswMTAwICBSb2JpbiBTdG9ja2VyIDxyb2JpbkBuaWJvci5vcmc+CgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgUmVhZCBNYXRyb3NrYSBUaXRsZSBlbGVtZW50IGZvciB0aGUgVElUTEUgdGFnCgkgIE5vdCBhbGwgTWF0cm9za2EgZmlsZXMgaGF2ZSBhIFRhZ3MgZWxlbWVudCB3aGljaCBjb250YWlucwoJICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGl0bGUgYW1vbmcgb3RoZXIgdGhpbmdzLiBNb3N0IHZpZGVvCgkgIE1hdHJvc2thIGZpbGVzIG9ubHkgY29udGFpbiB0aGUgVGl0bGUgZWxlbWVudCBzbyB3ZQoJICBzaG91bGQgcGFyc2UgdGhpcyB0b28uIEZpeGVzIGJ1ZyAjNTcwNDM1LgoKMjAwOS0wMi0wMyAyMjozNDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogYnVtcCBjb3JlL2Jhc2UgcmVxdWlyZW1lbnRzIHRvIHJlbGVhc2VkIHZlcnNpb25zCgoyMDA5LTAyLTAzIDE3OjEwOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvZWNoby5jOgoJICBGaXggYXVkaW9lY2hvIHVuaXQgdGVzdCBvbiAzMiBiaXQgc3lzdGVtcwoJICBDYXN0IHRoZSBuZXcgdmFsdWUgZm9yIHRoZSAiZGVsYXkiIHByb3BlcnR5IHRvIEdzdENsb2NrVGltZS4KCSAgSW50ZWdlcnMgd2l0aG91dCB0eXBlIGFyZSBwYXNzZWQgdG8gdmFyYXJnIGZ1bmN0aW9ucyB3aXRoCgkgIGFuIGludGVnZXIgdHlwZSB0aGF0IGNhbiBob2xkIGEgcG9pbnRlci4KCjIwMDktMDItMDMgMTQ6MDk6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIGVxdWFsaXplcjogRG9uJ3QgcmVzZXQgZnJlcXVlbmN5IGJhbmRzIGZyb20gdXNlciBzZXR0aW5ncy4gRml4ZXMgIzU3MDM0My4KCSAgTW92ZSByZWFsbG9jYXRpbmcgdGhlIGhpc3RvcnkgYnVmZmVyIG91dCBvZiBfY29tcHV0ZV9mcmVxdWVuY2llcygpIGFuZCBjYWxsIHRoZQoJICByaWdodCBmdW5jdGlvbiBhcyBuZWVkZWQuIEFkZCBzb21lIGxvZ2dpbmcgYW5kIHR3ZWFrIHRoZSBmb3JtYXR0aW5nIG9mIGV4aXN0aW5nCgkgIGxvZ2dpbmcuIFNpbXBsaWZ5IHNldHRpbmcgbmVlZF9uZXdfY29lZmZpY2llbnRzIHdoZW4gY2hhbmdpbmcgcHJvcGVydGllcy4KCjIwMDktMDItMDMgMTE6NTI6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvZngvYXVkaW9lY2hvLmM6CgkgIFVzZSBndWludDY0IGluc3RlYWQgb2YgZ3VpbnQgZm9yIHN0b3JpbmcgZ3VpbnQ2NAoKMjAwOS0wMi0wMiAxODozNzozNSArMDEwMCAgSm9uYXRoYW4gTWF0dGhldyA8bm90dmVyeXNtYXJ0QGdtYWlsLmNvbT4KCgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIFVzZSBjb3JyZWN0IGZsYWcgZm9yIHRoZSBHTk9NRSBwcm94eSBjb25maWd1cmF0aW9uCgkgIEZpeGVzIGJ1ZyAjNTUyMTQwLgoKMjAwOS0wMi0wMiAxMzowODoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2ljbGVzL3Y0bDJzcmMtdGVzdC5jOgoJICBGaXggY29tcGlsZXIgd2FybmluZ3MKCSAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIGR1ZSB0byB1bnVzZWQgcmV0dXJuIHZhbHVlcyBvZiBzY2FuZi4KCjIwMDktMDEtMzEgMTE6MDg6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkgIEZpeCBmb3JtYXQgc3RyaW5nIGNvbXBpbGVyIHdhcm5pbmcKCjIwMDktMDEtMzAgMjI6MjQ6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBBZGQgcmVsZWFzZWluZm8gd2l0aCBvbmxpbmUgdXJsLgoKMjAwOS0wMS0zMCAxODowNDoxMSArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgIEZpeCB1cCBzb21lIGNvbXBpbGUgZmxhZ3MKCjIwMDktMDEtMzAgMTc6MzU6NDkgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgRG9uJ3QgdXNlIEdsaWIgMi4xNiBmdW5jdGlvbiBnX3N0cmNtcDAuCgoyMDA5LTAxLTMwIDE3OjM0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgRG9uJ3QgZG8gdm9pZCBwb2ludGVyIGFyaXRobWV0aWMKCjIwMDktMDEtMzAgMTc6MjY6MTkgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgRml4IEZvcnRlIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBEb24ndCBkbyB2b2lkIHBvaW50ZXIgYXJpdGhtZXRpYy4gRG9uJ3QgaGF2ZSBhbiB1bnJlYWNoYWJsZSBzdGF0ZW1lbnQuCgoyMDA5LTAxLTMwIDE3OjI5OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEJ1bXAgY29tbW9uCgoyMDA5LTAxLTI2IDEwOjMzOjU1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBSZW1vdmUgdXNlbGVzcyBwcm9jZXNzaW5nIGZvciBub24tcmF3IGZvcm1hdHMKCjIwMDktMDEtMzAgMTU6MzQ6MzEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuYzoKCSAgQWRkIHN1cHBvcnQgZm9yIHRoZSAnUmVxdWlyZW1lbnQnIGFuZCAnRW5jb2RlcicgdGFncwoKMjAwOS0wMS0zMCAxNTozMzoxOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgTW9kaWZ5IHByaXZhdGUtdGFnIG5hbWUgZm9ybWF0dGVyIHNvIHRoYXQgaXQgZG9lc24ndCBnbyBtYWQgYXQgZm91cmNjIHN0YXJ0aW5nIHdpdGggJyhjKScuCgoyMDA5LTAxLTMwIDE0OjQwOjUxICswMTAwICBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLmtzaW5naEBnbWFpbC5jb20+CgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzoKCSAgRml4IGNvbXBhcmlzb24gb2YgdGhlIHR1bmVyIG5vcm1zCgkgIFRoZSBWNEwyIHR1bmVyIG5vcm1zIHRoYXQgYSBkZXZpY2Ugc3VwcG9ydHMgY291bGQKCSAgYmUgYSBzdWJzZXQgb2Ygc29tZSBub3JtIChlLmcuIE5UU0MgaW5zdGVhZCBvZiBOVFNDX00pLgoJICBUaGUgY29tcGFyaXNvbiBzaG91bGQgYmUgZG9uZSBieSAmIGluc3RlYWQgb2YgPT0uCgkgIFNlZSBodHRwOi8vd3d3LmxpbnV4dHYub3JnL2Rvd25sb2Fkcy92aWRlbzRsaW51eC9BUEkvVjRMMl9BUEkvc3BlYy1zaW5nbGUvdjRsMi5odG1sI1NUQU5EQVJECgkgIEZpeGVzIGJ1ZyAjNTY5ODIwLgoKMjAwOS0wMS0zMCAwODo1MzowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgVXNlIGEgc3ltYm9saWMgbGluayBmb3IgdGhlIHByZS1jb21taXQgY2xpZW50LXNpZGUgaG9vawoKMjAwOS0wMS0yOSAxNDowODo1NiArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGdzdC92aWRlb2Nyb3AvZ3N0YXNwZWN0cmF0aW9jcm9wLmM6CgkgIE9ubHkgdW5yZWYgdGhlIHBlZXIgd2hlbiB0aGVyZSBpcyBvbmUuCgoyMDA5LTAxLTI5IDExOjA3OjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvd2F2ZWZvcm0vZ3N0d2F2ZWZvcm1zaW5rLmM6CgkgIFJlbW92ZSB2ZXJzaW9uIG51bWJlcnMgZnJvbSBhIGZldyBnc3QtbGF1bmNoIGV4YW1wbGVzLgoJICBUaGUgbWFqb3JpdHkgb2YgdGhlIGV4YW1wbGVzIGRvZSBub3QgdXNlIC0wLjEwIGFuZCB0aGlzIHdpbGwgYWxzbyBoZWxwIHVzIHRvIG1haW50YWluIHRoZSBkb2NzLgoKMjAwOS0wMS0yOSAxMDoxMDowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYzoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOgoJKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzoKCSogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXIuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvd2F2ZWZvcm0vZ3N0d2F2ZWZvcm1zaW5rLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIFVwZGF0ZSBhbmQgYWRkIGRvY3VtZW50YXRpb24gZm9yIHBsYXRmb3JtIHNwZWNpZmljIHBsdWdpbnMgKHN5cykuCgkgIExpbmsgdG8gcHJvcGVydGllcy4gQ29ycmVjdCB0aXRsZXMgZm9yIGV4YW1wbGVzLiBGaXggZXhhbXBsZXMuCgoyMDA5LTAxLTI5IDA5OjQ1OjI1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJICBBZGQgJyB0byBmcmFtZXJhdGUgYXJndW1lbnQgYW5kIHJlbW92ZSB0aGUgd29yZCAnc2ltcGxlJyBhcyBhbGwgb3VyIHBpcGVsaW5lcyBhcmUgYXBwYXJlbnRseSBzaW1wbGUuCgoyMDA5LTAxLTI5IDA5OjQyOjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAgQWRkIGV4YW1wbGVzIGZvciB0aGUganBlZyBlbGVtZW50cy4KCjIwMDktMDEtMjggMjE6NDA6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSAgRml4IGNvbXBpbGUgZXJyb3IgaW4gdGhlIGxhc3QgY29tbWl0CgoyMDA5LTAxLTI4IDIwOjM0OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9wdWxzZS9wdWxzZXByb2JlLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXByb2JlLmg6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJKiBleHQvcHVsc2UvcHVsc2VzcmMuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmg6CgkqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzoKCSogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJICBSZXdyaXRlIHRoZSBwdWxzZSBwbHVnaW4sIGNvbmRpdGlvbmFsbHkgZW5hYmxpbmcgbmV3IGJlaGF2aW91ciB3aXRoIG5ld2VyIHB1bHNlYXVkaW8uCgkgIEZpeGVzOiAjNTY3Nzk0CgkgICogSG9vayBwdWxzZXNpbmsncyB2b2x1bWUgcHJvcGVydHkgdXAgd2l0aCB0aGUgc3RyZWFtIHZvbHVtZSAtLSBub3QgdGhlCgkgIHNpbmsgdm9sdW1lIGluIFBBLgoJICAqIFJlYWQgdGhlIGRldmljZSBkZXNjcmlwdGlvbiBkaXJlY3RseSBmcm9tIHRoZSBzaW5rIGluc3RlYWQgb2YgZ29pbmcKCSAgdmlhIHRoZSBtaXhlci4KCSAgKiBQcm9wZXJseSBpbXBsZW1lbnQgX3Jlc2V0KCkgbWV0aG9kcyBmb3IgYm90aCBzaW5rIGFuZCBzb3VyY2UgdG8gYXZvaWQKCSAgZGVhZGxvY2tzIHdoZW4gc2h1dHRpbmcgZG93biBhIHBpcGVsaW5lLgoJICAqIFJlcGxhY2UgYWxsIHNpbXBsZSBwYV90aHJlYWRlZF9tYWlubG9vcF93YWl0KCkgYnkgcHJvcGVyIGxvb3BzIHRvCgkgIGd1YXJhbnRlZSB0aGF0IHdlIHdhaXQgZm9yIHRoZSByaWdodCBldmVudCBpbiBjYXNlIG11bHRpcGxlIGV2ZW50cyBhcmUKCSAgZmlyZWQuICBXaGlsZSB0aGlzIGlzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnkgaW4gbWFueSBjYXNlcyBpdAoJICBjZXJ0YWlubHkgaXMgbW9yZSBjb3JyZWN0IGFuZCBtYWtlcyBtZSBzbGVlcCBiZXR0ZXIgYXQgbmlnaHQuCgkgICogUmVwbGFjZSBDSEVDS19ERUFEX0dPVE8gbWFjcm9zIHdpdGggcHJvcGVyIGZ1bmN0aW9ucwoJICAqIEV4dGVuZCB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBjaGFubmVscyB0byAzMiBzaW5jZSB0aGF0IGlzIHRoZSBhY3R1YWwKCSAgbGltaXQgaW4gUEEuCgkgICogR2V0IHJpZCBvZiBfZGlzcG9zZSgpIG1ldGhvZHMgc2luY2Ugd2UgZG9uJ3QgbmVlZCB0aGVtLgoJICAqIEluY3JlYXNlIHRoZSB2b2x1bWUgcHJvcGVydHkgdXBwZXIgbGltaXQgb2YgdGhlIHNpbmsgdG8gMTAwMC4KCSAgKiBSZXNldCBmdW5jdGlvbiBwb2ludGVycyBhZnRlciB3ZSBkaXNjb25uZWN0IGEgc3RyZWFtL2NvbnRleHQuIEJldHRlcgoJICBmaXggZm9yIGJ1ZyA1NTY5ODYuCgkgICogUmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBlbGVtZW50IHByb3Blcmx5IGlmIG9wZW4vcHJlcGFyZSBmYWlscwoJICAqIENvcmsgdGhlIFBBIHN0cmVhbSB3aGVuIHRoZSBwaXBlbGluZSBpcyBwYXVzZWQuIFRoaXMgYWxsb3dzIHRoZSBQQQoJICAqIGRhZW1vbiB0bwoJICBjbG9zZSBhdWRpbyBkZXZpY2Ugb24gcGF1c2UgYW5kIHRodXMgc2F2ZSBhIGJpdCBvZiBwb3dlci4KCSAgKiBTZXQgUEEgc3RyZWFtIHByb3BlcnRpZXMgYmFzZWQgb24gR1NUIHRhZ3Mgc3VjaCBhcyBHU1RfVEFHX1RJVExFLAoJICBHU1RfVEFHX0FSVElTVCwgYW5kIHNvIG9uLgoJICBTaWduZWQtb2ZmLWJ5OiBMZW5uYXJ0IFBvZXR0ZXJpbmcgPGxlbm5hcnRAcG9ldHRlcmluZy5uZXQ+CgoyMDA5LTAxLTI4IDE3OjQ2OjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6CgkqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJKiBleHQvZHYvZ3N0ZHZkZWMuYzoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2VzZC9lc2Rtb24uYzoKCSogZXh0L2VzZC9lc2RzaW5rLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuYzoKCSogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSogZXh0L2hhbC9nc3RoYWxhdWRpb3NpbmsuYzoKCSogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5jOgoJKiBleHQvaGFsL2hhbC5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdHNtb2tlZGVjLmM6CgkqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmg6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkqIGV4dC9wdWxzZS9wdWxzZW1peGVyLmM6CgkqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzoKCSogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZXh0L3RhZ2xpYi9nc3RhcGV2Mm11eC5jYzoKCSogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIFVwZGF0ZSBhbmQgYWRkIGRvY3VtZW50YXRpb24gZm9yIHBsdWdpbnMgd2l0aCBkZXBzIChleHQpLgoJICBMaW5rIHRvIHByb3BlcnRpZXMuIENvcnJlY3QgdGl0bGVzIGZvciBleGFtcGxlcy4gRG9jdW1lbnQgYSBmZXcgdHJpdmlhbCBjYXNlcy4gS2VlcCBsaXN0cyBpbiBzZWN0aW9uIGZpbGUgYW5kIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbSBhbHBoYWJldGljYWxseSBvcmRlcmVkLiBGaXggd2FybmluZ3MgdGhhdCBndGstZG9jIHBvaW50cyBvdXQuCgoyMDA5LTAxLTI4IDE1OjU3OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uaDoKCSAgTGltaXQgdGhlIGRlbGF5IGJ5IGEgbmV3IG1heC1kZWxheSBwcm9wZXJ0eQoJICBJbnRyb2R1Y2UgYSBuZXcgbWF4LWRlbGF5IHByb3BlcnR5IHRoYXQgY2FuIG9ubHkKCSAgYmUgc2V0IGJlZm9yZSBnb2luZyB0byBQTEFZSU5HIG9yIFBBVVNFRC4gVGhpcwoJICBpcyB1c2VkIHRvIGxpbWl0IHRoZSBtYXhpbXVtIGRlbGF5IGFuZCBpcyBzZXQKCSAgdG8gdGhlIGN1cnJlbnQgZGVsYXkgYnkgZGVmYXVsdC4KCSAgVXNpbmcgdGhpcyB3aWxsIG1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgZW5vdWdoIGRhdGEKCSAgaW4gb3VyIGludGVybmFsIHJpbmdidWZmZXIgZm9yIHRoZSBlY2hvLiBXaXRoIGR5bmFtaWMKCSAgcmVhbGxvY2F0aW9uIG9mIHRoZSByaW5nYnVmZmVyIGFzIHVzZWQgYmVmb3JlIHNpbGVuY2UKCSAgY291bGQndmUgYmVlbiB1c2VkIGFzIHRoZSBlY2hvIGRpcmVjdGx5IGFmdGVyIHNldHRpbmcKCSAgYSBuZXcgZGVsYXkuCgoyMDA5LTAxLTI4IDExOjU4OjQyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZXZlcnQgcHJldmlvdXMgYm9ndXMgY29tbWl0CgoyMDA5LTAxLTI4IDEyOjI5OjQyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmJhbmQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9jaGVibGltaXQuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ZpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb2thcmFva2UuYzoKCSogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6CgkqIGdzdC9kZWJ1Zy9nc3RwdXNoZmlsZXNyYy5jOgoJKiBnc3QvZGVidWcvZ3N0dGFnaW5qZWN0LmM6CgkqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5jOgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIzYmFuZHMuYzoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXJuYmFuZHMuYzoKCSogZ3N0L2ZseC9nc3RmbHhkZWMuYzoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJKiBnc3QvZ29vbTJrMS9nc3Rnb29tLmM6CgkqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOgoJKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOgoJKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6CgkqIGdzdC9sYXcvbXVsYXcuYzoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6CgkqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6CgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdGFzcGVjdHJhdGlvY3JvcC5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgVXBkYXRlIGFuZCBhZGQgZG9jdW1lbnRhdGlvbiBmb3IgcGx1Z2lucyB3aXRoIG5vIGRlcHMgKGdzdCkuCgkgIExpbmsgdG8gcHJvcGVydGllcy4gQ29ycmVjdCB0aXRsZXMgZm9yIGV4YW1wbGVzLiBEb2N1bWVudCBhIGZldyB0cml2aWFsIGNhc2VzLiBLZWVwIGxpc3RzIGluIHNlY3Rpb24gZmlsZSBhbmQgZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtIGFscGhhYmV0aWNhbGx5IG9yZGVyZWQuCgoyMDA5LTAxLTI3IDIzOjA5OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLWF1ZGlvdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJICBGaXggZXhhbXBsZSBhcHBzIGJ5IGRyYXdpbmcgaW4gdGhlIG1haW4tbG9vcC4KCjIwMDktMDEtMjcgMjA6MzM6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBmaXggYnVpbGQgb2YgYXNwZWN0cmF0aW8gY3JvcCB1bml0IHRlc3QgaW4gdW5pbnN0YWxsZWQgZW52aXJvbm1lbnQuCgoyMDA5LTAxLTI3IDIwOjMwOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIE1ha2UgZ2l0IGlnbm9yZSBiYWNrdXAgZmlsZXMKCjIwMDktMDEtMjYgMTY6MTQ6NDcgKzAxMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJICBQbHVnIGEgbWVtb3J5IGxlYWsgaW4gYSBkZWJ1ZyBtZXNzYWdlLgoKMjAwOS0wMS0yMiAxNTo1OTo0MCArMDEwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIENvcnJlY3QgcmV0dXJuIHZhbHVlIGZyb20gZ3N0X3VkcF9nZXRfYWRkcigpIHdoZW4gbm8ga25vd24gZmFtaWx5IGlzIGZvdW5kLgoKMjAwOS0wMS0yNiAwOTo1MTozNiArMDEwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5AZDE0bi5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIFVzZSBsaWJzb3VwLWdub21lIGZvciBwcm94eSBjb25maWd1cmF0aW9uIGlmIGF2YWlsYWJsZQoJICBJZiBsaWJzb3VwLWdub21lIGlzIGZvdW5kIHVzZSB0aGlzIGFzIGl0IHdpbGwgZ2l2ZSB1cwoJICB0aGUgR05PTUUgcHJveHkgY29uZmlndXJhdGlvbi4gT3RoZXJ3aXNlIHVzZSBub3JtYWwKCSAgbGlic291cC4KCSAgVGhlIEdOT01FIHByb3h5IGNvbmZpZ3VyYXRpb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYKCSAgdGhlIHByb3h5IHByb3BlcnRpZXMgYXJlIG5vdCBzZXQgb24gc291cGh0dHBzcmMKCSAgYW5kIGlmIHRoZSBodHRwX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdAoJICBzZXQuCgkgIEZpeGVzIGJ1ZyAjNTUyMTQwLgoKMjAwOS0wMS0yNSAxOToyNjo0NiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIEFkZCBhIGZldyBtb3JlIHZpZGVvIGZvdXJjYydzCgoyMDA5LTAxLTI0IDE0OjQ4OjAwICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FzcGVjdHJhdGlvY3JvcC5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBhc3BlY3RyYXRpb2Nyb3AgRml4ZXMgYnVnICM1Mjc5NTEKCSAgQWRkIHVuaXQgdGVzdCBmb3IgYXNwZWN0cmF0aW9jcm9wIGFuZCByZWZhY3RvciB0aGlzIGVsZW1lbnQuIEFkZGVkCgkgIGZpbmFsaXplIGZ1bmN0aW9uIHRvIGNsZWFudXAgbGVha2luZyBtdXRleC4KCjIwMDktMDEtMjUgMTQ6MzQ6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIElnbm9yZSBjaGVjayBiaW5hcmllcwoKMjAwOS0wMS0yNCAxODoyODowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9meC9hdWRpb2VjaG8uYzoKCSAgU2F2ZSBzb21lIGFsbG9jYXRpb25zIGlmIHRoZSBlY2hvIGRlbGF5IGlzIGluY3JlYXNlZCBvZnRlbgoJICBTYXZlIHNvbWUgYWxsb2NhdGlvbnMgaWYgdGhlIGVjaG8gZGVsYXkgaXMgaW5jcmVhc2VkIG9mdGVuCgkgIGR1cmluZyBwbGF5YmFjayBieSBhbHdheXMgYWxsb2NhdGluZyBlbm91Z2ggbWVtb3J5IHRvIGhvbGQKCSAgZGF0YSB1cCB0byB0aGUgbmV4dCBjb21wbGV0ZSBzZWNvbmQsIGkuZS4gaW4gdGhlIHdvcnN0IGNhc2UKCSAgYWxsb2NhdGUgbWVtb3J5IGZvciBvbmUgYWRkaXRpb25hbCBzZWNvbmQuCgoyMDA5LTAxLTI0IDE0OjI1OjA4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkgIFVwZGF0ZSBwbHVnaW4gdmVyc2lvbiBpbiBkb2N1bWVudGF0aW9uCgoyMDA5LTAxLTIzIDIxOjQ3OjQwICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgRml4IGxpbmsgaW4gZG9jdW1lbnRhdGlvbiBvZiB2aWRlb2Nyb3AgZWxlbWVudAoKMjAwOS0wMS0yMyAyMTo0NjoxMyArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGdzdC92aWRlb2Nyb3AvZ3N0YXNwZWN0cmF0aW9jcm9wLmM6CgkgIEFkZCBkb2N1bWVudGF0aW9uIGZvciBhc3BlY3RyYXRpb2Nyb3AKCjIwMDktMDEtMjQgMTM6MjE6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBVcGRhdGUgd2luMzIvY29tbW9uL2NvbmZpZy5oIGZvciB0aGUgbmV3IGRldmVsb3BtZW50IGN5Y2xlCgoyMDA5LTAxLTI0IDExOjUzOjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5jOgoJICBBZGQgbm90ZSB0aGF0IGF1ZGlvZWNobydzIHJldmVyYiBzb3VuZHMgbWV0YWxsaWMKCSAgQWRkIGEgbm90ZSB0byB0aGUgZG9jcyB0aGF0IGF1ZGlvZWNobydzIHJldmVyYiB3aWxsCgkgIHNvdW5kIG1ldGFsbGljLiBUaGlzIGhhcHBlbnMgYmVjYXVzZSBmb3IgYSByZWFsCgkgIHJldmVyYiBmaWx0ZXIgYWRkaXRpb25hbCBmaWx0ZXJpbmcgaXMgbmVjZXNzYXJ5LgoJICBBbHNvIG5vdGUgd2hpY2ggdmFsdWVzIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGVsYXkKCSAgcHJvcGVydHkgdG8gZ2V0IGFuIGVjaG8gZWZmZWN0LgoKMjAwOS0wMS0yMyAyMzozODoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogLmdpdGlnbm9yZToKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkqIHBvLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2F1ZGlvZngvLmdpdGlnbm9yZToKCSAgTW9yZSBlbnRyaWVzIGZvciB0aGUgZ2l0aWdub3JlcwoKMjAwOS0wMS0yMyAyMDozNjoyNyArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOgoJICBza2lwIHZpZGVvL3gtcmF3LWdyYXkgaW4gdmlkZW9jcm9wIHVuaXQgdGVzdAoJICBBIHJlY2VudCBjb21taXQgYWRkZWQgdmlkZW8veC1yYXctZ3JheSBzdXBwb3J0IHRvIHZpZGVvY3JvcC4gSG93ZXZlcgoJICB0aGlzIGxldHMgdGhlIHZpZGVvY3JvcCB1bml0IHRlc3QgZmFpbC4gQmVjYXVzZSB2aWRlb3Rlc3RzcmMgY2FuJ3QKCSAgZ2VuZXJhdGUgdGhpcyBmb3JtYXQuCgoyMDA5LTAxLTIzIDE1OjM5OjQ2ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuYzoKCSogZ3N0L3ZpZGVvY3JvcC9nc3Rhc3BlY3RyYXRpb2Nyb3AuaDoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgQWRkIGFzcGVjdHJhdGlvY3JvcCBlbGVtZW50LiBGaXhlcyBidWcgIzUyNzk1MQoJICBBZGQgbmV3IGFzcGVjdHJhdGlvY3JvcCBlbGVtZW50IHRoYXQgY3JvcHMgdGhlIHZpZGVvCgkgIHRvIGEgc3BlY2lmaWVkIGFzcGVjdCByYXRpbyB1c2luZyB2aWRlb2Nyb3AuCgoyMDA5LTAxLTIzIDEwOjQ5OjI4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgRml4IG5hdmlnYXRpb24gZXZlbnQgZm9yd2FyZGluZyB3aGlsZSBjcm9wcGluZy4gRml4ZXMgYnVnICM1Njc5OTIuCgkgIEZpeCB0aGUgbmF2aWdhdGlvbiBldmVudCBmb3J3YXJkaW5nIHdoaWxlIGNyb3BwaW5nIGJ5IGFkanVzdGluZwoJICB0aGUgbW91c2UgcG9zaXRpb24gYnkgdGhlIGFtb3VudCBvZiBjcm9wcGVkIHBpeGVscy4KCjIwMDktMDEtMjMgMTA6MDQ6MzkgKzAxMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IGxpbmtpbmcgb24gU29sYXJpcy4gRml4ZXMgYnVnICM1Njg4MDkuCgkgIENoZWNrIGZvciB0aGUgc29ja2V0IGxpYnJhcnkgd2hpY2ggaXMgbmVlZGVkCgkgIGZvciBzb2NrZXQoKSBvbiBTb2xhcmlzLgoKMjAwOS0wMS0yMiAyMjo0MTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gbnVtYmVyIGFnYWluIC0+IDAuMTAuMTMuMQoKMjAwOS0wMS0yMiAyMjo0MTowMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJICBBZGQgcmVsZWFzZXMgMC4xMC4xMiBhbmQgMC4xMC4xMyB0byB0aGUgZG9hcCBmaWxlCgoyMDA5LTAxLTIyIDE4OjA4OjUwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gc25hcHNob3QuCgoyMDA5LTAxLTIyIDE0OjI1OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbCAtPiAwLjEwLjEyLjEKCjIwMDktMDEtMjIgMDE6Mjk6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVsZWFzZSAwLjEwLjEyCgoyMDA5LTAxLTIxIDE3OjIyOjM5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgRml4IGZvciBzZWN1cml0eSBhZHZpc29yeSBUS0FEVjIwMDktMHh4CgkgIEZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cyB3aGlsZSByZWFkaW5nIHF1aWNrdGltZSBoZWFkZXJzLgoJICBTZWN1cml0eSBpc3N1ZSBub3RpY2VkIGJ5IFRvYmlhcyBLbGVpbi4KCjIwMDktMDEtMjEgMTI6NTY6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgRml4IHR5cG8gYW5kIHNtYWxsIGZsYXcgaW4gZmxhYyBkZWNvZGVyCgoyMDA5LTAxLTIyIDEzOjQ5OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb21tb246CgkgIEZpeCBwcmUtY29tbWl0IGhvb2sKCjIwMDktMDEtMjIgMTA6NDA6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSogZ3N0L2F1ZGlvZngvYXVkaW9lY2hvLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvZWNoby5oOgoJKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcmV2ZXJiLmM6CgkqIGdzdC9hdWRpb2Z4L2F1ZGlvcmV2ZXJiLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2VjaG8uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9yZXZlcmIuYzoKCSAgUmVuYW1lIGF1ZGlvcmV2ZXJiIHRvIGF1ZGlvZWNoby4gRml4ZXMgYnVnICM1NjgzOTUuCgkgIFRoZSBlbGVtZW50IGNhbiBhZGQgYW4gZWNobyBhbmQgYSBzaW1wbGUgcmV2ZXJiIGVmZmVjdCB0bwoJICBhbiBhdWRpbyBzdHJlYW0gYnV0IGZvciBhIHJlYWwgcmV2ZXJiIGZpbHRlciBpdCB3b3VsZCBuZWVkCgkgIHNvbWUgYWRkaXRpb25hbCBmaWx0ZXJpbmcgdG8gcHJldmVudCBhIG1ldGFsbGljLXNvdW5kaW5nCgkgIHJlc3VsdC4KCjIwMDktMDEtMjIgMTI6MjE6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgIEZyZWUgbGVmdG92ZXIgdWRwIHBvcnRzIChpZiBhbnkpIHdoZW4gYSBzZXR1cCByZXF1ZXN0IGZhaWxzLgoKMjAwOS0wMS0yMiAwNjowNToyNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgSW5zdGFsbCBhbmQgdXNlIHByZS1jb21taXQgaW5kZW50YXRpb24gaG9vayBmcm9tIGNvbW1vbgoKMjAwOS0wMS0yMSAxMzoyNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgV2hpdGVzcGFjZSBmaXhlcyBhbmQgc29tZSBpbXByb3ZlZCBkZWJ1ZyBsaW5lcy4KCjIwMDktMDEtMjEgMDQ6MzE6NTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvZ2VuLnNoIDogVXNlIGdpdCBzdWJtb2R1bGUKCjIwMDktMDEtMjAgMTU6MzM6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IEZpeCBlcnJvciBjb2RlICh0aGUgbWVzc2FnZSBzdHJpbmcgYWxzbyBuZWVkcyBsb3ZlLCBidXQgbm90IHRvZGF5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfZ2V0X3JlYWQpOgoJICBGaXggZXJyb3IgY29kZSAodGhlIG1lc3NhZ2Ugc3RyaW5nIGFsc28gbmVlZHMgbG92ZSwgYnV0IG5vdCB0b2RheSkuCgoyMDA5LTAxLTE5IDExOjQ0OjM2ICswMDAwICBMdW90YW8gRnUgPGwuZnVAcGVuZ3V0cm9uaXguZGU+CgoJICBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOiBBZGQgOGJpdCBncmF5c2NhbGUgc3VwcG9ydCB0byB2aWRlb2Nyb3AgcGx1Z2luLiBGaXhlcyAjNTY3OTUyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1b3RhbyBGdSA8bCBkb3QgZnUgYXQgcGVuZ3V0cm9uaXggZG90IGRlPgoJICAqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6CgkgIChnc3RfdmlkZW9fY3JvcF9nZXRfaW1hZ2VfZGV0YWlsc19mcm9tX2NhcHMpOgoJICBBZGQgOGJpdCBncmF5c2NhbGUgc3VwcG9ydCB0byB2aWRlb2Nyb3AgcGx1Z2luLiBGaXhlcyAjNTY3OTUyLgoKMjAwOS0wMS0xOSAxMToyMjowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2F1ZGlvZngvYXVkaW9yZXZlcmIuYzogU2V0IHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBpbnN0YW5jZSBpbml0IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3JldmVyYi5jOiAoZ3N0X2F1ZGlvX3JldmVyYl9pbml0KToKCSAgU2V0IHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBpbnN0YW5jZSBpbml0IGZ1bmN0aW9uLgoKMjAwOS0wMS0xOSAxMToxOTowOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWRkIGFuIGVjaG8vcmV2ZXJiIGZpbHRlciB0byB0aGUgYXVkaW9meCBwbHVnaW4sIHdpdGggY29uZmlndXJhYmxlIGVjaG8gZGVsYXksIGludGVuc2l0eSBhbmQgZmVlZGJhY2suIEZpeGVzIGJ1ZyAjNTY3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkgICogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvcmV2ZXJiLmM6IChnc3RfYXVkaW9fcmV2ZXJiX2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9fcmV2ZXJiX2NsYXNzX2luaXQpLCAoZ3N0X2F1ZGlvX3JldmVyYl9pbml0KSwKCSAgKGdzdF9hdWRpb19yZXZlcmJfZmluYWxpemUpLCAoZ3N0X2F1ZGlvX3JldmVyYl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX3JldmVyYl9nZXRfcHJvcGVydHkpLCAoZ3N0X2F1ZGlvX3JldmVyYl9zZXR1cCksCgkgIChnc3RfYXVkaW9fcmV2ZXJiX3N0b3ApLCAoZ3N0X2F1ZGlvX3JldmVyYl90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvcmV2ZXJiLmg6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9yZXZlcmIuYzogKHNldHVwX3JldmVyYiksCgkgIChjbGVhbnVwX3JldmVyYiksIChHU1RfU1RBUlRfVEVTVCksIChhdWRpb3JldmVyYl9zdWl0ZSk6CgkgIEFkZCBhbiBlY2hvL3JldmVyYiBmaWx0ZXIgdG8gdGhlIGF1ZGlvZnggcGx1Z2luLCB3aXRoIGNvbmZpZ3VyYWJsZQoJICBlY2hvIGRlbGF5LCBpbnRlbnNpdHkgYW5kIGZlZWRiYWNrLiBGaXhlcyBidWcgIzU2Nzg3NC4KCjIwMDktMDEtMTkgMTA6MTM6NTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS4qOiBJbXBsZW1lbnQgYSBzaW1wbGUgY29tcGVuc2F0aW9uIGFsZ29yaXRobSBmb3Igcm91bmRpbmcgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9yZXNldF9zdGF0ZSksCgkgIChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgSW1wbGVtZW50IGEgc2ltcGxlIGNvbXBlbnNhdGlvbiBhbGdvcml0aG0gZm9yIHJvdW5kaW5nIGVycm9ycy4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgYSBzcGVjdHJ1bSBtZXNzYWdlIGlzIHBvc3RlZCBvbiB0aGUgYnVzCgkgIGV2ZXJ5IGludGVydmFsIG5hbm9zZWNvbmRzLiBGaXhlcyBidWcgIzU2Nzk1NS4KCjIwMDktMDEtMTUgMjE6MTY6NDUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbTogTGluayBhZ2FpbnN0IENvcmVTZXJ2aWNlcyAobmVlZGVkIGZvciBvc3ggMTAuNCkgYW5kIGZpeCB1cCB0aGUgbGlua2VyIGZsYWdzLiBGaXhlcyAjNTY3ODUzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3N4YXVkaW8vTWFrZWZpbGUuYW06CgkgIExpbmsgYWdhaW5zdCBDb3JlU2VydmljZXMgKG5lZWRlZCBmb3Igb3N4IDEwLjQpIGFuZCBmaXggdXAgdGhlIGxpbmtlcgoJICBmbGFncy4gRml4ZXMgIzU2Nzg1My4KCjIwMDktMDEtMTUgMTQ6NTM6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IENhdGNoIGludmFsaWQgYW5kIGNvbW1vbmx5IHdyb25nIHBsYXliYWNrIHJhdGVzIGluIHRoZSBlbHN0IGF0b21zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3NlZ21lbnRzKToKCSAgQ2F0Y2ggaW52YWxpZCBhbmQgY29tbW9ubHkgd3JvbmcgcGxheWJhY2sgcmF0ZXMgaW4gdGhlIGVsc3QgYXRvbXMuCgkgIEZpeGVzICM1Njc4MDAuCgoyMDA5LTAxLTE1IDExOjQwOjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogRG9uJ3QgY2FsbCBnc3RfZmZ0X2YzMl9mcmVlKCkgd2l0aCBOVUxMIHRvIHByZXZlbnQgYSBjcmFzaC4gRml4ZXMgYnVnICM1Njc2NDIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX3Jlc2V0X3N0YXRlKToKCSAgRG9uJ3QgY2FsbCBnc3RfZmZ0X2YzMl9mcmVlKCkgd2l0aCBOVUxMIHRvIHByZXZlbnQgYQoJICBjcmFzaC4gRml4ZXMgYnVnICM1Njc2NDIuCgoyMDA5LTAxLTE0IDE1OjQ0OjE4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uKjogVXNlIGNvcnJlY3QgdHlwZXMgZm9yIGZyYW1lL2ZmdCBjb3VudGVycyBhbmQgc29tZSBtaW5vciBjbGVhbnVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5oOgoJICBVc2UgY29ycmVjdCB0eXBlcyBmb3IgZnJhbWUvZmZ0IGNvdW50ZXJzIGFuZCBzb21lIG1pbm9yCgkgIGNsZWFudXAuCgoyMDA5LTAxLTE0IDE1OjM3OjA3ICswMDAwICBMZW5uYXJ0IFBvZXR0ZXJpbmcgPGxlbm5hcnRAcG9ldHRlcmluZy5uZXQ+CgoJICBleHQvcHVsc2UvcHVsc2Vwcm9iZS5jOiBGaXggcmVmY291bnQgbG9vcCwgcmVzdWx0aW5nIGluIGEgdGhyZWFkIGxlYWsuIEZpeGVzIGJ1ZyAjNTY3NzQ2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExlbm5hcnQgUG9ldHRlcmluZyA8bGVubmFydCBhdCBwb2V0dGVyaW5nIGRvdCBuZXQ+CgkgICogZXh0L3B1bHNlL3B1bHNlcHJvYmUuYzogKGdzdF9wdWxzZXByb2JlX25ldyksCgkgIChnc3RfcHVsc2Vwcm9iZV9mcmVlKToKCSAgRml4IHJlZmNvdW50IGxvb3AsIHJlc3VsdGluZyBpbiBhIHRocmVhZCBsZWFrLiBGaXhlcyBidWcgIzU2Nzc0Ni4KCjIwMDktMDEtMTQgMTA6NDY6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9zcGVjdHJ1bS86IFBvc3QgYSBzcGVjdHJ1bSBtZXNzYWdlIG9uIHRoZSBidXMgZm9yIGV2ZXJ5IGludGVydmFsLCBldmVuIGlmIHRoZSBpbnRlcnZhbCBpcyBzbWFsbCB0aGFuIHRoZSBsZW5ndGggby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWN0cnVtL1JFQURNRToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9iYXNlX2luaXQpLAoJICAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpLCAoZ3N0X3NwZWN0cnVtX2luaXQpLAoJICAoZ3N0X3NwZWN0cnVtX3Jlc2V0X3N0YXRlKSwgKGdzdF9zcGVjdHJ1bV9maW5hbGl6ZSksCgkgIChnc3Rfc3BlY3RydW1fc2V0X3Byb3BlcnR5KSwgKGdzdF9zcGVjdHJ1bV9zdGFydCksCgkgIChnc3Rfc3BlY3RydW1fc3RvcCksIChnc3Rfc3BlY3RydW1fc2V0dXApLAoJICAoZ3N0X3NwZWN0cnVtX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmg6CgkgIFBvc3QgYSBzcGVjdHJ1bSBtZXNzYWdlIG9uIHRoZSBidXMgZm9yIGV2ZXJ5IGludGVydmFsLCBldmVuCgkgIGlmIHRoZSBpbnRlcnZhbCBpcyBzbWFsbCB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIEZGVC4KCSAgRml4ZXMgYnVnICM1Njc2NDIuCgkgIE1ham9yIGNsZWFudXAgb2YgdGhlIHNwZWN0cnVtIGVsZW1lbnQuCgoyMDA5LTAxLTEzIDE5OjIzOjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBZGQgYXVkaW9paXJmaWx0ZXIgYW5kIGF1ZGlvZmlyZmlsdGVyIGVsZW1lbnRzIHdoaWNoIGFsbG93IGdlbmVyaWMgSUlSL0ZJUiBmaWx0ZXJzIHRvIGJlIGltcGxlbWVudGVkIGJ5IHByb3ZpZGluZyB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZmlyZmlsdGVyLmM6IChnc3RfYXVkaW9fZmlyX2ZpbHRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2Zpcl9maWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfYXVkaW9fZmlyX2ZpbHRlcl91cGRhdGVfa2VybmVsKSwgKGdzdF9hdWRpb19maXJfZmlsdGVyX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2Zpcl9maWx0ZXJfc2V0dXApLCAoZ3N0X2F1ZGlvX2Zpcl9maWx0ZXJfZmluYWxpemUpLAoJICAoZ3N0X2F1ZGlvX2Zpcl9maWx0ZXJfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19maXJfZmlsdGVyX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9maXJmaWx0ZXIuaDoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9paXJmaWx0ZXIuYzogKGdzdF9hdWRpb19paXJfZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9faWlyX2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9hdWRpb19paXJfZmlsdGVyX3VwZGF0ZV9jb2VmZmljaWVudHMpLAoJICAoZ3N0X2F1ZGlvX2lpcl9maWx0ZXJfaW5pdCksIChnc3RfYXVkaW9faWlyX2ZpbHRlcl9zZXR1cCksCgkgIChnc3RfYXVkaW9faWlyX2ZpbHRlcl9maW5hbGl6ZSksCgkgIChnc3RfYXVkaW9faWlyX2ZpbHRlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX2lpcl9maWx0ZXJfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2lpcmZpbHRlci5oOgoJICBBZGQgYXVkaW9paXJmaWx0ZXIgYW5kIGF1ZGlvZmlyZmlsdGVyIGVsZW1lbnRzIHdoaWNoIGFsbG93CgkgIGdlbmVyaWMgSUlSL0ZJUiBmaWx0ZXJzIHRvIGJlIGltcGxlbWVudGVkIGJ5IHByb3ZpZGluZyB0aGUKCSAgZmlsdGVyIGNvZWZmaWNpZW50cy4gRml4ZXMgYnVnICM1Njc1NzcuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGF1ZGlvaWlyZmlsdGVyIGFuZCBhdWRpb2ZpcmZpbHRlcgoJICBlbGVtZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2ZpcmZpbHRlci5jOiAob25fbWVzc2FnZSksCgkgIChvbl9yYXRlX2NoYW5nZWQpLCAob25faGFuZG9mZiksIChHU1RfU1RBUlRfVEVTVCksCgkgIChhdWRpb2ZpcmZpbHRlcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9paXJmaWx0ZXIuYzogKG9uX21lc3NhZ2UpLAoJICAob25fcmF0ZV9jaGFuZ2VkKSwgKG9uX2hhbmRvZmYpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYXVkaW9paXJmaWx0ZXJfc3VpdGUpOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2F1ZGlvZngvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvYXVkaW9meC9maXJmaWx0ZXItZXhhbXBsZS5jOiAob25fbWVzc2FnZSksCgkgIChvbl9yYXRlX2NoYW5nZWQpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvYXVkaW9meC9paXJmaWx0ZXItZXhhbXBsZS5jOiAob25fbWVzc2FnZSksCgkgIChvbl9yYXRlX2NoYW5nZWQpLCAobWFpbik6CgkgIEFkZCB1bml0IHRlc3RzIGFuZCBleGFtcGxlIGFwcGxpY2F0aW9ucyBmb3IgdGhlIHR3byBmaWx0ZXIKCSAgZWxlbWVudHMuCgoyMDA5LTAxLTEzIDE5OjA5OjE5ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc0BlbWJlZGRlZC51ZmNnLmVkdS5icj4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IGZvcm1hdCBzdHJpbmcgZm9yIGd1aW50NjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NAZW1iZWRkZWQudWZjZy5lZHUuYnI+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBGaXggZm9ybWF0IHN0cmluZyBmb3IgZ3VpbnQ2NC4KCjIwMDktMDEtMTMgMTk6MDQ6MDkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbTogb3N4YXVkaW8gcGx1Z2luIG5vdyByZXF1aXJlcyBBdWRpb1VuaXQgZnJhbWV3b3JrLCBzbyBsaW5rIGFnYWluc3QgdGhhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zeGF1ZGlvL01ha2VmaWxlLmFtOgoJICBvc3hhdWRpbyBwbHVnaW4gbm93IHJlcXVpcmVzIEF1ZGlvVW5pdCBmcmFtZXdvcmssIHNvIGxpbmsgYWdhaW5zdCB0aGF0LgoJICBDbGVhbiB1cCB0YWJzIHYgc3BhY2VzIHdoaWxlIEknbSB0aGVyZS4KCjIwMDktMDEtMTMgMTc6NDk6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWFsc2FzcmMtUENNQS5jOiBBZGQgc29tZSBleGFtcGxlIGNvZGUgZm9yIHByaW50aW5nIHRoZSBSVFAgbWFuYWdlciBzdGF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1hbHNhc3JjLVBDTUEuYzogKHByaW50X3NvdXJjZV9zdGF0cyksCgkgIChwcmludF9zdGF0cyksIChtYWluKToKCSAgQWRkIHNvbWUgZXhhbXBsZSBjb2RlIGZvciBwcmludGluZyB0aGUgUlRQIG1hbmFnZXIgc3RhdHMuCgoyMDA5LTAxLTEzIDA4OjI0OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC86IFVzZSBhIGN1c3RvbSBtdXRleCBmb3IgcHJvdGVjdGluZyB0aGUgaW5zdGFuY2UgZmllbGRzIGluc3RlYWQgb2YgdGhlIEdzdE9iamVjdCBsb2NrLiBVc2luZyB0aGUgbGF0dGVyIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOiAoZ3N0X2F1ZGlvX2NoZWJfYmFuZF9jbGFzc19pbml0KSwKCSAgKGdzdF9hdWRpb19jaGViX2JhbmRfaW5pdCksIChnc3RfYXVkaW9fY2hlYl9iYW5kX2ZpbmFsaXplKSwKCSAgKGdzdF9hdWRpb19jaGViX2JhbmRfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmg6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVibGltaXQuYzogKGdzdF9hdWRpb19jaGViX2xpbWl0X2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2NoZWJfbGltaXRfaW5pdCksIChnc3RfYXVkaW9fY2hlYl9saW1pdF9maW5hbGl6ZSksCgkgIChnc3RfYXVkaW9fY2hlYl9saW1pdF9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0Lmg6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzogKGdzdF9hdWRpb193c2luY2JhbmRfY2xhc3NfaW5pdCksCgkgIChnc3RfYXVkaW9fd3NpbmNiYW5kX2luaXQpLCAoZ3N0X2F1ZGlvX3dzaW5jYmFuZF9maW5hbGl6ZSksCgkgIChnc3RfYXVkaW9fd3NpbmNiYW5kX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuaDoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzogKGdzdF9hdWRpb193c2luY2xpbWl0X2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX3dzaW5jbGltaXRfaW5pdCksIChnc3RfYXVkaW9fd3NpbmNsaW1pdF9maW5hbGl6ZSksCgkgIChnc3RfYXVkaW9fd3NpbmNsaW1pdF9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5oOgoJICBVc2UgYSBjdXN0b20gbXV0ZXggZm9yIHByb3RlY3RpbmcgdGhlIGluc3RhbmNlIGZpZWxkcyBpbnN0ZWFkIG9mCgkgIHRoZSBHc3RPYmplY3QgbG9jay4gVXNpbmcgdGhlIGxhdHRlciBjYW4gbGVhZCB0byBkZWFkbG9ja3MsIGVzcGVjaWFsbHkKCSAgd2l0aCB0aGUgRklSIGZpbHRlcnMgd2hlbiB1cGRhdGluZyB0aGUgbGF0ZW5jeS4KCjIwMDktMDEtMTEgMTk6MDM6MzggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4LzogSW1wbGVtZW50IGEgYmFzZSBjbGFzcyBmb3IgZ2VuZXJpYyBhdWRpbyBGSVIgZmlsdGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VmaXJmaWx0ZXIuYzoKCSAgKGdzdF9hdWRpb19meF9iYXNlX2Zpcl9maWx0ZXJfZGlzcG9zZSksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9maXJfZmlsdGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9maXJfZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfZmlyX2ZpbHRlcl9pbml0KSwKCSAgKGdzdF9hdWRpb19meF9iYXNlX2Zpcl9maWx0ZXJfcHVzaF9yZXNpZHVlKSwKCSAgKGdzdF9hdWRpb19meF9iYXNlX2Zpcl9maWx0ZXJfc2V0dXApLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfZmlyX2ZpbHRlcl90cmFuc2Zvcm0pLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfZmlyX2ZpbHRlcl9zdGFydCksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9maXJfZmlsdGVyX3N0b3ApLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfZmlyX2ZpbHRlcl9xdWVyeSksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9maXJfZmlsdGVyX3F1ZXJ5X3R5cGUpLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfZmlyX2ZpbHRlcl9ldmVudCksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9maXJfZmlsdGVyX3NldF9rZXJuZWwpOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlZmlyZmlsdGVyLmg6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSAgSW1wbGVtZW50IGEgYmFzZSBjbGFzcyBmb3IgZ2VuZXJpYyBhdWRpbyBGSVIgZmlsdGVycy4KCSAgKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5jOgoJICAoZ3N0X2dzdF9hdWRpb193c2luY2JhbmRfbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfZ3N0X2F1ZGlvX3dzaW5jYmFuZF93aW5kb3dfZ2V0X3R5cGUpLAoJICAoZ3N0X2F1ZGlvX3dzaW5jYmFuZF9iYXNlX2luaXQpLCAoZ3N0X2F1ZGlvX3dzaW5jYmFuZF9jbGFzc19pbml0KSwKCSAgKGdzdF9hdWRpb193c2luY2JhbmRfaW5pdCksIChnc3RfYXVkaW9fd3NpbmNiYW5kX2J1aWxkX2tlcm5lbCksCgkgIChnc3RfYXVkaW9fd3NpbmNiYW5kX3NldHVwKSwgKGdzdF9hdWRpb193c2luY2JhbmRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb193c2luY2JhbmRfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJICAoZ3N0X2F1ZGlvX3dzaW5jbGltaXRfbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfYXVkaW9fd3NpbmNsaW1pdF93aW5kb3dfZ2V0X3R5cGUpLAoJICAoZ3N0X2F1ZGlvX3dzaW5jbGltaXRfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb193c2luY2xpbWl0X2NsYXNzX2luaXQpLCAoZ3N0X2F1ZGlvX3dzaW5jbGltaXRfaW5pdCksCgkgIChnc3RfYXVkaW9fd3NpbmNsaW1pdF9idWlsZF9rZXJuZWwpLCAoZ3N0X2F1ZGlvX3dzaW5jbGltaXRfc2V0dXApLAoJICAoZ3N0X2F1ZGlvX3dzaW5jbGltaXRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb193c2luY2xpbWl0X2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2xpbWl0Lmg6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW93c2luY2JhbmQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3dzaW5jbGltaXQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIHRoaXMgbmV3IGJhc2UgY2xhc3MgZm9yIGF1ZGlvd3NpbmNiYW5kIGFuZCBhdWRpb3dzaW5jbGltaXQuCgkgIEFsc28gY2xlYW51cCBib3RoIGVsZW1lbnRzLgoKMjAwOS0wMS0wOCAxODoxNzoxMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBJbiBwdXNoIG1vZGUsIGVycm9yIG91dCBpZiB3ZSBnZXQgRU9TIGJlZm9yZSB3ZSd2ZSBjcmVhdGVkIGFueSBzcmNwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIEluIHB1c2ggbW9kZSwgZXJyb3Igb3V0IGlmIHdlIGdldCBFT1MgYmVmb3JlIHdlJ3ZlIGNyZWF0ZWQgYW55IHNyY3BhZHMuCgkgIEhhbmRsZSAoaW4gcHVsbCBtb2RlKSBzb21lIGZpbGVzIHRoYXQgaGF2ZSBhIHRydW5jYXRlZCBtb292IGF0b20gd2hlcmUKCSAgdGhlIGZpbmFsIHN1Yi1hdG9tIGlzIGEgJ2ZyZWUnIGF0b20gYW5kIHRoZSBjb250ZW50cyBvZiB0aGF0IGFyZSBub3QKCSAgcHJlc2VudCBpbiB0aGUgZmlsZS4KCjIwMDktMDEtMDggMTU6NTY6NDYgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L21hdHJvc2thLzogU29tZSBjbGVhbnVwcywgcmVmYWN0b3JpbmcgYW5kIG1pbm9yIGVuaGFuY2VtZW50cyBpbiBjYXBzIGhhbmRsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF92aWRlb19jYXBzKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKToKCSAgU29tZSBjbGVhbnVwcywgcmVmYWN0b3JpbmcgYW5kIG1pbm9yIGVuaGFuY2VtZW50cyBpbiBjYXBzIGhhbmRsaW5nLgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfbWF0cm9za2FfbXV4X2luaXQpLCAoZ3N0X21hdHJvc2thX3BhZF9yZXNldCksCgkgIChnc3RfbWF0cm9za2FfcGFkX2ZyZWUpLCAoZ3N0X21hdHJvc2thX211eF9yZXNldCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfcmVxdWVzdF9uZXdfcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOiAodGVhcmRvd25fc3JjX3BhZCk6CgkgIE9ubHkgcmVtb3ZlLCByZWxlYXNlIG9yIHJlc2V0IHdoYXQgaXMgYXBwcm9wcmlhdGUgdXBvbiBzdGF0ZSBjaGFuZ2UuCgoyMDA5LTAxLTA3IDIwOjM4OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9wdWxzZS9wdWxzZXNpbmsuKjogVXNlIGEgbXV0ZXggdG8gcHJvdGVjdCB0aGUgY3VycmVudCBzdHJlYW0gcG9pbnRlciwgYW5kIGlnbm9yZSBjYWxsYmFja3MgZm9yIHN0cmVhbSBvYmplY3RzIHRoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgICogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJICBVc2UgYSBtdXRleCB0byBwcm90ZWN0IHRoZSBjdXJyZW50IHN0cmVhbSBwb2ludGVyLCBhbmQgaWdub3JlCgkgIGNhbGxiYWNrcyBmb3Igc3RyZWFtIG9iamVjdHMgdGhhdCBoYXZlIGJlZW4gZGVzdHJveWVkIGFscmVhZHkuCgkgIEZpeGVzIHByb2JsZW1zIHdpdGggdW5wcmVwYXJlL3ByZXBhcmUgY3ljbGVzIGNhdXNlZCBieSB0aGUgaW5wdXQKCSAgY2FwcyBjaGFuZ2luZywgd2l0aG91dCByZWludHJvZHVjaW5nIGJ1ZyAjNTU2OTg2LgoKMjAwOS0wMS0wNyAxNjowOTo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IFJlbW92ZSAoKSBmcm9tIHRyYW5zbGF0ZWFibGUgc3RyaW5nLCBzbyB0aGF0IGl0IG1ha2VzIG1vcmUgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgUmVtb3ZlICgpIGZyb20gdHJhbnNsYXRlYWJsZSBzdHJpbmcsIHNvIHRoYXQgaXQgbWFrZXMgbW9yZSBzZW5zZS4KCjIwMDktMDEtMDcgMDk6NDM6MTMgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguYzogTWlub3IgZml4L2NsZWFudXAgaW4gaGVhZGVyIGZpZWxkIGNhbGN1bGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOiAoZ3N0X2F2aV9tdXhfYXVkc2lua19zZXRfY2Fwcyk6CgkgIE1pbm9yIGZpeC9jbGVhbnVwIGluIGhlYWRlciBmaWVsZCBjYWxjdWxhdGlvbi4KCjIwMDktMDEtMDYgMTc6NDg6MTAgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC4qOiBSZW1vdmUgaW50ZXJuYWwgdGFnbGlzdCBhbmQgZnVsbHkgdXNlIHRhZ3NldHRlciBpbnRlcmZhY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfcmVzZXQpLAoJICAoZ3N0X21hdHJvc2thX211eF9oYW5kbGVfc2lua19ldmVudCksIChnc3RfbWF0cm9za2FfbXV4X2ZpbmlzaCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBSZW1vdmUgaW50ZXJuYWwgdGFnbGlzdCBhbmQgZnVsbHkgdXNlIHRhZ3NldHRlciBpbnRlcmZhY2UuCgoyMDA5LTAxLTA2IDE0OjUwOjI5ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4Lio6IEVuc3VyZSBoZWFkZXIgc2l6ZSBpbnZhcmlhbmNlIGR1cmluZyBzdWJzZXF1ZW50IHJld3JpdGUgYnkgdXNpbmcgdGFncyBzbmFwc2hvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X3Jlc2V0KSwKCSAgKGdzdF9hdmlfbXV4X3JpZmZfZ2V0X2F2aV9oZWFkZXIpOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4Lmg6CgkgIEVuc3VyZSBoZWFkZXIgc2l6ZSBpbnZhcmlhbmNlIGR1cmluZyBzdWJzZXF1ZW50IHJld3JpdGUgYnkgdXNpbmcKCSAgdGFncyBzbmFwc2hvdC4KCjIwMDktMDEtMDUgMTc6MzE6MTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzogRG9uJ3Qgd2FpdCBmb3IgdGhlIHB1bHNlIG1haW5sb29wIHdoZW4gZGVzdHJveWluZyB0aGUgc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6IChnc3RfcHVsc2VzaW5rX2Rlc3Ryb3lfc3RyZWFtKToKCSAgRG9uJ3Qgd2FpdCBmb3IgdGhlIHB1bHNlIG1haW5sb29wIHdoZW4gZGVzdHJveWluZyB0aGUgc3RyZWFtLgoJICBGaXhlcyBhIGRlYWRsb2NrIHdoZW4gdGhlIHB1bHNlZGFlbW9uIGdvZXMgYXdheSB3aGlsZSBwdWxzZXNpbmsKCSAgaXMgUExBWUlORy4gRml4ZXMgYnVnICM1NTY5ODYuCgoyMDA5LTAxLTA1IDEyOjMwOjQwICswMDAwICBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IEFkZCBzdXBwb3J0IGZvciBncmF5c2NhbGUgdjRsMiBkZXZpY2VzLiBGaXhlcyBidWcgIzU2NjYxNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTYXNjaGEgSGF1ZXIgPHMgZG90IGhhdWVyIGF0IHBlbmd1dHJvbml4IGRvdCBkZT4KCSAgTHVvdGFvIEZ1IDxsIGRvdCBmdSBhdCBwZW5ndXRyb25peCBkb3QgZGU+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfdjRsMmZvdXJjY190b19zdHJ1Y3R1cmUpLAoJICAoZ3N0X3Y0bDJfZ2V0X2NhcHNfaW5mbyk6CgkgIEFkZCBzdXBwb3J0IGZvciBncmF5c2NhbGUgdjRsMiBkZXZpY2VzLiBGaXhlcyBidWcgIzU2NjYxNi4KCjIwMDktMDEtMDUgMTE6NDI6MDkgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L3F0ZGVtdXgvOiBTdHJlYW1saW5lIHRhZyBoYW5kbGluZyBhbmQgcGFzcyB1bnBhcnNlZCB0YWdzIGFzIGJpbmFyeSBibG9iIGluIHByaXZhdGUgdGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3RhZ19hZGRfc3RyKSwKCSAgKHF0ZGVtdXhfdGFnX2FkZF90bXBvKSwgKHF0ZGVtdXhfdGFnX2FkZF9jb3ZyKSwKCSAgKHF0ZGVtdXhfdGFnX2FkZF9kYXRlKSwgKHF0ZGVtdXhfdGFnX2FkZF9nbnJlKSwKCSAgKHF0ZGVtdXhfdGFnX2FkZF9ibG9iKSwgKHF0ZGVtdXhfcGFyc2VfdWR0YSk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5oOgoJICAqIGdzdC9xdGRlbXV4L3F1aWNrdGltZS5jOiAocGx1Z2luX2luaXQpOgoJICBTdHJlYW1saW5lIHRhZyBoYW5kbGluZyBhbmQgcGFzcyB1bnBhcnNlZCB0YWdzIGFzIGJpbmFyeSBibG9iCgkgIGluIHByaXZhdGUgdGFnLgoKMjAwOS0wMS0wNSAxMDoxMzoyOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2F1ZGlvZngvOiBJbXBsZW1lbnQgYSBiYXNlIGNsYXNzIGZvciBJSVIgZmlsdGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meGJhc2VpaXJmaWx0ZXIuYzoKCSAgKGdzdF9hdWRpb19meF9iYXNlX2lpcl9maWx0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb19meF9iYXNlX2lpcl9maWx0ZXJfZGlzcG9zZSksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9paXJfZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfaWlyX2ZpbHRlcl9pbml0KSwKCSAgKGdzdF9hdWRpb19meF9iYXNlX2lpcl9maWx0ZXJfY2FsY3VsYXRlX2dhaW4pLAoJICAoZ3N0X2F1ZGlvX2Z4X2Jhc2VfaWlyX2ZpbHRlcl9zZXRfY29lZmZpY2llbnRzKSwKCSAgKGdzdF9hdWRpb19meF9iYXNlX2lpcl9maWx0ZXJfc2V0dXApLCAocHJvY2VzcyksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9paXJfZmlsdGVyX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfYXVkaW9fZnhfYmFzZV9paXJfZmlsdGVyX3N0b3ApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZnhiYXNlaWlyZmlsdGVyLmg6CgkgIEltcGxlbWVudCBhIGJhc2UgY2xhc3MgZm9yIElJUiBmaWx0ZXJzLgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmJhbmQuYzogKGdzdF9hdWRpb19jaGViX2JhbmRfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb19jaGViX2JhbmRfY2xhc3NfaW5pdCksIChnc3RfYXVkaW9fY2hlYl9iYW5kX2luaXQpLAoJICAoZ2VuZXJhdGVfY29lZmZpY2llbnRzKSwgKGdzdF9hdWRpb19jaGViX2JhbmRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19jaGViX2JhbmRfc2V0dXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmJhbmQuaDoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOiAoZ3N0X2F1ZGlvX2NoZWJfbGltaXRfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb19jaGViX2xpbWl0X2NsYXNzX2luaXQpLCAoZ3N0X2F1ZGlvX2NoZWJfbGltaXRfaW5pdCksCgkgIChnZW5lcmF0ZV9jb2VmZmljaWVudHMpLCAoZ3N0X2F1ZGlvX2NoZWJfbGltaXRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19jaGViX2xpbWl0X3NldHVwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5oOgoJICBVc2UgdGhlIElJUiBmaWx0ZXIgYmFzZSBjbGFzcyBmb3IgdGhlIGNoZWJ5c2hldiBmaWx0ZXJzLgoKMjAwOS0wMS0wMiAyMDozOTozNCArMDAwMCAgSnVzdGluIEthcm5lZ2FzIDxqdXN0aW5AYWZmaW5peC5jb20+CgoJICBzeXMvb3N4YXVkaW8vOiBSZXdyaXRlIG9zeGF1ZGlvIHRvIHdvcmsgbW9yZSBmbGV4aWJseSBhbmQgbW9yZSByZWxpYWJseSwgdXNpbmcgYSBkaWZmZXJlbnQgYWJzdHJhY3Rpb24gbGF5ZXIgb2YgY29yZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKdXN0aW4gS2FybmVnYXMgPGp1c3RpbkBhZmZpbml4LmNvbT4gYW5kCgkgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpby5jOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb2VsZW1lbnQuYzoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9lbGVtZW50Lmg6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuaDoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuaDoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5jOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hyaW5nYnVmZmVyLmg6CgkgIFJld3JpdGUgb3N4YXVkaW8gdG8gd29yayBtb3JlIGZsZXhpYmx5IGFuZCBtb3JlIHJlbGlhYmx5LCB1c2luZyBhCgkgIGRpZmZlcmVudCBhYnN0cmFjdGlvbiBsYXllciBvZiBjb3JlYXVkaW8gdGhhdCBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IG9mCgkgIGRvaW5nIGxvdy1sZXZlbCBhdWRpbyBJL08gb24gT1NYLgoJICBGaXhlcyBieWcgIzU2NDk0OC4KCjIwMDktMDEtMDIgMTY6MzE6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9ydHAvc2VydmVyLWRlY29kZWJpbi1IMjYzcC1BTVIuc2g6IEFkZCBleGFtcGxlIFJUUCB0cmFuc2NvZGluZyBwaXBlbGluZSBmcm9tIGFueSBmaWxlIGRlY29kZWRhYmxlIHdpdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1kZWNvZGViaW4tSDI2M3AtQU1SLnNoOgoJICBBZGQgZXhhbXBsZSBSVFAgdHJhbnNjb2RpbmcgcGlwZWxpbmUgZnJvbSBhbnkgZmlsZSBkZWNvZGVkYWJsZSB3aXRoCgkgIHVyaWRlY29kZWJpbi4KCjIwMDktMDEtMDIgMTU6MjA6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9ydHAvOiBBZGQgdHdvIEMgZXhhbXBsZXMgb2YgdXNpbmcgZ3N0cnRwYmluIGFzIGEgc2VuZGVyIGFuZCBhIHJlY2VpdmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1QQ01BLmM6IChwYWRfYWRkZWRfY2IpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1hbHNhc3JjLVBDTUEuYzogKG1haW4pOgoJICBBZGQgdHdvIEMgZXhhbXBsZXMgb2YgdXNpbmcgZ3N0cnRwYmluIGFzIGEgc2VuZGVyIGFuZCBhIHJlY2VpdmVyLgoKMjAwOC0xMi0zMSAxMToyMDo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBDaGFuZ2VMb2c6IFJlbW92ZSBjb25mbGljdCBtYXJrZXIgZnJvbSBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBSZW1vdmUgY29uZmxpY3QgbWFya2VyIGZyb20gQ2hhbmdlTG9nCgoyMDA4LTEyLTI4IDA5OjUwOjMxICswMDAwICBqXiA8akBvaWwyMS5vcmc+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZCBjb2RlYyBtYXBwaW5nIGZvciB4dmlkLCBmbXA0IGFuZCBhYzMgdHJhY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpeIDxqIGF0IG9pbDIxLm9yZz4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3ZpZGVvX2NhcHMpLAoJICAocXRkZW11eF9hdWRpb19jYXBzKToKCSAgQWRkIGNvZGVjIG1hcHBpbmcgZm9yIHh2aWQsIGZtcDQgYW5kIGFjMyB0cmFja3MuCgkgIEZpeGVzICM1NjU4NTAKCjIwMDgtMTItMjMgMTI6MTA6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvanBlZy9nc3RzbW9rZWVuYy4qOiBJbXBsZW1lbnQgZ2V0Y2FwcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19pbml0KSwKCSAgKGdzdF9zbW9rZWVuY19nZXRjYXBzKSwgKGdzdF9zbW9rZWVuY19zZXRjYXBzKSwKCSAgKGdzdF9zbW9rZWVuY19jaGFpbiksIChnc3Rfc21va2VlbmNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvanBlZy9nc3RzbW9rZWVuYy5oOgoJICBJbXBsZW1lbnQgZ2V0Y2FwcyBmdW5jdGlvbi4KCSAgU2V0IGNhcHMgb24gdGhlIHBhZCBhbmQgb24gYWxsIG91dGdvaW5nIGJ1ZmZlcnMuCgkgIEZpeGVzICM1NjU0NDEuCgoyMDA4LTEyLTE5IDA5OjM2OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuYzogQW5kIHJlbW92ZSB0ZW1wb3JhcnkgY29tbWVudCBwb2ludGluZyB0byB0aGUgYnVnIHRpY2tldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkgIEFuZCByZW1vdmUgdGVtcG9yYXJ5IGNvbW1lbnQgcG9pbnRpbmcgdG8gdGhlIGJ1ZyB0aWNrZXQuCgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgTW92ZSByZW9jY3VyaW5nIGxvZ2dpbmcgdG8gTE9HIGFuZCBsb2cgaW5zdGFuY2UgdG9vLgoKMjAwOC0xMi0xNyAxNzoyODozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6IERvbid0IGxlYWsgdGhlIHBhX29wZXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkgIERvbid0IGxlYWsgdGhlIHBhX29wZXJhdGlvbi4KCjIwMDgtMTItMTYgMTY6MTk6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBjb3JlIGN2cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIGNvcmUgY3ZzLgoKMjAwOC0xMi0xNiAxNjowNzo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguYzogUmVuYW1lIGFwaSBmcm9tIF9mbHVzaCB0byBfcmVzZXRfdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgUmVuYW1lIGFwaSBmcm9tIF9mbHVzaCB0byBfcmVzZXRfdGFncy4KCjIwMDgtMTItMTYgMTQ6MjI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IFVzZSBuZXcgdGFnc2V0dGVyIGFwaSB0byBmbHVzaCB0YWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBVc2UgbmV3IHRhZ3NldHRlciBhcGkgdG8gZmx1c2ggdGFncy4KCjIwMDgtMTItMTYgMTM6MTQ6MzkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOiBJbmNyZWFzZSB0aW1lb3V0IHRvIDMgbWludXRlcyB0byBwcmV2ZW50IHRpbWVvdXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzogKGRlaW50ZXJsZWF2ZV9zdWl0ZSk6CgkgIEluY3JlYXNlIHRpbWVvdXQgdG8gMyBtaW51dGVzIHRvIHByZXZlbnQgdGltZW91dHMuCgoyMDA4LTEyLTE2IDEyOjUyOjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6IEluY3JlYXNlIHRpbWVvdXQgdG8gMyBtaW51dGVzIHRvIHByZXZlbnQgdGltZW91dHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ludGVybGVhdmUuYzogKGludGVybGVhdmVfc3VpdGUpOgoJICBJbmNyZWFzZSB0aW1lb3V0IHRvIDMgbWludXRlcyB0byBwcmV2ZW50IHRpbWVvdXRzLgoKMjAwOC0xMi0xNiAxMTo1NzowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguKjogVG90YWxseSByZW1vdmUgdGhlIGludGVybmFsIHRhZ2xpc3RzIGFuZCBmdWxseSB1c2UgdGFnc2V0dGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4Lmg6CgkgIFRvdGFsbHkgcmVtb3ZlIHRoZSBpbnRlcm5hbCB0YWdsaXN0cyBhbmQgZnVsbHkgdXNlIHRhZ3NldHRlci4KCjIwMDgtMTItMTUgMTU6NTk6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IEluc3RlYWQgb2YgZmlsdGVyaW5nIHdyb25nbHkganVzdCB1c2UgdGhlIG1lcmdlbW9kZS4gQXBwbGljYXRpb25zIGlzIHVzZSBLRUVQX0FMTCBpZiB0aGV5IHdhbnQgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBJbnN0ZWFkIG9mIGZpbHRlcmluZyB3cm9uZ2x5IGp1c3QgdXNlIHRoZSBtZXJnZW1vZGUuIEFwcGxpY2F0aW9ucyBpcwoJICB1c2UgS0VFUF9BTEwgaWYgdGhleSB3YW50IHRvIHN1cHJlc3MgdGFnLWV2ZW50cy4gRml4ZXMgIzU2MzIyMSBmb3IKCSAgYXZpIGZvciByZWFsIChJIGhvcGUpLiBFdmVyeW9uZSBjaGltZSBpbiwgYmVmb3JlIEkgZml4IHRoZSBvdGhlcnMuCgoyMDA4LTEyLTE1IDEyOjQ1OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuYzogQWRkIG5vdGUgYWJvdXQgbWVtbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkgIEFkZCBub3RlIGFib3V0IG1lbWxlYWsuCgoyMDA4LTEyLTEzIDE2OjIzOjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbTQvTWFrZWZpbGUuYW06IEEgY291cGxlIG1vcmUgLm00IHRoYXQgYXJlbid0IHNoaXBwZWQgYW55bW9yZSB3aXRoIGdldHRleHQgMC4xNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbTQvTWFrZWZpbGUuYW06CgkgIEEgY291cGxlIG1vcmUgLm00IHRoYXQgYXJlbid0IHNoaXBwZWQgYW55bW9yZSB3aXRoIGdldHRleHQgMC4xNy4KCjIwMDgtMTItMTMgMTU6MzQ6MDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBTd2l0Y2ggdG8gdXNpbmcgR3N0U3RhdGljUGFkVGVtcGxhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZsYWNfZGVjX2luaXQpOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzogKGdzdF9hbGF3X2RlY19iYXNlX2luaXQpLAoJICAoZ3N0X2FsYXdfZGVjX2luaXQpOgoJICAqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzogKGdzdF9hbGF3X2VuY19iYXNlX2luaXQpLAoJICAoZ3N0X2FsYXdfZW5jX2luaXQpOgoJICAqIGdzdC9sYXcvYWxhdy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6IChnc3RfbXVsYXdkZWNfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWxhd2RlY19pbml0KToKCSAgKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOiAoZ3N0X211bGF3ZW5jX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsYXdlbmNfaW5pdCk6CgkgICogZ3N0L2xhdy9tdWxhdy5jOiAocGx1Z2luX2luaXQpOgoJICBTd2l0Y2ggdG8gdXNpbmcgR3N0U3RhdGljUGFkVGVtcGxhdGUuCgkgICogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOiAoZ3N0X3VkcF9nZXRfYWRkcik6CgkgIERvbid0IGZvcmdldCB0byBmcmVlIHRoZSBhZGRyaW5mbyBzdHJ1Y3R1cmUuCgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhcnNlX3NpbmtfYWN0aXZhdGUpOgoJICBEb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIEdzdEFkYXB0ZXIuCgoyMDA4LTEyLTEzIDEyOjU4OjI0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbTQvTWFrZWZpbGUuYW06IGludHR5cGVzLm00IGhhc24ndCBiZWVuIGF2YWlsYWJsZSBzaW5jZSBnZXR0ZXh0LTAuMTUsIGFuZCBzaW5jZSB3ZSBub3cgcmVxdWlyZSBnZXR0ZXh0ID49IDAuMTcgLi4uIHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIG00L01ha2VmaWxlLmFtOgoJICBpbnR0eXBlcy5tNCBoYXNuJ3QgYmVlbiBhdmFpbGFibGUgc2luY2UgZ2V0dGV4dC0wLjE1LCBhbmQgc2luY2Ugd2Ugbm93CgkgIHJlcXVpcmUgZ2V0dGV4dCA+PSAwLjE3IC4uLiB3ZSBjYW4gcmVtb3ZlIGl0IGZyb20gdGhlIGxpc3Qgb2YgZmlsZXMgdG8KCSAgZGlzdC4KCjIwMDgtMTItMTAgMTU6MDM6MjMgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgc21hbGxlciBzcGVjIGZpbGUgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGxlciBzcGVjIGZpbGUgdXBkYXRlcwoKMjAwOC0xMi0wOSAxNzo1NToyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBNb3JlIGxvZ2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgTW9yZSBsb2dnaW5nLgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIEhhbmRsZSBtb3JlIG1ldGFkYXRhIGZpZWxkcy4gQmV0dGVyIGVzdGltYXRlIG9mIG1ldGFkYXRhIHNpemUuIERvbid0CgkgIG1lcmdlIHJlY2VpdmVkIHRhZ3MsIGlmIGFwcGxpY2F0aW9uIGhhcyBzcGVjaWZpZWQgdGFncyB1c2luZwoJICBHU1RfVEFHX01FUkdFX1JFUExBQ0VfQUxMLiBGaXhlcyAjNTYzMjIxIGZvciBhdmkuCgoyMDA4LTEyLTA5IDE0OjMwOjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogQWxzbyBpZ25vcmUgcHVsc2VtaXhlciBmb3IgdGhlIHN0YXRlcyB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBBbHNvIGlnbm9yZSBwdWxzZW1peGVyIGZvciB0aGUgc3RhdGVzIHVuaXQgdGVzdC4KCjIwMDgtMTItMDkgMTQ6MTk6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOiBBZGQgYW4gRU9JIG1hcmtlciBhdCB0aGUgZW5kIG9mIHRoZSBqcGVnIGZyYW1lIHdoZW4gaXQncyBtaXNzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGpwZWdkZXBheS5jOiAoZ3N0X3J0cF9qcGVnX2RlcGF5X3Byb2Nlc3MpOgoJICBBZGQgYW4gRU9JIG1hcmtlciBhdCB0aGUgZW5kIG9mIHRoZSBqcGVnIGZyYW1lIHdoZW4gaXQncyBtaXNzaW5nLgoJICBGaXhlcyAjNTYzMDU2LgoKMjAwOC0xMi0wOSAxMDo0NzoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6IFVwZGF0ZSB0aGUgdW5pdCB0ZXN0IGZvciB0aGUgbmV3IGNvbG9yIHZhbHVlcyBmb3IgQlQuNjAxIHJlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6IChjaGVja18xeDFfYnVmZmVyKToKCSAgVXBkYXRlIHRoZSB1bml0IHRlc3QgZm9yIHRoZSBuZXcgY29sb3IgdmFsdWVzIGZvciBCVC42MDEgcmVkLgoJICBGaXhlcyBidWcgIzU2MzUxMC4KCjIwMDgtMTItMDkgMTA6Mjg6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZHYvZ3N0ZHZkZW11eC5jOiBSZXN0b3JlIHByZXZpb3VzIGJlaGF2aW91ciBvZiBub3QgcGFzc2luZyBRb1MgYW5kIG5hdmlnYXRpb24gZXZlbnRzIHVwc3RyZWFtLCB3aGljaCBwcmVzdW1hYmx5IHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2hhbmRsZV9zcmNfZXZlbnQpOgoJICBSZXN0b3JlIHByZXZpb3VzIGJlaGF2aW91ciBvZiBub3QgcGFzc2luZyBRb1MgYW5kIG5hdmlnYXRpb24KCSAgZXZlbnRzIHVwc3RyZWFtLCB3aGljaCBwcmVzdW1hYmx5IHdhc24ndCBtZWFudCB0byBiZSBjaGFuZ2VkLgoKMjAwOC0xMi0wOSAwOTozOTo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2R2L2dzdGR2ZGVtdXguYzogQWRkIHNyY3BhZHMgb25seSB3aGVuIG5lZWRlZCBhbmQgcmVtb3ZlIHRoZW0gYWdhaW4gd2hlbiBnb2luZyBiYWNrIHRvIFJFQURZLiBUaGlzIHByZXZlbnRzIHN0YWxsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9hZGRfdmlkZW9fcGFkKSwKCSAgKGdzdF9kdmRlbXV4X2FkZF9hdWRpb19wYWQpLCAoZ3N0X2R2ZGVtdXhfcmVtb3ZlX3BhZHMpLAoJICAoZ3N0X2R2ZGVtdXhfZGVtdXhfYXVkaW8pLCAoZ3N0X2R2ZGVtdXhfZGVtdXhfdmlkZW8pLAoJICAoZ3N0X2R2ZGVtdXhfY2hhaW4pLCAoZ3N0X2R2ZGVtdXhfbG9vcCksCgkgIChnc3RfZHZkZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICBBZGQgc3JjcGFkcyBvbmx5IHdoZW4gbmVlZGVkIGFuZCByZW1vdmUgdGhlbSBhZ2FpbiB3aGVuIGdvaW5nCgkgIGJhY2sgdG8gUkVBRFkuIFRoaXMgcHJldmVudHMgc3RhbGxlZCBwaXBlbGluZXMgaWYgdGhlcmUncyBubwoJICBhdWRpbyBpbnNpZGUgdGhlIERWIHN0cmVhbSwgd2hpY2ggaGFwcGVucyBmb3IgbWFueSBNWEYgZmlsZXMuCgoyMDA4LTEyLTA5IDA5OjA5OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOiBUaGUgcG9ydHMgaW4gbGlic291cCBhcmUgdW5zaWduZWQgaW50ZWdlcnMgYW5kIG5vdCBzaWduZWQgaW50ZWdlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChydW5fc2VydmVyKToKCSAgVGhlIHBvcnRzIGluIGxpYnNvdXAgYXJlIHVuc2lnbmVkIGludGVnZXJzIGFuZCBub3Qgc2lnbmVkCgkgIGludGVnZXJzLgoKMjAwOC0xMi0wOCAxODozMTowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2R2L2dzdGR2ZGVtdXguYzogRm9yd2FyZCBhbGwgZXZlbnRzIHVwc3RyZWFtIHVubGVzcyBpdCdzIHNvbWV0aGluZyB3ZSByZWFsbHkgZG9uJ3QgaGFuZGxlLiBUaGlzIGZpeGVzIGxhdGVuY3kgY29uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9oYW5kbGVfc3JjX2V2ZW50KToKCSAgRm9yd2FyZCBhbGwgZXZlbnRzIHVwc3RyZWFtIHVubGVzcyBpdCdzIHNvbWV0aGluZyB3ZSByZWFsbHkKCSAgZG9uJ3QgaGFuZGxlLiBUaGlzIGZpeGVzIGxhdGVuY3kgY29uZmlndXJhdGlvbiBvZiBwaXBlbGluZXMuCgoyMDA4LTEyLTA4IDE4OjI0OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvZHYvOiBSZWFsbHkgY2FsbCBkdl9pbml0KCkgZXhhY3RseSBvbmUgdGltZSwgbm90IG9uZSB0aW1lIGZvciB0aGUgZGVtdXhlciBhbmQgb25lIHRpbWUgZm9yIHRoZSBkZWNvZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZHYvZ3N0ZHYuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvZHYvZ3N0ZHZkZWMuYzogKGdzdF9kdmRlY19jbGFzc19pbml0KToKCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5jOiAoZ3N0X2R2ZGVtdXhfY2xhc3NfaW5pdCk6CgkgIFJlYWxseSBjYWxsIGR2X2luaXQoKSBleGFjdGx5IG9uZSB0aW1lLCBub3Qgb25lIHRpbWUgZm9yCgkgIHRoZSBkZW11eGVyIGFuZCBvbmUgdGltZSBmb3IgdGhlIGRlY29kZXIuCgoyMDA4LTEyLTA4IDEyOjM3OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6IENvcHkgaW5jb21taW5nIHRpbWVzdGFtcCB0byBvdXRnb2luZyBwYWNrZXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGFwYXkuYzogKGdzdF9ydHBfbXA0YV9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgIENvcHkgaW5jb21taW5nIHRpbWVzdGFtcCB0byBvdXRnb2luZyBwYWNrZXRzLgoKMjAwOC0xMi0wOCAxMjozNjoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOiBEb24ndCB0cnkgdG8gcHVzaCBwYWNrZXRzIGJlZm9yZSB3ZSBjb3VsZCBmaW5kIGEgdmFsaWQgY29uZmlnIHN0YXJ0Y29kZS4gRml4ZXMgIzU2MzUwOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IChnc3RfcnRwX21wNHZfcGF5X2ZsdXNoKSwKCSAgKGdzdF9ydHBfbXA0dl9wYXlfZXZlbnQpOgoJICBEb24ndCB0cnkgdG8gcHVzaCBwYWNrZXRzIGJlZm9yZSB3ZSBjb3VsZCBmaW5kIGEgdmFsaWQgY29uZmlnCgkgIHN0YXJ0Y29kZS4gRml4ZXMgIzU2MzUwOS4KCjIwMDgtMTItMDcgMTk6MjI6NDggKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOiBTZXQgdGhlIG1peGVyIGZkIGJlZm9yZSBjYWxsaW5nIGlvY3RsKCkgb24gaXQuIEZpeGVzIGJ1ZyAjNTYzNDE0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb24gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX29wZW4pOgoJICBTZXQgdGhlIG1peGVyIGZkIGJlZm9yZSBjYWxsaW5nIGlvY3RsKCkgb24gaXQuIEZpeGVzIGJ1ZyAjNTYzNDE0LgoKMjAwOC0xMi0wNyAxOTowMTozNSArMDAwMCAgQWxleGFuZHJlIFJvc3RvdnRzZXYgPHRldHJvbWlub0BnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IE1ha2UgdXNhZ2Ugb2YgbGlidjRsIG9wdGlvbmFsIGJ5IGEgY29uZmlndXJlIHBhcmFtZXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGV4YW5kcmUgUm9zdG92dHNldiA8dGV0cm9taW5vIGF0IGdtYWlsIGRvdCBjb20+CgkgICogY29uZmlndXJlLmFjOgoJICBNYWtlIHVzYWdlIG9mIGxpYnY0bCBvcHRpb25hbCBieSBhIGNvbmZpZ3VyZSBwYXJhbWV0ZXIuCgkgIEZpeGVzIGJ1ZyAjNTYzNTA0LgoKMjAwOC0xMi0wNSAwOToyNDoxOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIG1hdHJvc2thbXV4IGFuZCBtYXRyb3NrYWRlbXV4IGFuZCB1cGRhdGUgdGhlIGluc3BlY3Rpb24geG1sIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgbWF0cm9za2FtdXggYW5kIG1hdHJvc2thZGVtdXggYW5kCgkgIHVwZGF0ZSB0aGUgaW5zcGVjdGlvbiB4bWwgZmlsZXMuCgoyMDA4LTEyLTA0IDIwOjEwOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFwcGFyZW50bHkgQUNfQ09ORklHX01BQ1JPX0RJUiBicmVha3Mgd2hlbiB1c2luZyBtb3JlIHRoYW4gb25lIG1hY3JvIGRpcmVjdG9yeSwgcmV2ZXJ0aW5nIGxhc3QgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFwcGFyZW50bHkgQUNfQ09ORklHX01BQ1JPX0RJUiBicmVha3Mgd2hlbiB1c2luZyBtb3JlCgkgIHRoYW4gb25lIG1hY3JvIGRpcmVjdG9yeSwgcmV2ZXJ0aW5nIGxhc3QgY2hhbmdlLgoKMjAwOC0xMi0wNCAxOTo0NzoyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBTZXQgQUNfQ09ORklHX01BQ1JPX0RJUiB0byBjb21tb24vbTQgdG8gcG9pbnQgYXV0b2NvbmYgdG8gb3VyIE00IG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBTZXQgQUNfQ09ORklHX01BQ1JPX0RJUiB0byBjb21tb24vbTQgdG8gcG9pbnQgYXV0b2NvbmYgdG8KCSAgb3VyIE00IG1hY3Jvcy4KCjIwMDgtMTEtMzAgMTY6MjQ6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IFByb3ZpZGUgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBmb3JtYXQgc3RyaW5nIHRvIGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IChnc3RfbXVsdGl1ZHBzaW5rX3JlbmRlcik6CgkgIFByb3ZpZGUgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcmVxdWlyZWQgZm9yIHRoZSBmb3JtYXQgc3RyaW5nCgkgIHRvIGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTExLTI5IDIwOjA1OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzogRml4IGNsYXNzaWZpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zcmMuYzoKCSAgRml4IGNsYXNzaWZpY2F0aW9uLgoKMjAwOC0xMS0yOSAxMzozMTo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVxdWlyZSBnZXR0ZXh0IDAuMTcgYmVjYXVzZSBvbGRlciB2ZXJzaW9ucyBkb24ndCBtaXggd2l0aCBsaWJ0b29sIDIuMi4gQXQgYnVpbGQgdGltZSBhbiBvbGRlciBnZXR0ZXh0IHZlcnNpb24gd2lsbCBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQ3lnd2luIFBvcnRzIG1haW50YWluZXIKCSAgPHlzZWxrb3dpdHogYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlIGRvdCBuZXQ+CgkgICogYXV0b2dlbi5zaDoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgZ2V0dGV4dCAwLjE3IGJlY2F1c2Ugb2xkZXIgdmVyc2lvbnMgZG9uJ3QgbWl4IHdpdGggbGlidG9vbAoJICAyLjIuIEF0IGJ1aWxkIHRpbWUgYW4gb2xkZXIgZ2V0dGV4dCB2ZXJzaW9uIHdpbGwgc3RpbGwgd29yay4KCSAgRml4ZXMgYnVnICM1NTYwOTEuCgoyMDA4LTExLTI4IDE1OjEwOjUwICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IE1ha2UgZ3N0X211bHRpdWRwc2lua19yZW5kZXIoKSBpZ25vcmUgZXJyb3JzIGZyb20gc2VuZHRvKCkgaW5zdGVhZCBvZiBicmVha2luZyBzdHJlYW1pbmcuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IChnc3RfbXVsdGl1ZHBzaW5rX3JlbmRlcik6CgkgIE1ha2UgZ3N0X211bHRpdWRwc2lua19yZW5kZXIoKSBpZ25vcmUgZXJyb3JzIGZyb20gc2VuZHRvKCkgaW5zdGVhZCBvZgoJICBicmVha2luZyBzdHJlYW1pbmcuIEVtaXQgYSB3YXJuaW5nIGluc3RlYWQuIEZpeGVzICM1NjI1NzIuCgoyMDA4LTExLTI3IDE2OjQzOjI0ICswMDAwICBSb24gTWNPdWF0IDxybWNvdWF0QHNtYXJ0dC5jb20+CgoJICBBZGQgc3VwcG9ydCBmb3IgYmFzaWMgYW5kIGRpZ2VzdCBhdXRoZW50aWNhdGlvbiBpbiBzb3VwaHR0cHNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSb24gTWNPdWF0IDxybWNvdWF0IGF0IHNtYXJ0dCBkb3QgY29tPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cF9odHRwX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2luaXQpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfZGlzcG9zZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2F1dGhlbnRpY2F0ZV9jYiksIChnc3Rfc291cF9odHRwX3NyY19zdGFydCk6CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaDoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOiAoYmFzaWNfYXV0aF9jYiksCgkgIChkaWdlc3RfYXV0aF9jYiksIChydW5fdGVzdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChzb3VwaHR0cHNyY19zdWl0ZSksIChydW5fc2VydmVyKToKCSAgQWRkIHN1cHBvcnQgZm9yIGJhc2ljIGFuZCBkaWdlc3QgYXV0aGVudGljYXRpb24gaW4gc291cGh0dHBzcmMuCgkgIEZpeGVzIGJ1ZyAjNTYxNzc1LgoKMjAwOC0xMS0yNyAxMjoxMzozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3dhdmVuYy86IEFkZCBzdXBwb3J0IGZvciBhLWxhdyBhbmQgbXUtbGF3IGVuY29kZWQgd2F2IGZpbGVzLiBGaXhlcyBidWcgIzU2MjQzNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXBpam4gVmFuIEVlY2tob3VkdAoJICA8cGVwaWpuIGRvdCB2YW5lZWNraG91ZHQgYXQgbHVjaWFkIGRvdCBjb20+CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfY3JlYXRlX2hlYWRlcl9idWYpLAoJICAoZ3N0X3dhdmVuY19zaW5rX3NldGNhcHMpLCAoZ3N0X3dhdmVuY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmg6CgkgICogZ3N0L3dhdmVuYy9yaWZmLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBhLWxhdyBhbmQgbXUtbGF3IGVuY29kZWQgd2F2IGZpbGVzLiBGaXhlcyBidWcgIzU2MjQzNC4KCjIwMDgtMTEtMjcgMTE6MjI6NTYgKzAwMDAgIOydtOusuO2YlSA8aXdpbmdzQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogUHJldmVudCBmdXJ0aGVyIHJlYWQvd3JpdGUgYWN0aW9ucyB0YWtlbiB0byB0aGUgY29ubmVjdC1mYWlsZWQgc29ja2V0IGJ5IGVycm9yaW5nIG91dCBxdWlja2x5Li4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IOydtOusuO2YlSA8aXdpbmdzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfbG9vcF91ZHApOgoJICBQcmV2ZW50IGZ1cnRoZXIgcmVhZC93cml0ZSBhY3Rpb25zIHRha2VuIHRvIHRoZSBjb25uZWN0LWZhaWxlZCBzb2NrZXQgYnkKCSAgZXJyb3Jpbmcgb3V0IHF1aWNrbHkuIFNlZSAjNTYyMjU4LgoKMjAwOC0xMS0yNiAyMToxOTo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbGV2ZWwvbGV2ZWwtZXhhbXBsZS5jOiBTZXQgZmFrZXNpbmsgdG8gc3luYy4gT3RoZXJ3aXNlIHBlb3BsZSBtaWdodCBxdWVzdGlvbiB0aGUgbWVzc2FnZSBpbnRlcnZhbC4gTmV2Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xldmVsL2xldmVsLWV4YW1wbGUuYzoKCSAgU2V0IGZha2VzaW5rIHRvIHN5bmMuIE90aGVyd2lzZSBwZW9wbGUgbWlnaHQgcXVlc3Rpb24gdGhlIG1lc3NhZ2UKCSAgaW50ZXJ2YWwuIE5ldmVydGhlbGVzcyB0aGUgdGltZXN0YW1wIGluIHRoZSBtZXNzYWdlIGlzIHdoYXQgbWF0dGVycy4KCjIwMDgtMTEtMjUgMTg6MTM6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9pY2xlcy8uY3ZzaWdub3JlOiBjdnNpZ25vcmUgbmV3bHkgZ2VuZXJhdGVkIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgIGN2c2lnbm9yZSBuZXdseSBnZW5lcmF0ZWQgZmlsZS4KCjIwMDgtMTEtMjUgMTg6MDM6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogRml4IHRoZSBkZXNjcmlwdGlvbnMgYW5kIGZpeCBzb21lIGVtYWlsIGFkZHJlc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSAgKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzogKGdzdF9ydHBfTDE2X2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOiAoZ3N0X3J0cF9hYzNfZGVwYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBkdmRlcGF5LmM6IChnc3RfcnRwX2R2X2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzogKGdzdF9ydHBfZ3NtX3BheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOiAoZ3N0X3J0cF9oMjYzX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IChnc3RfcnRwX2gyNjNwX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wMXNkZXBheS5jOiAoZ3N0X3J0cF9tcDFzX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAxc2RlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzogKGdzdF9ydHBfbXAydF9kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6IChnc3RfcnRwX21wNGFfZGVwYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzogKGdzdF9ydHBfbXA0Z19kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6IChnc3RfcnRwX21wNHZfZGVwYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzogKGdzdF9ydHBfbXA0dl9wYXlfZXZlbnQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzogKGdzdF9ydHBfcGNtYV9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZ3N0X3J0cF92b3JiaXNfcGF5X2ZpbmlzaF9oZWFkZXJzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6IChnc3RfcnRwX3ZyYXdfZGVwYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6CgkgIEZpeCB0aGUgZGVzY3JpcHRpb25zIGFuZCBmaXggc29tZSBlbWFpbCBhZGRyZXNzZXMuCgoyMDA4LTExLTI1IDE3OjQ3OjI0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIE1QRzEgYW5kIE1QRzIgZm91cmNjIHRvIHN1cHBvcnRlZCBxdGRlbXV4IHZpZGVvIGNvZGVjcyBhcyBJIGZvdW5kIHNvbWUgdmlkZW8gY2xpcHMgdXNpbmcgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMS0yNSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3ZpZGVvX2NhcHMpOiBBZGQgTVBHMSBhbmQgTVBHMgoJICBmb3VyY2MKCSAgdG8gc3VwcG9ydGVkIHF0ZGVtdXggdmlkZW8gY29kZWNzIGFzIEkgZm91bmQgc29tZSB2aWRlbyBjbGlwcwoJICB1c2luZwoJICB0aG9zZS4KCjIwMDgtMTEtMjUgMTY6MjY6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXV0b2RldGVjdC86IFBvc3QgYW4gZXJyb3Igd2hlbiB3ZSBjYW4ndCBzZXQgdGhlIGludGVybmFsIGdob3N0cGFkIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOiAoZ3N0X2F1dG9fYXVkaW9fc2lua19kZXRlY3QpOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOiAoZ3N0X2F1dG9fYXVkaW9fc3JjX2RldGVjdCk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOiAoZ3N0X2F1dG9fdmlkZW9fc2lua19yZXNldCksCgkgIChnc3RfYXV0b192aWRlb19zaW5rX2RldGVjdCk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6IChnc3RfYXV0b192aWRlb19zcmNfZGV0ZWN0KToKCSAgUG9zdCBhbiBlcnJvciB3aGVuIHdlIGNhbid0IHNldCB0aGUgaW50ZXJuYWwgZ2hvc3RwYWQgdGFyZ2V0LgoKMjAwOC0xMS0yNSAxNjowNjoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLio6IEZpeCByZW5lZ290aWF0aW9uIHdoZW4gY2hhbmdpbmcgcHJvcGVydGllcyB1c2luZyB0aGUgbmV3IGJhc2V0cmFuc2Zvcm0gZmVhdHVyZXMuIEZpeGVzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOiAoZ3N0X3ZpZGVvX2Nyb3BfaW5pdCksCgkgIChnc3RfdmlkZW9fY3JvcF90cmFuc2Zvcm0pLCAoZ3N0X3ZpZGVvX2Nyb3BfdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X3ZpZGVvX2Nyb3Bfc2V0X2NhcHMpLCAoZ3N0X3ZpZGVvX2Nyb3Bfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5oOgoJICBGaXggcmVuZWdvdGlhdGlvbiB3aGVuIGNoYW5naW5nIHByb3BlcnRpZXMgdXNpbmcgdGhlIG5ldyBiYXNldHJhbnNmb3JtCgkgIGZlYXR1cmVzLiBGaXhlcyAjNTYxNTAyLgoJICAqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2ljbGVzL3ZpZGVvY3JvcDItdGVzdC5jOiAobWFrZV9waXBlbGluZSksIChtYWluKToKCSAgQWRkIGNyYXp5IGludGVyYWN0aXZlIHRlc3QgdW5pdCBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgcHJvcGVydGllcy4KCjIwMDgtMTEtMjQgMTI6MjA6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChuZXdfc2Vzc2lvbl9wYWQpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfcmFuZ2UpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgVXNlIHRoZSByZWFuZ2VzIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciB1bmNvbmRpdGlvbmFsbHkuCgkgIEZpeGVzICM1NjE2MjUuCgoyMDA4LTExLTIzIDE1OjA4OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvcHVsc2UvcHVsc2VzaW5rLmM6IENoYW5nZSAjaWYgMCB0byBzb21ldGhpbmcgbW9yZSBleHByZXNpdmUgYW5kIGFkZCBwb2ludGVyIHRvIHJlbGF0ZWQgYnVnIHRpY2tldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBDaGFuZ2UgI2lmIDAgdG8gc29tZXRoaW5nIG1vcmUgZXhwcmVzaXZlIGFuZCBhZGQgcG9pbnRlciB0byByZWxhdGVkCgkgIGJ1ZyB0aWNrZXQuCgoyMDA4LTExLTIzIDExOjE3OjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoKMjAwOC0xMS0yMyAxMToxNDo0MiArMDAwMCAgVGFsIFNoYWxpZiA8dHNoYWxpZkBuYXJnaWxhLm9yZz4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogVXNlIEdfe0JJRyxMSVRUTEV9X0VORElBTiBpbnN0ZWFkIG9mIHRoZSBub24tR0xpYiB2YXJpYW50cyBhcyB0aGUgbGF0dGVyIGRvbid0IGV4aXN0IG9uIHNvbWUgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRhbCBTaGFsaWYgPHRzaGFsaWYgYXQgbmFyZ2lsYSBkb3Qgb3JnPgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfYXVkaW9fY2Fwcyk6CgkgIFVzZSBHX3tCSUcsTElUVExFfV9FTkRJQU4gaW5zdGVhZCBvZiB0aGUgbm9uLUdMaWIgdmFyaWFudHMgYXMKCSAgdGhlIGxhdHRlciBkb24ndCBleGlzdCBvbiBzb21lIHN5c3RlbXMgKG1pbmd3KS4gRml4ZXMgYnVnICM1NjE5OTIuCgoyMDA4LTExLTIxIDEzOjQzOjI5ICswMDAwICBaZWVzaGFuIEFsaSA8emVlc2hhbmFrQGdub21lLm9yZz4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IEFkZCB0cmFuc2Zlck1vZGUuZG5sYS5vcmcgaGVhZGVyIHRvIEhUVFAgcmVxdWVzdHMgYXMgdGhpcyBpcyByZXF1aXJlZCBieSB0aGUgRExOQSBzcGVjcyBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFplZXNoYW4gQWxpIDx6ZWVzaGFuYWsgYXQgZ25vbWUgZG90IG9yZz4KCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoZ3N0X3NvdXBfaHR0cF9zcmNfYnVpbGRfbWVzc2FnZSk6CgkgIEFkZCB0cmFuc2Zlck1vZGUuZG5sYS5vcmcgaGVhZGVyIHRvIEhUVFAgcmVxdWVzdHMgYXMgdGhpcyBpcwoJICByZXF1aXJlZCBieSB0aGUgRExOQSBzcGVjcyBhbmQgZG9lc24ndCBodXJ0IGluIG90aGVyIHNpdHVhdGlvbnMuCgkgIEZpeGVzIGJ1ZyAjNTYxODAyLgoKMjAwOC0xMS0yMCAyMzo1OTowNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay4qOiBIYW5kbGUgdmlkZW8gd2luZG93IHJlc2l6aW5nIG1vcmUgY29ycmVjdGx5LCBhdm9pZGluZyBjcmFzaGVzIHdoZW4gZW1iZWRkaW5nIHRoZSB3aW5kb3cgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIEhhbmRsZSB2aWRlbyB3aW5kb3cgcmVzaXppbmcgbW9yZSBjb3JyZWN0bHksIGF2b2lkaW5nIGNyYXNoZXMgd2hlbgoJICBlbWJlZGRpbmcgdGhlIHdpbmRvdyBhbmQgcmVzaXppbmcgaXQuCgoyMDA4LTExLTIwIDIyOjU2OjU4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvdWRwLzogRml4IG11bHRpdWRwc2luayBvbiBPU1ggYnkgcGFzc2luZyB0aGUgc3BlY2lmaWMgbGVuZ3RoIG9mIHRoZSBzb2NrZXQsIHJlZmFjdG9yIHRoYXQgaW50byBhIGZ1bmN0aW9uIHNoYXJlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSAgKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgICogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIEZpeCBtdWx0aXVkcHNpbmsgb24gT1NYIGJ5IHBhc3NpbmcgdGhlIHNwZWNpZmljIGxlbmd0aCBvZiB0aGUgc29ja2V0LAoJICByZWZhY3RvciB0aGF0IGludG8gYSBmdW5jdGlvbiBzaGFyZWQgd2l0aCB0aGUgc2FtZSB0aGluZyBpbiB1ZHBzcmMuCgoyMDA4LTExLTIwIDIwOjA3OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEZpeCB0aGUgc2NhbGluZyBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKHVpbnQ2NF9jZWlsaW5nX3NjYWxlX2ludCksCgkgICh1aW50NjRfY2VpbGluZ19zY2FsZSksIChnc3Rfd2F2cGFyc2VfY2FsY3VsYXRlX2R1cmF0aW9uKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyk6CgkgIEZpeCB0aGUgc2NhbGluZyBjb2RlLgoJICBGaXggcGFyc2luZyBvZiB0aGUgSU5GTyBjaHVua3MsIHdlIHdlcmUgcmVhZGluZyB0aGUgd3JvbmcgbnVtYmVyIG9mCgkgIGJ5dGVzLiAgRml4ZXMgIzU2MTU4MC4KCjIwMDgtMTEtMjAgMTQ6MzA6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiBGaXggTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9mIGFuIHVuc2V0IGNvZGVjX2lkIGluIHRoZSByZWNlbnRseSBhZGRlZCBEaXJhYyBwYXRocwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIEZpeCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb2YgYW4gdW5zZXQgY29kZWNfaWQgaW4gdGhlIHJlY2VudGx5CgkgIGFkZGVkIERpcmFjIHBhdGhzCgoyMDA4LTExLTIwIDEzOjU4OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBKdXN0IGtlZXAgZGlzYWJsaW5nIGVsZW1lbnRzIHRoYXQgaGFuZyB0aGUgc3RhdGVzIHRlc3QgdW50aWwgaXQgd29ya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBKdXN0IGtlZXAgZGlzYWJsaW5nIGVsZW1lbnRzIHRoYXQgaGFuZyB0aGUgc3RhdGVzIHRlc3QgdW50aWwgaXQKCSAgd29ya3MuCgoyMDA4LTExLTIwIDEzOjQ2OjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6IERvbid0IGZsdXNoIGRvd25zdHJlYW0gYWZ0ZXIgZXZlcnkgYnVmZmVyIC0gdGhhdCdzIG5vdCB3aGF0IHRoaXMgbGlicG5nIGNhbGxiYWNrIGlzIGZvciBhdCBhbGwhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgIERvbid0IGZsdXNoIGRvd25zdHJlYW0gYWZ0ZXIgZXZlcnkgYnVmZmVyIC0gdGhhdCdzIG5vdCB3aGF0CgkgIHRoaXMgbGlicG5nIGNhbGxiYWNrIGlzIGZvciBhdCBhbGwhCgoyMDA4LTExLTE3IDE0OjA0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBUdXJucyBvdXQgd2UgZG9uJ3QgYWx3YXlzIGdldCB0aGUgZnJhbWUgc2l6ZXMgaW4gYSBwcmVkZWZpbmVkIG9yZGVyIGZyb20gbG93ZXN0IHRvIGhpZ2hlc3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdF9hbmRfc2l6ZSksIChzb3J0X2J5X2ZyYW1lX3NpemUpLAoJICAoZ3N0X3Y0bDJzcmNfcHJvYmVfY2Fwc19mb3JfZm9ybWF0KToKCSAgVHVybnMgb3V0IHdlIGRvbid0IGFsd2F5cyBnZXQgdGhlIGZyYW1lIHNpemVzIGluIGEgcHJlZGVmaW5lZAoJICBvcmRlciBmcm9tIGxvd2VzdCB0byBoaWdoZXN0IHJlc29sdXRpb24sIHNvIGxldCdzIGp1c3Qgc29ydCB0aGUKCSAgbGlzdCBieSBmcmFtZSBzaXplIG9uY2Ugd2UndmUgcXVlcmllZCB0aGUgcG9zc2libGUgcmVzb2x1dGlvbnMKCSAgcmF0aGVyIHRoYW4gYXNzdW1lIGFueSBwYXJ0aWN1bGFyIG9yZGVyLiBGaXhlcyBwcm9iZWQgY2FwcyBmb3IKCSAgdGhlIGNhbWVyYSBpbiBteSBIUDIxMzMgbWluaSBub3RlYm9vayBhbmQgbWFrZXMgdjRsMnNyYyBkZWZhdWx0CgkgIHRvIGEgZGVjZW50IHNpemUuCgoyMDA4LTExLTE2IDE0OjQxOjMyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L21hdHJvc2thLzogTWFrZSBta3ZkZW11eCBhd2FyZSBvZiBFLUFDMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2Fwcyk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBNYWtlIG1rdmRlbXV4IGF3YXJlIG9mIEUtQUMzLgoKMjAwOC0xMS0xNCAxODo0MToyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBBZGQgYSBqcGVnIGRlcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBqcGVnZGVwYXkuYzogKGdzdF9ydHBfanBlZ19kZXBheV9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9qcGVnX2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9qcGVnX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9qcGVnX2RlcGF5X2ZpbmFsaXplKSwgKE1ha2VUYWJsZXMpLCAoTWFrZVF1YW50SGVhZGVyKSwKCSAgKE1ha2VIdWZmbWFuSGVhZGVyKSwgKE1ha2VEUklIZWFkZXIpLCAoTWFrZUhlYWRlcnMpLAoJICAoZ3N0X3J0cF9qcGVnX2RlcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9qcGVnX2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9qcGVnX2RlcGF5X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRwX2pwZWdfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwanBlZ2RlcGF5Lmg6CgkgIEFkZCBhIGpwZWcgZGVwYXlsb2FkZXIuCgkgICogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6CgkgIFNldCB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIG9uIHRoZSBwYXlsb2FkZXIgdG8gYmV0dGVyIGRlZmF1bHRzLgoKMjAwOC0xMS0xNCAxNTo0MjozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgc3lzL3Y0bDIvZ3N0djRsMi5jOiBHaXZlIGl0IGEgcHJpbWFyeSByYW5rIGZvciBhdXRvdmlkZW9zcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSAgR2l2ZSBpdCBhIHByaW1hcnkgcmFuayBmb3IgYXV0b3ZpZGVvc3JjLgoKMjAwOC0xMS0xNCAxMTo0MTo1NSArMDAwMCAgQmpvcm4gT3N0YnkgPGJqb3Jub3NAYXhpcy5jb20+CgoJICBnc3QvcnRwLzogQWRkIEpQRUcgcGF5bG9hZGVyLiBGaXhlcyAjNTYwNzU2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJqb3JuIE9zdGJ5IDxiam9ybm9zIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBqcGVncGF5LmM6IChnc3RfcnRwX2pwZWdfcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX2pwZWdfcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9qcGVnX3BheV9pbml0KSwKCSAgKGdzdF9ydHBfanBlZ19wYXlfc2V0Y2FwcyksIChnc3RfcnRwX2pwZWdfcGF5X2hlYWRlcl9zaXplKSwKCSAgKGdzdF9ydHBfanBlZ19wYXlfcmVhZF9xdWFudF90YWJsZSksCgkgIChnc3RfcnRwX2pwZWdfcGF5X3NjYW5fbWFya2VyKSwgKGdzdF9ydHBfanBlZ19wYXlfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfcnRwX2pwZWdfcGF5X3NldF9wcm9wZXJ0eSksIChnc3RfcnRwX2pwZWdfcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2pwZWdfcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGpwZWdwYXkuaDoKCSAgQWRkIEpQRUcgcGF5bG9hZGVyLiBGaXhlcyAjNTYwNzU2LgoKMjAwOC0xMS0xMyAxNzo0NTo1OSArMDAwMCAgRmFicmljaW8gR29kb3kgPHNrYXJsbG90QGdtYWlsLmNvbT4KCgkgIHN5cy86IEZpeCBzb21lIHNwZWxsaW5nIG1pc3Rha2VzLiBGaXhlcyAjNTU2ODAyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZhYnJpY2lvIEdvZG95IDxza2FybGxvdCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiAoZ3N0X29zc19zaW5rX29wZW4pOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IChnc3Rfb3NzX3NyY19vcGVuKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IChnc3RfdjRsMnNyY19nZXRfbW1hcCk6CgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZmlsbF9saXN0cyk6CgkgIEZpeCBzb21lIHNwZWxsaW5nIG1pc3Rha2VzLiBGaXhlcyAjNTU2ODAyLgoKMjAwOC0xMS0xMyAxNjoyNDo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2VxdWFsaXplci86IEFkZCBwcmVzZXRzIGZvciBlcXVhbGl6ZXIuIEZpeGVzICM1MjIxODMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvR3N0SWlyRXF1YWxpemVyMTBCYW5kcy5wcnM6CgkgICogZ3N0L2VxdWFsaXplci9Hc3RJaXJFcXVhbGl6ZXIzQmFuZHMucHJzOgoJICAqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIzYmFuZHMuYzoKCSAgQWRkIHByZXNldHMgZm9yIGVxdWFsaXplci4gRml4ZXMgIzUyMjE4My4KCjIwMDgtMTEtMTMgMTY6MTc6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC86IFJlbW92ZSBnb29nbGUgZXh0ZW5zaW9uIGFnYWluLCBpdCdzIG5vdCBuZWVkZWQgYW55bW9yZSBiZWNhdXNlIHdlIG5ldmVyIHNlbmQgbXVsdGlwbGUgdHJhbnNwb3J0cyBhbnltb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRzcC9nc3RydHNwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcGdvb2dsZS5jOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3Bnb29nbGUuaDoKCSAgUmVtb3ZlIGdvb2dsZSBleHRlbnNpb24gYWdhaW4sIGl0J3Mgbm90IG5lZWRlZCBhbnltb3JlIGJlY2F1c2Ugd2UgbmV2ZXIKCSAgc2VuZCBtdWx0aXBsZSB0cmFuc3BvcnRzIGFueW1vcmUuCgoyMDA4LTExLTEzIDE2OjExOjE2ICswMDAwICBFcmljIFpoYW5nIDxjaGFvLnpoYW5nQGFjY2Vzcy1jb21wYW55LmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogQWRkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBOQVQgdHJhdmVyc2FsIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBFcmljIFpoYW5nIDxjaGFvLnpoYW5nIGF0IGFjY2Vzcy1jb21wYW55IGRvdCBjb20+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BfbmF0X21ldGhvZF9nZXRfdHlwZSksCgkgIChnc3RfcnRzcHNyY19jbGFzc19pbml0KSwgKGdzdF9ydHNwc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRzcHNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X3J0c3BzcmNfY3JlYXRlX3N0cmVhbSksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fZnJlZSksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3VkcF9zaW5rcyksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19zZW5kX2R1bW15X3BhY2tldHMpLAoJICAoZ3N0X3J0c3BzcmNfY3JlYXRlX3RyYW5zcG9ydHNfc3RyaW5nKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBBZGQgcHJvcGVydHkgdG8gY29uZmlndXJlIE5BVCB0cmF2ZXJzYWwgbWV0aG9kLgoJICBJZ25vcmUgRU9TIGZyb20gdGhlIGludGVybmFsIHNpbmtzLgoJICBJbXBsZW1lbnQgc2VuZGluZyBkdW1teSBwYWNrZXRzIGFzIGEgKHNpbXBsZSkgbWV0aG9kIHRvIG9wZW4gdXAKCSAgc29tZSBmaXJld2FsbHMuCgkgIFNlbmQgUExBWSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgYWZ0ZXIgd2Ugc3RhcnRlZCB0aGUgdWRwIHNvdXJjZXMuCgkgIEZpeGVzICM1NTk1NDUuCgoyMDA4LTExLTEzIDE0OjA0OjQwICswMDAwICBZb3RhbSA8c2gueW90YW1AZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IEZsdXNoIHRoZSByZW1haW5pbmcgZnJhbWVzIG9uIEVPUy4gRml4ZXMgIzU2MDY0MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBZb3RhbSA8c2ggZG90IHlvdGFtIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IChnc3RfcnRwX21wNHZfcGF5X2V2ZW50KToKCSAgRmx1c2ggdGhlIHJlbWFpbmluZyBmcmFtZXMgb24gRU9TLiBGaXhlcyAjNTYwNjQxLgoKMjAwOC0xMS0xMiAxNjozNzowNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzogRml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgcHJpbnRmIGZvcm1hdHRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOiAoZ3N0X3J0cF9nNzI5X3BheV9oYW5kbGVfYnVmZmVyKToKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgcHJpbnRmIGZvcm1hdHRpbmcuCgoyMDA4LTExLTEyIDExOjU1OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4Lio6IFF1ZXVlIHVwIG5ldyBzZWdtZW50IGV2ZW50cyBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlbSBmcm9tIHRoZSBzZWVraW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5oIChzdHJ1Y3QgX0dzdFFURGVtdXgpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYyAoZ3N0X3F0ZGVtdXhfZG9fc2Vlayk6IFF1ZXVlIHVwIG5ldwoJICBzZWdtZW50IGV2ZW50cyBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlbSBmcm9tIHRoZSBzZWVraW5nIHRocmVhZC4KCSAgRml4ZXMgIzU1OTI4OC4KCSAgKGdzdF9xdGRlbXV4X3B1c2hfcGVuZGluZ19uZXdzZWdtZW50KTogTmV3IGhlbHBlciwgc2VuZHMgb3V0CgkgIHF1ZXVlZCBuZXdzZWdtZW50IGV2ZW50cy4KCSAgKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUpOiBWb2lsw6AsIGNhbGwgaXQgaGVyZS4gT25seSBuZWVkIHRvCgkgIGNhbGwgaXQgaGVyZSwgYXMgd2Ugb25seSBzZWVrIHdoZW4gbG9vcGluZywgYW5kIG9ubHkgcHVzaCBpbiB0aGUKCSAgbW92aWUgc3RhdGUuCgoyMDA4LTExLTExIDE5OjUyOjA1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9xdGRlbXV4LzogQWRkIGNvdmVyIGFuZCBhbHRlcm5hdGl2ZSBjb3B5cmlnaHQgdGFnLCBhbmQgZW5oYW5jZSBzb21lIGV4aXN0aW5nIG9uZXMgYnkgbWFya2luZyB0aGVtIGFzIGNvbnRhaW5lciBhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3RhZ19hZGRfdG1wbyksCgkgIChxdGRlbXV4X3RhZ19hZGRfY292ciksIChxdGRlbXV4X3BhcnNlX3VkdGEpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF90eXBlcy5jOgoJICBBZGQgY292ZXIgYW5kIGFsdGVybmF0aXZlIGNvcHlyaWdodCB0YWcsIGFuZCBlbmhhbmNlIHNvbWUgZXhpc3RpbmcKCSAgb25lcyBieSBtYXJraW5nIHRoZW0gYXMgY29udGFpbmVyIGF0b21zLgoKMjAwOC0xMS0xMSAxNzozMzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOiBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzogKGdzdF9ydHBfZzcyOV9wYXlfc2V0X2NhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoKMjAwOC0xMS0xMSAxNzoyOTowMyArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS4qOiBSZXBsYWNlIEc3MjkgcGF5bG9hZGVyIHdpdGggYW4gaW1wcm92ZWQgdmVyc2lvbi4gRml4ZXMgIzUzMjQwOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjlwYXkuYzogKGdzdF9ydHBfZzcyOV9wYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfZzcyOV9wYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2c3MjlfcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9nNzI5X3BheV9zZXRfY2FwcyksIChnc3RfcnRwX2c3MjlfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5oOgoJICBSZXBsYWNlIEc3MjkgcGF5bG9hZGVyIHdpdGggYW4gaW1wcm92ZWQgdmVyc2lvbi4gRml4ZXMgIzUzMjQwOS4KCjIwMDgtMTEtMTEgMTY6MDA6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IE9ubHkgc2VuZCBvbmUgdHJhbnNwb3J0IGF0IGEgdGltZSBmb3IgaW1wcm92ZWQgY29tcGF0aWJpbGl0eSB3aXRoIHNvbWUgYnJva2VuIHNlcnZlcnMuIFNlZSAjNTMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY3JlYXRlX3RyYW5zcG9ydHNfc3RyaW5nKSwKCSAgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE9ubHkgc2VuZCBvbmUgdHJhbnNwb3J0IGF0IGEgdGltZSBmb3IgaW1wcm92ZWQgY29tcGF0aWJpbGl0eSB3aXRoIHNvbWUKCSAgYnJva2VuIHNlcnZlcnMuIFNlZSAjNTM3ODMyLgoKMjAwOC0xMS0xMSAxNToxNjozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogT25seSBwYXVzZS9wbGF5IGluIHRoZSBzZWVrIGhhbmRsZXIgd2hlbiB0aGUgc291cmNlIHdhcyBwbGF5aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19kb19zZWVrKSwKCSAgKGdzdF9ydHNwc3JjX3BlcmZvcm1fc2Vlayk6CgkgIE9ubHkgcGF1c2UvcGxheSBpbiB0aGUgc2VlayBoYW5kbGVyIHdoZW4gdGhlIHNvdXJjZSB3YXMgcGxheWluZy4KCSAgRml4ZXMgIzUyOTM3OS4KCjIwMDgtMTEtMTEgMTI6MTg6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogRml4IG11eGluZyBvZiBEaXJhYyBzdHJlYW1zIGlmIHRoZSBpbnB1dCBhbHJlYWR5IGhhcyB0aGUgZm9ybWF0IHdlIG5lZWQsIGkuZS4gaXMgdGhlIG91dC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X2hhbmRsZV9kaXJhY19wYWNrZXQpOgoJICBGaXggbXV4aW5nIG9mIERpcmFjIHN0cmVhbXMgaWYgdGhlIGlucHV0IGFscmVhZHkgaGFzIHRoZSBmb3JtYXQKCSAgd2UgbmVlZCwgaS5lLiBpcyB0aGUgb3V0cHV0IG9mIG1hdHJvc2thZGVtdXguCgoyMDA4LTExLTExIDEwOjA2OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBEb24ndCBzZWdmYXVsdCBvbiBzdHJpbmcgdHlwZWQgdGFncyBiZWluZyBOVUxMLiBGaXhlcyAjNTYwMTU1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBEb24ndCBzZWdmYXVsdCBvbiBzdHJpbmcgdHlwZWQgdGFncyBiZWluZyBOVUxMLiBGaXhlcyAjNTYwMTU1LgoKMjAwOC0xMS0xMCAxNjo0NDo0NSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEZpeCBtYXBwaW5nIEFBQyBwcm9maWxlIHRvIE1hdHJvc2thIGNvZGVjIGlkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChhYWNfY29kZWNfZGF0YV90b19jb2RlY19pZCksCgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKToKCSAgRml4IG1hcHBpbmcgQUFDIHByb2ZpbGUgdG8gTWF0cm9za2EgY29kZWMgaWQuCgoyMDA4LTExLTEwIDE2OjM2OjA5ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogUmVmYWN0b3Igc29tZSByYXcgYXVkaW8gY2FwcyBidWlsZGluZywgYW5kIGhhbmRsZSA+MTYtYml0IGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyYWspLAoJICAocXRkZW11eF92aWRlb19jYXBzKSwgKHF0ZGVtdXhfYXVkaW9fY2Fwcyk6CgkgIFJlZmFjdG9yIHNvbWUgcmF3IGF1ZGlvIGNhcHMgYnVpbGRpbmcsIGFuZCBoYW5kbGUgPjE2LWJpdCBjYXNlcy4KCSAgRml4L3JlcGxhY2UgYnVpbGRpbmcgY2FwcyBmcm9tIGEgc3RyaW5nIGRlc2NyaXB0aW9uLgoKMjAwOC0xMS0xMCAxMzo1OToyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBNYWtlIGF1dGhvciBuYW1lIGNvbnNpc3RlbnQgd2l0aCBvdGhlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNiYW5kLmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2xpbWl0LmM6CgkgICogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzoKCSAgTWFrZSBhdXRob3IgbmFtZSBjb25zaXN0ZW50IHdpdGggb3RoZXJzLgoKMjAwOC0xMS0xMCAxMjoxMzoyMSArMDAwMCAgRXJpYyBaaGFuZyA8Y2hhby56aGFuZ0BhY2Nlc3MtY29tcGFueS5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IFBhdXNlIHRoZSBSVFNQIHN0cmVhbSBiZWZvcmUgZG9pbmcgYSBuZXcgcGxheSByZXF1ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEVyaWMgWmhhbmcgPGNoYW8uemhhbmcgYXQgYWNjZXNzLWNvbXBhbnkgZG90IGNvbT4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHBfc2luayk6CgkgIFBhdXNlIHRoZSBSVFNQIHN0cmVhbSBiZWZvcmUgZG9pbmcgYSBuZXcgcGxheSByZXF1ZXN0LgoJICBNYWtlIHN1cmUgdGhhdCBhZGRpbmcgdGhlIHVkcHNpbmtzIGRvZXMgbm90IGNhdXNlIHRoZSBydHNwc3JjIHRvIGJlY29tZQoJICBhIHNpbmsuIEZpeGVzICM1NTk1NDcuCgoyMDA4LTExLTA1IDE0OjQyOjM1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvOiBJbXBsZW1lbnQgRGlyYWMgbXV4aW5nIGludG8gTWF0cm9za2EgY29tZm9ybWluZyB0byB0aGUgc3BlYywgaS5lLiBwdXQgYWxsIERpcmFjIHBhY2thZ2VzIHVwIHRvIGEgcGljdHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9wYWRfZnJlZSksCgkgIChnc3RfbWF0cm9za2FfbXV4X2hhbmRsZV9kaXJhY19wYWNrZXQpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKToKCSAgSW1wbGVtZW50IERpcmFjIG11eGluZyBpbnRvIE1hdHJvc2thIGNvbWZvcm1pbmcgdG8gdGhlIHNwZWMsIGkuZS4KCSAgcHV0IGFsbCBEaXJhYyBwYWNrYWdlcyB1cCB0byBhIHBpY3R1cmUgaW50byBhIE1hdHJvc2thIGJsb2NrLgoJICBUT0RPOiBJbXBsZW1lbnQgd3JpdGluZyBvZiB0aGUgUmVmZXJlbmNlQmxvY2sgTWF0cm9za2EgZWxlbWVudHMsCgkgIGN1cnJlbnRseSB0aGUgRGlyYWMgbXV4aW5nIGlzIG9ubHkgMTAwJSBjb3JyZWN0IGlmIE1hdHJvc2thIHZlcnNpb24gMgoJICBpcyBzZWxlY3RlZCBmb3IgbXV4aW5nLgoKMjAwOC0xMS0wNCAxMjozMjo0OCArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSAgT3B0aW9uYWxseSB1c2UgbGlidjRsIHRvIGFjY2VzcyB2NGwyIGRldmljZXMuIEZpeGVzIGJ1ZyAjNTQ1MDMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJhc3RpZW4gTm9jZXJhIDxoYWRlc3MgYXQgaGFkZXNzIGRvdCBuZXQ+LAoJICBIYW5zIGRlIEdvZWRlIDxqd3JkZWdvZWRlIGF0IGZlZG9yYXByb2plY3QgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogc3lzL3Y0bDIvTWFrZWZpbGUuYW06CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfZ2V0X3JlYWQpOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogKGdzdF92NGwyX2dldF9jYXBhYmlsaXRpZXMpLAoJICAoZ3N0X3Y0bDJfZmlsbF9saXN0cyksIChnc3RfdjRsMl9vcGVuKSwgKGdzdF92NGwyX2Nsb3NlKSwKCSAgKGdzdF92NGwyX2dldF9ub3JtKSwgKGdzdF92NGwyX3NldF9ub3JtKSwgKGdzdF92NGwyX2dldF9mcmVxdWVuY3kpLAoJICAoZ3N0X3Y0bDJfc2V0X2ZyZXF1ZW5jeSksIChnc3RfdjRsMl9zaWduYWxfc3RyZW5ndGgpLAoJICAoZ3N0X3Y0bDJfZ2V0X2F0dHJpYnV0ZSksIChnc3RfdjRsMl9zZXRfYXR0cmlidXRlKSwKCSAgKGdzdF92NGwyX2dldF9pbnB1dCksIChnc3RfdjRsMl9zZXRfaW5wdXQpOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuaDoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMl9idWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3Y0bDJfYnVmZmVyX25ldyksIChnc3RfdjRsMl9idWZmZXJfcG9vbF9maW5hbGl6ZSksCgkgIChnc3RfdjRsMl9idWZmZXJfcG9vbF9uZXcpLCAoZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfYWN0aXZhdGUpLAoJICAoZ3N0X3Y0bDJzcmNfZmlsbF9mb3JtYXRfbGlzdCksCgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXRfYW5kX3NpemUpLAoJICAoZ3N0X3Y0bDJzcmNfcHJvYmVfY2Fwc19mb3JfZm9ybWF0KSwgKGdzdF92NGwyc3JjX2dyYWJfZnJhbWUpLAoJICAoZ3N0X3Y0bDJzcmNfc2V0X2NhcHR1cmUpLCAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9pbml0KSwKCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfc3RhcnQpLCAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9zdG9wKSwKCSAgKGdzdF92NGwyc3JjX2dldF9uZWFyZXN0X3NpemUpOgoJICBPcHRpb25hbGx5IHVzZSBsaWJ2NGwgdG8gYWNjZXNzIHY0bDIgZGV2aWNlcy4gRml4ZXMgYnVnICM1NDUwMzMuCgoyMDA4LTExLTA0IDEyOjI4OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciAtZ29vZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2FhbGliL01ha2VmaWxlLmFtOgoJICAqIGV4dC9hbm5vZGV4L01ha2VmaWxlLmFtOgoJICAqIGV4dC9jYWlyby9NYWtlZmlsZS5hbToKCSAgKiBleHQvZHYvTWFrZWZpbGUuYW06CgkgICogZXh0L2VzZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZmxhYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvZ2NvbmYvTWFrZWZpbGUuYW06CgkgICogZXh0L2dka19waXhidWYvTWFrZWZpbGUuYW06CgkgICogZXh0L2hhbC9NYWtlZmlsZS5hbToKCSAgKiBleHQvanBlZy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9saWJjYWNhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9saWJtbmcvTWFrZWZpbGUuYW06CgkgICogZXh0L2xpYnBuZy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbWlrbW9kL01ha2VmaWxlLmFtOgoJICAqIGV4dC9wdWxzZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvcmF3MTM5NC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc2hvdXQyL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zb3VwL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zcGVleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFnbGliL01ha2VmaWxlLmFtOgoJICAqIGV4dC93YXZwYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hbHBoYS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXBldGFnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdXBhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdXRvZGV0ZWN0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdmkvTWFrZWZpbGUuYW06CgkgICogZ3N0L2N1dHRlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VmZmVjdHYvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VxdWFsaXplci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmx4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tMmsxL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pY3lkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaWQzZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ludGVybGVhdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L2xhdy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbGV2ZWwvTWFrZWZpbGUuYW06CgkgICogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tZWRpYW4vTWFrZWZpbGUuYW06CgkgICogZ3N0L21vbm9zY29wZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXVsdGlmaWxlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tdWx0aXBhcnQvTWFrZWZpbGUuYW06CgkgICogZ3N0L29sZGNvcmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlcGxheWdhaW4vTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc21wdGUvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWN0cnVtL01ha2VmaWxlLmFtOgoJICAqIGdzdC91ZHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvYm94L01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2Nyb3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC93YXZlbmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3dhdnBhcnNlL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kaXJlY3RkcmF3L01ha2VmaWxlLmFtOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9NYWtlZmlsZS5hbToKCSAgKiBzeXMvb3NzL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSAgKiBzeXMvb3N4dmlkZW8vTWFrZWZpbGUuYW06CgkgICogc3lzL3N1bmF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJICAqIHN5cy93YXZlZm9ybS9NYWtlZmlsZS5hbToKCSAgKiBzeXMveGltYWdlL01ha2VmaWxlLmFtOgoJICBEb24ndCBpbnN0YWxsIHN0YXRpYyBsaWJzIGZvciBwbHVnaW5zLiBGaXhlcyAjNTUwODUxIGZvciAtZ29vZC4KCjIwMDgtMTAtMzEgMTg6MTc6NTAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9mbGFjL01ha2VmaWxlLmFtOiBJbmNsdWRlICQoRkxBQ19DRkxBR1MpIGluIENGTEFHUyB0byBtYWtlIHN1cmUgdG8gZmluZCB0aGUgRkxBQyBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9NYWtlZmlsZS5hbToKCSAgSW5jbHVkZSAkKEZMQUNfQ0ZMQUdTKSBpbiBDRkxBR1MgdG8gbWFrZSBzdXJlIHRvIGZpbmQgdGhlIEZMQUMgaGVhZGVycy4KCSAgVGhpcyBmaXhlcyBjb21waWxhdGlvbiBpZiBGTEFDIGlzIGluc3RhbGxlZCBpbiBhbiB1bmNvbW1vbiBsb2NhdGlvbgoJICB0aGF0IGlzIG5vdCBhbHJlYWR5IGhhbmRsZWQgYnkgb3RoZXIgQ0ZMQUdTLiBGaXhlcyBidWcgIzU1ODcxMS4KCjIwMDgtMTAtMzEgMTA6MDg6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IEd1YXJkIG1vcmUgdW5jb21tb24gZm9ybWF0cyB3aXRoIGlmZGVmcyBzbyB0aGF0IHdlIGNhbiBjb21waWxlIG9uIG9sZGVyIHZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19mb3JtYXRfZ2V0X3JhbmspOgoJICBHdWFyZCBtb3JlIHVuY29tbW9uIGZvcm1hdHMgd2l0aCBpZmRlZnMgc28gdGhhdCB3ZSBjYW4gY29tcGlsZSBvbiBvbGRlcgoJICB2ZXJzaW9ucy4KCjIwMDgtMTAtMzEgMTA6MDA6MTggKzAwMDAgIE5pY2sgSGFkZGFkIDxuaWNrQGhhZGRhZHMubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBJbnZlcnQgb3RoZXIgdW5jb21wcmVzc2VkIFJHQiBmb3JtYXRzLiBGaXhlcyAjNTU4NTU0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE5pY2sgSGFkZGFkIDxuaWNrIGF0IGhhZGRhZHMgZG90IG5ldD4KCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2lzX3VuY29tcHJlc3NlZCksCgkgIChnc3RfYXZpX2RlbXV4X2ludmVydCksIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKToKCSAgSW52ZXJ0IG90aGVyIHVuY29tcHJlc3NlZCBSR0IgZm9ybWF0cy4gRml4ZXMgIzU1ODU1NC4KCjIwMDgtMTAtMzAgMTU6MDg6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLio6IEFkZCBzdXBwb3J0IGZvciBmbG9hdC9kb3VibGUgYXMgaW5wdXQgYW5kIHJlbW92ZSB0aGUgKG5vd2FkYXlzKSB1c2VsZXNzIHBhcnNpbmcgb2YgdGhlIGRlcHRoIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiAoZ3N0X3dhdmVuY19jcmVhdGVfaGVhZGVyX2J1ZiksCgkgIChnc3Rfd2F2ZW5jX3Npbmtfc2V0Y2FwcyksIChnc3Rfd2F2ZW5jX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuaDoKCSAgQWRkIHN1cHBvcnQgZm9yIGZsb2F0L2RvdWJsZSBhcyBpbnB1dCBhbmQgcmVtb3ZlIHRoZSAobm93YWRheXMpCgkgIHVzZWxlc3MgcGFyc2luZyBvZiB0aGUgZGVwdGggYXMgd2UgcmVxdWlyZSB3aWR0aD09ZGVwdGguCgoyMDA4LTEwLTMwIDEwOjMxOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IE5hcnJvdyBkb3duIHRoZSBjYXBzIG9mIHRoZSBtcGVnIGF1ZGlvIHBheS9kZXBheWxvYWRlcnMgdG8gb25seSBhY2NlcHQgbXBlZyB2ZXJzaW9uIDEuIEZpeGVzICM1NTg0MjcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzogKGdzdF9ydHBfbXBhX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkgIE5hcnJvdyBkb3duIHRoZSBjYXBzIG9mIHRoZSBtcGVnIGF1ZGlvIHBheS9kZXBheWxvYWRlcnMgdG8gb25seSBhY2NlcHQKCSAgbXBlZyB2ZXJzaW9uIDEuIEZpeGVzICM1NTg0MjcuCgoyMDA4LTEwLTI5IDE4OjI4OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzogT25seSBwdXQgYW4gaW50ZWdyYWwgYW1vdW50IG9mIHNhbXBsZXMgaW4gdGhlIFJUUCBwYWNrZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6IChnc3RfcnRwX0wxNl9wYXlfZmx1c2gpLAoJICAoZ3N0X3J0cF9MMTZfcGF5X2dldGNhcHMpOgoJICBPbmx5IHB1dCBhbiBpbnRlZ3JhbCBhbW91bnQgb2Ygc2FtcGxlcyBpbiB0aGUgUlRQIHBhY2tldC4KCSAgRml4ZXMgIzU1NjY0MS4KCjIwMDgtMTAtMjggMTc6NDI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGNoYW5uZWxzLio6IEFkZCBtZXRob2QgdG8gZ2V0IHBvc3NpYmxlIGNoYW5uZWwgcG9zaXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGNoYW5uZWxzLmM6IChnc3RfcnRwX2NoYW5uZWxzX2dldF9ieV9pbmRleCk6CgkgICogZ3N0L3J0cC9nc3RydHBjaGFubmVscy5oOgoJICBBZGQgbWV0aG9kIHRvIGdldCBwb3NzaWJsZSBjaGFubmVsIHBvc2l0aW9ucy4KCjIwMDgtMTAtMjggMTc6Mzk6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL01ha2VmaWxlLmFtOiBBbHNvIGNvbW1pdCB1cGRhdGVkIG1ha2VmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgIEFsc28gY29tbWl0IHVwZGF0ZWQgbWFrZWZpbGUKCjIwMDgtMTAtMjggMTQ6NTY6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6IERvbid0IGFsbG93IHdpZHRoPTMyLGRlcHRoPTI0IGFzIGlucHV0LiBXQVYgcmVxdWlyZXMgdGhhdCB0aGUgd2lkdGggaXMgdGhlIG5leHQgaW50ZWdlciBtdWx0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiAoZ3N0X3dhdmVuY19jaGFpbik6CgkgIERvbid0IGFsbG93IHdpZHRoPTMyLGRlcHRoPTI0IGFzIGlucHV0LiBXQVYgcmVxdWlyZXMgdGhhdCB0aGUgd2lkdGgKCSAgaXMgdGhlIG5leHQgaW50ZWdlciBtdWx0aXBseSBvZiA4IGZyb20gdGhlIGRlcHRoLgoKMjAwOC0xMC0yOCAxMDowMTo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBBZGQgbWFwcGluZ3MgZm9yIG11bHRpY2hhbm5lbCBzdXBwb3J0LiBEb2VzIG5vdCBjb21wbGV0ZWx5IGp1c3Qgd29yayBiZWNhdXNlIHRoZSBnZXRjYXBzIGZ1bmN0aW9uIGRvZXMgbm90IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6IChnc3RfcnRwX0wxNl9kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOiAoZ3N0X3J0cF9MMTZfcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9MMTZfcGF5X2dldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwY2hhbm5lbHMuYzogKGNoZWNrX2NoYW5uZWxzKSwKCSAgKGdzdF9ydHBfY2hhbm5lbHNfZ2V0X2J5X3BvcyksIChnc3RfcnRwX2NoYW5uZWxzX2dldF9ieV9vcmRlciksCgkgIChnc3RfcnRwX2NoYW5uZWxzX2NyZWF0ZV9kZWZhdWx0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGNoYW5uZWxzLmg6CgkgIEFkZCBtYXBwaW5ncyBmb3IgbXVsdGljaGFubmVsIHN1cHBvcnQuIERvZXMgbm90IGNvbXBsZXRlbHkganVzdCB3b3JrCgkgIGJlY2F1c2UgdGhlIGdldGNhcHMgZnVuY3Rpb24gZG9lcyBub3QgeWV0IHJldHVybiB0aGUgYWxsb3dlZCBjaGFubmVsCgkgIG1hcHBpbmdzLiBTZWUgIzU1NjY0MS4KCjIwMDgtMTAtMjggMDY6NTA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nb29tLzogQWRkIGxpY2Vuc2UgaGVhZGVycyBpbiBhbGwgc291cmNlIGZpbGVzLiBSZW1vdmUgZmlsdGVyLmMgZnJvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ29vbS9SRUFETUU6CgkgICogZ3N0L2dvb20vY29uZmlnX3BhcmFtLmM6CgkgICogZ3N0L2dvb20vY29udm9sdmVfZnguYzoKCSAgKiBnc3QvZ29vbS9kcmF3bWV0aG9kcy5jOgoJICAqIGdzdC9nb29tL2RyYXdtZXRob2RzLmg6CgkgICogZ3N0L2dvb20vZmlsdGVycy5jOgoJICAqIGdzdC9nb29tL2ZpbHRlcnNfbW14LnM6CgkgICogZ3N0L2dvb20vZmx5aW5nX3N0YXJzX2Z4LmM6CgkgICogZ3N0L2dvb20vZ29vbS5oOgoJICAqIGdzdC9nb29tL2dvb21fY29uZmlnLmg6CgkgICogZ3N0L2dvb20vZ29vbV9jb25maWdfcGFyYW0uaDoKCSAgKiBnc3QvZ29vbS9nb29tX2NvcmUuYzoKCSAgKiBnc3QvZ29vbS9nb29tX2ZpbHRlcnMuaDoKCSAgKiBnc3QvZ29vbS9nb29tX2Z4Lmg6CgkgICogZ3N0L2dvb20vZ29vbV9ncmFwaGljLmg6CgkgICogZ3N0L2dvb20vZ29vbV9wbHVnaW5faW5mby5oOgoJICAqIGdzdC9nb29tL2dvb21fdG9vbHMuYzoKCSAgKiBnc3QvZ29vbS9nb29tX3Rvb2xzLmg6CgkgICogZ3N0L2dvb20vZ29vbV90eXBlZGVmcy5oOgoJICAqIGdzdC9nb29tL2dvb21fdmlzdWFsX2Z4Lmg6CgkgICogZ3N0L2dvb20vZ3JhcGhpYy5jOgoJICAqIGdzdC9nb29tL2lmcy5jOgoJICAqIGdzdC9nb29tL2lmcy5oOgoJICAqIGdzdC9nb29tL2xpbmVzLmM6CgkgICogZ3N0L2dvb20vbGluZXMuaDoKCSAgKiBnc3QvZ29vbS9tYXRodG9vbHMuYzoKCSAgKiBnc3QvZ29vbS9tYXRodG9vbHMuaDoKCSAgKiBnc3QvZ29vbS9tbXguYzoKCSAgKiBnc3QvZ29vbS9tb3RpZl9nb29tMS5oOgoJICAqIGdzdC9nb29tL21vdGlmX2dvb20yLmg6CgkgICogZ3N0L2dvb20vcGx1Z2luX2luZm8uYzoKCSAgKiBnc3QvZ29vbS9wcGNfZHJhd2luZ3MuaDoKCSAgKiBnc3QvZ29vbS9wcGNfem9vbV91bHRpbWF0ZS5oOgoJICAqIGdzdC9nb29tL3NvdW5kX3Rlc3Rlci5jOgoJICAqIGdzdC9nb29tL3NvdW5kX3Rlc3Rlci5oOgoJICAqIGdzdC9nb29tL3N1cmYzZC5jOgoJICAqIGdzdC9nb29tL3N1cmYzZC5oOgoJICAqIGdzdC9nb29tL3RlbnRhY2xlM2QuYzoKCSAgKiBnc3QvZ29vbS90ZW50YWNsZTNkLmg6CgkgICogZ3N0L2dvb20vdjNkLmM6CgkgICogZ3N0L2dvb20vdjNkLmg6CgkgICogZ3N0L2dvb20veG1teC5jOgoJICBBZGQgbGljZW5zZSBoZWFkZXJzIGluIGFsbCBzb3VyY2UgZmlsZXMuIFJlbW92ZSBmaWx0ZXIuYyBmcm9tCgkgIEVYVFJBX0RJU1QsIGFzIGl0cyBpbiBTT1VSQ0VTIGFscmVhZHkuIE1lbnRpb24gdGhlIGZpbGVzIGluIHRoZSBSRURNRQoJICB3aGljaCBhcmUgbm90IHVzZWQgcmlnaHQgbm93LiBGaXhlcyAjNTU3NzA5LgoKMjAwOC0xMC0yNyAxMToyODozMCArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6IEltcGxlbWVudCBnZXRjYXBzIGluIHJ0cEwxNnBheS4gRml4ZXMgIzU1NjQ4NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOiAoZ3N0X3J0cF9MMTZfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9MMTZfcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9MMTZfcGF5X2dldGNhcHMpOgoJICBJbXBsZW1lbnQgZ2V0Y2FwcyBpbiBydHBMMTZwYXkuIEZpeGVzICM1NTY0ODQuCgoyMDA4LTEwLTI3IDExOjAzOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOiBDaGVjayBpZiBjbG9jay1yYXRlIGFuZCBjaGFubmVscyBhcmUgdmFsaWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzogKGdzdF9ydHBfTDE2X2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9MMTZfZGVwYXlfcHJvY2Vzcyk6CgkgIENoZWNrIGlmIGNsb2NrLXJhdGUgYW5kIGNoYW5uZWxzIGFyZSB2YWxpZC4KCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0Y2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICBVc2UgdGhlIG1hcmtlciBiaXQgdG8gc2V0IHRoZSBESVNDT05UIGZsYWcgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOiAoZ3N0X3J0cF9MMTZfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6IChnc3RfcnRwX2FjM19kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfYWMzX2RlcGF5X3Byb2Nlc3MpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfY2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogKGdzdF9ydHBfYW1yX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9hbXJfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5oOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoJICBObyBuZWVkIHRvIHZhbGlkYXRlIHRoZSBidWZmZXIsIHRoZSBiYXNlIGNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgIE5vIG5lZWQgdG8gc2V0IG91dHB1dCBjYXBzIG9uIHRoZSBidWZmZXJzLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yCgkgIHVzLgoJICBUaGUgc3ViY2xhc3Mgd2lsbCBtYWtlIHN1cmUgd2UgYXJlIG5lZ290aWF0ZWQuCgkgICogZ3N0L3J0cC9nc3RydHBkdmRlcGF5LmM6IChnc3RfcnRwX2R2X2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9kdl9kZXBheV9wcm9jZXNzKSwgKGdzdF9ydHBfZHZfZGVwYXlfcmVzZXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZHZkZXBheS5oOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBUaGUgc3ViY2xhc3Mgd2lsbCBtYWtlIHN1cmUgd2UgYXJlIG5lZ290aWF0ZWQuCgkgICogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuYzogKGdzdF9ydHBfZzcyNl9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfZzcyNl9kZXBheV9wcm9jZXNzKToKCSAgQ2xlYW4gdXAgY2FwcyBuZWdvdGlhdGlvbi4KCSAgVXNlIHRoZSBtYXJrZXIgYml0IHRvIHNldCB0aGUgRElTQ09OVCBmbGFnIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgkgICogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuYzogKGdzdF9ydHBfZzcyOV9kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfZzcyOV9kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfZzcyOV9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5oOgoJICBUaGUgc3ViY2xhc3Mgd2lsbCBtYWtlIHN1cmUgd2UgYXJlIG5lZ290aWF0ZWQuCgkgIFVzZSB0aGUgbWFya2VyIGJpdCB0byBzZXQgdGhlIERJU0NPTlQgZmxhZyBvbiBvdXRnb2luZyBidWZmZXJzLgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzogKGdzdF9ydHBfZ3NtX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9nc21fZGVwYXlfcHJvY2Vzcyk6CgkgIENsZWFuIHVwIGNhcHMgbmVnb3RpYXRpb24uCgkgIFVzZSB0aGUgbWFya2VyIGJpdCB0byBzZXQgdGhlIERJU0NPTlQgZmxhZyBvbiBvdXRnb2luZyBidWZmZXJzLgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6IChnc3RfcnRwX2dzbV9wYXlfc2V0Y2Fwcyk6CgkgIENsZWFuIHVwIGNhcHMgbmVnb3RpYXRpb24uCgkgIERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHNldF9vdXRjYXBzLgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6IChnc3RfcnRwX2gyNjNfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2gyNjNfZGVwYXlfcHJvY2Vzcyk6CgkgIENsZWFuIHVwIGNhcHMgbmVnb3RpYXRpb24uCgkgIE5vIG5lZWQgdG8gdmFsaWRhdGUgdGhlIGJ1ZmZlciwgdGhlIGJhc2UgY2xhc3MgZG9lcyB0aGF0IGZvciB1cy4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzogKGdzdF9ydHBfaDI2M19wYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2gyNjNfcGF5X2ZsdXNoKSwgKGdzdF9ydHBfaDI2M19wYXlfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGF5Lmg6CgkgIERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHNldF9vdXRjYXBzLgoJICBEbyBzb21lIG1vcmUgdGltZXN0YW1wcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzogKGdzdF9ydHBfaDI2M3BfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2gyNjNwX2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoJICBObyBuZWVkIHRvIHZhbGlkYXRlIHRoZSBidWZmZXIsIHRoZSBiYXNlIGNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOiAoZ3N0X3J0cF9oMjYzcF9wYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2gyNjNwX3BheV9zZXRjYXBzKSwgKGdzdF9ydHBfaDI2M3BfcGF5X2ZsdXNoKSwKCSAgKGdzdF9ydHBfaDI2M3BfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0X291dGNhcHMuCgkgIERvIHNvbWUgbW9yZSB0aW1lc3RhbXBzLgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfcHJvY2Vzcyk6CgkgIENsZWFuIHVwIGNhcHMgbmVnb3RpYXRpb24uCgkgIERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHNldGNhcHMuCgkgIEZpeCBwb3NzaWJsZSBjYXBzIGxlYWsuCgkgIE5vIG5lZWQgdG8gdmFsaWRhdGUgdGhlIGJ1ZmZlciwgdGhlIGJhc2UgY2xhc3MgZG9lcyB0aGF0IGZvciB1cy4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzogKGdzdF9ydHBfaDI2NF9wYXlfc2V0Y2Fwcyk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOiAoZ3N0X3J0cF9pbGJjX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9pbGJjX2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBVc2UgdGhlIG1hcmtlciBiaXQgdG8gc2V0IHRoZSBESVNDT05UIGZsYWcgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzogKGdzdF9ydHBpbGJjcGF5X3Npbmtfc2V0Y2Fwcyk6CgkgIENsZWFuIHVwIGNhcHMgbmVnb3RpYXRpb24uCgkgICogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuYzogKGdzdF9ydHBfbXAxc19kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXAxc19kZXBheV9wcm9jZXNzKToKCSAgQ2xlYW4gdXAgY2FwcyBuZWdvdGlhdGlvbi4KCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0Y2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICBObyBuZWVkIHRvIHNldCBjYXBzIG9uIGJ1ZmZlcnMsIHN1YmNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzogKGdzdF9ydHBfbXAydF9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXAydF9kZXBheV9wcm9jZXNzKToKCSAgQ2xlYW4gdXAgY2FwcyBuZWdvdGlhdGlvbi4KCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0Y2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICBObyBuZWVkIHRvIHNldCBjYXBzIG9uIGJ1ZmZlcnMsIHN1YmNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgICogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzogKGdzdF9ydHBfbXA0YV9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXA0YV9kZXBheV9wcm9jZXNzKToKCSAgQ2xlYW4gdXAgY2FwcyBuZWdvdGlhdGlvbi4KCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0Y2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0YXBheS5jOiAoZ3N0X3J0cF9tcDRhX3BheV9uZXdfY2FwcyksCgkgIChnc3RfcnRwX21wNGFfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOiAoZ3N0X3J0cF9tcDRnX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9tcDRnX2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoJICBObyBuZWVkIHRvIHZhbGlkYXRlIHRoZSBidWZmZXIsIHRoZSBiYXNlIGNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgIE5vIG5lZWQgdG8gc2V0IGNhcHMgb24gYnVmZmVycywgc3ViY2xhc3MgZG9lcyB0aGF0IGZvciB1cy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzogKGdzdF9ydHBfbXA0Z19wYXlfZmluYWxpemUpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9uZXdfY2FwcyksIChnc3RfcnRwX21wNGdfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOiAoZ3N0X3J0cF9tcDR2X2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9tcDR2X2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoJICBObyBuZWVkIHRvIHZhbGlkYXRlIHRoZSBidWZmZXIsIHRoZSBiYXNlIGNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgIE5vIG5lZWQgdG8gc2V0IGNhcHMgb24gYnVmZmVycywgc3ViY2xhc3MgZG9lcyB0aGF0IGZvciB1cy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzogKGdzdF9ydHBfbXA0dl9wYXlfbmV3X2NhcHMpLAoJICAoZ3N0X3J0cF9tcDR2X3BheV9zZXRjYXBzKToKCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0X291dGNhcHMuCgkgICogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOiAoZ3N0X3J0cF9tcGFfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX21wYV9kZXBheV9wcm9jZXNzKToKCSAgQ2xlYW4gdXAgY2FwcyBuZWdvdGlhdGlvbi4KCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0Y2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICBVc2UgdGhlIG1hcmtlciBiaXQgdG8gc2V0IHRoZSBESVNDT05UIGZsYWcgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOiAoZ3N0X3J0cF9tcGFfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6IChnc3RfcnRwX21wdl9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXB2X2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBBY3R1YWxseSBzZXQgb3V0cHV0IGNhcHMuCgkgIE5vIG5lZWQgdG8gdmFsaWRhdGUgdGhlIGJ1ZmZlciwgdGhlIGJhc2UgY2xhc3MgZG9lcyB0aGF0IGZvciB1cy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5jOiAoZ3N0X3J0cF9tcHZfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOiAoZ3N0X3J0cF9wY21hX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9wY21hX2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBTZXQgb3V0cHV0IGJ1ZmZlciBkdXJhdGlvbiBiZWNhdXNlIHdlIGNhbi4KCSAgVXNlIHRoZSBtYXJrZXIgYml0IHRvIHNldCB0aGUgRElTQ09OVCBmbGFnIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgkgICogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6IChnc3RfcnRwX3BjbWFfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOiAoZ3N0X3J0cF9wY211X2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9wY211X2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBVc2UgdGhlIG1hcmtlciBiaXQgdG8gc2V0IHRoZSBESVNDT05UIGZsYWcgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzogKGdzdF9ydHBfcGNtdV9wYXlfc2V0Y2Fwcyk6CgkgIERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHNldF9vdXRjYXBzLgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOiAoZ3N0X3J0cF9zcGVleF9kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfc3BlZXhfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX3NwZWV4X2RlcGF5X3Byb2Nlc3MpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLgoJICBTZXQgb3V0cHV0IGNhcHMgb24gdGhlIHBhZCBhbmQgaGVhZGVyIGJ1ZmZlcnMuCgkgIFNldCBkdXJhdGlvbiBvbiBvdXRwdXQgYnVmZmVycyBiZWNhdXNlIHdlIGNhbi4KCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6IChnc3RfcnRwX3NwZWV4X3BheV9wYXJzZV9pZGVudCk6CgkgIERvbid0IGlnbm9yZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHNldF9vdXRjYXBzLgoJICAqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6IChnc3RfcnRwX3N2M3ZfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX3N2M3ZfZGVwYXlfcHJvY2Vzcyk6CgkgIENsZWFuIHVwIGNhcHMgbmVnb3RpYXRpb24uCgkgIE5vIG5lZWQgdG8gdmFsaWRhdGUgdGhlIGJ1ZmZlciwgdGhlIGJhc2UgY2xhc3MgZG9lcyB0aGF0IGZvciB1cy4KCSAgTm8gbmVlZCB0byBzZXQgY2FwcyBvdXQgb3V0cHV0IGJ1ZmZlcnMsIHN1YmNsYXNzIGRvZXMgdGhhdC4KCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6IChnc3RfcnRwX3RoZW9yYV9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3Byb2Nlc3MpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRjYXBzLgoJICBObyBuZWVkIHRvIHZhbGlkYXRlIHRoZSBidWZmZXIsIHRoZSBiYXNlIGNsYXNzIGRvZXMgdGhhdCBmb3IgdXMuCgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzogKGdzdF9ydHBfdGhlb3JhX3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfdGhlb3JhX3BheV9mbHVzaF9wYWNrZXQpLCAoZW5jb2RlX2Jhc2U2NCksCgkgIChnc3RfcnRwX3RoZW9yYV9wYXlfZmluaXNoX2hlYWRlcnMpLCAoZ3N0X3J0cF90aGVvcmFfcGF5X3BhcnNlX2lkKSwKCSAgKGdzdF9ydHBfdGhlb3JhX3BheV9oYW5kbGVfYnVmZmVyKToKCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0X291dGNhcHMuCgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOiAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9wcm9jZXNzKToKCSAgRG9uJ3QgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0Y2Fwcy4KCSAgTm8gbmVlZCB0byB2YWxpZGF0ZSB0aGUgYnVmZmVyLCB0aGUgYmFzZSBjbGFzcyBkb2VzIHRoYXQgZm9yIHVzLgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6IChnc3RfcnRwX3ZvcmJpc19wYXlfZmluaXNoX2hlYWRlcnMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOiAoZ3N0X3J0cF92cmF3X2RlcGF5X3NldGNhcHMpOgoJICBDbGVhbiB1cCBjYXBzIG5lZ290aWF0aW9uLCBkb24ndCBpZ25vcmUgc2V0Y2FwcyByZXR1cm4uCgkgICogZ3N0L3J0cC9nc3RydHB2cmF3cGF5LmM6IChnc3RfcnRwX3ZyYXdfcGF5X3NldGNhcHMpOgoJICBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBzZXRfb3V0Y2Fwcy4KCjIwMDgtMTAtMjcgMTA6MzU6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogRm9yd2FyZCB1bmtub3duIGV2ZW50cyB1cHN0cmVhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NyY19ldmVudCk6CgkgIEZvcndhcmQgdW5rbm93biBldmVudHMgdXBzdHJlYW0uCgoyMDA4LTEwLTI3IDEwOjMzOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvaWN5ZGVtdXguYzogQWRkIHNvbWUgcmVmY291bnQgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWN5ZGVtdXguYzogKGljeWRlbXV4X2ZvdW5kX3BhZCk6CgkgIEFkZCBzb21lIHJlZmNvdW50IGNoZWNrCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzogKHJ0cF9waXBlbGluZV9ydW4pOgoJICBEb24ndCBpZ25vcmUgdGhlIHJlc3VsdCBvZiB3cml0ZSgpLCBmaXhlcyBhICBjb21waWxlciB3YXJuaW5nIGZvciBtZS4KCSAgKiB0ZXN0cy9pY2xlcy92aWRlb2JveC10ZXN0LmM6IChtYWluKToKCSAgTWFrZSB0aGUgb3V0cHV0IGEgbGl0dGxlIG1vcmUgcHJldHR5LgoKMjAwOC0xMC0yNyAwOToyNjoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0L2VzZC9lc2Rtb24uYzogQWRkIGRvYyBibG9iLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZXNkL2VzZG1vbi5jOgoJICBBZGQgZG9jIGJsb2IuCgoyMDA4LTEwLTI3IDA5OjIxOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGQgdGhlIGRvY3Mgb2YgdGhlIG5ldyBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJICBBZGQgdGhlIGRvY3Mgb2YgdGhlIG5ldyBlbGVtZW50cy4KCjIwMDgtMTAtMjcgMDk6MDQ6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdXRvZGV0ZWN0LzogRml4ICJTaW5jZSIgdGFncyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc3JjLmM6CgkgIChnc3RfYXV0b19hdWRpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6CgkgIChnc3RfYXV0b192aWRlb19zcmNfY2xhc3NfaW5pdCk6CgkgIEZpeCAiU2luY2UiIHRhZ3MgaW4gdGhlIGRvY3VtZW50YXRpb24uCgoyMDA4LTEwLTI3IDA5OjAwOjI5ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiBBZGQgc3VwcG9ydCBmb3Igc291cGh0dHBzcmMgdG8gYWN0IGFzIGEgbGl2ZSBzb3VyY2UuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZ2V0IHRpbWVzdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cF9odHRwX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3NldF9wcm9wZXJ0eSksIChnc3Rfc291cF9odHRwX3NyY19nZXRfcHJvcGVydHkpOgoJICBBZGQgc3VwcG9ydCBmb3Igc291cGh0dHBzcmMgdG8gYWN0IGFzIGEgbGl2ZSBzb3VyY2UuIFRoaXMgbWFrZXMgaXQKCSAgcG9zc2libGUgdG8gZ2V0IHRpbWVzdGFtcGVkIGJ1ZmZlcnMgaW4gY29tYmluYXRpb24gd2l0aCB0aGUKCSAgImRvLXRpbWVzdGFtcCIgcHJvcGVydHkuIEZpeGVzIGJ1ZyAjNTU2MDE5LgoKMjAwOC0xMC0yNyAwODo1NDozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F1dG9kZXRlY3QvOiBJbXBsZW1lbnQgc3JjIHBsdWdpbnMuIExpdHRsZSBjb2RlL3N0cmluZyBjbGVhbnVwIGluIHRoZSBzaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9kZXRlY3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5jOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NyYy5oOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9kZXRlY3QuYzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc3JjLmg6CgkgIEltcGxlbWVudCBzcmMgcGx1Z2lucy4gTGl0dGxlIGNvZGUvc3RyaW5nIGNsZWFudXAgaW4gdGhlIHNpbmtzLgoJICBGaXhlcyAjNTIzODEzLgoKMjAwOC0xMC0yNyAwODo0NToxMSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEZpeCBhIG1lbW9yeSBsZWFrIHdoZW4gcGFkcyBhcmUgcmVxdWVzdGVkIGJ1dCB0aGUgcGlwZWxpbmUgbmV2ZXIgZ29lcyBpbnRvIFBMQVlJTkcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9yZXNldCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3JlcXVlc3RfbmV3X3BhZCksIChnc3RfbWF0cm9za2FfbXV4X3JlbGVhc2VfcGFkKToKCSAgRml4IGEgbWVtb3J5IGxlYWsgd2hlbiBwYWRzIGFyZSByZXF1ZXN0ZWQgYnV0IHRoZSBwaXBlbGluZSBuZXZlcgoJICBnb2VzIGludG8gUExBWUlORy4KCSAgQ29ycmVjdGx5IHJlbW92ZSByZXF1ZXN0IHBhZHMsIG5vIG1hdHRlciBpZiB0aGV5IGhhdmUgY29sbGVjdGVkCgkgIGRhdGEgb3Igbm90LgoJICBGaXhlcyBidWcgIzU1NzcxMC4KCjIwMDgtMTAtMjcgMDg6NDA6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuaDogRGVmaW5lIHRoZSBjb3JyZWN0IFdJTlZFUiBzbyBnZXRhZGRpbmZvKCkgY2FuIGJlIHVzZWQgd2hlbiB1c2luZyBtaW5ndzMyLiBGaXhlcyBidWcgIzU1NzI5NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuaDoKCSAgRGVmaW5lIHRoZSBjb3JyZWN0IFdJTlZFUiBzbyBnZXRhZGRpbmZvKCkgY2FuIGJlIHVzZWQgd2hlbiB1c2luZwoJICBtaW5ndzMyLiBGaXhlcyBidWcgIzU1NzI5NC4KCjIwMDgtMTAtMjcgMDg6MzY6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC91ZHAvOiBGaXggImFyZ3VtZW50IHR5cGUgbWlzbWF0Y2giIGNvbXBpbGVyIHdhcm5pbmdzIG9uIFdpbmRvd3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzogKGdzdF9keW51ZHBzaW5rX3JlbmRlcik6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfcmVuZGVyKToKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jcmVhdGUpOgoJICBGaXggImFyZ3VtZW50IHR5cGUgbWlzbWF0Y2giIGNvbXBpbGVyIHdhcm5pbmdzIG9uIFdpbmRvd3MuCgkgIEZpeGVzIGJ1ZyAjNTU3MjkzLgoKMjAwOC0xMC0yNyAwODozMDo1MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogRG9uJ3QgY2FsY3VsYXRlIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzIGZvciBldmVyeSBzaW5nbGUgYnVmZmVyIGJ1dCBvbmx5IHdoZW4gaXQncyBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6ICh1cGRhdGVfY29lZmZpY2llbnRzKToKCSAgRG9uJ3QgY2FsY3VsYXRlIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzIGZvciBldmVyeSBzaW5nbGUgYnVmZmVyCgkgIGJ1dCBvbmx5IHdoZW4gaXQncyBuZWVkZWQuIEZpeGVzIGJ1ZyAjNTU3MjYwLgoKMjAwOC0xMC0yNiAyMDowNTo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4xMS4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjExLjEKCjIwMDgtMTAtMjYgMjA6MDQ6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOiBGaXggdmVyc2lvbiBudW1iZXIgb2YgMC4xMC4xMSByZWxlYXNlIGluIGRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkgIEZpeCB2ZXJzaW9uIG51bWJlciBvZiAwLjEwLjExIHJlbGVhc2UgaW4gZG9hcCBmaWxlCgo9PT0gcmVsZWFzZSAwLjEwLjExID09PQoKMjAwOC0xMC0yNCAyMjo0MToxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWludGVybGVhdmUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjExCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTEKCjIwMDgtMTAtMjQgMjI6MjA6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMTAtMjQgMTY6MzA6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBDb21taXQgMC4xMC4xMC40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ29tbWl0IDAuMTAuMTAuNCBwcmUtcmVsZWFzZQoKMjAwOC0xMC0yMSAxMjo0Mjo0NSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBGaXggVlBSUCBjaHVuayBzZXR1cCBpbiBhdmltdXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIEZpeCBWUFJQIGNodW5rIHNldHVwIGluIGF2aW11eC4KCSAgRml4ZXM6ICM1NTYwMTAKCSAgUGF0Y2ggQnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKMjAwOC0xMC0yMSAxMjozODozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBzdXBwb3J0IGR5bmFtaWNhbGx5IGNoYW5naW5nIHByb3BlcnRpZXMgaW4gdmlkZW9ib3gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgIHN1cHBvcnQgZHluYW1pY2FsbHkgY2hhbmdpbmcgcHJvcGVydGllcyBpbiB2aWRlb2JveAoJICBGaXhlZDogIzU1NzA4NQoJICBQYXRjaCBCeTogV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCjIwMDgtMTAtMTYgMTc6MTA6NDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjEwLjMgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjEwLjMgcHJlLXJlbGVhc2UKCjIwMDgtMTAtMTYgMTU6MzA6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERvbid0IHJ1biB0aGUgc3RhdGVzIHRlc3Qgb24gcHVsc2VzcmMgYW5kIHB1bHNlc2luawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgcnVuIHRoZSBzdGF0ZXMgdGVzdCBvbiBwdWxzZXNyYyBhbmQgcHVsc2VzaW5rCgoyMDA4LTEwLTE2IDExOjUyOjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQ29tbWl0IDAuMTAuMTAuMiBwcmUtcmVsZWFzZSBidW1wIHRoYXQgYWN0dWFsbHkgd2VudCBvdXQgb24gMjAwOC0xMC0xMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENvbW1pdCAwLjEwLjEwLjIgcHJlLXJlbGVhc2UgYnVtcCB0aGF0IGFjdHVhbGx5IHdlbnQKCSAgb3V0IG9uIDIwMDgtMTAtMTEKCjIwMDgtMTAtMTUgMTU6NDI6MjkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFNraXAgZW50cmllcyBmb3Igc3RyZWFtcyB0aGF0IGRvbid0IGhhdmUgYSBvdXRwdXQgcGFkIHlldCwgdGhlcmVieSBhdm9pZGluZyBjYWxsaW5nIHBhZCBmdW5jdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fc2Nhbik6CgkgIFNraXAgZW50cmllcyBmb3Igc3RyZWFtcyB0aGF0IGRvbid0IGhhdmUgYSBvdXRwdXQgcGFkIHlldCwgdGhlcmVieQoJICBhdm9pZGluZyBjYWxsaW5nIHBhZCBmdW5jdGlvbnMgd2l0aCBhIE5VTEwgcGFkLgoJICBGaXhlcyAjNTU2NDI0CgoyMDA4LTEwLTE1IDA5OjM5OjI3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBSZW1vdmUgcHJldmlvdXMgd3JvbmcgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogUmVtb3ZlIHByZXZpb3VzIHdyb25nIGNvbW1pdAoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ljeWRlbXV4LmM6IChpY3lkZW11eF9mb3VuZF9wYWQpOgoJICBSZW1vdmUgcHJvYmxlbWF0aWMgYW5kIHVzZWxlc3MgcmVmY291bnQgY2hlY2suCgkgIEZpeGVzICM1NTYzODEKCjIwMDgtMTAtMTUgMDk6Mjc6MjcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFJlbW92ZSBwcm9ibGVtYXRpYyBhbmQgdXNlbGVzcyByZWZjb3VudCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV9ub2RlKToKCSAgUmVtb3ZlIHByb2JsZW1hdGljIGFuZCB1c2VsZXNzIHJlZmNvdW50IGNoZWNrLgoJICBGaXhlcyAjNTU2MzgxCgoyMDA4LTEwLTEwIDEyOjI4OjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9mbGFjLzogQ2FzdCBzb21lIHNpemVfdCBhcmd1bWVudHMgdG8gZ3VpbnQgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgb24gNjQtYml0IHN5c3RlbXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYyAoZ3N0X2ZsYWNfZGVjX3JlYWRfc3RyZWFtKToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmMgKGdzdF9mbGFjX2VuY193cml0ZV9jYWxsYmFjayk6CgkgIENhc3Qgc29tZSBzaXplX3QgYXJndW1lbnRzIHRvIGd1aW50IHRvIGF2b2lkIGNvbXBpbGVyCgkgIHdhcm5pbmdzIG9uIDY0LWJpdCBzeXN0ZW1zLgoKMjAwOC0xMC0wOSAxNDoyNzoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogUmV0dXJuIFRSVUUgaW5zdGVhZCBvZiBGQUxTRSBmcm9tIHRoZSBldmVudCBoYW5kbGVyIHdoZW4gd2Ugc3dhbGxvd2VkIHRoZSBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaGFuZGxlX3NyY19ldmVudCk6CgkgIFJldHVybiBUUlVFIGluc3RlYWQgb2YgRkFMU0UgZnJvbSB0aGUgZXZlbnQgaGFuZGxlciB3aGVuIHdlIHN3YWxsb3dlZCB0aGUKCSAgZXZlbnQuCgoyMDA4LTEwLTA4IDE1OjU5OjU2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIHJlbW92ZSBvbGQgQ0RJTyBwbHVnaW4gbm93IGluIHVnbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgQ0RJTyBwbHVnaW4gbm93IGluIHVnbHkKCjIwMDgtMTAtMDggMTQ6NDc6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFJlc2V0IGhlYWRlciBzdGF0ZS4gRml4ZXMgIzU1NTMyMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9yZXNldCksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1YmluZGV4KSwgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpOgoJICBSZXNldCBoZWFkZXIgc3RhdGUuIEZpeGVzICM1NTUzMjEuCgoyMDA4LTEwLTA4IDEzOjMxOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC4qOiBGb3IgdGltZXN0YW1waW5nIGF1ZGlvIHBhY2tldHMgd2UgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgYW1vdW50IG9mIGJsb2NrcyBpbiBvbmUgZW50cnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3ViaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdHJlYW0pLCAoZ3N0X2F2aV9kZW11eF9wYXJzZV9pbmRleCk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBGb3IgdGltZXN0YW1waW5nIGF1ZGlvIHBhY2tldHMgd2UgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudCB0aGUKCSAgYW1vdW50IG9mIGJsb2NrcyBpbiBvbmUgZW50cnkgdXNpbmcgdGhlIGJsb2NrYWxpZ24uIEZpeGVzIHNvbWUgc3luYwoJICBpc3N1ZXMgd2l0aCB6ZXJvLXBhZGRlZCBhdWRpbyBibG9ja3MgaW4gdGhlIGJlZ2lubmluZyBvZiBhdmkgZmlsZXMuCgoyMDA4LTEwLTA4IDEwOjQyOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzogSW1wbGVtZW50IERFRkFVTFQgYW5kIEJVRkZFUiBwb3NpdGlvbiBxdWVyaWVzLiBTZWUgIzU1NTI2MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzogKGdzdF9tdWx0aV9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9tdWx0aV9maWxlX3NyY19xdWVyeSk6CgkgIEltcGxlbWVudCBERUZBVUxUIGFuZCBCVUZGRVIgcG9zaXRpb24gcXVlcmllcy4gU2VlICM1NTUyNjAuCgoyMDA4LTEwLTA4IDA5OjI5OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogRml4IGJ1aWxkIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBYRGFtYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfc3RvcCk6CgkgIEZpeCBidWlsZCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgWERhbWFnZS4KCjIwMDgtMTAtMDcgMDk6NTg6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9ydHAvOiBBZGQgc29tZSBtb3JlIEgyNjNwIHNlcnZlciBhbmQgY2xpZW50IGV4YW1wbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLnNkcDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLnNoOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItVlRTLUgyNjNwLnNoOgoJICBBZGQgc29tZSBtb3JlIEgyNjNwIHNlcnZlciBhbmQgY2xpZW50IGV4YW1wbGVzLgoKMjAwOC0xMC0wMyAxNzowMzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRGVwZW5kIG9uIHJlbGVhc2VkIHZlcnNpb25zIG9mIGNvcmUgYW5kIGJhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzo6CgkgIERlcGVuZCBvbiByZWxlYXNlZCB2ZXJzaW9ucyBvZiBjb3JlIGFuZCBiYXNlLgoKMjAwOC0xMC0wMyAxNjoxMzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9wdWxzZS86IFJldHVybiAtMSBpbnN0ZWFkIG9mIDAgaW4gZXJyb3IgY2FzZXMuIEZpeGVzICM1NTQ3NzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzogKGdzdF9wdWxzZXNpbmtfd3JpdGUpOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOiAoZ3N0X3B1bHNlc3JjX3JlYWQpOgoJICBSZXR1cm4gLTEgaW5zdGVhZCBvZiAwIGluIGVycm9yIGNhc2VzLiBGaXhlcyAjNTU0NzcxLgoKMjAwOC0xMC0wMyAxNTo1NDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6IFN0b3AgbGVha2luZyB0aGUgY3Vyc29yIGltYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfc3RhcnQpLAoJICAoZ3N0X3hpbWFnZV9zcmNfc3RvcCksIChnc3RfeGltYWdlX3NyY194aW1hZ2VfZ2V0KToKCSAgU3RvcCBsZWFraW5nIHRoZSBjdXJzb3IgaW1hZ2UuCgkgIFVucmVmIHRoZSBsYXN0X3hpbWFnZSBhbmQgdGhlIGNhY2hlZCBjdXJzb3IgaW1hZ2Ugb24gc2h1dGRvd24uCgkgIEZpeGVzICM1NTE1NzAuCgoyMDA4LTEwLTAzIDExOjMyOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOiBHZXR0aW5nIHRoZSBDbGFzcyBmcm9tIGFuIGluc3RhbmNlIGlzIG5vdCBqdXN0IGEgbWF0dGVyIG9mIGNhc3RpbmcgaXQgdG8gdGhlIGNsYXNzIHN0cnVjdCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSAgR2V0dGluZyB0aGUgQ2xhc3MgZnJvbSBhbiBpbnN0YW5jZSBpcyBub3QganVzdCBhIG1hdHRlciBvZiBjYXN0aW5nIGl0IHRvCgkgIHRoZSBjbGFzcyBzdHJ1Y3QgYnV0IGl0IGludm9sdmVzIGNhbGxpbmcgR19PQkpFQ1RfR0VUX0NMQVNTIG9uIHRoZQoJICBpbnN0YW5jZS4gRml4ZXMgIzU0OTc4NC4KCjIwMDgtMTAtMDEgMjE6MjI6MjYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IGxpYnMgZm9yIGxpbmtpbmcgZGlyZWN0c291bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IGxpYnMgZm9yIGxpbmtpbmcgZGlyZWN0c291bmQuCgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBGaXggYnVmZmVyIHNpemluZyB0byBwcmV2ZW50IHJhY2luZyB0aGUgcmluZ2J1ZmZlciBhdCBzdGFydHVwLgoJICBBZGQgdm9sdW1lIHByb3BlcnR5LgoKMjAwOC0wOS0yNyAwMDo0MzowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvcHVsc2UvcHVsc2VzaW5rLmM6IEZpeCBwcm9ibGVtcyB3aXRoIHB1bHNlc2luayByYW5kb21seSBlcnJvcmluZyB3aXRoIGNvZGUgJ09LJyBhZnRlciBhIGZvcm1hdCBjaGFuZ2Ugb24gdGhlIHN0cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3B1bHNlL3B1bHNlc2luay5jOgoJICBGaXggcHJvYmxlbXMgd2l0aCBwdWxzZXNpbmsgcmFuZG9tbHkgZXJyb3Jpbmcgd2l0aCBjb2RlICdPSycgYWZ0ZXIgYQoJICBmb3JtYXQgY2hhbmdlIG9uIHRoZSBzdHJlYW0gYnkgd2FpdGluZyB3aGVuIGRpc2Nvbm5lY3RpbmcgdGhlIHN0cmVhbS4KCjIwMDgtMDktMjYgMTQ6NDQ6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6IE1hcmsgRElTQ09OVCBvbiBvdXRwdXQgYnVmZmVycyB3aGVuIHRoZSBtYXJrZXIgYml0IHNpZ25hbHMgYSBuZXcgdGFsayBzcHVydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOiAoZ3N0X3J0cF9hbXJfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2Ftcl9kZXBheV9wcm9jZXNzKToKCSAgTWFyayBESVNDT05UIG9uIG91dHB1dCBidWZmZXJzIHdoZW4gdGhlIG1hcmtlciBiaXQgc2lnbmFscyBhIG5ldyB0YWxrCgkgIHNwdXJ0LgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6IChnc3RfcnRwX2Ftcl9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgIFNldCB0aGUgbWFya2VyIGJpdCBmb3IgYnVmZmVycyB3aXRoIGEgRElTQ09OVCBmbGFnIHRvIHNpZ25hbCBhIHRhbGsKCSAgc3B1cnQuCgoyMDA4LTA5LTI2IDEzOjU1OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEFkZGVkIE1QNEEtTEFUTSBwYXlsb2FkZXIgdG8gbWF0Y2ggdGhlIGRlcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhcGF5LmM6IChnc3RfcnRwX21wNGFfcGF5X2dldF90eXBlKSwKCSAgKGdzdF9ydHBfbXA0YV9wYXlfYmFzZV9pbml0KSwgKGdzdF9ydHBfbXA0YV9wYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX21wNGFfcGF5X2luaXQpLCAoZ3N0X3J0cF9tcDRhX3BheV9maW5hbGl6ZSksCgkgIChnc3RfcnRwX21wNGFfcGF5X3BhcnNlX2F1ZGlvX2NvbmZpZyksIChnc3RfcnRwX21wNGFfcGF5X25ld19jYXBzKSwKCSAgKGdzdF9ydHBfbXA0YV9wYXlfc2V0Y2FwcyksIChnc3RfcnRwX21wNGFfcGF5X2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cF9tcDRhX3BheV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3J0cF9tcDRhX3BheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhcGF5Lmg6CgkgIEFkZGVkIE1QNEEtTEFUTSBwYXlsb2FkZXIgdG8gbWF0Y2ggdGhlIGRlcGF5bG9hZGVyLgoKMjAwOC0wOS0yNSAxNToxMToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogSGFuZGxlIHNlZ21lbnRzIGEgbGl0dGxlIGJldHRlci4gRml4ZXMgIzUzNzM2MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9xdWV1ZXMpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfc2lua19ldmVudCk6CgkgIEhhbmRsZSBzZWdtZW50cyBhIGxpdHRsZSBiZXR0ZXIuIEZpeGVzICM1MzczNjEuCgoyMDA4LTA5LTI1IDEyOjA3OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBEb24ndCBhc3N1bWUgdGhlIHNlcnZlciBzdXBwb3J0cyBQQVVTRSBieSBkZWZhdWx0LiBGaXhlcyAjNTUxMDQ4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19wYXJzZV9tZXRob2RzKToKCSAgRG9uJ3QgYXNzdW1lIHRoZSBzZXJ2ZXIgc3VwcG9ydHMgUEFVU0UgYnkgZGVmYXVsdC4gRml4ZXMgIzU1MTA0OC4KCjIwMDgtMDktMjUgMTE6MzA6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBTd2l0Y2ggb24gdGhlIHNvY2tldCBmYW1pbHkgdG8gZ2V0IHRoZSBhZGRybGVuIHNpemUgcmlnaHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3VkcHNyY19zZXRfdXJpKSwgKGdzdF91ZHBzcmNfc3RhcnQpOgoJICBTd2l0Y2ggb24gdGhlIHNvY2tldCBmYW1pbHkgdG8gZ2V0IHRoZSBhZGRybGVuIHNpemUgcmlnaHQuCgoyMDA4LTA5LTI1IDEwOjM0OjM5ICswMDAwICBEYW5pZWwgRnJhbmtlIDxkZkBkZnJhbmtlLnVzPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYzogT1MgWCdzIGJpbmQoKSBpbXBsZW1lbnRhdGlvbiBpcyBwaWNreSBhYm91dCBpdHMgYWRkcmxlbiBwYXJhbWV0ZXIgYW5kIGZhaWxzIHdpdGggRUlOVkFMIGlmIGl0IGlzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFuaWVsIEZyYW5rZSA8ZGYgYXQgZGZyYW5rZSBkb3QgdXM+CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY3JlYXRlKSwgKGdzdF91ZHBzcmNfc3RhcnQpOgoJICBPUyBYJ3MgYmluZCgpIGltcGxlbWVudGF0aW9uIGlzIHBpY2t5IGFib3V0IGl0cyBhZGRybGVuIHBhcmFtZXRlciBhbmQKCSAgZmFpbHMgd2l0aCBFSU5WQUwgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gZXhwZWN0ZWQgZm9yIHRoZSBzb2NrZXQncyBhZGRyZXNzCgkgIGZhbWlseS4gU2V0IHRoZSBsZW5ndGggdG8gdGhlIGV4cGVjdGVkIGxlbmd0aCBpbnN0ZWFkLiBGaXhlcyAjNTUzMTkxLgoKMjAwOC0wOS0yMyAxODowODo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGNhbm5vdCBkbyBkZXNyaWJlIG9yIHdoZW4gdGhlIGRlc2NyaWJlIHJlc3VsdCBkb2VzIG5vdCBjb250YWluIGEgdmFsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19vcGVuKToKCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGNhbm5vdCBkbyBkZXNyaWJlIG9yIHdoZW4gdGhlIGRlc2NyaWJlIHJlc3VsdAoJICBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgU0RQIG1lc3NhZ2UuCgoyMDA4LTA5LTIzIDE3OjMxOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogRml4IHNldHRpbmcgdGhlIHFvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfc2V0X3Byb3BlcnR5KToKCSAgRml4IHNldHRpbmcgdGhlIHFvcy4KCjIwMDgtMDktMTcgMTQ6NTA6NDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFNvbWUgJ2Jyb2tlbicgZmlsZXMgb3V0IHRoZXJlIGhhdmUgYXRvbSBsZW5ndGhzIG9mIHplcm8uLi4gd2hpY2ggYmFzaWNhbGx5IHJlc3VsdHMgaW4gcXRkZW11eCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIpLAoJICAoZ3N0X3F0ZGVtdXhfY2hhaW4pOgoJICBTb21lICdicm9rZW4nIGZpbGVzIG91dCB0aGVyZSBoYXZlIGF0b20gbGVuZ3RocyBvZiB6ZXJvLi4uCgkgIHdoaWNoIGJhc2ljYWxseSByZXN1bHRzIGluIHF0ZGVtdXggY29uc3VtaW5nIHRoYXQgYXRvbSBhZ2FpbiBhbmQgYWdhaW4KCSAgdW50aWwgdGhlICplbmQgb2YgbmlnaHQqICEKCSAgRGV0ZWN0IHRoYXQgYW5kIGVtaXRzIGFuIGFkZXF1YXRlIGVsZW1lbnQgZXJyb3IgbWVzc2FnZS4KCjIwMDgtMDktMTcgMTM6NDk6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogRml4IGJ1aWxkIGZsYWdzIG9yZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkgIEZpeCBidWlsZCBmbGFncyBvcmRlci4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2FtcGxpZnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2R5bmFtaWMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2ludmVydC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvcGFub3JhbWEuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRm9ybWF0IGZpeGVzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpZmlsZS5jOgoJICBQdWxsIGluIHVuaXN0ZC5oCgoyMDA4LTA5LTE1IDIxOjEwOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuKjogSGFuZGxlIGludGVybGVhdmVkIHN0cmVhbXMgYnkgcmVvcmRlcmluZyBBVSBpbiBhIHF1ZXVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOiAoZ3N0X3J0cF9tcDRnX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9tcDRnX2RlcGF5X2ZpbmFsaXplKSwgKGdzdF9ydHBfbXA0Z19kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9jbGVhcl9xdWV1ZSksIChnc3RfcnRwX21wNGdfZGVwYXlfZmx1c2hfcXVldWUpLAoJICAoZ3N0X3J0cF9tcDRnX2RlcGF5X3F1ZXVlKSwgKGdzdF9ydHBfbXA0Z19kZXBheV9wcm9jZXNzKSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5Lmg6CgkgIEhhbmRsZSBpbnRlcmxlYXZlZCBzdHJlYW1zIGJ5IHJlb3JkZXJpbmcgQVUgaW4gYSBxdWV1ZS4KCjIwMDgtMDktMTUgMTY6MDQ6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOiBDaGFuZ2Ugc29tZSBvZiB0aGUgcmFuZ2VzIGluIHRoZSBjYXBzLCBtb3N0bHkgZm9yIHRoZSBhbW91bnQgb2YgYml0cyB3ZSBjYW4gdXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOiAoZ3N0X2JzX3BhcnNlX2luaXQpLAoJICAoZ3N0X2JzX3BhcnNlX3JlYWQpLCAoZ3N0X3J0cF9tcDRnX2RlcGF5X3Byb2Nlc3MpOgoJICBDaGFuZ2Ugc29tZSBvZiB0aGUgcmFuZ2VzIGluIHRoZSBjYXBzLCBtb3N0bHkgZm9yIHRoZSBhbW91bnQgb2YgYml0cyB3ZQoJICBjYW4gdXNlLgoJICBBZGRlZCBhIGxpdHRsZSBiaXRzdHJlYW0gcGFyc2UgYW5kIHVzZSBpdCB0byBwYXJzZSB0aGUgQVUgaGVhZGVyIGZpZWxkcy4KCSAgQ2hlY2sgZm9yIG1hbGZvcm1lZCBhbmQgd3JvbmdseSBzaXplZCBwYWNrZXRzIGJldHRlci4KCSAgSW1wbGVtZW50IG1vcmUgaGVhZGVyIGZpZWxkIHBhcnNpbmcuCgkgIEhhbmRsZSB0aGUgc2l6ZSBvZiBmcmFnbWVudGVkIHBhY2tldHMgY29ycmVjdGx5LgoKMjAwOC0wOS0xNCAxMTozMjoxNSArMDAwMCAgSm9uYXRoYW4gTWF0dGhldyA8bm90dmVyeXNtYXJ0QGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIG1hcHBpbmcgZm9yICd0aWZmJyA9PiBpbWFnZS90aWZmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXRoYW4gTWF0dGhldyA8bm90dmVyeXNtYXJ0QGdtYWlsLmNvbT4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICBBZGQgbWFwcGluZyBmb3IgJ3RpZmYnID0+IGltYWdlL3RpZmYKCSAgRml4ZXMgIzU1MjIxMwoKMjAwOC0wOS0xMSAxMToyNjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9yYXcxMzk0LzogUHJldGVuZCB0byBjYXJlIGFib3V0IHRoZSByZXN1bHQgb2Ygd3JpdGUoKSB3aGljaCB3b3JrcyBhcm91bmQgY29tcGlsZXIgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOiAoU0VORF9DT01NQU5EKToKCSAgKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6IChTRU5EX0NPTU1BTkQpOgoJICBQcmV0ZW5kIHRvIGNhcmUgYWJvdXQgdGhlIHJlc3VsdCBvZiB3cml0ZSgpIHdoaWNoIHdvcmtzIGFyb3VuZAoJICBjb21waWxlciB3YXJuaW5ncy4KCjIwMDgtMDktMDQgMDk6MjU6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IE1ha2Ugc3VyZSB0aGUgZGVzaXJlZCBkZWZhdWx0IHZhbHVlcyBhcmUgYWN0dWFsbHkgc2V0LCBub3Qgb25seSByZWdpc3RlcmVkIGFzIGRlZmF1bHRzIChhY3R1YWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiAoZ3N0X2ZsYWNfZW5jX2NsYXNzX2luaXQpOgoJICBNYWtlIHN1cmUgdGhlIGRlc2lyZWQgZGVmYXVsdCB2YWx1ZXMgYXJlIGFjdHVhbGx5IHNldCwgbm90IG9ubHkKCSAgcmVnaXN0ZXJlZCBhcyBkZWZhdWx0cyAoYWN0dWFsIHByb2JsZW0gaXMgdGhhdCB0aGUgc3RlcmVvLXNwZWNpZmljCgkgIHZhbHVlcyBhcmUgb25seSB1cGRhdGVkIGlmIGNoYW5uZWxzPT0yLCB3aGljaCBpcyBub3QgdGhlIGNhc2UgeWV0CgkgIHdoZW4gdGhlIG9iamVjdCBpcyBjcmVhdGVkLCBzbyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZQoJICBtaWQtc2lkZS1zdGVyZW8gYW5kIGxvb3NlLW1pZC1zaWRlLXN0ZXJlbyBzZXR0aW5ncyBhcmUgbmV2ZXIKCSAgc2V0IGluIF91cGRhdGVfcXVhbGl0eSgpKS4gTWFrZXMgZmxhY2VuYyBjcmVhdGUgc21hbGxlciBmaWxlcyBieQoJICBkZWZhdWx0IChmb3Igc3RlcmVvIGlucHV0KSwgYW5kIGZpeGVzICM1NTA3OTEuCgoyMDA4LTA5LTAzIDEyOjM5OjM1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9xdGRlbXV4LzogQWRkIHN1cHBvcnQgZm9yIHZpZGVvL21qMiBtaW1lLXR5cGUgYW5kIGl0cyBhZGRpdGlvbmFsIGF0b21zL2JveGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIpLCAocXRkZW11eF9wYXJzZV9ub2RlKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuYzoKCSAgQWRkIHN1cHBvcnQgZm9yIHZpZGVvL21qMiBtaW1lLXR5cGUgYW5kIGl0cyBhZGRpdGlvbmFsIGF0b21zL2JveGVzLgoJICBGaXhlcyAjNTUwNjQ2LgoKMjAwOC0wOS0wMyAxMToxMDoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC5jOiBBZGQgd2FybmluZyB3aGVuIHRhZ3MgcGFyYW1ldGVyIGlzIHVucGFyc2FibGUgYW5kIGdpdmUgZXhhbXBsZSBmb3IgcXVvdGluZyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC5jOgoJICBBZGQgd2FybmluZyB3aGVuIHRhZ3MgcGFyYW1ldGVyIGlzIHVucGFyc2FibGUgYW5kIGdpdmUgZXhhbXBsZSBmb3IKCSAgcXVvdGluZyBpbiB0aGUgZG9jcy4KCjIwMDgtMDktMDIgMTU6Mjc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZCBtYXBwaW5nIGZvciBJTUEgTG9raSBTREwgTUpQRUcgQURQQ00gY29kZWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfYXVkaW9fY2Fwcyk6CgkgIEFkZCBtYXBwaW5nIGZvciBJTUEgTG9raSBTREwgTUpQRUcgQURQQ00gY29kZWMuCgkgIEFkZCBzb21lIGFsdGVybmF0aXZlIGJ5dGVzd2FwcGVkIG1hcHBpbmdzIHRoYXQgc2VlbSB0byBwb3AgdXAgc29tZXRpbWVzLgoJICBGaXhlcyAjNTUwMjg4LgoKMjAwOC0wOS0wMiAwOTo0MDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBvLzogQWRkICdjYScgdG8gTElOR1VBUzsgYWRkIHNvbWUgbW9yZSBmaWxlcyB3aXRoIHRyYW5zbGF0aW9ucyBhbmQgc29tZSBmaWxlcyB3aGljaCBzaG91bGQgYmUgaWdub3JlZCBieSB0cmFuc2xhdGlvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICAqIHBvL1BPVEZJTEVTLnNraXA6CgkgIEFkZCAnY2EnIHRvIExJTkdVQVM7IGFkZCBzb21lIG1vcmUgZmlsZXMgd2l0aCB0cmFuc2xhdGlvbnMgYW5kIHNvbWUKCSAgZmlsZXMgd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQgYnkgdHJhbnNsYXRpb24gdG9vbHMuCgoyMDA4LTA5LTAyIDA4OjUxOjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvc3BlZXgvOiBVc2UgaW50ZWdlciBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZnVuY3Rpb25zIGluc3RlYWQgb2YgY29udmVydGluZyB0aGUgaW50ZWdlciBpbnB1dCB0byBmbG9hdCBpbiB0aGUgZWxlbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfY2hhaW5fcGFyc2VfZGF0YSk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmg6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IChnc3Rfc3BlZXhfZW5jX2VuY29kZSk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkgIFVzZSBpbnRlZ2VyIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmdW5jdGlvbnMgaW5zdGVhZCBvZiBjb252ZXJ0aW5nCgkgIHRoZSBpbnRlZ2VyIGlucHV0IHRvIGZsb2F0IGluIHRoZSBlbGVtZW50LiBUaGUgbGlic3BlZXggaW50ZWdlcgoJICBmdW5jdGlvbnMgYXJlIGRvaW5nIHRoaXMgZm9yIHVzIGFscmVhZHkgb3IsIGlmIGxpYnNwZWV4IHdhcyBjb21waWxlZAoJICBpbiBpbnRlZ2VyIG1vZGUsIHRoZXkncmUgZG9pbmcgZXZlcnl0aGluZyB1c2luZyBpbnRlZ2VyIGFyaXRobWV0aWNzLgoJICBBbHNvIHNhdmVzIHNvbWUgY29weWluZyBhcm91bmQuCgoyMDA4LTA5LTAxIDEzOjI5OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggLS1kaXNhYmxlLWV4dGVybmFsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IC0tZGlzYWJsZS1leHRlcm5hbAoKMjAwOC0wOC0zMSAxNzowOToxOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy4qOiBIYW5kbGUgbm9uLXplcm8gc3RhcnQgdGltZXN0YW1wcyBhbmQgc3RyZWFtIGRpc2NvbnRpbnVpdGllcyBjb3JyZWN0bHkuIFRoaXMgb25seSBoYXMgYW4gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19yZXNldCksCgkgIChnc3Rfd2F2cGFja19lbmNfcHVzaF9ibG9jayksIChnc3Rfd2F2cGFja19lbmNfY2hhaW4pOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDoKCSAgSGFuZGxlIG5vbi16ZXJvIHN0YXJ0IHRpbWVzdGFtcHMgYW5kIHN0cmVhbSBkaXNjb250aW51aXRpZXMKCSAgY29ycmVjdGx5LiBUaGlzIG9ubHkgaGFzIGFuIGVmZmVjdCBpZiB3ZSdyZSBtdXhpbmcgaW50bwoJICBhIGNvbnRhaW5lciBmb3JtYXQgYXMgdGhlIHJhdyBXYXZQYWNrIHN0cmVhbSBtdXN0IGNvbnRhaW4KCSAgY29udGlub3VzIHNhbXBsZSBudW1iZXJzLgoKMjAwOC0wOC0zMSAxNTowMjowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IENvcnJlY3QgdGhlIHRpbWVzdGFtcCBhbmQgZ3JhbnVsZXBvcyBjYWxjdWxhdGlvbiBieSBvbmUgU3BlZXggZnJhbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4X2VuY19lbmNvZGUpOgoJICBDb3JyZWN0IHRoZSB0aW1lc3RhbXAgYW5kIGdyYW51bGVwb3MgY2FsY3VsYXRpb24gYnkgb25lIFNwZWV4CgkgIGZyYW1lLgoKMjAwOC0wOC0zMSAxNDozOTo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IENvcnJlY3RseSB0YWtlIHRoZSBncmFudWxlcG9zIGZyb20gdXBzdHJlYW0gaWYgcG9zc2libGUgYW5kIGNvcnJlY3RseSBoYW5kbGUgdGhlIGdyYW51bGVwb3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiAoc3BlZXhfZGVjX2NoYWluX3BhcnNlX2RhdGEpOgoJICBDb3JyZWN0bHkgdGFrZSB0aGUgZ3JhbnVsZXBvcyBmcm9tIHVwc3RyZWFtIGlmIHBvc3NpYmxlIGFuZAoJICBjb3JyZWN0bHkgaGFuZGxlIHRoZSBncmFudWxlcG9zIGluIHZhcmlvdXMgY2FsY3VsYXRpb25zOiB0aGUKCSAgZ3JhbnVsZXBvcyBpcyB0aGUgc2FtcGxlIG51bWJlciBvZiB0aGUgX2xhc3RfIHNhbXBsZSBpbiBhIGZyYW1lLCBub3QKCSAgdGhlIGZpcnN0LgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4X2VuY19zaW5rZXZlbnQpLAoJICAoZ3N0X3NwZWV4X2VuY19lbmNvZGUpLCAoZ3N0X3NwZWV4X2VuY19jaGFpbiksCgkgIChnc3Rfc3BlZXhfZW5jX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkgIEhhbmRsZSBub24temVybyBzdGFydCB0aW1lc3RhbXBzIGluIHRoZSBlbmNvZGVyIGFuZCBkZXRlY3QvaGFuZGxlCgkgIHN0cmVhbSBkaXNjb250aW51aXRpZXMuIEZpeGVzIGJ1ZyAjNTQ3MDc1LgoKMjAwOC0wOC0zMSAwODozMjo0NSArMDAwMCAgQ3JhaWcgS2VvZ2ggPGNza2VvZ2hAYWRhbS5jb20uYXU+CgoJICBleHQvYW5ub2RleC9nc3RjbW1scGFyc2VyLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncyBjYXVzZWQgYnkgcGFzc2luZyBhIHN0cmluZyBhcyBmb3JtYXQgc3RyaW5nIGluc3RlYWQgb2YgIiVzIiBhbmQgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDcmFpZyBLZW9naCA8Y3NrZW9naCBhdCBhZGFtIGRvdCBjb20gZG90IGF1PgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxwYXJzZXIuYzogKGdzdF9jbW1sX3BhcnNlcl9wYXJzZV9jaHVuayk6CgkgIEZpeCBjb21waWxlciB3YXJuaW5ncyBjYXVzZWQgYnkgcGFzc2luZyBhIHN0cmluZyBhcyBmb3JtYXQgc3RyaW5nCgkgIGluc3RlYWQgb2YgIiVzIiBhbmQgdGhlbiB0aGUgc3RyaW5nLiBUaGlzIGlzIG9ubHkgZXhwb3NlZCBieSAtV2Zvcm1hdD0yCgkgIGFzIHVzZWQgYnkgZGVmYXVsdCBvbiBVYnVudHUuIEZpeGVzIGJ1ZyAjNTUwMDE1LgoKMjAwOC0wOC0zMCAxNDoxNTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2Ugc3R1ZmYgY29tcGlsZSB3aXRoIEdTVF9ESVNBQkxFX0dTVF9ERUJVRy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3JhdzEzOTQvZ3N0aGR2MTM5NHNyYy5jOiAoZ3N0X2hkdjEzOTRzcmNfY3JlYXRlKToKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzogKGdzdF9hbHBoYV9nZXRfdW5pdF9zaXplKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJsaW1pdC5jOiAoZ2VuZXJhdGVfY29lZmZpY2llbnRzKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3NyY19jb252ZXJ0KToKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IChnc3RfZWJtbF9yZWFkX2VsZW1lbnRfaWQpLAoJICAoZ3N0X2VibWxfcmVhZF9lbGVtZW50X2xlbmd0aCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfY2hlY2tfc3VidGl0bGVfYnVmZmVyKToKCSAgTWFrZSBzdHVmZiBjb21waWxlIHdpdGggR1NUX0RJU0FCTEVfR1NUX0RFQlVHLgoKMjAwOC0wOC0yOSAwMDoyODo1NSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2xhdy86IFJlZiBjYXBzIGJlZm9yZSBwYXNzaW5nIHRvIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCksIHNpbmNlIHRoYXQgdGFrZXMgb3duZXJzaGlwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGF3L2FsYXcuYzoKCSAgKiBnc3QvbGF3L211bGF3LmM6CgkgIFJlZiBjYXBzIGJlZm9yZSBwYXNzaW5nIHRvIGdzdF9wYWRfdGVtcGxhdGVfbmV3KCksIHNpbmNlIHRoYXQgdGFrZXMKCSAgb3duZXJzaGlwLgoKMjAwOC0wOC0yOCAxMDowOToxNiArMDAwMCAgTWVyc2FkIEplbGFjaWMgPG1lcnNhZEBheGlzLmNvbT4KCgkgIGdzdC9tdWx0aXBhcnQvOiBDb252ZXJ0IGF1ZGlvL3gtYWRwY20gdG8gYW5kIGZyb20gdGhlIGF1ZGlvL0c3MjYtWCBpbiB0aGUgbXV4ZXIgYW5kIGRlbXV4ZXIuIEZpeGVzICM1NDk1NTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWVyc2FkIEplbGFjaWMgPG1lcnNhZCBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9nZXRfbWltZSk6CgkgIENvbnZlcnQgYXVkaW8veC1hZHBjbSB0byBhbmQgZnJvbSB0aGUgYXVkaW8vRzcyNi1YIGluIHRoZSBtdXhlciBhbmQKCSAgZGVtdXhlci4gRml4ZXMgIzU0OTU1MS4KCjIwMDgtMDgtMjcgMTY6MTI6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBzeXMvb3N4YXVkaW8vOiBGaXggdGhlIGJ1aWxkIG9uIG1hY29zeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJICAoZ3N0X29zeF9hdWRpb19zaW5rX3NlbGVjdF9kZXZpY2UpOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5jOgoJICAoZ3N0X29zeF9hdWRpb19zcmNfY3JlYXRlX3JpbmdidWZmZXIpLAoJICAoZ3N0X29zeF9hdWRpb19zcmNfc2VsZWN0X2RldmljZSk6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuYzogKGdzdF9vc3hfcmluZ19idWZmZXJfYWNxdWlyZSk6CgkgIEZpeCB0aGUgYnVpbGQgb24gbWFjb3N4LgoKMjAwOC0wOC0yNyAxNTo0MjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOiBTbWFsbCBkb2NzIGZpeDogaW4gdGhlIGV4YW1wbGUgcGlwZWxpbmUsIHdlIG5lZWQgdG8gcGFzcyBpcmFkaW8tbW9kZT10cnVlIHRvIHRoZSBzb3VyY2UsIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSAgU21hbGwgZG9jcyBmaXg6IGluIHRoZSBleGFtcGxlIHBpcGVsaW5lLCB3ZSBuZWVkIHRvIHBhc3MKCSAgaXJhZGlvLW1vZGU9dHJ1ZSB0byB0aGUgc291cmNlLCBzbyB0aGUgc2VydmVyIGFjdHVhbGx5IHNlbmRzCgkgIGFuIElDWSBzdHJlYW0uCgoyMDA4LTA4LTI3IDAwOjA4OjIwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW8uYzogT29wcy4gUmV2ZXJ0IG1vcmUgY29tcGxldGVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvLmM6CgkgIE9vcHMuIFJldmVydCBtb3JlIGNvbXBsZXRlbHkuCgoyMDA4LTA4LTI2IDIzOjU3OjA1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW8uYzogUmV2ZXJ0IGFjY2lkZW50YWwgZWxlbWVudCByZW5hbWUgZnJvbSB0ZXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW8uYzoKCSAgUmV2ZXJ0IGFjY2lkZW50YWwgZWxlbWVudCByZW5hbWUgZnJvbSB0ZXN0aW5nLgoKMjAwOC0wOC0yNiAyMzo1Mzo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QtcGx1Z2lucy1nb29kLmRvYXA6IFB1bGwgaW4gMC4xMC4xMCBkb2FwIGVudHJ5IGZyb20gcmVsZWFzZSBicmFuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJICBQdWxsIGluIDAuMTAuMTAgZG9hcCBlbnRyeSBmcm9tIHJlbGVhc2UgYnJhbmNoCgoyMDA4LTA4LTI2IDIzOjA1OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVXBkYXRlIHZlcnNpb24gbnVtYmVyIHRvIHJlZmxlY3QgMC4xMC4xMCByZWxlYXNlIGZyb20gYnJhbmNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVwZGF0ZSB2ZXJzaW9uIG51bWJlciB0byByZWZsZWN0IDAuMTAuMTAgcmVsZWFzZSBmcm9tCgkgIGJyYW5jaC4KCjIwMDgtMDgtMjYgMjE6MTM6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHN5cy9vc3hhdWRpby86IFJld3JpdGUgY2FwcyBzZXR0aW5nIGFuZCByaW5nIGJ1ZmZlciBpbml0aWFsaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zeGF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpby5jOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmg6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmg6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuYzoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5oOgoJICBSZXdyaXRlIGNhcHMgc2V0dGluZyBhbmQgcmluZyBidWZmZXIgaW5pdGlhbGlzYXRpb24uCgkgIFByZXZpb3VzbHkgd2UgbmV2ZXIgdG9sZCBDb3JlQXVkaW8gd2hhdCBmb3JtYXQgd2Ugd2VyZSBnb2luZyB0byBzZW5kIGl0LAoJICBzbyBpdCBvbmx5IHdvcmtlZCBkdWUgdG8gbHVjaywgYW5kIG5vdCBhdCBhbGwgb24gc29tZSBoYXJkd2FyZS4KCSAgTm93IHdlIGV4cGxpY2l0bHkgYWR2ZXJ0aXNlIHdoYXQgZm9ybWF0cyB0aGUgaGFyZHdhcmUgc3VwcG9ydHMsIGFuZCB0aGVuCgkgIGNvbmZpZ3VyZSB0aGUgc2VsZWN0ZWQgb25lIGNvcnJlY3RseS4KCjIwMDgtMDgtMjYgMTI6Mjc6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHN5cy92NGwyLzogRml4IG1lbW9yeSBsZWFrcy4gU21hbGwgY29kZSBjbGVhbnVwcyA6IE5vIG5lZWQgZm9yIGVtcHR5IF9pbml0KCkuIE5vIG5lZWQgdG8gbWVtc2V0IGluc3RhbmNlIHN0cnVjdHVyZXMuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSAgKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBGaXggbWVtb3J5IGxlYWtzLiBTbWFsbCBjb2RlIGNsZWFudXBzIDogTm8gbmVlZCBmb3IgZW1wdHkgX2luaXQoKS4gTm8KCSAgbmVlZCB0byBtZW1zZXQgaW5zdGFuY2Ugc3RydWN0dXJlcy4gU29tZSBtb3JlIEZJWE1FJ3MuCgoyMDA4LTA4LTI2IDA4OjExOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9pY2xlcy8uY3ZzaWdub3JlOiBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvaWNsZXMvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTA4LTI2IDA4OjAwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBJZ25vcmUgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dvb20yazEvLmN2c2lnbm9yZToKCSAgSWdub3JlIGZpbGVzLgoKMjAwOC0wOC0yNiAwNzo1MTo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6IEZpeCBjb21waWxlciB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTA4LTI2IDA1OjQyOjE1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiBGaXggb2J2aW91cyBtZW1sZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzogRml4IG9idmlvdXMgbWVtbGVhay4KCjIwMDgtMDgtMjUgMTQ6MTU6NDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvbWF0cm9za2EvOiBBZGQgUmVhbFtBdWRpb3xWaWRlb10gc3VwcG9ydCB0byBNYXRyb3NrYSBjb250YWluZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF92aWRlb19jYXBzKSwgKGdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBzKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfYXVkaW9fcGFkX3NldGNhcHMpLCAoZ3N0X21hdHJvc2thX211eF9maW5pc2gpOgoJICBBZGQgUmVhbFtBdWRpb3xWaWRlb10gc3VwcG9ydCB0byBNYXRyb3NrYSBjb250YWluZXJzLgoJICBJdCB3b3JrcyBmaW5lIGZvcjoKCSAgKiBkZWNvZGluZyByZWFsIGF1ZGlvL3ZpZGVvIHN0cmVhbXMgY29udGFpbmVkIGluIG1rdgoJICAqICd0cmFuc211eGluZycgcmVhbCAoLnJtKSBmaWxlcyBpbnRvIC5ta3YgZmlsZXMKCSAgSXQgd2lsbCBub3Qgd29yayB0aG91Z2ggZm9yIGVuY29kaW5nIHJlYWxbYXVkaW8vdmlkZW9dIHN0cmVhbXMgdGhhdAoJICBkb24ndCBjb250YWluIHRoZSAnbWRwcl9kYXRhJyBleHRyYSBkYXRhIG9uIHRoZSBjYXBzLgoJICBUaGUgcmVhc29uIHdoeSB0aGlzIHdpbGwgbm90IHdvcmsgaXMgYmVjYXVzZSBJIG5ldmVyIGludGVuZGVkIHRvCgkgIGR1cGxpY2F0ZSB2aXJ0dWFsbHkgYWxsIHRoZSAnbWRwcicgYmxvY2sgY3JlYXRpb24gaW50byBta3ZtdXguCgkgIEZpeGVzICM1MzYwNjcKCjIwMDgtMDgtMjUgMDk6NDg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbGF3LzogVGhlIGVuY29kZXIgY2FuJ3QgcmVhbGx5IHJlbmVnb3RpYXRlIGF0IHRoZSB0aW1lIHRoZXkgcGVyZm9ybSBhIHBhZC1hbGxvYyBzbyBtYWtlIHRoZSBzcmNwYWRzIHVzZSBmaXhlZCBjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6IChnc3RfYWxhd19lbmNfaW5pdCksIChnc3RfYWxhd19lbmNfY2hhaW4pOgoJICAqIGdzdC9sYXcvbXVsYXctY29udmVyc2lvbi5jOgoJICAqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6IChnc3RfbXVsYXdlbmNfaW5pdCksCgkgIChnc3RfbXVsYXdlbmNfY2hhaW4pOgoJICBUaGUgZW5jb2RlciBjYW4ndCByZWFsbHkgcmVuZWdvdGlhdGUgYXQgdGhlIHRpbWUgdGhleSBwZXJmb3JtIGEKCSAgcGFkLWFsbG9jIHNvIG1ha2UgdGhlIHNyY3BhZHMgdXNlIGZpeGVkIGNhcHMuCgkgIENoZWNrIHRoZSBidWZmZXIgc2l6ZSBhZnRlciBhIHBhZC1hbGxvYyBiZWNhdXNlIHRoZSByZXR1cm5lZCBzaXplIG1pZ2h0CgkgIG5vdCBiZSByaWdodCB3aGVuIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQgZG9lcyBub3Qga25vdyB0aGUgc2l6ZSBvZiB0aGUKCSAgbmV3IGJ1ZmZlciAoY2Fwc2ZpbHRlcikuIEZpeGVzICM1NDkwNzMuCgoyMDA4LTA4LTIzIDE1OjQzOjQ5ICswMDAwICBGaWxpcHBvIEFyZ2lvbGFzIDxmaWxpcHBvLmFyZ2lvbGFzQGdtYWlsLmNvbT4KCgkgIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOiB2NGwyc3JjIGRvZXNuJ3QgaGF2ZSBhIHByb3BlcnR5IG5hbWVkICJub3JtIiBzbyBkb24ndCB0cnkgdG8gbm90aWZ5IGFib3V0IGNoYW5nZXMgdG8gdGhhdCBwci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZpbGlwcG8gQXJnaW9sYXMgPGZpbGlwcG8gZG90IGFyZ2lvbGFzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmM6IChnc3RfdjRsMl90dW5lcl9zZXRfbm9ybV9hbmRfbm90aWZ5KToKCSAgdjRsMnNyYyBkb2Vzbid0IGhhdmUgYSBwcm9wZXJ0eSBuYW1lZCAibm9ybSIgc28gZG9uJ3QgdHJ5IHRvIG5vdGlmeQoJICBhYm91dCBjaGFuZ2VzIHRvIHRoYXQgcHJvcGVydHkuIFRoZSAibm9ybSIgcHJvcGVydHkgYW5kIHJlbGF0ZWQKCSAgY29kZSBhcmUgY29tbWVudGVkIG91dCBjdXJyZW50bHkuIEZpeGVzIGJ1ZyAjNTQ5MDkwLgoKMjAwOC0wOC0yMyAxNTozMzo0OSArMDAwMCAgTWlrZSBSdXByZWNodCA8Y21haWt1QGdtYWlsLmNvbT4KCgkgIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzogUmVwcm9iZSBkZXZpY2VzIGFnYWluIGluc3RlYWQgb2YgdGFraW5nIGEgY2FjaGVkIGxpc3QgYXMgbmV3IGRldmljZXMgY291bGQndmUgYmVlbiBwbHVnZ2VkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1pa2UgUnVwcmVjaHQgPGNtYWlrdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzogKGdzdF92NGwyX2NsYXNzX3Byb2JlX2RldmljZXMpOgoJICBSZXByb2JlIGRldmljZXMgYWdhaW4gaW5zdGVhZCBvZiB0YWtpbmcgYSBjYWNoZWQgbGlzdCBhcyBuZXcKCSAgZGV2aWNlcyBjb3VsZCd2ZSBiZWVuIHBsdWdnZWQgaW4uIEZpeGVzIGJ1ZyAjNTQ5MDYyLgoKMjAwOC0wOC0yMiAxNjowNDowMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2F1dG9kZXRlY3QvTWFrZWZpbGUuYW06IERvbid0IGxpbmsgdGhlIGF1dG9kZXRlY3QgcGx1Z2luIHdpdGggR0NvbmYgYXMgaXQgZG9lc24ndCB1c2UgR0NvbmYuIEZpeGVzIGJ1ZyAjNTQ1NDYzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgbGluayB0aGUgYXV0b2RldGVjdCBwbHVnaW4gd2l0aCBHQ29uZiBhcyBpdCBkb2Vzbid0CgkgIHVzZSBHQ29uZi4gRml4ZXMgYnVnICM1NDU0NjMuCgoyMDA4LTA4LTIyIDEyOjI0OjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IENoYW5nZSBzb21lIEdTVF9FTEVNRU5UX0VSUk9ScyB0byBHU1RfRVJST1JfT0JKRUNUIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gaWdub3JlIGVycm9ycyBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfcmVhZF9lbGVtZW50X2lkKSwKCSAgKGdzdF9lYm1sX3JlYWRfZWxlbWVudF9sZW5ndGgpLCAoZ3N0X2VibWxfcmVhZF91aW50KSwKCSAgKGdzdF9lYm1sX3JlYWRfc2ludCksIChnc3RfZWJtbF9yZWFkX2Zsb2F0KSwKCSAgKGdzdF9lYm1sX3JlYWRfaGVhZGVyKToKCSAgQ2hhbmdlIHNvbWUgR1NUX0VMRU1FTlRfRVJST1JzIHRvIEdTVF9FUlJPUl9PQkpFQ1QgdG8gbWFrZSBpdAoJICBwb3NzaWJsZSB0byBpZ25vcmUgZXJyb3JzIGFuZCBub3QgcG9zdCBhbnkgRVJST1IgbWVzc2FnZXMgb24KCSAgdGhlIGJ1cy4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jb250ZW50cyk6CgkgIElnbm9yZSBhbnkgZXJyb3JzIGFuZCBub3QganVzdCBFT1Mgd2hlbiBwYXJzaW5nIHRoZSBjb250ZW50cyBvZgoJICBhIFNlZWtIZWFkLiBFcnJvcnMgaGVyZSBhcmUgdXN1YWxseSBjYXVzZWQgYnkgdHJ1bmNhdGVkIGZpbGVzCgkgIGFuZCBwbGF5YmFjayBvZiB0aGUgZmlsZSB3b3JrcyBmaW5lLiBGaXhlcyBwbGF5YmFjayBvZiB0aGUKCSAgYXVkaW9fb25seV9jaGFwdGVyX3NlZWticm9rZW4ubWthIGZpbGUgZnJvbSB0aGUgTVBsYXllciBzYW1wbGVzCgkgIGFyY2hpdmUuCgoyMDA4LTA4LTIyIDExOjI5OjI2ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L211bHRpcGFydC86IENvbmZvcm0gdG8gUkZDMjA0Ni4gYXVkaW8vYmFzaWMgaXMgbXVsYXcgODAwMEh6IG1vbm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJICBDb25mb3JtIHRvIFJGQzIwNDYuIGF1ZGlvL2Jhc2ljIGlzIG11bGF3IDgwMDBIeiBtb25vLgoKMjAwOC0wOC0yMSAyMTo1NjoxOSArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYzoKCSAgc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYyAoZ3N0X2RpcmVjdGRyYXdfc2lua19idWZmZXJfYWxsb2MsIGdzdF9kaXJlY3RkcmF3X3NpbmtfYnVmZmVycG9vbF9jbGVhcik6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmMgKGdzdF9kaXJlY3RkcmF3X3NpbmtfYnVmZmVyX2FsbG9jLAoJICBnc3RfZGlyZWN0ZHJhd19zaW5rX2J1ZmZlcnBvb2xfY2xlYXIpOgoJICBGaXggdHdvIG1vcmUgYnVmZmVyIHJlZiBsZWFrcy4KCjIwMDgtMDgtMjEgMTU6Mjg6MDkgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOiBGaXggYnVmZmVyIHJlZiBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXMgYXQgdGFuZGJlcmcgY29tPgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgIChnc3RfZGlyZWN0ZHJhd19zaW5rX3Nob3dfZnJhbWUpOgoJICBGaXggYnVmZmVyIHJlZiBsZWFrLgoKMjAwOC0wOC0yMSAxMzoyNzoxMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogUmV2ZXJ0IHRoZSBsYXN0IGNvbW1pdC4gd2F2ZW5jIHN0aWxsIHN1cHBvcnRzIHdpZHRoIT1kZXB0aCBmb3IgMzIgYml0IHdpZHRoLiBUaGFua3MgVGltLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiAoZ3N0X3dhdmVuY19jaGFpbik6CgkgIFJldmVydCB0aGUgbGFzdCBjb21taXQuIHdhdmVuYyBzdGlsbCBzdXBwb3J0cyB3aWR0aCE9ZGVwdGggZm9yIDMyIGJpdAoJICB3aWR0aC4gVGhhbmtzIFRpbS4KCjIwMDgtMDgtMjEgMTM6MjI6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBJZiB0aGUgZHVyYXRpb24gb2YgYSBibG9jayBpcyB1bmtub3duIG9ubHkgdXNlIHRoZSB0aW1lc3RhbXAgZm9yIHRoZSBmaXJzdCBsYWNlIGFuZCB1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrKToKCSAgSWYgdGhlIGR1cmF0aW9uIG9mIGEgYmxvY2sgaXMgdW5rbm93biBvbmx5IHVzZSB0aGUgdGltZXN0YW1wIGZvciB0aGUKCSAgZmlyc3QgbGFjZSBhbmQgdXNlIEdTVF9DTE9DS19USU1FX05PTkUgYXMgZHVyYXRpb24gZm9yIHRoZSBmb2xsb3dpbmcKCSAgbGFjZXMuIE90aGVyd2lzZSBldmVyeSBsYWNlIGhhcyB0aGUgc2FtZSB0aW1lc3RhbXAgd2hpY2ggbGVhZHMgdG8KCSAgdmFyaW91cyBwcm9ibGVtcy4gUmVhbGx5IGZpeGVzIGJ1ZyAjNTQ4ODMxLgoKMjAwOC0wOC0yMSAxMjo1NjowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogSWYgd2UncmUgbm90IGFsbG93aW5nIHdpZHRoIT1kZXB0aCBpbiB3YXZlbmMgd2Ugc2hvdWxkIGFsc28gZGlzYWJsZSB0aGUgY29kZSB0aGF0IHdhcyBhZGRlZCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6IChnc3Rfd2F2ZW5jX2NoYWluKToKCSAgSWYgd2UncmUgbm90IGFsbG93aW5nIHdpZHRoIT1kZXB0aCBpbiB3YXZlbmMgd2Ugc2hvdWxkIGFsc28gZGlzYWJsZQoJICB0aGUgY29kZSB0aGF0IHdhcyBhZGRlZCB0byBzdXBwb3J0IHdpZHRoIT1kZXB0aC4KCjIwMDgtMDgtMjEgMTI6NTI6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBEb24ndCBjYWxjdWxhdGUgdGhlIGRlZmF1bHQgZHVyYXRpb24gb2YgYSBmcmFtZSBmcm9tIHRoZSBhdWRpbyBzYW1wbGluZyByYXRlLiBUaGlzIG9ubC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKToKCSAgRG9uJ3QgY2FsY3VsYXRlIHRoZSBkZWZhdWx0IGR1cmF0aW9uIG9mIGEgZnJhbWUgZnJvbSB0aGUgYXVkaW8gc2FtcGxpbmcKCSAgcmF0ZS4gVGhpcyBvbmx5IHdvcmtzIGZvciByYXcgYXVkaW8gaWYgZXZlcnkgZnJhbWUgY29udGFpbnMgYSBzaW5nbGUKCSAgc2FtcGxlIGFuZCByZXN1bHRzIGluIGJyb2tlbiBidWZmZXIgZHVyYXRpb25zIGZvciBvdGhlciBmb3JtYXRzCgkgIGlmIG5vIHNwZWNpZmllZCBkZWZhdWx0IGR1cmF0aW9uIGlzIGdpdmVuIG9yIHRoZSBibG9ja3MgaGF2ZSBubwoJICBkdXJhdGlvbi4gRml4ZXMgYnVnICM1NDg4MzEuCgoyMDA4LTA4LTIxIDEyOjM0OjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogQWxsb3cgemVybyBzaXplZCBibG9ja3MgaW5zdGVhZCBvZiByZXR1cm5pbmcgR1NUX0ZMT1dfT0suIFN1Y2ggYmxvY2tzIGFyZSB1c2VkIGZvciB0ZXguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayk6CgkgIEFsbG93IHplcm8gc2l6ZWQgYmxvY2tzIGluc3RlYWQgb2YgcmV0dXJuaW5nIEdTVF9GTE9XX09LLiBTdWNoIGJsb2NrcwoJICBhcmUgdXNlZCBmb3IgdGV4dC9wbGFpbiBzdWJ0aXRsZXMgYXMgYSBnYXAtZmlsbGVyIGluIHNvbWUgZmlsZXMuCgoyMDA4LTA4LTIxIDEyOjEyOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiBBZGQgUzkxMCBhbmQgUFdDIGZvcm1hdHMgd2l0aCBhIGxvdyBwcmlvcml0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfdjRsMmZvdXJjY190b19zdHJ1Y3R1cmUpLAoJICAoZ3N0X3Y0bDJfZ2V0X2NhcHNfaW5mbyk6CgkgIEFkZCBTOTEwIGFuZCBQV0MgZm9ybWF0cyB3aXRoIGEgbG93IHByaW9yaXR5LgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX2Zvcm1hdF9nZXRfcmFuayksCgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXQpOgoJICBBZGQgbW9yZSBkZWJ1Z2dpbmcuCgoyMDA4LTA4LTIwIDIxOjU0OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiBGaXggY29tcGlsYXRpb24gYWdhaW5zdCBvbGRlciBsaWJmbGFjIHZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIEZpeCBjb21waWxhdGlvbiBhZ2FpbnN0IG9sZGVyIGxpYmZsYWMgdmVyc2lvbnMuCgoyMDA4LTA4LTIwIDE3OjQ2OjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvcHVsc2UvOiBVc2UgR1NUX0JPSUxFUlBMQVRFIGV2ZXJ5d2hlcmUgYW5kIGZpeCBjb2Rpbmcgc3R5bGUgYXQgc29tZSBwbGFjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wdWxzZS9wdWxzZW1peGVyLmM6IChnc3RfcHVsc2VtaXhlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9wdWxzZW1peGVyX3NldF9wcm9wZXJ0eSksIChnc3RfcHVsc2VtaXhlcl9nZXRfcHJvcGVydHkpOgoJICAqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5jOiAoZ3N0X3B1bHNlbWl4ZXJfY3RybF9zdWJzY3JpYmVfY2IpLAoJICAoZ3N0X3B1bHNlbWl4ZXJfY3RybF9vcGVuKSwgKGdzdF9wdWxzZW1peGVyX2N0cmxfdGltZW91dF9ldmVudCksCgkgIChnc3RfcHVsc2VtaXhlcl9jdHJsX3NldF92b2x1bWUpOgoJICAqIGV4dC9wdWxzZS9wdWxzZW1peGVydHJhY2suYzogKGdzdF9wdWxzZW1peGVyX3RyYWNrX25ldyk6CgkgICogZXh0L3B1bHNlL3B1bHNlcHJvYmUuYzogKGdzdF9wdWxzZXByb2JlX29wZW4pOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzogKGdzdF9wdWxzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVsc2VzaW5rX2luaXQpLCAoZ3N0X3B1bHNlc2lua19vcGVuKSwKCSAgKGdzdF9wdWxzZXNpbmtfcHJlcGFyZSksIChnc3RfcHVsc2VzaW5rX3dyaXRlKSwKCSAgKGdzdF9wdWxzZXNpbmtfZGVsYXkpLCAoZ3N0X3B1bHNlc2lua19yZXNldCk6CgkgICogZXh0L3B1bHNlL3B1bHNlc3JjLmM6IChnc3RfcHVsc2VzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVsc2VzcmNfaW5pdCk6CgkgIFVzZSBHU1RfQk9JTEVSUExBVEUgZXZlcnl3aGVyZSBhbmQgZml4IGNvZGluZyBzdHlsZSBhdCBzb21lIHBsYWNlcy4KCSAgRml4IGEgbG9ja2luZyBpc3N1ZSBpbiBwdWxzZXNpbmsncyBwcmVwYXJlIGZ1bmN0aW9uLgoJICAqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzogKGdzdF9wdWxzZV9jaGFubmVsX21hcF90b19nc3QpOgoJICBDaGVjayBpZiB0aGUgY3JlYXRlZCBjaGFubmVsIGxheW91dCBpcyB2YWxpZCBmb3IgR1N0cmVhbWVyLgoKMjAwOC0wOC0yMCAxNzo0MjoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3Bnb29nbGUuYzogVGhpbmdzIHRoYXQgY2FuIGhhcHBlbiB3aGVuIHlvdXIgYnJhaW4gaXMgaW4gZ29vZ2xlIG1vZGUgdHJ5aW5nIHRvIGRlYWwgd2l0aCB0aGVpciBnb29nbGUgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwZ29vZ2xlLmM6CgkgIFRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2hlbiB5b3VyIGJyYWluIGlzIGluIGdvb2dsZSBtb2RlIHRyeWluZyB0bwoJICBkZWFsIHdpdGggdGhlaXIgZ29vZ2xlIHJ0c3Agc2VydmVyIGV4dGVuc2lvbnMgYW5kIHRyeWluZyB0byB0eXBlIHlvdXIKCSAgZ29vZ2xlIG1haWwgYWNjb3VudC4KCjIwMDgtMDgtMjAgMTc6MzA6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC86IEFkZCBnb29nbGUgUlRTUCBleHRlbnNpb24sIGl0IGNhbiBvbmx5IGhhbmRsZSB1ZHAgYW5kIHJlc3BvbmRzIHdpdGggdW5zdXBwb3J0ZWQgaWYgd2UgZG8gYW55dGhpbmcgZWxzZS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0c3AvZ3N0cnRzcC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3Bnb29nbGUuYzogKGdzdF9ydHNwX2dvb2dsZV9iZWZvcmVfc2VuZCksCgkgIChnc3RfcnRzcF9nb29nbGVfYWZ0ZXJfc2VuZCksIChnc3RfcnRzcF9nb29nbGVfZ2V0X3RyYW5zcG9ydHMpLAoJICAoX2RvX2luaXQpLCAoZ3N0X3J0c3BfZ29vZ2xlX2Jhc2VfaW5pdCksCgkgIChnc3RfcnRzcF9nb29nbGVfY2xhc3NfaW5pdCksIChnc3RfcnRzcF9nb29nbGVfaW5pdCksCgkgIChnc3RfcnRzcF9nb29nbGVfZmluYWxpemUpLCAoZ3N0X3J0c3BfZ29vZ2xlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRzcF9nb29nbGVfZXh0ZW5zaW9uX2luaXQpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3Bnb29nbGUuaDoKCSAgQWRkIGdvb2dsZSBSVFNQIGV4dGVuc2lvbiwgaXQgY2FuIG9ubHkgaGFuZGxlIHVkcCBhbmQgcmVzcG9uZHMgd2l0aAoJICB1bnN1cHBvcnRlZCBpZiB3ZSBkbyBhbnl0aGluZyBlbHNlLiBGaXhlcyAjNTQ2NDY1LgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2Nvbm5lY3Rpb25fc2VuZCksCgkgIChnc3RfcnRzcHNyY19jb25uZWN0aW9uX3JlY2VpdmUpLCAoZ3N0X3J0c3BzcmNfbG9vcF9zZW5kX2NtZCksCgkgIChnc3RfcnRzcHNyY19jcmVhdGVfdHJhbnNwb3J0c19zdHJpbmcpLAoJICAoZ3N0X3J0c3BzcmNfc2V0dXBfc3RyZWFtcyksIChnc3RfcnRzcHNyY19vcGVuKSwKCSAgKGdzdF9ydHNwc3JjX2Nsb3NlKSwgKGdzdF9ydHNwc3JjX3BhdXNlKToKCSAgTWFrZSB0cmFuc3BvcnQgc2V0dXAgY29kZSBhIGJpdCBiZXR0ZXIgdXNpbmcgR1N0cmluZy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgQ2hlY2sgZm9yIGNsb3NlZCBjb25uZWN0aW9ucyBiZWZvcmUgZG9pbmcgYW55dGhpbmcgb24gdGhlbS4KCjIwMDgtMDgtMjAgMTc6MTc6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9wdWxzZS86IElmIGRvd25zdHJlYW0gcHJvdmlkZXMgbm8gY2hhbm5lbCBsYXlvdXQgYW5kID4yIGNoYW5uZWxzIHNob3VsZCBiZSB1c2VkIHVzZSB0aGUgZGVmYXVsdCBsYXlvdXQgdGhhdCBwdWxzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcHVsc2UvcHVsc2VzcmMuYzogKGdzdF9wdWxzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdWxzZXNyY19jcmVhdGVfc3RyZWFtKSwgKGdzdF9wdWxzZXNyY19uZWdvdGlhdGUpLAoJICAoZ3N0X3B1bHNlc3JjX3ByZXBhcmUpOgoJICAqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzogKGdzdF9wdWxzZV9nc3RfdG9fY2hhbm5lbF9tYXApLAoJICAoZ3N0X3B1bHNlX2NoYW5uZWxfbWFwX3RvX2dzdCk6CgkgICogZXh0L3B1bHNlL3B1bHNldXRpbC5oOgoJICBJZiBkb3duc3RyZWFtIHByb3ZpZGVzIG5vIGNoYW5uZWwgbGF5b3V0IGFuZCA+MiBjaGFubmVscyBzaG91bGQgYmUKCSAgdXNlZCB1c2UgdGhlIGRlZmF1bHQgbGF5b3V0IHRoYXQgcHVsc2VhdWRpbyBjaG9vc2VzIGFuZCBhbHNvCgkgIGFkZCB0aGlzIGxheW91dCB0byB0aGUgY2Fwcy4gRml4ZXMgYnVnICM1NDcyNTguCgoyMDA4LTA4LTIwIDExOjUxOjM4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC91ZHAvOiBBdm9pZCBsZWFraW5nIGludGVybmFsbHkgYWxsb2NhdGVkIGZpbGUgZGVzY3JpcHRvcnMgd2hlbiBzZXR0aW5nIGN1c3RvbSBmaWxlIGRlc2NyaXB0b3JzLiBGaXhlcyAjNTQzMTAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOiAoZ3N0X2R5bnVkcHNpbmtfaW5pdCksCgkgIChnc3RfZHludWRwc2lua19maW5hbGl6ZSksIChnc3RfZHludWRwc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2R5bnVkcHNpbmtfaW5pdF9zZW5kKSwgKGdzdF9keW51ZHBzaW5rX2Nsb3NlKToKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19pbml0KSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfZmluYWxpemUpLCAoZ3N0X211bHRpdWRwc2lua19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF91ZHBzcmNfc2V0X3Byb3BlcnR5KToKCSAgQXZvaWQgbGVha2luZyBpbnRlcm5hbGx5IGFsbG9jYXRlZCBmaWxlIGRlc2NyaXB0b3JzIHdoZW4gc2V0dGluZwoJICBjdXN0b20gZmlsZSBkZXNjcmlwdG9ycy4gRml4ZXMgIzU0MzEwMS4KCjIwMDgtMDgtMjAgMTE6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IERvbid0IHRyeSB0byBjb25maWd1cmUgUlRDUCBiYWNrIHRvIHRoZSBzZXJ2ZXIgd2hlbiB0aGUgc2VydmVyIGRpZCBub3QgZ2l2ZSB1cyBhIHZhbGlkIHBvcnQgbnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHBfc2luayk6CgkgIERvbid0IHRyeSB0byBjb25maWd1cmUgUlRDUCBiYWNrIHRvIHRoZSBzZXJ2ZXIgd2hlbiB0aGUgc2VydmVyIGRpZCBub3QKCSAgZ2l2ZSB1cyBhIHZhbGlkIHBvcnQgbnVtYmVyLgoKMjAwOC0wOC0yMCAxMDo1OTo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBVc2UgbmV3IGJhc2V0cmFuc2Zvcm0gbWV0aG9kIHRvIHJlbmVnb3RpYXRlLiBGaXhlcyAjNTQ0OTU2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogKGdzdF92aWRlb19ib3hfc2V0X3Byb3BlcnR5KToKCSAgVXNlIG5ldyBiYXNldHJhbnNmb3JtIG1ldGhvZCB0byByZW5lZ290aWF0ZS4gRml4ZXMgIzU0NDk1Ni4KCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pY2xlcy92aWRlb2JveC10ZXN0LmM6IChtYWtlX3BpcGVsaW5lKSwgKG1haW4pOgoJICBBZGQgdmlkZW9ib3ggcmVuZWdvdGlhdGlvbiBleGFtcGxlLgoKMjAwOC0wOC0xOSAyMTowMzoyMiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiBSZW1vdmUgZGVwdGggcmFuZ2VzIGFuZCByZXBsYWNlIHdpdGggc2FuZSB2YWx1ZXMuICBGaXhlcyAjNTQ4NTMwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiBSZW1vdmUgZGVwdGggcmFuZ2VzIGFuZCByZXBsYWNlCgkgIHdpdGggc2FuZSB2YWx1ZXMuICBGaXhlcyAjNTQ4NTMwLgoKMjAwOC0wOC0xOCAxNTowNTozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3B1bHNlLzogVGhlIGJ5dGVzX3Blcl9zYW1wbGUgYW5kIHNpbGVuY2Vfc2FtcGxlIGZpZWxkcyBvZiB0aGUgR3N0UmluZ0J1ZmZlclNwZWMgYXJlIGFscmVhZHkgZmlsbGVkIHdpdGggdGhlIGNvcnJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzogKGdzdF9wdWxzZXNpbmtfcHJlcGFyZSk6CgkgICogZXh0L3B1bHNlL3B1bHNlc3JjLmM6IChnc3RfcHVsc2VzcmNfcHJlcGFyZSk6CgkgIFRoZSBieXRlc19wZXJfc2FtcGxlIGFuZCBzaWxlbmNlX3NhbXBsZSBmaWVsZHMgb2YgdGhlIEdzdFJpbmdCdWZmZXJTcGVjCgkgIGFyZSBhbHJlYWR5IGZpbGxlZCB3aXRoIHRoZSBjb3JyZWN0IHZhbHVlcyBieQoJICBnc3RfcmluZ19idWZmZXJfcGFyc2VfY2FwcygpIHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBzZXQgdGhlbSBhZ2FpbgoJICB3aXRoIHdyb25nIHZhbHVlcy4KCjIwMDgtMDgtMTYgMTQ6NTQ6NTYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFNvbWUgQVZJIDIuMCAoT0RNTCkgZmlsZXMgZG9uJ3QgcmVzcGVjdCB0aGUgJ3NwZWNpZmljYXRpb25zJyBjb21wbGV0ZWx5IGFuZCBpbnN0ZWFkIG9mIHVzaW5nIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9yZWFkX3N1YmluZGV4ZXNfcHVsbCksCgkgIChnc3RfYXZpX2RlbXV4X3JlYWRfc3ViaW5kZXhlc19wdXNoKToKCSAgU29tZSBBVkkgMi4wIChPRE1MKSBmaWxlcyBkb24ndCByZXNwZWN0IHRoZSAnc3BlY2lmaWNhdGlvbnMnIGNvbXBsZXRlbHkKCSAgYW5kIGluc3RlYWQgb2YgdXNpbmcgdGhlICdpeCMjJyBub21lbmNsYXR1cmUsIHVzZSAnIyNpeCcuCgkgIFRoZXkncmUgc3RpbGwgdmFsaWQgdGhvdWdoLCB0aGlzIGZpeGVzIHRoZSBkdXJhdGlvbiBhbmQgaW5kZXhlcyBmb3IKCSAgdmlydHVhbGx5IGFsbCB0aGUgT0RNTCBmaWxlcyBJIGhhdmUuCgoyMDA4LTA4LTE1IDE3OjI2OjE4ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cC86IFVwZGF0ZSB0aGUgdm9yYmlzIFJUUCBwYXkvZGVwYXkgdG8gUkZDIDUyMTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOiAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZ3N0X3J0cF92b3JiaXNfcGF5X2ZpbmlzaF9oZWFkZXJzKToKCSAgVXBkYXRlIHRoZSB2b3JiaXMgUlRQIHBheS9kZXBheSB0byBSRkMgNTIxNS4KCSAgRml4ZXMgIzU0Nzg0Mi4KCjIwMDgtMDgtMTQgMjI6MDc6MDIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgJ2hkdjYnIGFzIGEgSERWIGZvcm1hdCBmb3IgMTA4MGkvNjAgd2l0aCAzOjIgcHVsbGRvd24sIGkuZS4sIDI0cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgJ2hkdjYnIGFzIGEgSERWIGZvcm1hdCBmb3IgMTA4MGkvNjAKCSAgd2l0aCAzOjIgcHVsbGRvd24sIGkuZS4sIDI0cC4KCjIwMDgtMDgtMTQgMTI6NDc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOiBGaXggY29tcGlsYXRpb24gc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggY29tcGlsYXRpb24gc29tZSBtb3JlLgoKMjAwOC0wOC0xNCAxMTo0NDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSAtYmFzZSBDVlMgZm9yIHdhdnBhcnNlIGFjaWQgY2h1bmsgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOjoKCSAgUmVxdWlyZSAtYmFzZSBDVlMgZm9yIHdhdnBhcnNlIGFjaWQgY2h1bmsgcGFyc2luZy4KCjIwMDgtMDgtMTMgMTM6NTc6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9wdWxzZS9wdWxzZXNpbmsuKjogQWRkICJkZXZpY2UtbmFtZSIgcHJvcGVydHkgdG8gcHVsc2VzaW5rIHRvbyBhbmQgY3VycmVudGx5IGNvbW1lbnRlZCBvdXQgYW5kIG5vdCB3b3JraW5nIHN1cHBvci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6IChnc3RfcHVsc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1bHNlc2lua19pbml0KSwgKGdzdF9wdWxzZXNpbmtfZmluYWxpemUpLAoJICAoZ3N0X3B1bHNlc2lua19zZXRfdm9sdW1lKSwgKGdzdF9wdWxzZXNpbmtfZ2V0X3ZvbHVtZSksCgkgIChnc3RfcHVsc2VzaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfcHVsc2VzaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcHVsc2VzaW5rX3ByZXBhcmUpLCAoZ3N0X3B1bHNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNpbmsuaDoKCSAgQWRkICJkZXZpY2UtbmFtZSIgcHJvcGVydHkgdG8gcHVsc2VzaW5rIHRvbyBhbmQgY3VycmVudGx5IGNvbW1lbnRlZAoJICBvdXQgYW5kIG5vdCB3b3JraW5nIHN1cHBvcnQgZm9yIGEgInZvbHVtZSIgcHJvcGVydHkuCgoyMDA4LTA4LTEzIDEzOjE3OjE1ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgbW9yZSBjZGlvIHN0dWZmIChtb3ZlZCB0byB1Z2x5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSBtb3JlIGNkaW8gc3R1ZmYgKG1vdmVkIHRvIHVnbHkpCgoyMDA4LTA4LTEzIDEyOjM3OjI2ICswMDAwICBMYXN6bG8gUGFuZHkgPGxhc3psb2syQGdtYWlsLmNvbT4KCgkgIGV4dC9wdWxzZS9wdWxzZXNyYy5jOiBBZGQgImRldmljZS1uYW1lIiBwcm9wZXJ0eSwgd2hpY2ggcHJvdmlkZXMgYSBodW1hbiByZWFkYWJsZSBzdHJpbmcgZm9yIHRoZSBhdWRpbyBkZXZpY2UsIHRvIG1hay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExhc3psbyBQYW5keSA8bGFzemxvazIgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBleHQvcHVsc2UvcHVsc2VzcmMuYzogKGdzdF9wdWxzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9wdWxzZXNyY19nZXRfcHJvcGVydHkpOgoJICBBZGQgImRldmljZS1uYW1lIiBwcm9wZXJ0eSwgd2hpY2ggcHJvdmlkZXMgYSBodW1hbiByZWFkYWJsZSBzdHJpbmcKCSAgZm9yIHRoZSBhdWRpbyBkZXZpY2UsIHRvIG1ha2UgaXQgbW9yZSBjb25zaXN0ZW4gd2l0aCBvdGhlciBhdWRpbwoJICBzb3VyY2VzLiBGaXhlcyBidWcgIzU0NzUxOS4KCjIwMDgtMDgtMTMgMTI6MzQ6MTMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9wdWxzZS86IEltcHJvdmUgZGVidWdnaW5nIGEgYml0IGJ5IGluY2x1ZGluZyB0aGUgcGFyZW50IG9iamVjdCBpbiBwdWxzZW1peGVyY3RybCBhbmQgcHVsc2Vwcm9iZSBvYmplY3RzIGFuZCB1c2luZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcHVsc2UvcHVsc2VtaXhlci5jOiAoZ3N0X3B1bHNlbWl4ZXJfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuYzogKGdzdF9wdWxzZW1peGVyX2N0cmxfc3Vic2NyaWJlX2NiKSwKCSAgKGdzdF9wdWxzZW1peGVyX2N0cmxfb3BlbiksIChnc3RfcHVsc2VtaXhlcl9jdHJsX25ldyksCgkgIChnc3RfcHVsc2VtaXhlcl9jdHJsX2ZyZWUpLCAoZ3N0X3B1bHNlbWl4ZXJfY3RybF90aW1lb3V0X2V2ZW50KToKCSAgKiBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuaDoKCSAgKiBleHQvcHVsc2UvcHVsc2Vwcm9iZS5jOiAoZ3N0X3B1bHNlcHJvYmVfb3BlbiksCgkgIChnc3RfcHVsc2Vwcm9iZV9lbnVtZXJhdGUpLCAoZ3N0X3B1bHNlcHJvYmVfbmV3KSwKCSAgKGdzdF9wdWxzZXByb2JlX2ZyZWUpLCAoZ3N0X3B1bHNlcHJvYmVfbmVlZHNfcHJvYmUpLAoJICAoZ3N0X3B1bHNlcHJvYmVfcHJvYmVfcHJvcGVydHkpLCAoZ3N0X3B1bHNlcHJvYmVfZ2V0X3ZhbHVlcyk6CgkgICogZXh0L3B1bHNlL3B1bHNlcHJvYmUuaDoKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6IChnc3RfcHVsc2VzaW5rX2luaXQpOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOiAoZ3N0X3B1bHNlc3JjX2luaXQpLCAoZ3N0X3B1bHNlc3JjX2RlbGF5KSwKCSAgKGdzdF9wdWxzZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdCBieSBpbmNsdWRpbmcgdGhlIHBhcmVudCBvYmplY3QgaW4gcHVsc2VtaXhlcmN0cmwKCSAgYW5kIHB1bHNlcHJvYmUgb2JqZWN0cyBhbmQgdXNpbmcgR1NUX1dBUk5JTkdfT0JKRUNUIGluc3RlYWQgb2YKCSAgR1NUX1dBUk5JTkcuCgkgIFVzZSB0aGUgcGFyZW50IEdPYmplY3Qgc3ViY2xhc3MgaW5zdGVhZCBvZiBhIHJhbmRvbSBzdHJ1Y3QgYXMgR09iamVjdAoJICBwYXJhbWV0ZXIgZm9yIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRC4gVGhpcyBmaXhlcyBhIGNyYXNoCgkgIHdoZW4gcHJvYmluZyBmb3IgYW5vdGhlciBwcm9wZXJ0eSB0aGFuICJkZXZpY2UiLgoKMjAwOC0wOC0xMyAxMjoyMToyMiArMDAwMCAgTGFzemxvIFBhbmR5IDxsYXN6bG9rMkBnbWFpbC5jb20+CgoJICBleHQvcHVsc2UvcHVsc2VtaXhlci5jOiBGaXggcHJvcGVydHkgcHJvYmluZyBhZnRlciB0aGUgZGV2aWNlIHByb3BlcnR5IGlzIHNldCBieSBjYWxsaW5nIHNldF9zZXJ2ZXIgd2hlbiB0aGUgc2VydmVyIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMYXN6bG8gUGFuZHkgPGxhc3psb2syIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzogKGdzdF9wdWxzZW1peGVyX3NldF9wcm9wZXJ0eSk6CgkgIEZpeCBwcm9wZXJ0eSBwcm9iaW5nIGFmdGVyIHRoZSBkZXZpY2UgcHJvcGVydHkgaXMgc2V0IGJ5IGNhbGxpbmcKCSAgc2V0X3NlcnZlciB3aGVuIHRoZSBzZXJ2ZXIgcHJvcGVydHkgY2hhbmdlcy4gRml4ZXMgYnVnICM1NDc1MTguCgoyMDA4LTA4LTEzIDEyOjExOjM0ICswMDAwICBMYXN6bG8gUGFuZHkgPGxhc3psb2syQGdtYWlsLmNvbT4KCgkgIGV4dC9wdWxzZS9wdWxzZW1peGVyLmM6IEZpeCBwcm9wZXJ0eSBwcm9iaW5nIGFmdGVyIHRoZSBkZXZpY2UgcHJvcGVydHkgaXMgc2V0IGJ5IGNhbGxpbmcgc2V0X3NlcnZlciB3aGVuIHRoZSBzZXJ2ZXIgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExhc3psbyBQYW5keSA8bGFzemxvazIgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBleHQvcHVsc2UvcHVsc2VtaXhlci5jOiAoZ3N0X3B1bHNlbWl4ZXJfc2V0X3Byb3BlcnR5KToKCSAgRml4IHByb3BlcnR5IHByb2JpbmcgYWZ0ZXIgdGhlIGRldmljZSBwcm9wZXJ0eSBpcyBzZXQgYnkgY2FsbGluZwoJICBzZXRfc2VydmVyIHdoZW4gdGhlIHNlcnZlciBwcm9wZXJ0eSBjaGFuZ2VzLiBGaXhlcyBidWcgIzU0NzUxOC4KCjIwMDgtMDgtMTMgMTI6MDE6MDEgKzAwMDAgIExhc3psbyBQYW5keSA8bGFzemxvazJAZ21haWwuY29tPgoKCSAgZXh0L3B1bHNlLzogSW1wbGVtZW50IEdzdFByb3BlcnR5UHJvYmUgaW50ZXJmYWNlIG9uIHB1bHNlc2luayBmb3IgZGV0ZWN0aW5nIHNpbmsgZGV2aWNlcyBhbmQgb24gcHVsc2VzcmMgZm9yIGRldGVjdGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTGFzemxvIFBhbmR5IDxsYXN6bG9rMiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGV4dC9wdWxzZS9wdWxzZXNpbmsuYzogKGdzdF9wdWxzZXNpbmtfaW50ZXJmYWNlX3N1cHBvcnRlZCksCgkgIChnc3RfcHVsc2VzaW5rX2ltcGxlbWVudHNfaW50ZXJmYWNlX2luaXQpLAoJICAoZ3N0X3B1bHNlc2lua19pbml0X2ludGVyZmFjZXMpLCAoZ3N0X3B1bHNlc2lua19pbml0KSwKCSAgKGdzdF9wdWxzZXNpbmtfZmluYWxpemUpLCAoZ3N0X3B1bHNlc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3B1bHNlc2lua19nZXRfdHlwZSk6CgkgICogZXh0L3B1bHNlL3B1bHNlc2luay5oOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNyYy5jOiAoZ3N0X3B1bHNlc3JjX2ludGVyZmFjZV9zdXBwb3J0ZWQpLAoJICAoZ3N0X3B1bHNlc3JjX2luaXRfaW50ZXJmYWNlcyksIChnc3RfcHVsc2VzcmNfaW5pdCksCgkgIChnc3RfcHVsc2VzcmNfZmluYWxpemUpLCAoZ3N0X3B1bHNlc3JjX3NldF9wcm9wZXJ0eSk6CgkgICogZXh0L3B1bHNlL3B1bHNlc3JjLmg6CgkgIEltcGxlbWVudCBHc3RQcm9wZXJ0eVByb2JlIGludGVyZmFjZSBvbiBwdWxzZXNpbmsgZm9yIGRldGVjdGluZwoJICBzaW5rIGRldmljZXMgYW5kIG9uIHB1bHNlc3JjIGZvciBkZXRlY3Rpbmcgc291cmNlIGRldmljZXMuCgkgIEZpeGVzIGJ1Z3MgIzU0NzIyNyBhbmQgIzU0NzIxNy4KCjIwMDgtMDgtMTMgMDk6MTc6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiBEb24ndCB0ZXJtaW5hdGUgb24gZmFicyhpbik+MS4wLiBJbml0IGRvdWJsZXMgYXMgZG91Ymxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIERvbid0IHRlcm1pbmF0ZSBvbiBmYWJzKGluKT4xLjAuIEluaXQgZG91YmxlcyBhcyBkb3VibGVzLgoKMjAwOC0wOC0xMyAwODozMzo1NyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogUHJvcGVybHkgc2V0IHRoZSBtYXhpbXVtIGxhdGVuY3kgdmFsdWUsIGluIHRoZSBzYW1lIHdheSBpdCBpcyBkb25lIGluIHY0bHNyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfcXVlcnkpOgoJICBQcm9wZXJseSBzZXQgdGhlIG1heGltdW0gbGF0ZW5jeSB2YWx1ZSwgaW4gdGhlIHNhbWUgd2F5IGl0IGlzIGRvbmUgaW4KCSAgdjRsc3JjLgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgU2ltcGxpZnkgZnJhY3Rpb24gZXF1YWxpdHkgY2hlY2ssIG5vIG5lZWQgdG8gdXNlIEdWYWx1ZXMgZm9yIHRoaXMuCgoyMDA4LTA4LTEyIDEyOjA0OjI0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiBBZGQgd2FybmluZyBtZXNzYWdlcyBzdGF0aW5nIGV4YWN0bHkgd2h5IHRoZSBsYXRlbmN5IHF1ZXJ5IGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfcXVlcnkpOgoJICBBZGQgd2FybmluZyBtZXNzYWdlcyBzdGF0aW5nIGV4YWN0bHkgd2h5IHRoZSBsYXRlbmN5IHF1ZXJ5IGZhaWxlZC4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19zZXRfY2FwdHVyZSk6CgkgIEluIHNvbWUgY2FzZXMsIHRoZSBuZWdvdGlhdGVkIGZyYW1lcmF0ZSBtaWdodCBiZSB0aGUgZGVmYXVsdCBvbmUgd2hpY2gKCSAgaXMgYWxyZWFkeSBzZXQgaW50ZXJuYWxseS4gQnV0IHdlIHN0aWxsIG5lZWQgdG8gbWFyayBpdCBkb3duIGluIGZwc19uCgkgIGFuZCBmcHNfZCBzbyB0aGF0IHRoZSBsYXRlbmN5IHF1ZXJ5IGNhbiBoYXBwZW4gcHJvcGVybHkuCgoyMDA4LTA4LTEyIDExOjI4OjQ3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOiBXaG9vcHMsIGZvcmdvdCBvbmUgZG9jIGZpbGUgZm9yIHBlb3BsZSB3aG8gY2FuJ3QvZG9uJ3QgYnVpbGQgdGhlIHJhdzEzOTQgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkgIFdob29wcywgZm9yZ290IG9uZSBkb2MgZmlsZSBmb3IgcGVvcGxlIHdobyBjYW4ndC9kb24ndCBidWlsZCB0aGUKCSAgcmF3MTM5NCBwbHVnaW4uCgoyMDA4LTA4LTEyIDA5OjIyOjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFB1bGwgY2hhbmdlcyBmcm9tIDAuMTAuOS4yIHByZS1yZWxlYXNlIGJyYW5jaCBtb3ZpbmcgdGhlIGxpYmNkaW8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2NkaW8vTWFrZWZpbGUuYW06CgkgICogZXh0L2NkaW8vZ3N0Y2Rpby5jOgoJICAqIGV4dC9jZGlvL2dzdGNkaW8uaDoKCSAgKiBleHQvY2Rpby9nc3RjZGlvY2RkYXNyYy5jOgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmg6CgkgIFB1bGwgY2hhbmdlcyBmcm9tIDAuMTAuOS4yIHByZS1yZWxlYXNlIGJyYW5jaCBtb3ZpbmcgdGhlIGxpYmNkaW8KCSAgQ0REQSBzb3VyY2UgdG8gLXVnbHkuCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgKiBwby9pZC5wbzoKCSAgUHVsbCBpbiBuZXcgdHJhbnNsYXRpb24gZnJvbSAwLjEwLjkuMiByZWxlYXNlIGJyYW5jaC4KCjIwMDgtMDgtMTEgMTU6MDU6MTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBJbnRlZ3JhdGUgZG9jdW1lbnRhdGlvbiBmb3IgbmV3IGhkdjEzOTRzcmMgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgIEludGVncmF0ZSBkb2N1bWVudGF0aW9uIGZvciBuZXcgaGR2MTM5NHNyYyBlbGVtZW50LgoKMjAwOC0wOC0xMSAxNDozNjoxMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9yYXcxMzk0LzogbXBlZzItdHMgKEhEVikgdmFyaWFudCBvZiBmaXJld2lyZSBjYXB0dXJlIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9yYXcxMzk0L01ha2VmaWxlLmFtOgoJICAqIGV4dC9yYXcxMzk0L2dzdDEzOTQuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvcmF3MTM5NC9nc3RoZHYxMzk0c3JjLmM6IChfZG9faW5pdCksCgkgIChnc3RfaGR2MTM5NHNyY19iYXNlX2luaXQpLCAoZ3N0X2hkdjEzOTRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfaGR2MTM5NHNyY19pbml0KSwgKGdzdF9oZHYxMzk0c3JjX2Rpc3Bvc2UpLAoJICAoZ3N0X2hkdjEzOTRzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9oZHYxMzk0c3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaGR2MTM5NHNyY19mcm9tX3JhdzEzOTRoYW5kbGUpLAoJICAoZ3N0X2hkdjEzOTRzcmNfaWVjNjE4ODNfcmVjZWl2ZSksIChnc3RfaGR2MTM5NHNyY19idXNfcmVzZXQpLAoJICAoZ3N0X2hkdjEzOTRzcmNfY3JlYXRlKSwgKGdzdF9oZHYxMzk0c3JjX2Rpc2NvdmVyX2F2Y19ub2RlKSwKCSAgKGdzdF9oZHYxMzk0c3JjX3N0YXJ0KSwgKGdzdF9oZHYxMzk0c3JjX3N0b3ApLAoJICAoZ3N0X2hkdjEzOTRzcmNfdW5sb2NrKSwgKGdzdF9oZHYxMzk0c3JjX3VwZGF0ZV9kZXZpY2VfbmFtZSksCgkgIChnc3RfaGR2MTM5NHNyY191cmlfZ2V0X3R5cGUpLCAoZ3N0X2hkdjEzOTRzcmNfdXJpX2dldF9wcm90b2NvbHMpLAoJICAoZ3N0X2hkdjEzOTRzcmNfdXJpX2dldF91cmkpLCAoZ3N0X2hkdjEzOTRzcmNfdXJpX3NldF91cmkpLAoJICAoZ3N0X2hkdjEzOTRzcmNfdXJpX2hhbmRsZXJfaW5pdCk6CgkgICogZXh0L3JhdzEzOTQvZ3N0aGR2MTM5NHNyYy5oOgoJICBtcGVnMi10cyAoSERWKSB2YXJpYW50IG9mIGZpcmV3aXJlIGNhcHR1cmUgZWxlbWVudC4KCSAgRml4ZXMgIzM1MDgzMAoKMjAwOC0wOC0xMSAxMDo1MzowNiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiBGaXggY29tcGlsYXRpb24gKGFsc28ga25vd24gYXMgdGhlIGNsYXNzaWMgJ2ZpeCBjb2RlIHRoYXQgc29tZW9uZSBjb21taXR0ZWQgd2l0aG91dCBjb21waWxpbmcgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9tZXNzYWdlX25ldyk6CgkgIEZpeCBjb21waWxhdGlvbiAoYWxzbyBrbm93biBhcyB0aGUgY2xhc3NpYyAnZml4IGNvZGUgdGhhdCBzb21lb25lCgkgIGNvbW1pdHRlZCB3aXRob3V0IGNvbXBpbGluZyBpdCBmaXJzdCcpLgoKMjAwOC0wOC0xMCAxOTo0MDoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzogQWRkIGEgdGVzdCBmb3IgbGV2ZWwgaW4gc3RlcmVvIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIEFkZCBhIHRlc3QgZm9yIGxldmVsIGluIHN0ZXJlbyBtb2RlLgoKMjAwOC0wOC0xMCAxOTozNTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vOiBEZW1vIGhvdyB0byBkcmF3IGFuYWx5emVyIHJlc3VsdHMgc3luY2VkIHRvIHRoZSBjbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJICBEZW1vIGhvdyB0byBkcmF3IGFuYWx5emVyIHJlc3VsdHMgc3luY2VkIHRvIHRoZSBjbG9jay4KCjIwMDgtMDgtMTAgMTU6NTI6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiBMaXR0bGUgcmVuYW1pbmcgKGwgLT4gbGV2ZWwpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgTGl0dGxlIHJlbmFtaW5nIChsIC0+IGxldmVsKS4KCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgQWxzbyBzZW5kIGZ1bGwgdGltZXN0YW1wL2R1cmF0aW9uIGRldGFpbHMgaGVyZS4KCjIwMDgtMDgtMTAgMTE6MzI6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC4qOiBTZW5kIHNhbWUgdGltZXN0YW1wL2R1cmF0aW9uIGRldGFpbHMgYXMgdmlkZW9hbmFseXNpcy4gVGhpcyBnaXZlcyBhcHBsaWNhdGlvbnMgYmV0dGVyIGNoYW5jZSB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSAgU2VuZCBzYW1lIHRpbWVzdGFtcC9kdXJhdGlvbiBkZXRhaWxzIGFzIHZpZGVvYW5hbHlzaXMuIFRoaXMgZ2l2ZXMKCSAgYXBwbGljYXRpb25zIGJldHRlciBjaGFuY2UgdG8gc3luYyBhbmFseXNpcyByZXN1bHRzIHdpdGggcGxheWJhY2suCgoyMDA4LTA4LTA5IDE0OjAyOjI3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IFdlIG5lZWQgdG8gZHJvcCBvbmUgYWRkaXRpb25hbCBidWZmZXIgZm9yIEZMQUMgYXMgdGhlIGZMYUMgbWFya2VyIGFuZCBTVFJFQU1JTkZPIGJsb2NrIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICAoZ3N0X21hdHJvc2thX211eF9oYW5kbGVfc2lua19ldmVudCksCgkgIChmbGFjX3N0cmVhbWhlYWRlcl90b19jb2RlY2RhdGEpOgoJICBXZSBuZWVkIHRvIGRyb3Agb25lIGFkZGl0aW9uYWwgYnVmZmVyIGZvciBGTEFDIGFzIHRoZSBmTGFDCgkgIG1hcmtlciBhbmQgU1RSRUFNSU5GTyBibG9jayBhcmUgbWVyZ2VkIGludG8gb25lIGJ1ZmZlciBpbiB0aGUgY2Fwcy4KCSAgQWxzbyBkb24ndCBwcmV0ZW5kIHRvIHN1cHBvcnQgTkVXU0VHTUVOVCBldmVudHMsIG90aGVyd2lzZSB3ZQoJICB3aWxsIG1vc3QgcHJvYmFibHkgd3JpdGUgc29tZSBpbnZhbGlkIGRhdGEuCgoyMDA4LTA4LTA5IDEzOjQ4OjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEFkZCBzdXBwb3J0IGZvciBtdXhpbmcgRkxBQyBpbnRvIE1hdHJvc2thIGNvbnRhaW5lcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGZsYWNfc3RyZWFtaGVhZGVyX3RvX2NvZGVjZGF0YSksCgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKToKCSAgQWRkIHN1cHBvcnQgZm9yIG11eGluZyBGTEFDIGludG8gTWF0cm9za2EgY29udGFpbmVycy4KCSAgRml4ZXMgYnVnICMzMTE1ODYuCgoyMDA4LTA4LTA5IDA4OjU4OjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IEFjdHVhbGx5IHByb3ZpZGUgdGhlIHZhcmlhYmxlcyByZXF1aXJlZCBmb3IgdGhlIGZvcm1hdCBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogKGdzdF9mbGFjX2VuY19jaGVja19kaXNjb250KToKCSAgQWN0dWFsbHkgcHJvdmlkZSB0aGUgdmFyaWFibGVzIHJlcXVpcmVkIGZvciB0aGUgZm9ybWF0IHN0cmluZy4KCjIwMDgtMDgtMDggMTY6MjA6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC4qOiBDbG9zZSB0aGUgY3VycmVudCBzZWdtZW50IGlmIHdlJ3JlIGRvaW5nIGEgbm9uLWZsdXNoaW5nIHNlZWsgYW5kIHNlbmQgdGhlIGNsb3NlLXNlZ21lbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCksIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIENsb3NlIHRoZSBjdXJyZW50IHNlZ21lbnQgaWYgd2UncmUgZG9pbmcgYSBub24tZmx1c2hpbmcgc2VlayBhbmQgc2VuZAoJICB0aGUgY2xvc2Utc2VnbWVudCBhbmQgdGhlIG5ldyBzZWdtZW50IG9mIHRoZSBzZWVrIGZyb20gdGhlIHN0cmVhbWluZwoJICB0aHJlYWQuCgoyMDA4LTA4LTA4IDE1OjIwOjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvZmxhYy9nc3RmbGFjZW5jLio6IEhhbmRsZSBub24temVybyBzdGFydCB0aW1lc3RhbXBzIGNvcnJlY3RseSwgbWFyayBoZWFkZXIgcGFja2V0cyBhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IChnc3RfZmxhY19lbmNfd3JpdGVfY2FsbGJhY2spLAoJICAoZ3N0X2ZsYWNfZW5jX2NoZWNrX2Rpc2NvbnQpLCAoZ3N0X2ZsYWNfZW5jX2NoYWluKSwKCSAgKGdzdF9mbGFjX2VuY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgSGFuZGxlIG5vbi16ZXJvIHN0YXJ0IHRpbWVzdGFtcHMgY29ycmVjdGx5LCBtYXJrIGhlYWRlciBwYWNrZXRzIGFzCgkgIElOX0NBUFMgYW5kIHByaW50IGEgd2FybmluZyBhbmQgc3VnZ2VzdCB1c2luZyBhdWRpb3JhdGUgaWYgc3RyZWFtCgkgIGRpc2NvbnRpbnVpdGllcyBhcmUgZGV0ZWN0ZWQuIFdoZW4gRkxBQyBzdXBwb3J0cyBmbHVzaGluZyB0aGUgZW5jb2RlcgoJICBzb21laG93IHRoaXMgc2hvdWxkIGJlIGRvbmUgZm9yIGRpc2NvbnRpbnVpdGllcyBpbnN0ZWFkLgoJICBSZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzIGZyb20gdGhlIGluc3RhbmNlIHN0cnVjdC4KCjIwMDgtMDgtMDcgMTc6MTQ6MzkgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgYWRkIHB1bHNlYXVkaW8gdG8gcGx1Z2lucyBsaXN0IGluIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHB1bHNlYXVkaW8gdG8gcGx1Z2lucyBsaXN0IGluIHNwZWMgZmlsZQoKMjAwOC0wOC0wNyAxNjoxMzo0MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiBJZiBzZWVraW5nIGZhaWxlZCByZXR1cm4gdGhlIGFwcHJvcGlhdGUgcmV0dXJuIHZhbHVlIHRvIEZMQUMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogKGdzdF9mbGFjX2VuY19zZWVrX2NhbGxiYWNrKToKCSAgSWYgc2Vla2luZyBmYWlsZWQgcmV0dXJuIHRoZSBhcHByb3BpYXRlIHJldHVybiB2YWx1ZSB0byBGTEFDLgoJICBPdGhlcndpc2UgaXQgdGhpbmtzIHNlZWtpbmcgd2FzIHN1Y2Nlc3NmdWxsIGFuZCB0cmllcyB0byByZXdyaXRlCgkgIHBhcnRzIG9mIHRoZSBoZWFkZXJzIHdoaWNoIHRoZW4gZ2V0IGFwcGVuZGVkIHRvIHRoZSBvdXRwdXQuCgoyMDA4LTA4LTA3IDE2OjExOjAwICswMDAwICBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoJICAqIGV4dC9lc2QvZ3N0ZXNkLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhYy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFjay5jOiAocGx1Z2luX2luaXQpOgoJICAqIHN5cy9vc3MvZ3N0b3NzYXVkaW8uYzogKHBsdWdpbl9pbml0KToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyLmM6IChwbHVnaW5faW5pdCk6CgkgIE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlcgoJICB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjgyMikuCgoyMDA4LTA4LTA3IDE0OjQwOjEzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBzaW1wbHkgb3V0cHV0IGV2ZXJ5dGhpbmcgd2l0aCB3aWR0aD0zMiBhcyBnaXZlbiBieSBGTEFDIGFuZCBsZXQgYXVkaW9jb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gc2ltcGx5IG91dHB1dCBldmVyeXRoaW5nIHdpdGggd2lkdGg9MzIgYXMgZ2l2ZW4KCSAgYnkgRkxBQyBhbmQgbGV0IGF1ZGlvY29udmVydCBoYW5kbGUgdGhlIGNvbnZlcnNpb25zIGluc3RlYWQgb2YgZG9pbmcKCSAgdGhlbSBpbiBmbGFjZGVjLgoKMjAwOC0wOC0wNyAxMDoyMjozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IFdoZW4gb3V0cHV0dGluZyBhIHBhZCB0ZW1wbGF0ZSByYW5nZSBmb3IgdGhlIHNpemUsIGluY2x1ZGUgYSBmcmFtZXJhdGUgcmFuZ2UgdG9vLCB0byBhdm9pZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJzcmNfcHJvYmVfY2Fwc19mb3JfZm9ybWF0KToKCSAgV2hlbiBvdXRwdXR0aW5nIGEgcGFkIHRlbXBsYXRlIHJhbmdlIGZvciB0aGUgc2l6ZSwgaW5jbHVkZSBhIGZyYW1lcmF0ZQoJICByYW5nZSB0b28sIHRvIGF2b2lkICdub3QgYSByZWFsIHN1YnNldCBvZiB0ZW1wbGF0ZSBjYXBzJyBlcnJvcnMuCgoyMDA4LTA4LTA2IDE1OjM0OjU1ICswMDAwICBKb25hdGhhbiBNYXR0aGV3IDxub3R2ZXJ5c21hcnRAZ21haWwuY29tPgoKCSAgZXh0L2ZsYWMvOiBQb3J0IGZsYWN0YWcgdG8gMC4xMCwgYWRkIGRvY3VtZW50YXRpb24gZm9yIGl0IGFuZCBjbGVhbiBpdCB1cCBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnk6IEpvbmF0aGFuIE1hdHRoZXcgPG5vdHZlcnlzbWFydCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGV4dC9mbGFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mbGFjL2dzdGZsYWMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6IChnc3RfZmxhY190YWdfc2V0dXBfaW50ZXJmYWNlcyksCgkgIChnc3RfZmxhY190YWdfYmFzZV9pbml0KSwgKGdzdF9mbGFjX3RhZ19jbGFzc19pbml0KSwKCSAgKGdzdF9mbGFjX3RhZ19kaXNwb3NlKSwgKGdzdF9mbGFjX3RhZ19pbml0KSwKCSAgKGdzdF9mbGFjX3RhZ19zaW5rX3NldGNhcHMpLCAoZ3N0X2ZsYWNfdGFnX2NoYWluKSwKCSAgKGdzdF9mbGFjX3RhZ19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWN0YWcuaDoKCSAgUG9ydCBmbGFjdGFnIHRvIDAuMTAsIGFkZCBkb2N1bWVudGF0aW9uIGZvciBpdCBhbmQgY2xlYW4gaXQgdXAgYSBiaXQuCgkgIEZpeGVzIGJ1ZyAjNDEzODQxLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfYmFzZV9pbml0KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiAoZ3N0X2ZsYWNfZW5jX2Jhc2VfaW5pdCk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5oOgoJICBBZGQgZmxhY3RhZyBhbmQgZmxhY2VuYyB0byB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgbWFyawoJICB0aGUgcHJpdmF0ZSBwYXJ0cyBvZiB0aGUgZmxhY2RlYyBpbnN0YW5jZSBzdHJ1Y3R1cmUgYXMgcHJpdmF0ZS4KCSAgQWxzbyB1c2UgZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkgaW4gZmxhY2RlYyBhbmQKCSAgZmxhY2VuYy4KCjIwMDgtMDgtMDYgMTM6MTI6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogVXNlIGF1ZGlvL3gtcWRtIGZvciBjYXBzLiBDb2xsZWN0IHNvbWUgaW5mbyAtIG1wbGF5ZXIgaGFzIGEgZGVjb2RlciBmb3IgaXQgYnV0IGZmbXBlZyBkb2VzIG5vdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBVc2UgYXVkaW8veC1xZG0gZm9yIGNhcHMuIENvbGxlY3Qgc29tZSBpbmZvIC0gbXBsYXllciBoYXMgYSBkZWNvZGVyCgkgIGZvciBpdCBidXQgZmZtcGVnIGRvZXMgbm90LgoKMjAwOC0wOC0wNSAxNTowNTo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEhhbmRsZSB0aGUgbGlzdCBjaHVuayBhbmQgdXNlIGdzdF9yaWZmX3BhcnNlX2luZm8oKSB0byBwYXJzZSB0aGUgaW5mbyBzdWItY2h1bmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBIYW5kbGUgdGhlIGxpc3QgY2h1bmsgYW5kIHVzZSBnc3RfcmlmZl9wYXJzZV9pbmZvKCkgdG8gcGFyc2UgdGhlIGluZm8KCSAgc3ViLWNodW5rLgoKMjAwOC0wOC0wNSAxNDoyMjoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEhhbmRsZSB0aGUgYWNpZCBjaHVuayBhbmQgc2VuZCB0ZW1wbyBhcyBwYXJ0IG9mIHRhZ3MuIE90aGVyIGZpZWxkcyBhcmUgaW50ZXJlc3RpbmcgdG9vLCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBIYW5kbGUgdGhlIGFjaWQgY2h1bmsgYW5kIHNlbmQgdGVtcG8gYXMgcGFydCBvZiB0YWdzLiBPdGhlciBmaWVsZHMgYXJlCgkgIGludGVyZXN0aW5nIHRvbywgYnV0IG5lZWQgbW9yZSB0YWctZGVmaW5pdGlvbnMuIEZpeGVzICM1NDU0MzMuCgoyMDA4LTA4LTA1IDE0OjE2OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogUmVmYWN0b3Igd2F2cGFyc2UuIENhbGwgX3Jlc2V0KCkgZnJvbSBkaXNwb3NlKCkgYW5kIG1vdmUgb2xkIGNvZGUgZnJvbSBkaXNwb3NlIGludG8gcmVzZXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIFJlZmFjdG9yIHdhdnBhcnNlLiBDYWxsIF9yZXNldCgpIGZyb20gZGlzcG9zZSgpIGFuZCBtb3ZlIG9sZCBjb2RlIGZyb20KCSAgZGlzcG9zZSBpbnRvIHJlc2V0LiBUaGlzIHdheSB3ZSBkb24ndCBsZWFrIHRhZ2xpc3RzIHdoZW4gd2UgYWJvcnQKCSAgcGFyc2luZy4gRml4IHNvbWUgY29tbWVudHMuIE1vdmUgY29kZSBmb3Igc2tpcHBpbmcgYSBjaHVuayBpbnRvIGV4dHJhCgkgIGZ1bmN0aW9uLiBSZXBsYWNlIGNodW5rIHNpemVzIHdpdGggYSBjb25zdCB0byBlYXNlIHJlYWRhYmlsaXR5LgoKMjAwOC0wOC0wNSAxMzo1Nzo1NyArMDAwMCAgQXVyZWxpZW4gR3JpbWF1ZCA8Z3N0ZWx6ekB5YWhvby5mcj4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogSW1wcm92ZSB1ZHAgcG9ydCBzZXR1cC4gRml4ZXMgIzU0NTcxMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBdXJlbGllbiBHcmltYXVkIDxnc3RlbHp6IGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19hbGxvY191ZHBfcG9ydHMpOgoJICBJbXByb3ZlIHVkcCBwb3J0IHNldHVwLiBGaXhlcyAjNTQ1NzEwLgoKMjAwOC0wOC0wNSAxMzo1NDoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBBZGQgTVAxUyBkZXBheWxvYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAxc2RlcGF5LmM6IChnc3RfcnRwX21wMXNfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfbXAxc19kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfbXAxc19kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfbXAxc19kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfbXAxc19kZXBheV9wcm9jZXNzKSwKCSAgKGdzdF9ydHBfbXAxc19kZXBheV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9tcDFzX2RlcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX21wMXNfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfbXAxc19kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDFzZGVwYXkuaDoKCSAgQWRkIE1QMVMgZGVwYXlsb2FkZXIuCgkgICogZ3N0L3J0c3AvVVJMUzoKCSAgU29tZSBtb3JlIHNhbXBsZSBydHNwIHN0cmVhbXMuCgoyMDA4LTA4LTA1IDA4OjQzOjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvVVJMUzogQWRkIGFub3RoZXIgVVJMLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9VUkxTOgoJICBBZGQgYW5vdGhlciBVUkwuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzogKHRlc3RfdGFnbGliX2lkM211eF93aXRoX3RhZ3MpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnbGltaXRlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgoyMDA4LTA4LTA0IDA5OjE2OjQwICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IFByb3ZpZGUgY2JTaXplIGZpZWxkIGZvciBhdWRpbyBleHRyYV9kYXRhIHNpemUsIGFuZCB0YWtlIGNhcmUgdG8gcGFkIGV4dHJhX2RhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpX211eF9yaWZmX2dldF9hdmlfaGVhZGVyKToKCSAgUHJvdmlkZSBjYlNpemUgZmllbGQgZm9yIGF1ZGlvIGV4dHJhX2RhdGEgc2l6ZSwgYW5kIHRha2UgY2FyZSB0bwoJICBwYWQgZXh0cmFfZGF0YS4KCjIwMDgtMDgtMDQgMDc6MjM6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogUmV0dXJuIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF97c3RhcnQsc3RvcH1fdGFzayBpbnN0ZWFkIG9mIGhhcmQtY29kZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBSZXR1cm4gdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3tzdGFydCxzdG9wfV90YXNrIGluc3RlYWQgb2YgaGFyZC1jb2RlZAoJICBUUlVFLgoKMjAwOC0wOC0wNCAwNzoxNzozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvOiBBZGQga2V5d29yZCB0YWcgc3VwcG9ydC4gRml4ZXMgIzUyMDY5NCBmb3IgcXRkZW11eC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIEFkZCBrZXl3b3JkIHRhZyBzdXBwb3J0LiBGaXhlcyAjNTIwNjk0IGZvciBxdGRlbXV4LgoKMjAwOC0wOC0wNCAwNzowNTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgc3VwcG9ydCBmb3IgdG1wbyB0YWcgKEJQTSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgQWRkIHN1cHBvcnQgZm9yIHRtcG8gdGFnIChCUE0pLgoKMjAwOC0wOC0wMyAxMjoyMzo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiBTZXQgYW4gZXN0aW1hdGUgZm9yIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2FtcGxlcyB0aGF0IHdpbGwgYmUgZW5jb2RlZCBpZiBwb3NzaWJsZSB0byBoZWxwIGRlY29kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogKGdzdF9mbGFjX2VuY19xdWVyeV9wZWVyX3RvdGFsX3NhbXBsZXMpLAoJICAoZ3N0X2ZsYWNfZW5jX3Npbmtfc2V0Y2FwcyksIChnc3RfZmxhY19lbmNfd3JpdGVfY2FsbGJhY2spOgoJICBTZXQgYW4gZXN0aW1hdGUgZm9yIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2FtcGxlcyB0aGF0IHdpbGwgYmUgZW5jb2RlZAoJICBpZiBwb3NzaWJsZSB0byBoZWxwIGRlY29kZXJzIGlmIHRoZSBzdHJlYW1pbmZvIGNhbid0IGJlIHJld3JpdHRlbgoJICBsYXRlciAobGlrZSB3aGVuIG11eGluZyBpbnRvIE9nZyBjb250YWluZXJzKS4KCSAgQWRkIGEgd2FybmluZyBpZiB3ZSBnZXQgaGVhZGVyIHBhY2tldHMgYWZ0ZXIgZGF0YSBwYWNrZXRzIGFzIHRob3NlCgkgIHdpbGwgZ2V0IGxvc3Qgd2hlbiBtdXhpbmcgaW50byBPZ2csIGkuZS4gcmV3cml0aW5nIHRoZSBoZWFkZXJzIGRvZXNuJ3QKCSAgd29yay4KCjIwMDgtMDgtMDMgMTE6Mzg6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogU3VwcG9ydCBkZWNvZGluZyBvZiBhbGwgZGVwdGhzIGJldHdlZW4gNCBhbmQgMzIgYml0cyBhbmQgcmVhZCB0aGUgZGVwdGggZnJvbSB0aGUgc3RyZWFtaW5mbyBoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfbWV0YWRhdGFfY2FsbGJhY2spLAoJICAoZ3N0X2ZsYWNfZGVjX3dyaXRlKToKCSAgU3VwcG9ydCBkZWNvZGluZyBvZiBhbGwgZGVwdGhzIGJldHdlZW4gNCBhbmQgMzIgYml0cyBhbmQgcmVhZCB0aGUKCSAgZGVwdGggZnJvbSB0aGUgc3RyZWFtaW5mbyBoZWFkZXIgaWYgbmVlZGVkLiBBbHNvIHN1cHBvcnQgYWxsIHNhbXBsaW5nCgkgIHJhdGVzIGJldHdlZW4gMSBhbmQgNjU1MzUwIEh6LgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgKGdzdF9mbGFjX2VuY19jYXBzX2FwcGVuZF9zdHJ1Y3R1cmVfd2l0aF93aWR0aHMpLAoJICAoZ3N0X2ZsYWNfZW5jX3NpbmtfZ2V0Y2FwcyksIChnc3RfZmxhY19lbmNfc2lua19zZXRjYXBzKSwKCSAgKGdzdF9mbGFjX2VuY19jaGFpbik6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5oOgoJICBTdXBwb3J0IGVuY29kaW5nIGluIGFsbCBiaXQgZGVwdGhzIHN1cHBvcnRlZCBieSB0aGUgc3RyZWFtYWJsZQoJICBzdWJmb3JtYXQgKGkuZS4gOCwgMTIsIDE2LCAyMCBhbmQgMjQgYml0cykgYW5kIGFsbCBzYW1wbGluZyByYXRlcwoJICBiZXR3ZWVuIDEgSHogYW5kIDY1NTM1MCBIei4KCjIwMDgtMDgtMDMgMDk6MjM6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogU3VwcG9ydCBlbmNvZGluZyBvZiB1cCB0byA4IGNoYW5uZWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IChnc3RfZmxhY19lbmNfaW5pdCksCgkgIChnc3RfZmxhY19lbmNfc2lua19nZXRjYXBzKToKCSAgU3VwcG9ydCBlbmNvZGluZyBvZiB1cCB0byA4IGNoYW5uZWxzLgoKMjAwOC0wOC0wMiAyMTozOTowMSArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLio6IEZpeCBzZWVraW5nIHJhY2UgY29uZGl0aW9uIGluICM1NDAzMDAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBGaXggc2Vla2luZyByYWNlIGNvbmRpdGlvbiBpbiAjNTQwMzAwCgkgIFBhdGNoIEJ5OiBXb3V0ZXIgQ2xvZXRlbnMgIDx3b3V0ZXIgYXQgbWluZCBiZT4KCjIwMDgtMDgtMDIgMTg6MzU6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBXaGVuIHJlY2VpdmluZyBhIFNFRUsgZXZlbnQgb24gYSBzcGVjaWZpYyBwYWQgZmlyc3Qgc2VhcmNoIGZvciBhIHNlZWsgdGFibGUgZW50cnkgZm9yIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYWRlbXV4X2RvX2luZGV4X3NlZWspLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZlbnQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpOgoJICBXaGVuIHJlY2VpdmluZyBhIFNFRUsgZXZlbnQgb24gYSBzcGVjaWZpYyBwYWQgZmlyc3Qgc2VhcmNoIGZvciBhIHNlZWsKCSAgdGFibGUgZW50cnkgZm9yIHRoZSBzdHJlYW0gb2YgdGhlIHBhZCBhbmQgdGhlbiBmYWxsIGJhY2sgdG8gYW4gZW50cnkKCSAgZm9yIGEgZGlmZmVyZW50IHN0cmVhbS4KCjIwMDgtMDgtMDIgMTg6MjA6NDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEJ1aWxkIGRlcGVuZCBvbiBjb3JlIENWUyBmb3IgdGhlIGF0dGFjaG1lbnQgdGFnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jOiAoZ3N0X21hdHJvc2thX3JlZ2lzdGVyX3RhZ3MpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgQnVpbGQgZGVwZW5kIG9uIGNvcmUgQ1ZTIGZvciB0aGUgYXR0YWNobWVudCB0YWcuCgoyMDA4LTA4LTAyIDE4OjE4OjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEZWNvZGUgdGhlIGNvZGVjIHByaXZhdGUgZGF0YSBhbmQgZm9sbG93aW5nIENvbnRlbnRFbmNvZGluZyBpZiBuZWNlc3NhcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkgICogZ3N0L21hdHJvc2thL2x6by5jOiAoZ2V0X2J5dGUpLCAoZ2V0X2xlbiksIChjb3B5KSwKCSAgKGNvcHlfYmFja3B0ciksIChsem8xeF9kZWNvZGUpLCAobWFpbik6CgkgICogZ3N0L21hdHJvc2thL2x6by5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3JlYWRfdHJhY2tfZW5jb2RpbmcpLAoJICAoZ3N0X21hdHJvc2thX2RlY29tcHJlc3NfZGF0YSksIChnc3RfbWF0cm9za2FfZGVjb2RlX2RhdGEpLAoJICAoZ3N0X21hdHJvc2thX2RlY29kZV9idWZmZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlY29kZV9jb250ZW50X2VuY29kaW5ncyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcmVhZF90cmFja19lbmNvZGluZ3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2spOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgRGVjb2RlIHRoZSBjb2RlYyBwcml2YXRlIGRhdGEgYW5kIGZvbGxvd2luZyBDb250ZW50RW5jb2RpbmcgaWYKCSAgbmVjZXNzYXJ5LgoJICBTdXBwb3J0IGJ6aXAyLCBsem8gYW5kIGhlYWRlciBzdHJpcHBlZCBjb21wcmVzc2lvbi4gRm9yIGx6byB1c2UgdGhlCgkgIGZmbXBlZyBsem8gaW1wbGVtZW50YXRpb24gYXMgbGlibHpvIGlzIEdQTCBsaWNlbnNlZC4KCSAgRml4IHpsaWIgZGVjb21wcmVzc2lvbi4KCjIwMDgtMDgtMDIgMTg6MTE6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogRml4IG11eGluZyBvZiBNUDMvTVAyIHdpdGggZGlmZmVyZW50IE1QRUcgdmVyc2lvbnMgYnkgY2FsY3VsYXRpbmcgdGhlIGR1cmF0aW9uIG9mIGEgZnJhbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKToKCSAgRml4IG11eGluZyBvZiBNUDMvTVAyIHdpdGggZGlmZmVyZW50IE1QRUcgdmVyc2lvbnMgYnkgY2FsY3VsYXRpbmcgdGhlCgkgIGR1cmF0aW9uIG9mIGEgZnJhbWUgd2l0aCB0aGUgbmV3IG1wZWdhdWRpb3ZlcnNpb24gY2FwcyBmaWVsZC4KCjIwMDgtMDgtMDIgMTg6MDY6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC4qOiBBbGxvdyBhbiBpbmZpbml0ZSBudW1iZXIgb2Ygc3RyZWFtIGluc2lkZSBNYXRyb3NrYSBjb250YWluZXJzIGFuZCB1c2UgYSBHUHRyQXJyYXkgZm9yIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9maW5hbGl6ZSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfY2xhc3NfaW5pdCksIChnc3RfbWF0cm9za2FfZGVtdXhfaW5pdCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfY29tYmluZV9mbG93cyksIChnc3RfbWF0cm9za2FfZGVtdXhfcmVzZXQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3N0cmVhbV9mcm9tX251bSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfdHJhY2tudW1iZXJfdW5pcXVlKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKSwgKGdzdF9tYXRyb3NrYV9kZW11eF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3luY19zdHJlYW1zKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguaDoKCSAgQWxsb3cgYW4gaW5maW5pdGUgbnVtYmVyIG9mIHN0cmVhbSBpbnNpZGUgTWF0cm9za2EgY29udGFpbmVycyBhbmQgdXNlCgkgIGEgR1B0ckFycmF5IGZvciBzdG9yaW5nIHRoZW0gaW5zdGVhZCBvZiBhbGxvd2luZyAib25seSIgMTI3IHN0cmVhbXMuCgoyMDA4LTA4LTAyIDE4OjAxOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvOiBGaXggaW5kZW50aW9uIGV2ZXJ5d2hlcmUuIEEgYnJva2VuIGluZGVudCB2ZXJzaW9uIGhhcyBhZGRlZCBuZXdsaW5lcyBhZnRlciBldmVyeSBzaW5nbGUgZGVjbGFyYXRpb24gc28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfcmVhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9lYm1sX3JlYWRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lYm1sX3JlYWRfZWxlbWVudF9sZXZlbF91cCksCgkgIChnc3RfZWJtbF9yZWFkX3BlZWtfYnl0ZXMpLCAoZ3N0X2VibWxfcmVhZF9lbGVtZW50X2lkKSwKCSAgKGdzdF9lYm1sX3JlYWRfZWxlbWVudF9sZW5ndGgpLCAoZ3N0X2VibWxfcGVla19pZCksCgkgIChnc3RfZWJtbF9yZWFkX2dldF9sZW5ndGgpLCAoZ3N0X2VibWxfcmVhZF9za2lwKSwKCSAgKGdzdF9lYm1sX3JlYWRfYnVmZmVyKSwgKGdzdF9lYm1sX3JlYWRfYnl0ZXMpLAoJICAoZ3N0X2VibWxfcmVhZF91aW50KSwgKGdzdF9lYm1sX3JlYWRfc2ludCksIChfZXh0MmRibCksCgkgIChnc3RfZWJtbF9yZWFkX2Zsb2F0KSwgKGdzdF9lYm1sX3JlYWRfYXNjaWkpLCAoZ3N0X2VibWxfcmVhZF9kYXRlKSwKCSAgKGdzdF9lYm1sX3JlYWRfbWFzdGVyKSwgKGdzdF9lYm1sX3JlYWRfYmluYXJ5KSwKCSAgKGdzdF9lYm1sX3JlYWRfaGVhZGVyKToKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOiAoZ3N0X2VibWxfd3JpdGVfZWxlbWVudF9pZCksCgkgIChnc3RfZWJtbF93cml0ZV9lbGVtZW50X3NpemUpLCAoZ3N0X2VibWxfd3JpdGVfdWludCksCgkgIChnc3RfZWJtbF93cml0ZV9zaW50KSwgKGdzdF9lYm1sX3dyaXRlX2FzY2lpKSwKCSAgKGdzdF9lYm1sX3dyaXRlX21hc3Rlcl9zdGFydCksIChnc3RfZWJtbF93cml0ZV9tYXN0ZXJfZmluaXNoKSwKCSAgKGdzdF9lYm1sX3JlcGxhY2VfdWludCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfcmVzZXQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3JlYWRfdHJhY2tfZW5jb2RpbmcpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3JlYWRfdHJhY2tfZW5jb2RpbmdzKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKSwgKGdzdF9tYXRyb3NrYWRlbXV4X2RvX2luZGV4X3NlZWspLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3NlbmRfZXZlbnQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZlbnQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2luaXRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV90cmFja3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4X2N1ZXRyYWNrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleF9wb2ludGVudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleCksIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5mbyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfdGFnKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYXR0YWNoZWRfZmlsZSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYXR0YWNobWVudHMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NoYXB0ZXJzKSwgKGdzdF9tYXRyb3NrYV9lYm1sbnVtX3VpbnQpLAoJICAoZ3N0X21hdHJvc2thX2VibWxudW1fc2ludCksIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF9oZHJfYnVmKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wdXNoX2ZsYWNfY29kZWNfcHJpdl9kYXRhKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wdXNoX3hpcGhfY29kZWNfcHJpdl9kYXRhKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wdXNoX2R2ZF9jbHV0X2NoYW5nZV9ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX21wZWdfc2VxX2hlYWRlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3d2cGtfaGVhZGVyKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9jaGVja19zdWJ0aXRsZV9idWZmZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlY29kZV9idWZmZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2spLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NsdXN0ZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NvbnRlbnRzX3NlZWtlbnRyeSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY29udGVudHMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2xvb3Bfc3RyZWFtX3BhcnNlX2lkKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbSksIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfdmlkZW9fY2FwcyksIChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9jbGFzc19pbml0KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfcmVzZXQpLCAoZ3N0X21hdHJvc2thX211eF9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKSwKCSAgKHhpcGgzX3N0cmVhbWhlYWRlcl90b19jb2RlY2RhdGEpLAoJICAodm9yYmlzX3N0cmVhbWhlYWRlcl90b19jb2RlY2RhdGEpLAoJICAodGhlb3JhX3N0cmVhbWhlYWRlcl90b19jb2RlY2RhdGEpLAoJICAoZ3N0X21hdHJvc2thX211eF9hdWRpb19wYWRfc2V0Y2FwcyksCgkgIChnc3RfbWF0cm9za2FfbXV4X3JlcXVlc3RfbmV3X3BhZCksIChnc3RfbWF0cm9za2FfbXV4X3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfdHJhY2tfaGVhZGVyKSwgKGdzdF9tYXRyb3NrYV9tdXhfc3RhcnQpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9zaW1wbGVfdGFnKSwgKGdzdF9tYXRyb3NrYV9tdXhfZmluaXNoKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfYmVzdF9wYWQpLCAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfY29sbGVjdGVkKSwgKGdzdF9tYXRyb3NrYV9tdXhfY2hhbmdlX3N0YXRlKToKCSAgRml4IGluZGVudGlvbiBldmVyeXdoZXJlLiBBIGJyb2tlbiBpbmRlbnQgdmVyc2lvbiBoYXMgYWRkZWQgbmV3bGluZXMKCSAgYWZ0ZXIgZXZlcnkgc2luZ2xlIGRlY2xhcmF0aW9uIHNvbWUgdGltZSBhZ28uCgoyMDA4LTA4LTAyIDE3OjU5OjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogSWYgbm8gVHJhY2tzIGFyZSBmb3VuZCBlcnJvciBvdXQgaW5zdGVhZCBvZiB0cnlpbmcgaXQgYWdhaW4gdW50aWwgdGhlIGVuZCBvZiB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbV9wYXJzZV9pZCk6CgkgIElmIG5vIFRyYWNrcyBhcmUgZm91bmQgZXJyb3Igb3V0IGluc3RlYWQgb2YgdHJ5aW5nIGl0IGFnYWluIHVudGlsIHRoZQoJICBlbmQgb2YgdGltZS4KCjIwMDgtMDgtMDIgMTc6NTc6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBGaXggZGVtdXhpbmcgb2YgcmF3IGludGVnZXIgYXVkaW8uIFRoZSBzYW1wbGVzIGFyZSB1bnNpZ25lZCBvbmx5IGZvciA4IGJpdCBhbmQgc2lnbmVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBzKToKCSAgRml4IGRlbXV4aW5nIG9mIHJhdyBpbnRlZ2VyIGF1ZGlvLiBUaGUgc2FtcGxlcyBhcmUgdW5zaWduZWQgb25seSBmb3IgOAoJICBiaXQgYW5kIHNpZ25lZCBvdGhlcndpc2UsIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMDgtMDgtMDIgMTc6NTQ6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogQWRkIG1vcmUgcmF3IFlVViBmb3JtYXRzIHRvIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBmb3JtYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIEFkZCBtb3JlIHJhdyBZVVYgZm9ybWF0cyB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZm9ybWF0cy4KCjIwMDgtMDgtMDIgMTc6NTI6MTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogQWRkIHN1cHBvcnQgZm9yIG11eGluZyByYXcgZmxvYXQgYXVkaW8gbm93IHRoYXQgdGhlIHNwZWMgZGVmaW5lcyB0aGUgZW5kaWFubmVzcyBhbmQgYWRkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKToKCSAgQWRkIHN1cHBvcnQgZm9yIG11eGluZyByYXcgZmxvYXQgYXVkaW8gbm93IHRoYXQgdGhlIHNwZWMgZGVmaW5lcyB0aGUKCSAgZW5kaWFubmVzcyBhbmQgYWRkIHN1cHBvcnQgZm9yIG11eGluZyByYXcgaW50ZWdlciBhdWRpbyB3aXRoIDI0IGFuZAoJICAzMiBiaXRzLgoJICBBbGxvdyBtdXhpbmcgb2YgbW9yZSB0aGFuIDggYXVkaW8gY2hhbm5lbHMuCgoyMDA4LTA4LTAyIDE3OjQ3OjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEFkZCBsb2NraW5nIHRvIHRoZSBnbG9iYWwgYXJyYXkgb2YgdXNlZCB0cmFjayBVSURzIHRvIHByZXZlbnQgcmFuZG9tIGNyYXNoZXMgaWYgbW9yZSB0aGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9jcmVhdGVfdWlkKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfcmVzZXQpLCAoZ3N0X21hdHJvc2thX211eF9zdGFydCk6CgkgIEFkZCBsb2NraW5nIHRvIHRoZSBnbG9iYWwgYXJyYXkgb2YgdXNlZCB0cmFjayBVSURzIHRvIHByZXZlbnQgcmFuZG9tCgkgIGNyYXNoZXMgaWYgbW9yZSB0aGFuIGEgc2luZ2xlIG1hdHJvc211eCBpbnN0YW5jZSBpcyB1c2VkLgoJICBVc2UgNjQgYml0IHZhbHVlcyBmb3IgdGhlIHRyYWNrIFVJRHMuCgkgIFVzZSB0aGUgZ2xvYmFsIEdSYW5kb20gb2YgR0xpYiBpbnN0ZWFkIG9mIGNyZWF0aW5nIG91ciBvd24gb25lCgkgIGZvciB0aGUgZmV3IHJhbmRvbSBudW1iZXJzIHdlIG5lZWQgZXZlcnkgc2luZ2xlIHRpbWUuCgoyMDA4LTA4LTAyIDE3OjE4OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IEFsd2F5cyBwb3N0IHRoZSBhdWRpby1jb2RlYyB0YWcsIG5vdCBvbmx5IGlmIG90aGVyIHRhZ3MgYXJlIHByZXNlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19zZXR1cF9zZWVrYWJsZV9kZWNvZGVyKSwKCSAgKGdzdF9mbGFjX2RlY19zZXR1cF9zdHJlYW1fZGVjb2RlciksCgkgIChnc3RfZmxhY19kZWNfdXBkYXRlX21ldGFkYXRhKToKCSAgQWx3YXlzIHBvc3QgdGhlIGF1ZGlvLWNvZGVjIHRhZywgbm90IG9ubHkgaWYgb3RoZXIgdGFncyBhcmUgcHJlc2VudC4KCjIwMDgtMDgtMDEgMjM6MjY6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuOS4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjkuMQoKMjAwOC0wOC0wMSAxNTo1ODo0NyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBhZGQgbWlzc2luZyBnc3RyZWFtZXIgcGx1Z2lucyB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIGdzdHJlYW1lciBwbHVnaW5zIHRvIHNwZWMgZmlsZQoKPT09IHJlbGVhc2UgMC4xMC45ID09PQoKMjAwOC0wNy0zMSAyMjoxMDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXB1bHNlYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogZ3N0LXBsdWdpbnMtZ29vZC5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC45CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuOQoKMjAwOC0wNy0zMSAyMTo1MDo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9ISy5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDctMzEgMjE6MjY6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogRG9uJ3QgdGhyb3cgYW4gZXJyb3Igd2hlbiBzb3VwIGNvbXBsZXRlcyBhIG1zZyB3aXRoIHN0YXR1cyAnY2FuY2VsbGVkJywgYXMgdGhhdCBpbmRpY2F0ZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIERvbid0IHRocm93IGFuIGVycm9yIHdoZW4gc291cCBjb21wbGV0ZXMgYSBtc2cgd2l0aCBzdGF0dXMKCSAgJ2NhbmNlbGxlZCcsIGFzIHRoYXQgaW5kaWNhdGVzIHdlIGNhbmNlbGxlZCBhIHJlcXVlc3Qgd2hpbGUKCSAgc2h1dHRpbmcgZG93biBvciBzZWVraW5nLCBhbmQgaXQncyBub3QgYW4gZXJyb3IuCgkgIEZpeGVzOiAjNTQwMzAwIGFnYWluLgoKMjAwOC0wNy0yOCAyMDoxNzo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuOC40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC44LjQgcHJlLXJlbGVhc2UKCjIwMDgtMDctMjUgMTQ6NTA6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBzZWdtZW50LXN0b3AgcmVncmVzc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCk6CgkgIEZpeCBzZWdtZW50LXN0b3AgcmVncmVzc2lvbi4KCSAgQWRkIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIHNlZ21lbnRzIGluIHF1aWNrdGltZSBmaWxlcyBieSBXaW0gVGF5bWFucy4KCSAgRml4ZXMgIzU0NDUwOQoKMjAwOC0wNy0yNCAyMzo1NTo1OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuOC4zIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC44LjMgcHJlLXJlbGVhc2UKCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL3B0X0JSLnBvOgoJICBBZGQgcHRfQlIgdHJhbnNsYXRpb24KCjIwMDgtMDctMjMgMjI6MDE6MjAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nb29tLzogRml4IGJ1aWxkIHdpdGggTVNWQzogaW5jbHVkZSBnbGliLmggdG8gZGVmaW5lIGlubGluZSBhcHByb3ByaWF0ZWx5LCB1c2UgaGVhZGVyIGd1YXJkcyB3aGVyZSBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2NvbnZvbHZlX2Z4LmM6CgkgICogZ3N0L2dvb20vZmlsdGVycy5jOgoJICAqIGdzdC9nb29tL2dvb21fY29uZmlnLmg6CgkgICogZ3N0L2dvb20vZ29vbV9jb3JlLmM6CgkgICogZ3N0L2dvb20vZ29vbV90b29scy5oOgoJICBGaXggYnVpbGQgd2l0aCBNU1ZDOiBpbmNsdWRlIGdsaWIuaCB0byBkZWZpbmUgaW5saW5lIGFwcHJvcHJpYXRlbHksCgkgIHVzZSBoZWFkZXIgZ3VhcmRzIHdoZXJlIG5lZWRlZC4KCSAgKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgRml4IGJ1aWxkIHdpdGggTVNWQzogdXNlIFdTQSogY29uc3RhbnRzL2Z1bmN0aW9ucyB3aGVyZSBhcHByb3ByaWF0ZSwgdXNlCgkgIGdfc25wcmludGYgcmF0aGVyIHRoYW4gc25wcmludGYuCgkgIEZpeGVzICM1NDQ0MzMuCgoyMDA4LTA3LTIyIDA2OjMyOjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZGVidWcvZ3N0dGFnaW5qZWN0Lio6IFNlbnQgdGFncyBpbiBfdHJhbnNmb3JtX2lwKCkgaW5zdGVhZCBvZiBfc3RhcnQoKS4gRml4ZXMgIzU0MzQwNCBwYXJ0aWFsbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9nc3R0YWdpbmplY3QuYzoKCSAgKiBnc3QvZGVidWcvZ3N0dGFnaW5qZWN0Lmg6CgkgIFNlbnQgdGFncyBpbiBfdHJhbnNmb3JtX2lwKCkgaW5zdGVhZCBvZiBfc3RhcnQoKS4gRml4ZXMgIzU0MzQwNAoJICBwYXJ0aWFsbHkuCgoyMDA4LTA3LTE5IDE0OjEyOjM5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC44LjIgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjguMiBwcmUtcmVsZWFzZQoKMjAwOC0wNy0xOSAxMzo1MDo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvTWFrZWZpbGUuYW06IEZpbmlzaCBob29raW5nIHVwIHB1bHNlYXVkaW8gcGx1Z2luIHRvIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICBGaW5pc2ggaG9va2luZyB1cCBwdWxzZWF1ZGlvIHBsdWdpbiB0byB0aGUgYnVpbGQuCgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXJjdHJsLmM6CgkgIEZpeCBjb21waWxhdGlvbiBlcnJvci4KCjIwMDgtMDctMTkgMTM6MjM6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcG8vOiBBZGQgbmV3IGxpdGh1bmlhbiB0cmFuc2xhdGlvbiwgYW5kIGFkZCBmcmVuY2ggdG8gdGhlIExJTkdVQVMgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9sdC5wbzoKCSAgQWRkIG5ldyBsaXRodW5pYW4gdHJhbnNsYXRpb24sIGFuZCBhZGQgZnJlbmNoIHRvIHRoZSBMSU5HVUFTCgkgIGZpbGUuCgoyMDA4LTA3LTE5IDEzOjA4OjQyICswMDAwICBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlckBtaW5kLmJlPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogRml4IFNvdXAgSFRUUCBzb3VyY2Ugc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzoKCSAgRml4IFNvdXAgSFRUUCBzb3VyY2Ugc2Vla2luZy4KCSAgUGF0Y2ggQnk6IFdvdXRlciBDbG9ldGVucyAgPHdvdXRlciBhdCBtaW5kIGJlPgoJICBGaXhlczogIzU0MDMwMAoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBuZXcgY2hlY2sgcHJvZ3JhbXMuCgoyMDA4LTA3LTE5IDAxOjAxOjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE1vdmUgcmVwbGF5Z2FpbiBhbmQgaW50ZXJsZWF2ZSBwbHVnaW5zIGZyb20gLWJhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBNb3ZlIHJlcGxheWdhaW4gYW5kIGludGVybGVhdmUgcGx1Z2lucyBmcm9tIC1iYWQuCgkgIEZpeGVzOiAjNTQzNDA2CgkgIEZpeGVzOiAjNTM2MjI4CgoyMDA4LTA3LTE4IDIwOjAzOjA3ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogUmV2ZXJ0IElTTyBiYXNlIG1lZGlhIHNwZWMgYmFzZWQgcGl4ZWwtYXNwZWN0LXJhdGlvIGNhbGN1bGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIFJldmVydCBJU08gYmFzZSBtZWRpYSBzcGVjIGJhc2VkIHBpeGVsLWFzcGVjdC1yYXRpbyBjYWxjdWxhdGlvbi4KCSAgRml4ZXMgIzU0MzMwMC4KCjIwMDgtMDctMTcgMTY6NDI6NTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06IEZpeCBtaW5vciBidWlsZCBpc3N1ZXMgb24gbWFjb3N4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIEZpeCBtaW5vciBidWlsZCBpc3N1ZXMgb24gbWFjb3N4LgoJICBGaXhlcyAjNTQzMDU0CgoyMDA4LTA3LTE3IDE0OjQwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgT25seSB1c2UgLVduby1hdHRyaWJ1dGVzICh3aGljaCBpcyB0aGVyZSB0byB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiB0aGUgdGFnbGliIDEuNSBoZWFkZXJzKSBpZiB0aGUgYysrIGNvbXBpbGVyIGFjdHVhbGx5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzo6CgkgICogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbTo6CgkgIE9ubHkgdXNlIC1Xbm8tYXR0cmlidXRlcyAod2hpY2ggaXMgdGhlcmUgdG8gd29yayBhcm91bmQgYQoJICBidWcgaW4gdGhlIHRhZ2xpYiAxLjUgaGVhZGVycykgaWYgdGhlIGMrKyBjb21waWxlciBhY3R1YWxseQoJICBzdXBwb3J0cyBpdCAoIzU0MzI1NSkuCgoyMDA4LTA3LTE3IDEzOjU0OjM4ICswMDAwICBCZW5vaXQgRm91ZXQgPGJlbm9pdC5mb3VldEBwdXJwbGVsYWJzLmNvbT4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogQXZvaWQgY29tcGlsZXIgd2FybmluZyBieSBpbml0aWFsaXNpbmcgdmFyaWFibGUgdG8gTlVMTCAoIzU0MzI1OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQmVub2l0IEZvdWV0IDxiZW5vaXQuZm91ZXQgcHVycGxlbGFicyBjb20+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfbmVnb3RpYXRlKToKCSAgQXZvaWQgY29tcGlsZXIgd2FybmluZyBieSBpbml0aWFsaXNpbmcgdmFyaWFibGUgdG8gTlVMTCAoIzU0MzI1OSkuCgoyMDA4LTA3LTE0IDE3OjE3OjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZGVidWcvZ3N0dGFnaW5qZWN0LmM6IERvbid0IHBhc3MgTlVMTCB0YWdsaXN0cyB0byBnc3RfdGFnX2xpc3RfaXNfZW1wdHkoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC5jOiAoZ3N0X3RhZ19pbmplY3Rfc3RhcnQpOgoJICBEb24ndCBwYXNzIE5VTEwgdGFnbGlzdHMgdG8gZ3N0X3RhZ19saXN0X2lzX2VtcHR5KCkuCgoyMDA4LTA3LTE0IDE3OjE1OjQyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cC1wYXlsb2FkaW5nLmM6IChydHBfcGlwZWxpbmVfY3JlYXRlKSwKCSAgKHJ0cF9waXBlbGluZV9ydW4pOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6IChzb3VwaHR0cHNyY19zdWl0ZSk6CgkgIERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KCjIwMDgtMDctMTQgMTY6Mjg6MjUgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiBBbGlnbiBkb2N1bWVudGF0aW9uIHdpdGggcmVhbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBBbGlnbiBkb2N1bWVudGF0aW9uIHdpdGggcmVhbGl0eS4KCjIwMDgtMDctMTQgMTM6MTE6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzogRUFJX0FERFJGQU1JTFkgd2FzIG9ic29sZXRlZCBpbiBCU0QgYXQgc29tZSBwb2ludC4gRGVmaW5lIGl0IHRvIHRoZSBvbGQgdmFsdWUgKDEpIGlmIGl0J3Mgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6CgkgIEVBSV9BRERSRkFNSUxZIHdhcyBvYnNvbGV0ZWQgaW4gQlNEIGF0IHNvbWUgcG9pbnQuIERlZmluZSBpdCB0byB0aGUKCSAgb2xkIHZhbHVlICgxKSBpZiBpdCdzIG5vdCBkZWZpbmVkIHdoaWNoIHNob3VsZCBub3QgY2F1c2UgYW55IHByb2JsZW1zCgkgIGFzIHdlJ3JlIHVzaW5nIGl0IGludGVybmFsIG9ubHkgYW55d2F5LgoKMjAwOC0wNy0xNCAxMzowMjo0OCArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCBidWlsZCBvZiBhdmlkZW11eCBvbiBiaWcgZW5kaWFuIGFyY2hpdGVjdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcmlmZl9wYXJzZV92cHJwKToKCSAgRml4IGJ1aWxkIG9mIGF2aWRlbXV4IG9uIGJpZyBlbmRpYW4gYXJjaGl0ZWN0dXJlcy4KCjIwMDgtMDctMTAgMjA6NDc6NTYgKzAwMDAgIFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzQGxjYy51ZmNnLmVkdS5icj4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQ29ycmVjdGx5IGRpc3Rpbmd1aXNoIDhiaXQgdnMgMTZiaXQgcmF3IGF1ZGlvLiAgRml4ZXMgIzU0MjQxMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zcyBhdCBsY2MgZG90IHVmY2cgZG90IGVkdSBkb3QgYnI+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9hdWRpb19jYXBzKToKCSAgQ29ycmVjdGx5IGRpc3Rpbmd1aXNoIDhiaXQgdnMgMTZiaXQgcmF3IGF1ZGlvLiAgRml4ZXMgIzU0MjQxMC4KCjIwMDgtMDctMDggMjE6MDU6MTggKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBTZXQgcGl4ZWwtYXNwZWN0LXJhdGlvIGluIGNhcHMgdXNpbmcgZGlzcGxheSB3aWR0aCBhbmQgaGVpZ2h0IHByb3ZpZGVkIGluIHRyYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIFNldCBwaXhlbC1hc3BlY3QtcmF0aW8gaW4gY2FwcyB1c2luZyBkaXNwbGF5IHdpZHRoIGFuZCBoZWlnaHQKCSAgcHJvdmlkZWQgaW4gdHJhY2suCgoyMDA4LTA3LTA4IDEzOjU5OjUxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IERvbid0IGluY2x1ZGUgRVJST1JfQ0ZMQUdTIGluIEdTVF9DWFhGTEFHUyBhcyBpdCBtaWdodCBpbmNsdWRlIGZsYWdzIHRoYXQgYXJlIGludmFsaWQgZm9yIEMrKy4gRml4ZXMgYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBpbmNsdWRlIEVSUk9SX0NGTEFHUyBpbiBHU1RfQ1hYRkxBR1MgYXMgaXQgbWlnaHQgaW5jbHVkZQoJICBmbGFncyB0aGF0IGFyZSBpbnZhbGlkIGZvciBDKysuIEZpeGVzIGJ1ZyAjNTE2NTA5LgoKMjAwOC0wNy0wOCAxMjo1MTozNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRG9uJ3QgdXNlIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0ZW1lbnRzIGFuZCB2YXJpYWJsZSBsZW5ndGggYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogKGdzdF9kdjEzOTRzcmNfdXJpX3NldF91cmkpOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4X2VuY19zaW5rX2dldGNhcHMpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19zZXRfd3BfY29uZmlnKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IChnc3RfdjRsMnNyY19maXhhdGUpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdCk6CgkgICogdGVzdHMvZXhhbXBsZXMvZXF1YWxpemVyL2RlbW8uYzogKG1lc3NhZ2VfaGFuZGxlcik6CgkgICogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzogKG1lc3NhZ2VfaGFuZGxlcik6CgkgICogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogKG1lc3NhZ2VfaGFuZGxlcik6CgkgIERvbid0IHVzZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cyBhbmQgdmFyaWFibGUgbGVuZ3RoIGFycmF5cy4KCjIwMDgtMDctMDcgMjE6Mjg6NTggKzAwMDAgIERhbmllbCBEcmFrZSA8ZHNkQGdlbnRvby5vcmc+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IFRyeSBwcm9ncmVzc2l2ZSB2aWRlbyBpZiBpbnRlcmxhY2VkIGZhaWxzLiBGaXhlcyBidWcgIzU0MTk1NiBhbmQgdGhlIHVzYWdlIG9mIHY0bDJzcmMgb24gT0xQQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW5pZWwgRHJha2UgPGRzZCBhdCBnZW50b28gZG90IG9yZz4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19zZXRfY2FwdHVyZSksCgkgIChnc3RfdjRsMnNyY19nZXRfbmVhcmVzdF9zaXplKToKCSAgVHJ5IHByb2dyZXNzaXZlIHZpZGVvIGlmIGludGVybGFjZWQgZmFpbHMuIEZpeGVzIGJ1ZyAjNTQxOTU2CgkgIGFuZCB0aGUgdXNhZ2Ugb2YgdjRsMnNyYyBvbiBPTFBDLgoKMjAwOC0wNy0wNyAxNTozNDoxMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5Lio6IFJldmVydCBsYXN0IGNoYW5nZTogT25seSB0aGUgaml0dGVyYnVmZmVyIGlzIGFibGUgdG8gY29udmVydCBSVFAgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6IChnc3RfcnRwX3NwZWV4X2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9zcGVleF9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuaDoKCSAgUmV2ZXJ0IGxhc3QgY2hhbmdlOiBPbmx5IHRoZSBqaXR0ZXJidWZmZXIgaXMgYWJsZSB0byBjb252ZXJ0IFJUUCB0bwoJICBHc3RyZWFtZXIgdGltZXN0YW1wcyBhbmQgbm9ybWFsIChkZSlwYXlsb2FkZXJzIHNob3VsZCBzaW1wbHkgY29weSBpdC4KCSAgUmVvcGVucyBidWcgIzU0MTc4Ny4KCjIwMDgtMDctMDcgMTA6MzA6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9ydHAvZ3N0cnRwdnJhd2RlcGF5LmM6IEluY2x1ZGUgc3RkbGliLmggZm9yIGF0b2koKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuYzoKCSAgSW5jbHVkZSBzdGRsaWIuaCBmb3IgYXRvaSgpLgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgVXNlIGZsb2F0aW5nIHBvaW50IG1hdGggZm9yIGxhdGVuY2llcyA8IDAgc2VjIGluIGxvZyBvdXRwdXQuCgoyMDA4LTA3LTA3IDEwOjE2OjA3ICswMDAwICBUb21hc3ogR3JvYmVsbnkgPHRvbWFzekBncm9iZWxueS5vc3dpZWNlbmlhLm5ldD4KCgkgIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS4qOiBUYWtlIHRpbWVzdGFtcCBmcm9tIHRoZSBSVFAgcGFja2V0IGFzIGEgZmlyc3Qgc3RlcCB0byBmaXggcHJvYmxlbXMgd2l0aCB0cmFuc21pc3Npb24gb3Zlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbWFzeiBHcm9iZWxueSA8dG9tYXN6IGF0IGdyb2JlbG55IGRvdCBvc3dpZWNlbmlhIGRvdCBuZXQ+CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6IChnc3RfcnRwX3NwZWV4X2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9zcGVleF9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuaDoKCSAgVGFrZSB0aW1lc3RhbXAgZnJvbSB0aGUgUlRQIHBhY2tldCBhcyBhIGZpcnN0IHN0ZXAgdG8gZml4IHByb2JsZW1zCgkgIHdpdGggdHJhbnNtaXNzaW9uIG92ZXIgUlRQIHdoZW4gdGhlIG5ldHdvcmsgaXMgbm90IHJlbGlhYmxlLgoJICBGaXhlcyBidWcgIzU0MTc4Ny4KCjIwMDgtMDctMDUgMTk6MDE6MjggKzAwMDAgIFRlcm8gU2Fhcm5pIDx0ZXJvLnNhYXJuaUBnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBGaXggcGFyc2luZyBvZiB1ZHA6Ly8gVVJJcyBjb250YWluaW5nIElQdjYgYWRkcmVzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRlcm8gU2Fhcm5pIDx0ZXJvIGRvdCBzYWFybmkgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19zZXRfdXJpKToKCSAgRml4IHBhcnNpbmcgb2YgdWRwOi8vIFVSSXMgY29udGFpbmluZyBJUHY2IGFkZHJlc3Nlcy4KCSAgRml4ZXMgYnVnICM1NDE2NTAuCgoyMDA4LTA3LTA0IDIwOjQzOjA3ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOiBEbyBub3QgbGVhayBpbmNvbWluZyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogKGdzdF9nZGtfcGl4YnVmX2NoYWluKToKCSAgRG8gbm90IGxlYWsgaW5jb21pbmcgYnVmZmVycy4KCjIwMDgtMDctMDMgMTk6Mjc6NTMgKzAwMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IEZpeCBidWlsZCBvZiB0aGUgUlRQIHBsdWdpbiB3aXRoIG1pbmd3MzIgYnkgbGlua2luZyB0byB3czJfMzIgZm9yIGh0b25zKCkgYW5kIGh0b25sKCkuIEZpeGVzIGJ1ZyAjNTQxNDEyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4gZG90IGxlc3BpYXUgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBidWlsZCBvZiB0aGUgUlRQIHBsdWdpbiB3aXRoIG1pbmd3MzIgYnkgbGlua2luZyB0byB3czJfMzIKCSAgZm9yIGh0b25zKCkgYW5kIGh0b25sKCkuIEZpeGVzIGJ1ZyAjNTQxNDEyLgoKMjAwOC0wNy0wMiAwOTo1MToxNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEhhbmRsZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcnkgaW4gREVGQVVMVCBmb3JtYXQgaWYgdGhlIHBhZCdzIHRyYWNrIGhhcyBhIGRlZmF1bHQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pLCAoZ3N0X21hdHJvc2thX2RlbXV4X3F1ZXJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9lbGVtZW50X3F1ZXJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCk6CgkgIEhhbmRsZSBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcnkgaW4gREVGQVVMVCBmb3JtYXQgaWYgdGhlCgkgIHBhZCdzIHRyYWNrIGhhcyBhIGRlZmF1bHQgZnJhbWUgZHVyYXRpb24gc2V0LgoJICBGaXggc2Vla2luZyBub3cgdGhhdCB0aGUgc2VnbWVudCdzIGR1cmF0aW9uIGRvZXNuJ3QgY29udGFpbiB0aGUKCSAgKHBvc3NpYmx5IHdyb25nIG9yIGluYWNjdXJhdGUpIGR1cmF0aW9uIG9mIHRoZSBNYXRyb3NrYSBmaWxlLgoKMjAwOC0wNy0wMiAwOTowNDo1MCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiBVc2UgTkFOIGNvbnN0YW50IGluc3RlYWQgb2YgMC4wLzAuMCBpZiBwb3NzaWJsZS4gTkFOIGlzIGRlZmluZWQgaW4gbWF0aC5oIGV4Y2VwdCBvbiBNU1ZDIHdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogKF9leHQyZGJsKToKCSAgVXNlIE5BTiBjb25zdGFudCBpbnN0ZWFkIG9mIDAuMC8wLjAgaWYgcG9zc2libGUuIE5BTiBpcyBkZWZpbmVkCgkgIGluIG1hdGguaCBleGNlcHQgb24gTVNWQyB3aGVyZSBpdCBpcyBkZWZpbmVkIGluIHhtYXRoLmguCgkgIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggTVNWQy4KCjIwMDgtMDctMDIgMDg6NTc6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC4qOiBEb24ndCBzZXQgdGhlIHNlZ21lbnQgZHVyYXRpb24gdG8gdGhlIGR1cmF0aW9uIGZyb20gdGhlIE1hdHJvc2thIGhlYWRlciBhcyB0aGlzIHZhbHVlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5mbyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcF9zdHJlYW1fcGFyc2VfaWQpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICBEb24ndCBzZXQgdGhlIHNlZ21lbnQgZHVyYXRpb24gdG8gdGhlIGR1cmF0aW9uIGZyb20gdGhlIE1hdHJvc2thCgkgIGhlYWRlciBhcyB0aGlzIHZhbHVlIGNvdWxkIGJlIHdyb25nIGFuZCBpcyBqdXN0IGluZm9ybWF0aW9uYWwuCgoyMDA4LTA3LTAyIDA4OjQ3OjAwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogSWYgbm8gVHJhY2tzIGVsZW1lbnQgaXMgZm91bmQgdW50aWwgdGhlIGZpcnN0IENsdXN0ZXIgaXMgZm91bmQgc2VhcmNoIGl0IGFuZCBlcnJvciBvdXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcF9zdHJlYW1fcGFyc2VfaWQpOgoJICBJZiBubyBUcmFja3MgZWxlbWVudCBpcyBmb3VuZCB1bnRpbCB0aGUgZmlyc3QgQ2x1c3RlciBpcyBmb3VuZAoJICBzZWFyY2ggaXQgYW5kIGVycm9yIG91dCBpZiBub25lIGlzIGZvdW5kIGluIHRoZSBjb21wbGV0ZSBmaWxlLgoKMjAwOC0wNy0wMiAwODoxNDozNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IFJlc3luYyBub24tc3VidGl0bGUgdHJhY2tzIHRvbyBpZiBhIHRvbyBsYXJnZSBnYXAgY29tcGFyZWQgdG8gb3RoZXIgdHJhY2tzIGlzIGRldGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9zeW5jX3N0cmVhbXMpOgoJICBSZXN5bmMgbm9uLXN1YnRpdGxlIHRyYWNrcyB0b28gaWYgYSB0b28gbGFyZ2UgZ2FwIGNvbXBhcmVkIHRvIG90aGVyCgkgIHRyYWNrcyBpcyBkZXRlY3RlZC4KCjIwMDgtMDctMDEgMTM6Mjg6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogQWRkIHJhdyB2aWRlbyBwYXkgYW5kIGRlcGF5bG9hZGVycywgc2VlIFJGQzQxNzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZyYXdkZXBheS5jOiAoZ3N0X3J0cF92cmF3X2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX3ZyYXdfZGVwYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX3ZyYXdfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX3ZyYXdfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX3ZyYXdfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX3ZyYXdfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfdnJhd19kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHB2cmF3ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHZyYXdwYXkuYzogKGdzdF9ydHBfdnJhd19wYXlfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0cF92cmF3X3BheV9iYXNlX2luaXQpLCAoZ3N0X3J0cF92cmF3X3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfdnJhd19wYXlfaW5pdCksIChnc3RfcnRwX3ZyYXdfcGF5X2ZpbmFsaXplKSwKCSAgKGdzdF9ydHBfdnJhd19wYXlfc2V0Y2FwcyksIChnc3RfcnRwX3ZyYXdfcGF5X2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cF92cmF3X3BheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHB2cmF3cGF5Lmg6CgkgIEFkZCByYXcgdmlkZW8gcGF5IGFuZCBkZXBheWxvYWRlcnMsIHNlZSBSRkM0MTc1LgoKMjAwOC0wNi0zMCAyMjo1MzozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiBEb24ndCByZXR1cm4gR1NUX0ZMT1dfRVJST1Igd2hlbiBidWZmZXJfYWxsb2MgZmFpbHMgLSByZXR1cm4gd2hhdGV2ZXIgaXQgcmV0dXJuZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6CgkgIERvbid0IHJldHVybiBHU1RfRkxPV19FUlJPUiB3aGVuIGJ1ZmZlcl9hbGxvYyBmYWlscyAtIHJldHVybgoJICB3aGF0ZXZlciBpdCByZXR1cm5lZC4KCjIwMDgtMDYtMjkgMTk6NTI6NTEgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L2F2aS9hdmktaWRzLmg6IEFkZCB2cHJwIGNodW5rIHJlbGF0ZWQgc3RydWN0dXJlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9hdmktaWRzLmg6CgkgIEFkZCB2cHJwIGNodW5rIHJlbGF0ZWQgc3RydWN0dXJlcy4KCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3JpZmZfcGFyc2VfdnBycCksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSk6CgkgIFBhcnNlIG9wdGlvbmFsIHZwcnAgY2h1bmsgYW5kIGFkZCBjYWxjdWxhdGVkIHBpeGVsLWFzcGVjdC1yYXRpbwoJICB0byBjYXBzLiAgRml4ZXMgIzUzOTQ4Mi4KCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpX211eF9wYWRfcmVzZXQpLAoJICAoZ3N0X2F2aV9tdXhfdmlkc2lua19zZXRfY2FwcyksIChnc3RfYXZpX211eF9yaWZmX2dldF9hdmlfaGVhZGVyKToKCSAgQWRkIGEgdnBycCBjaHVuayBpZiBub24tdHJpdmFsIHBpeGVsLWFzcGVjdC1yYXRpbyBwcm92aWRlZCBpbiBjYXBzLgoKMjAwOC0wNi0yOCAxOTozMTo0NiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzogQWRqdXN0IGF2aW11eCB1bml0IHRlc3QgYWNjb3JkaW5nIHRvIGluY3JlYXNlZCBzdHJlYW1oZWFkZXIgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpbXV4LmM6IChjaGVja19hdmltdXhfcGFkKToKCSAgQWRqdXN0IGF2aW11eCB1bml0IHRlc3QgYWNjb3JkaW5nIHRvIGluY3JlYXNlZCBzdHJlYW1oZWFkZXIgc2l6ZS4KCjIwMDgtMDYtMjcgMTg6MTE6MDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgRGlyYWMgc3RyZWFtIHR5cGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgRGlyYWMgc3RyZWFtIHR5cGUKCjIwMDgtMDYtMjcgMTU6MjU6MDAgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguKjogQWRkIDggYnl0ZXMgdG8gY3VycmVudCBzdHJlYW1oZWFkZXIgdG8gbWFrZSBmb3IgYSBjb21wbGV0ZSBvbmUgYW5kIHRvIG1ha2UgbW9yZSBwbGF5ZXJzIGhhcHB5LiAgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpX211eF9yaWZmX2dldF9hdmlfaGVhZGVyKToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICBBZGQgOCBieXRlcyB0byBjdXJyZW50IHN0cmVhbWhlYWRlciB0byBtYWtlIGZvciBhIGNvbXBsZXRlIG9uZQoJICBhbmQgdG8gbWFrZSBtb3JlIHBsYXllcnMgaGFwcHkuICBGaXhlcyAjNTE5NDYwLgoKMjAwOC0wNi0yNiAxNjozNjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogRG9uJ3QgaW5jbHVkZSB1bnVzZWQgZ3N0djRsMnhvdmVybGF5LmguIEZpeGVzIGJ1aWxkIGluIGNhc2Ugd2hlcmUgWDExIGhlYWRlcnMgYXJlIG5vdCBpbnN0YWxsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzo6CgkgIERvbid0IGluY2x1ZGUgdW51c2VkIGdzdHY0bDJ4b3ZlcmxheS5oLiBGaXhlcyBidWlsZAoJICBpbiBjYXNlIHdoZXJlIFgxMSBoZWFkZXJzIGFyZSBub3QgaW5zdGFsbGVkLgoKMjAwOC0wNi0yNiAxMDowNzo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9kdi9nc3Rkdi5jOiBGaXggY29tcGlsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3Rkdi5jOiAocGx1Z2luX2luaXQpOgoJICBGaXggY29tcGlsYXRpb24uCgoyMDA4LTA2LTI2IDA5OjM3OjIzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L2R2L2dzdGR2LmM6IE1hcmtpbmcgcmFuayBvZiBkdmRlYyBhcyBHU1RfUkFOS19NQVJHSU5BTCBzaW5jZSBpdCdzIHRoZSBzbG93ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3Rkdi5jOiAocGx1Z2luX2luaXQpOgoJICBNYXJraW5nIHJhbmsgb2YgZHZkZWMgYXMgR1NUX1JBTktfTUFSR0lOQUwgc2luY2UgaXQncyB0aGUgc2xvd2VzdAoJICBEViBkZWNvZGVyIGF2YWlsYWJsZS4KCSAgRml4ZXMgIzUzMjM5MwoKMjAwOC0wNi0yNSAwODoxMjoxOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYzogQ2FsbCBnZXRzb2NrbmFtZSgpIGFmdGVyIHRoZSBjYWxsIHRvIGJpbmQoKSB0byBnZXQgdXBkYXRlZCB2YWx1ZXMgZm9yIHRoZSBwb3J0LCBldGMuIFRoaXMgZml4ZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX3N0YXJ0KToKCSAgQ2FsbCBnZXRzb2NrbmFtZSgpIGFmdGVyIHRoZSBjYWxsIHRvIGJpbmQoKSB0byBnZXQgdXBkYXRlZCB2YWx1ZXMKCSAgZm9yIHRoZSBwb3J0LCBldGMuIFRoaXMgZml4ZXMgdGhlIHVzYWdlIG9mIHVkcHNyYyBvbiBhbm9ueW1vdXMKCSAgYmluZGluZyBhbmQgaXQncyB1c2FnZSBieSBydHNwc3JjLiBGaXhlcyBidWdzICM1MzkzNzIsICM1Mzk1NDguCgkgIFRoYW5rcyB0byBBdXJlbGllbiBHcmltYXVkIGZvciBwb2ludGluZyBvdXQgdGhlIG9idmlvdXMgZml4LgoKMjAwOC0wNi0yNSAwNzo1NzoyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdnBhY2suYzogUmVtb3ZlIHdvcmthcm91bmQgZm9yIGEgYnVnIGluIGlkZW50aXR5IHRoYXQgaXMgZml4ZWQgaW4gMC4xMC4yMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdnBhY2suYzogKGJ1c19oYW5kbGVyKToKCSAgUmVtb3ZlIHdvcmthcm91bmQgZm9yIGEgYnVnIGluIGlkZW50aXR5IHRoYXQgaXMgZml4ZWQgaW4gMC4xMC4yMC4KCjIwMDgtMDYtMjUgMDY6MzY6NTggKzAwMDAgIEphc29uIERvbmVuZmVsZCA8QnVnWmlsbGFAengyYzQuY29tPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogRml4IEhUVFAgYXV0aCBzdXBwb3J0IHdpdGggdXNlci9wYXNzd29yZCBwYXNzZWQgdmlhIHRoZSBVUkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmFzb24gRG9uZW5mZWxkIDxCdWdaaWxsYSBhdCB6eDJjNCBkb3QgY29tPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cF9odHRwX3NyY19nb3RfaGVhZGVyc19jYik6CgkgIEZpeCBIVFRQIGF1dGggc3VwcG9ydCB3aXRoIHVzZXIvcGFzc3dvcmQgcGFzc2VkIHZpYSB0aGUgVVJJLgoJICBGaXhlcyBidWcgIzU0MDA2Ny4KCjIwMDgtMDYtMjQgMTU6NDI6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IERlcGVuZCBvbiByZWxlYXNlZCB2ZXJzaW9ucyBvZiBjb3JlIGFuZCAtYmFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEZXBlbmQgb24gcmVsZWFzZWQgdmVyc2lvbnMgb2YgY29yZSBhbmQgLWJhc2UuCgoyMDA4LTA2LTIzIDE2OjEzOjQwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBGaXggYnVnZ3kgZm9ybWF0IHN0cmluZ3MgaW4gbWFjcm9zLiAobWFrZXMgaXQgYnVpbGQgb24gT1MgWCBhZ2Fpbi4uLikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDYtMjMgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcmVhZF90cmFja19lbmNvZGluZyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayk6IEZpeCBidWdneQoJICBmb3JtYXQgc3RyaW5ncyBpbiBtYWNyb3MuIChtYWtlcyBpdCBidWlsZCBvbiBPUyBYIGFnYWluLi4uKQoKMjAwOC0wNi0yMCAxNjoyNDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBBZGRlZCBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICBBZGRlZCBkZWJ1Zy4KCjIwMDgtMDYtMjAgMTU6MjE6NTkgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIHN3aXRjaCB2NGwyc3JjIGZyb20gZXhwZXJpbWVudGFsIHRvIG5vcm1hbCBidWlsZC4gRml4ZXMgIzUzNjgzMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3dpdGNoIHY0bDJzcmMgZnJvbSBleHBlcmltZW50YWwgdG8gbm9ybWFsIGJ1aWxkLiBGaXhlcyAjNTM2ODMxCgoyMDA4LTA2LTE5IDExOjI0OjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc28gdGhhdCB3ZSBjYW4gY29tcGlsZSBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBnNzI2cGF5LmM6IChnc3RfcnRwX2c3MjZfcGF5X3NldGNhcHMpOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHNvIHRoYXQgd2UgY2FuIGNvbXBpbGUgYWdhaW4uCgoyMDA4LTA2LTE5IDExOjA2OjI5ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5jOiBObyBuZWVkIHRvIGNoZWNrIGZvciBhdWRpby9HNzIzIGFuZCBhdWRpby8zMktBRFBDTSBoZXJlIGFzIHRoZXkgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5jOiAoZ3N0X3J0cF9nNzI2X3BheV9zZXRjYXBzKToKCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgYXVkaW8vRzcyMyBhbmQgYXVkaW8vMzJLQURQQ00gaGVyZSBhcyB0aGV5IGFyZQoJICBubyBsb25nZXIgc3VwcG9ydGVkLgoKMjAwOC0wNi0xOSAxMDo1ODo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IFVzZSBHX0dJTlQ2NF9DT05TVEFOVCwgdGhpcyBmaXhlcyB0aGUgZHVyYXRpb24gcXVlcnkgb24gZmlsZXMgd2l0aG91dCBrbm93biBsZW5ndGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc3JjX3F1ZXJ5KSwgKGdzdF93YXZwYWNrX3BhcnNlX2NyZWF0ZV9zcmNfcGFkKToKCSAgVXNlIEdfR0lOVDY0X0NPTlNUQU5ULCB0aGlzIGZpeGVzIHRoZSBkdXJhdGlvbiBxdWVyeSBvbiBmaWxlcyB3aXRob3V0CgkgIGtub3duIGxlbmd0aC4KCjIwMDgtMDYtMTkgMTA6NDg6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS86IEZpeCBkZW11eGluZyBvZiBXYXZQYWNrIGZpbGVzLiBNdXhpbmcgaXMgc3RpbGwgYnJva2VuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfd3Zwa19oZWFkZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2F1ZGlvX2NhcHMpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgRml4IGRlbXV4aW5nIG9mIFdhdlBhY2sgZmlsZXMuIE11eGluZyBpcyBzdGlsbCBicm9rZW4uCgoyMDA4LTA2LTE5IDA5OjEyOjU1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvOiBBZGQgYSAidmZ1bmMiIHRvIHRoZSB0cmFjayBjb250ZXh0IGZvciBwb3N0cHJvY2Vzc2luZyBmcmFtZXMgYW5kIGNvbnZlcnQgdGhlIHdhdnBhY2sgYW5kIHN1YnRpdGxlIHBvc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfdHJhY2tfZnJlZSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX21wZWdfc2VxX2hlYWRlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3d2cGtfaGVhZGVyKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9jaGVja19zdWJ0aXRsZV9idWZmZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2spLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3ZpZGVvX2NhcHMpLCAoZ3N0X21hdHJvc2thX2RlbXV4X2F1ZGlvX2NhcHMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3N1YnRpdGxlX2NhcHMpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgQWRkIGEgInZmdW5jIiB0byB0aGUgdHJhY2sgY29udGV4dCBmb3IgcG9zdHByb2Nlc3NpbmcgZnJhbWVzIGFuZAoJICBjb252ZXJ0IHRoZSB3YXZwYWNrIGFuZCBzdWJ0aXRsZSBwb3N0cHJvY2Vzc2luZyB0byB0aGlzIHZmdW5jLgoJICBDb3B5IGJ1ZmZlciBmbGFncyBpbiB0aG9zZSBmdW5jdGlvbnMgdG8gdGhlIG5ldyBidWZmZXJzIHRvby4KCSAgUGFyc2UgQ29kZWNTdGF0ZSBlbGVtZW50cyBvZiBCbG9ja3MuCgkgIEFkZCBhIHBvc3Rwcm9jZXNzaW5nIGZ1bmN0aW9uIGZvciBNUEVHIHZpZGVvIHRoYXQgYWRkcyB0aGUgc2VxdWVuY2UKCSAgaGVhZGVyIGZyb20gdGhlIGNvZGVjIHByaXZhdGUgZGF0YSBvciBjb2RlYyBzdGF0ZSB0byB0aGUgZnJhbWVzIGlmCgkgIGl0J3Mgbm90IGFscmVhZHkgdGhlcmUuCgoyMDA4LTA2LTE5IDA4OjIyOjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogSWYgYSBnYXAgb2YgbW9yZSB0aGFuIDEvMiBzZWNvbmQgaXMgZm91bmQgaW4gb25lIHN0cmVhbSBzZW5kIGEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayk6CgkgIElmIGEgZ2FwIG9mIG1vcmUgdGhhbiAxLzIgc2Vjb25kIGlzIGZvdW5kIGluIG9uZSBzdHJlYW0gc2VuZCBhCgkgIE5FV1NFR01FTlQgZXZlbnQgdG8gbm90IHN0YWxsIHRoZSBwaXBlbGluZSBpZiB0aGUgZ2FwIGlzIHRvbyBsYXJnZS4KCSAgVGhpcyBhbHNvIGZpeGVzIE1hdHJvc2thIGZpbGVzIHdoZXJlIHRoZSBmaXJzdCBidWZmZXIgZG9lc24ndCBzdGFydAoJICBhdCB0aW1lc3RhbXAgMC4gRml4ZXMgYnVnICM0MjkzMjIuCgkgIFRoZSBkdXJhdGlvbiBvZiBhIGJsb2NrIGlzIHRoZSBkZWZhdWx0IGR1cmF0aW9uIG11bHRpcGxpZWQgd2l0aCB0aGUKCSAgbnVtYmVyIG9mIGxhY2VzLiBFdmVyeSBsYWNlIGlzIG9uZSBmcmFtZSBhbmQgdGhlIGRlZmF1bHQgZHVyYXRpb24KCSAgaXMgdGhlIGR1cmF0aW9uIG9mIG9uZSBmcmFtZS4gVGhpcyBmaXhlcyBwbGF5YmFjayBvZiBmaWxlcyB0aGF0IHVzZQoJICBsYWNpbmcgZm9yIHNvbWUgdHJhY2tzLgoKMjAwOC0wNi0xOCAyMDowOToyOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IFVwZGF0ZSBGSVhNRS9UT0RPcyBhbmQgb25seSBpZ25vcmUgRU9TIGF0IHRoZSBjZW50cmFsLCBpbXBvcnRhbnQgcGxhY2UgaW5zdGVhZCBvZiBzZXZlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NvbnRlbnRzX3NlZWtlbnRyeSk6CgkgIFVwZGF0ZSBGSVhNRS9UT0RPcyBhbmQgb25seSBpZ25vcmUgRU9TIGF0IHRoZSBjZW50cmFsLCBpbXBvcnRhbnQgcGxhY2UKCSAgaW5zdGVhZCBvZiBzZXZlcmFsIHBsYWNlcy4KCjIwMDgtMDYtMTggMTY6NTU6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzogRml4IGNhcHMsIFNlZSAjNTM4ODkxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzoKCSAgRml4IGNhcHMsIFNlZSAjNTM4ODkxLgoKMjAwOC0wNi0xOCAxMDoyODoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEltcHJvdmUgZGVidWcgb3V0cHV0IGV2ZXJ5d2hlcmUgYW5kIGZpeCB0aGUgRU9TIGxvZ2ljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3RyZWFtX2Zyb21fbnVtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9lbmNvZGluZ19jbXApLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2VuY29kaW5nX29yZGVyX3VuaXF1ZSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcmVhZF90cmFja19lbmNvZGluZyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcmVhZF90cmFja19lbmNvZGluZ3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3RyYWNrbnVtYmVyX3VuaXF1ZSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3N0cmVhbSksIChnc3RfbWF0cm9za2FfZGVtdXhfaW5pdF9zdHJlYW0pLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX3RyYWNrcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5kZXhfY3VldHJhY2spLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4X3BvaW50ZW50cnkpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4KSwgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YV9pZF9zaW1wbGVfdGFnKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YV9pZF90YWcpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX21ldGFkYXRhKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9hdHRhY2hlZF9maWxlKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9hdHRhY2htZW50cyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY2hhcHRlcnMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3N5bmNfc3RyZWFtcyksIChnc3RfbWF0cm9za2FfZGVjb2RlX2J1ZmZlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY2x1c3RlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY29udGVudHNfc2Vla2VudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jb250ZW50cyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcF9zdHJlYW1fcGFyc2VfaWQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2xvb3ApOgoJICBJbXByb3ZlIGRlYnVnIG91dHB1dCBldmVyeXdoZXJlIGFuZCBmaXggdGhlIEVPUyBsb2dpYy4KCSAgQ2hlY2sgdGhlIHZhbHVlcyBvZiB0aGUgQ29udGVudEVuY29kaW5nIGVsZW1lbnRzIG1vcmUgc3RyaWN0bHkgYW5kCgkgIGRvbid0IHVzZSB0cmFja3MgZm9yIHdoaWNoIGl0J3MgaW52YWxpZC4KCSAgQ2hlY2sgdGhhdCB0aGUgdHJhY2sgbnVtYmVyIGlzIHVuaXF1ZSBmb3IgdGhpcyBzdHJlYW0uCgkgIENoZWNrIHRoYXQgc2VlayBwb3NpdGlvbnMgYXJlIGJlbG93IEdfTUFYSU5UNjQgYXMgb3VyIHNlZWtzIGFyZQoJICBpbnQ2NC1iYXNlZCBhbmQgb3ZlcmZsb3dzIHdpbGwgZmFpbCBiYWRseS4KCSAgQWZ0ZXIgc2Vla3MgYWxzbyBkb24ndCBwdXNoIFNpbXBsZUJsb2NrcyB1bnRpbCB0aGUgZmlyc3Qgb25lCgkgIGNvbnRhaW5pbmcgYSBrZXlmcmFtZSBpcyBmb3VuZC4gQmVmb3JlIHRoaXMgd2FzIGRvbmUgb25seSBmb3Igbm9ybWFsCgkgIEJsb2Nrcy4KCSAgVXBkYXRlIHNvbWUgRklYTUUvVE9ET3MuCgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfcmVhZF9wZWVrX2J5dGVzKSwKCSAgKGdzdF9lYm1sX3JlYWRfdXRmOCksIChnc3RfZWJtbF9yZWFkX2hlYWRlcik6CgkgIEltcHJvdmUgZGVidWcgb3V0cHV0LgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYzoKCSAgKGdzdF9tYXRyb3NrYV90cmFja19pbml0X3ZpZGVvX2NvbnRleHQpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKToKCSAgUmVtb3ZlIGV5ZSBtb2RlIGFuZCBkb24ndCBwYXJzZSBpdCBhbnltb3JlLiBXZSBjYW4ndCB1c2UgdGhhdAoJICBpbmZvcm1hdGlvbiBpbiBHU3RyZWFtZXIgeWV0IHNvIGl0J3MgdXNlbGVzcy4KCjIwMDgtMDYtMTggMTA6MTI6NTcgKzAwMDAgIG1lcnNhZCA8bWVyc2FkQGF4aXMuY29tPgoKCSAgZ3N0L3J0cC86IEFkZGVkIEc3MjYgcGF5L2RlcGF5bG9hZGVycy4gRml4ZXMgIzUzODg5MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBtZXJzYWQgPG1lcnNhZCBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyNmRlcGF5LmM6IChnc3RfcnRwX2c3MjZfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfZzcyNl9kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfZzcyNl9kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfZzcyNl9kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfZzcyNl9kZXBheV9wcm9jZXNzKSwKCSAgKGdzdF9ydHBfZzcyNl9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBnNzI2ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjZwYXkuYzogKGdzdF9ydHBfZzcyNl9wYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfZzcyNl9wYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2c3MjZfcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9nNzI2X3BheV9zZXRjYXBzKSwgKGdzdF9ydHBfZzcyNl9wYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyNnBheS5oOgoJICBBZGRlZCBHNzI2IHBheS9kZXBheWxvYWRlcnMuIEZpeGVzICM1Mzg4OTEuCgoyMDA4LTA2LTE3IDEwOjE0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvVVJMUzogU29tZSBtb3JlIHVybHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL1VSTFM6CgkgIFNvbWUgbW9yZSB1cmxzLgoJICAqIGdzdC9zbXB0ZS9iYXJib3h3aXBlcy5jOgoJICBBZGQgYSBjb21tZW50CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjQtYWxzYXNyYy1QQ01BLnNoOgoJICBGaXggdHlwbywgYWRkIGF1ZGlvcmVzYW1wbGUgdG8gdGhlIHBpcGVsaW5lLgoKMjAwOC0wNi0xNyAxMDowNTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9saWJtbmcvOiBTb21ld2hhdCBwb3J0IG1uZ2VuYyBhbmQgbW5nZGVjIHRvIDAuMTAuIERvZXMgbm90IHdvcmsgeWV0IGFuZCBoYXMgbWFueSBiaXRzIGlmZGVmZmVkIG91dCBzdGlsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYm1uZy9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGlibW5nL2dzdG1uZy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9saWJtbmcvZ3N0bW5nZGVjLmM6IChnc3RfbW5nX2RlY19iYXNlX2luaXQpLAoJICAoZ3N0X21uZ19kZWNfY2xhc3NfaW5pdCksIChnc3RfbW5nX2RlY19zaW5rX3NldGNhcHMpLAoJICAoZ3N0X21uZ19kZWNfaW5pdCksIChnc3RfbW5nX2RlY19zcmNfZ2V0Y2FwcyksIChnc3RfbW5nX2RlY19sb29wKSwKCSAgKGdzdF9tbmdfZGVjX2dldF9wcm9wZXJ0eSksIChnc3RfbW5nX2RlY19zZXRfcHJvcGVydHkpLAoJICAobW5nZGVjX2Vycm9yKSwgKG1uZ2RlY19vcGVuc3RyZWFtKSwgKG1uZ2RlY19jbG9zZXN0cmVhbSksCgkgIChnc3RfbW5nX2RlY19zaW5rX2V2ZW50KSwgKG1uZ2RlY19yZWFkZGF0YSksIChtbmdkZWNfc2V0dGltZXIpLAoJICAobW5nZGVjX3Byb2Nlc3NoZWFkZXIpLCAobW5nZGVjX2dldGNhbnZhc2xpbmUpLCAobW5nZGVjX3JlZnJlc2gpLAoJICAoZ3N0X21uZ19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5oOgoJICAqIGV4dC9saWJtbmcvZ3N0bW5nZW5jLmM6IChnc3RfbW5nX2VuY19iYXNlX2luaXQpLAoJICAoZ3N0X21uZ19lbmNfY2xhc3NfaW5pdCksIChnc3RfbW5nX2VuY19zaW5rX3NldGNhcHMpLAoJICAoZ3N0X21uZ19lbmNfaW5pdCksIChnc3RfbW5nX2VuY19jaGFpbiksCgkgIChnc3RfbW5nX2VuY19nZXRfcHJvcGVydHkpLCAoZ3N0X21uZ19lbmNfc2V0X3Byb3BlcnR5KToKCSAgKiBleHQvbGlibW5nL2dzdG1uZ2VuYy5oOgoJICBTb21ld2hhdCBwb3J0IG1uZ2VuYyBhbmQgbW5nZGVjIHRvIDAuMTAuIERvZXMgbm90IHdvcmsgeWV0IGFuZCBoYXMgbWFueQoJICBiaXRzIGlmZGVmZmVkIG91dCBzdGlsbC4KCjIwMDgtMDYtMTYgMTE6MzQ6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBXaGVuIGNvbXBhcmluZyBpbmRleCBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIHRpbWUgY29tcGFyZSB0aGVpciBibG9jayBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2luZGV4X2NvbXBhcmUpOgoJICBXaGVuIGNvbXBhcmluZyBpbmRleCBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIHRpbWUgY29tcGFyZSB0aGVpcgoJICBibG9jayBudW1iZXIuCgoyMDA4LTA2LTE2IDExOjMxOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYXR0YWNoZWRfZmlsZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYXR0YWNoZWRfZmlsZSkKCSAgSW5pdCB2YXJpYWJsZSB0byBOVUxMIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTA2LTE2IDEwOjU5OjM5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvOiBQYXJzZSBBdHRhY2htZW50cyBhbmQgcG9zdCB0aGVtIGFzIEdTVF9UQUdfSU1BR0UgaWYgd2UgZGV0ZWN0IGl0IGFzIGltYWdlIGFuZCBvdGhlcndpc2UgYXMgR1NUX1RBR19BVFQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9hdHRhY2hlZF9maWxlKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9hdHRhY2htZW50cyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY29udGVudHNfc2Vla2VudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbV9wYXJzZV9pZCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jOiAoZ3N0X21hdHJvc2thX3JlZ2lzdGVyX3RhZ3MpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EuYzogKHBsdWdpbl9pbml0KToKCSAgUGFyc2UgQXR0YWNobWVudHMgYW5kIHBvc3QgdGhlbSBhcyBHU1RfVEFHX0lNQUdFIGlmIHdlIGRldGVjdAoJICBpdCBhcyBpbWFnZSBhbmQgb3RoZXJ3aXNlIGFzIEdTVF9UQUdfQVRUQUNITUVOVC4gSW5jbHVkZSBmaWxlbmFtZQoJICBhbmQgZGVzY3JpcHRpb24gb2YgdGhlIGF0dGFjaG1lbnRzIGluIHRoZSBjYXBzLiBGaXhlcyBidWcgIzUzNzYyMi4KCjIwMDgtMDYtMTYgMTA6MDk6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogQWRkIG1vZGUgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4X2VuY19tb2RlX2dldF90eXBlKSwKCSAgKGdzdF9zcGVleF9lbmNfY2xhc3NfaW5pdCksIChnc3Rfc3BlZXhfZW5jX3NpbmtfZ2V0Y2FwcyksCgkgIChnc3Rfc3BlZXhfZW5jX2dldF9sYXRlbmN5KSwgKGdzdF9zcGVleF9lbmNfZ2V0X3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF9zcGVleF9lbmNfc3JjX3F1ZXJ5KSwgKGdzdF9zcGVleF9lbmNfaW5pdCksCgkgIChnc3Rfc3BlZXhfZW5jX3NldHVwKSwgKGdzdF9zcGVleF9lbmNfcHVzaF9idWZmZXIpLAoJICAoZ3N0X3NwZWV4X2VuY19jaGFpbiksIChnc3Rfc3BlZXhfZW5jX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3BlZXhfZW5jX3NldF9wcm9wZXJ0eSk6CgkgIEFkZCBtb2RlIHByb3BlcnR5LgoJICBTb21lIGNsZWFudXBzLCBhZGQgbW9yZSBkZWJ1ZyBpbmZvLgoJICBBZGQgbGF0ZW5jeSBxdWVyeS4KCjIwMDgtMDYtMTYgMDk6NTQ6MjcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogUmV0dXJuIEdTVF9GTE9XX1VORVhQRUNURUQgaW5zdGVhZCBvZiBHU1RfRkxPV19FUlJPUiBvbiBzaG9ydCByZWFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfcmVhZF9wZWVrX2J5dGVzKToKCSAgUmV0dXJuIEdTVF9GTE9XX1VORVhQRUNURUQgaW5zdGVhZCBvZiBHU1RfRkxPV19FUlJPUiBvbiBzaG9ydCByZWFkcy4KCSAgSWYgd2UgZ2V0IGxlc3MgYnl0ZXMgdGhhbiByZXF1ZXN0ZWQgd2UgY2FuJ3QgZG8gYW55dGhpbmcgZXhjZXB0IGRvaW5nCgkgIG91ciBFT1MgbG9naWMuCgoyMDA4LTA2LTE1IDE5OjA5OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvOiBVc2UgYSBHQXJyYXkgZm9yIHN0b3JpbmcgdGhlIEN1ZSAoaS5lLiBzZWVrKSBpbmZvcm1hdGlvbiwgc3RvcmUgdGhlIEN1ZVRyYWNrUG9zaXRpb25zIGZvciBldmVyeSB0cmFjaywuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfcmVzZXQpLAoJICAoZ3N0X21hdHJvc2thZGVtdXhfZG9faW5kZXhfc2VlayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5kZXhfY3VldHJhY2spLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4X3BvaW50ZW50cnkpLAoJICAoZ3N0X21hdHJvc2thX2luZGV4X2NvbXBhcmUpLCAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YSk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBVc2UgYSBHQXJyYXkgZm9yIHN0b3JpbmcgdGhlIEN1ZSAoaS5lLiBzZWVrKSBpbmZvcm1hdGlvbiwgc3RvcmUKCSAgdGhlIEN1ZVRyYWNrUG9zaXRpb25zIGZvciBldmVyeSB0cmFjaywgc3RvcmUgdGhlIGJsb2NrIG51bWJlcgoJICBhbmQgb3B0aW1pemUgc2VhcmNoaW5nIGluIHRoZSBhcnJheSBieSBzb3J0aW5nIGl0IGFmdGVyIHRoZSBsYXN0CgkgIGVsZW1lbnQgd2FzIGFkZGVkLgoJICBGaXggYSBzbWFsbCBtZW1vcnkgbGVhayB3aGVuIHRyeWluZyB0byBwYXJzZSBhIHRhZ3MgZWxlbWVudCB0aGF0IHdhcwoJICBhbHJlYWR5IHBhcnNlZC4KCjIwMDgtMDYtMTUgMTU6Mjk6MjkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguKjogRG9uJ3Qgd3JpdGUgYW5vdGhlciBTZWVrSGVhZCB3aGljaCBpbmRleGVzIGFsbCBDbHVzdGVycyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlLiBUaGlzIGlzbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3Jlc2V0KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfc3RhcnQpLCAoZ3N0X21hdHJvc2thX211eF9maW5pc2gpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIERvbid0IHdyaXRlIGFub3RoZXIgU2Vla0hlYWQgd2hpY2ggaW5kZXhlcyBhbGwgQ2x1c3RlcnMgdG8gdGhlIGVuZCBvZgoJICB0aGUgZmlsZS4gVGhpcyBpc24ndCB1c2VmdWwgZm9yIGFueXRoaW5nIGFuZCBqdXN0IGluY3JlYXNlcyBmaWxlc2l6ZS4KCjIwMDgtMDYtMTUgMTU6MDE6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogUHJldmVudCB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyB3aGVuIHJlYWRpbmcgZmxvYXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IChfZXh0MmRibCksIChnc3RfZWJtbF9yZWFkX2Zsb2F0KToKCSAgUHJldmVudCB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyB3aGVuIHJlYWRpbmcgZmxvYXRzLgoKMjAwOC0wNi0xNSAxNDowODo0MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thLzogTWFrZSBzdXJlIHRoYXQgZXZlcnkgVGFncyBlbGVtZW50IGlzIG9ubHkgcGFyc2VkIG9uY2UgYW5kIGl0J3MgY29udGFpbmluZyB0YWdzIGFyZSBvbmx5IHBvc3RlZCBvbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YSk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgIE1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IFRhZ3MgZWxlbWVudCBpcyBvbmx5IHBhcnNlZCBvbmNlIGFuZCBpdCdzCgkgIGNvbnRhaW5pbmcgdGFncyBhcmUgb25seSBwb3N0ZWQgb25jZS4KCjIwMDgtMDYtMTUgMDk6NDM6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS86IEhhbmRsZSBFQk1MIGVsZW1lbnRzIGxpa2UgVm9pZCBvciBDUkMzMiBpbiB0aGUgRWJtbFJlYWQgYmFzZSBjbGFzcyBhbHJlYWR5LiBUaGV5J3JlIG5vdCB1c2VmdWwgaW4gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IChnc3RfZWJtbF9wZWVrX2lkKSwKCSAgKGdzdF9lYm1sX3JlYWRfaGVhZGVyKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV90cmFja3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4X2N1ZXRyYWNrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleF9wb2ludGVudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleCksIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5mbyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfdGFnKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYXR0YWNobWVudHMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NoYXB0ZXJzKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jbHVzdGVyKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jb250ZW50c19zZWVrZW50cnkpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NvbnRlbnRzKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbV9wYXJzZV9pZCk6CgkgIEhhbmRsZSBFQk1MIGVsZW1lbnRzIGxpa2UgVm9pZCBvciBDUkMzMiBpbiB0aGUgRWJtbFJlYWQgYmFzZSBjbGFzcwoJICBhbHJlYWR5LiBUaGV5J3JlIG5vdCB1c2VmdWwgaW4gdGhlIG1hdHJvc2thIHBhcnNlciBhbmQgb25seSBjYXVzZQoJICBhZGRpdGlvbmFsIGNvZGUuCgoyMDA4LTA2LTE0IDE1OjUxOjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvOiBSZXZlcnNlIHRoZSBsZXZlbCBsaXN0IGFzIHdlIHVzdWFsbHkgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgZmlyc3QgZWxlbWVudCBvciB3YW50IHRvIGFkZCBhIG5ldyBmaXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfbGV2ZWxfZnJlZSksCgkgIChnc3RfZWJtbF9maW5hbGl6ZSksIChnc3RfZWJtbF9yZWFkX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWJtbF9yZWFkX2VsZW1lbnRfbGV2ZWxfdXApLCAoZ3N0X2VibWxfcmVhZF9tYXN0ZXIpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NvbnRlbnRzX3NlZWtlbnRyeSk6CgkgIFJldmVyc2UgdGhlIGxldmVsIGxpc3QgYXMgd2UgdXN1YWxseSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHRoZQoJICBmaXJzdCBlbGVtZW50IG9yIHdhbnQgdG8gYWRkIGEgbmV3IGZpcnN0IGVsZW1lbnQuIEhhdmluZyB0aGUKCSAgZmlyc3QgZWxlbWVudCBzdG9yZWQgYXQgdGhlIGVuZCBhbmQgY2FsbGluZyBnX2xpc3RfbGFzdCgpIGFuZAoJICBnX2xpc3RfYXBwZW5kKCkgaXMgbW9yZSBleHBlbnNpdmUuCgkgIEFsc28gdXNlIEdTbGljZSBmb3IgYWxsb2NhdGluZyB0aGUgR3N0RWJtbExldmVsIHN0cnVjdHMuCgoyMDA4LTA2LTEzIDIxOjEzOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC5jOiBEb24ndCB1bnJlZiBOVUxMIHRhZ2xpc3QgaW4gZmluYWxpemUuIERvbid0IHVzZSBjKysgc3R5bGUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9nc3R0YWdpbmplY3QuYzogKGdzdF90YWdfaW5qZWN0X2ZpbmFsaXplKSwKCSAgKGdzdF90YWdfaW5qZWN0X2NsYXNzX2luaXQpLCAoZ3N0X3RhZ19pbmplY3RfaW5pdCk6CgkgIERvbid0IHVucmVmIE5VTEwgdGFnbGlzdCBpbiBmaW5hbGl6ZS4gRG9uJ3QgdXNlIGMrKyBzdHlsZQoJICBjb21tZW50cy4KCjIwMDgtMDYtMTMgMTk6MTQ6NDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS86IFVzZSBnc3RfdmFsdWVfc2VyaWFsaXplKCkgYW5kIGdzdF92YWx1ZV9kZXNlcmlhbGl6ZSgpIGZvciB0cmFuc2Zvcm1pbmcgdGFncyBmcm9tIHNvbWUgR1R5cGUgdG8gYSBzdHJpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YV9pZF9zaW1wbGVfdGFnKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX3NpbXBsZV90YWcpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKToKCSAgVXNlIGdzdF92YWx1ZV9zZXJpYWxpemUoKSBhbmQgZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplKCkgZm9yIHRyYW5zZm9ybWluZwoJICB0YWdzIGZyb20gc29tZSBHVHlwZSB0byBhIHN0cmluZyBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFRoZSBkZWZhdWx0CgkgIHRyYW5zZm9ybWF0aW9ucyBpbiBHTGliIGRvbid0IGluY2x1ZGUgdHJhbnNmb3JtYXRpb25zIGZyb20gc3RyaW5nIHRvCgkgIG51bWJlciB0eXBlcy4KCjIwMDgtMDYtMTMgMTk6MDc6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC4qOiBPbmx5IHBhcnNlIFRyYWNrcywgU2Vla0hlYWQgYW5kIFNlZ21lbnRJbmZvIGVsZW1lbnRzIG9uY2UgYnV0IGFsbG93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV90cmFja3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4KSwgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9hdHRhY2htZW50cyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY2hhcHRlcnMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NvbnRlbnRzX3NlZWtlbnRyeSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcF9zdHJlYW1fcGFyc2VfaWQpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICBPbmx5IHBhcnNlIFRyYWNrcywgU2Vla0hlYWQgYW5kIFNlZ21lbnRJbmZvIGVsZW1lbnRzIG9uY2UgYnV0IGFsbG93CgkgIFRhZ3MgbXVsdGlwbGUgdGltZXMuIFRoZSBmaXJzdCBvbmVzIGNhbiBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgYnV0IG11c3QKCSAgY29udGFpbiB0aGUgc2FtZSBjb250ZW50IGFzIHRoZSBmaXJzdCBmb3IgYmFja3VwIHB1cnBvc2VzIHNvIHdlIGlnbm9yZQoJICBhbGwgYnV0IHRoZSBmaXJzdCBvbmUuIFRhZ3MgY2FuIGFwcGVhciBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudAoJICBjb250ZW50LgoJICBKdW1wIHRvIGFsbCBlbGVtZW50cyBleGNlcHQgQ2x1c3RlcnMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYQoJICBTZWVrSGVhZCB0byBtYWtlIGl0IG1vcmUgbGlrZWx5IHRvIGhhdmUgYWxsIHJlcXVpcmVkIGluZm9ybWF0aW9ucwoJICBiZWZvcmUgZ2V0dGluZyB0byB0aGUgZmlyc3QgQ2x1c3RlcnMuCgkgIEFkZCBkdW1teSBmdW5jdGlvbnMgZm9yIHBhcnNpbmcgQXR0YWNobWVudHMgYW5kIENoYXB0ZXJzLgoKMjAwOC0wNi0xMyAxNDozMzo1MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3JlcGxheWdhaW4vOiBNb3JlIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6CgkgICogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6CgkgICogZ3N0L3JlcGxheWdhaW4vZ3N0cmd2b2x1bWUuYzoKCSAgTW9yZSBkb2MgdXBkYXRlcy4KCjIwMDgtMDYtMTMgMTE6NTk6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1teXRodHYueG1sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxzYXNwZGlmLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW1yd2IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1iYXllci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWJ6Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZHhhcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdHNkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdmIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdmRzcHUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mYWFjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmFhZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZiZGV2c2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZlc3RpdmFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmlsdGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx2ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mcmVlemUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RpbnRlcmxhY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc3RydHBtYW5hZ2VyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taDI2NHBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taW50ZXJsZWF2ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWphY2sueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sYWRzcGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1tcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vZHBsdWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tcGVnMmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1wZWc0dmlkZW9wYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1wZWd0c3BhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZ3ZpZGVvcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdXNlcGFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11c2ljYnJhaW56LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXZlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXl0aHR2LnhtbAoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uZW9uLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnNmZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnV2ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3M0LnhtbAoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yYXdwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlYWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmZic3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2RsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2RwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2VsZWN0b3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbmRmaWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwY2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWVkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXhyZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0ZXJlby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN1YmVuYy54bWwKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGltaWRpdHkueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10dGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12Y2RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3NpZ25hbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZtbmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13aWxkbWlkaS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXgyNjQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmlkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JkZWMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JlbmMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JwYXJzZS5jOgoJICAqIGV4dC9kYzEzOTQvZ3N0ZGMxMzk0LmM6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC9qYWNrL2dzdGphY2thdWRpb3NpbmsuYzoKCSAgKiBleHQvbXBlZzJlbmMvZ3N0bXBlZzJlbmMuY2M6CgkgICogZXh0L21wbGV4L2dzdG1wbGV4LmNjOgoJICAqIGV4dC9tdXNpY2JyYWluei9nc3R0cm0uYzoKCSAgKiBleHQvbXl0aHR2L2dzdG15dGh0dnNyYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHRpbWlkaXR5LmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHdpbGRtaWRpLmM6CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L2R2ZHNwdS9nc3RkdmRzcHUuYzoKCSAgKiBnc3QvZmVzdGl2YWwvZ3N0ZmVzdGl2YWwuYzoKCSAgKiBnc3QvZnJlZXplL2dzdGZyZWV6ZS5jOgoJICAqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzoKCSAgKiBnc3QvbW9kcGx1Zy9nc3Rtb2RwbHVnLmNjOgoJICAqIGdzdC9udXZkZW11eC9nc3RudXZkZW11eC5jOgoJICBBZGQgbWlzc2luZyBlbGVtZW50cyB0byBkb2NzLiBGaXggZG9jLW1hcmt1cDogdXNlIGNvbnZpbmllbmNlIHN5bnRheAoJICBmb3IgZXhhbXBsZXMgKHByb2R1Y2VzIHZhbGlkIGRvY2Jvb2spLCBhZGQgc2V2ZXJhbCByZWZzZWMyIHdoZW4gd2UKCSAgaGF2ZSBzZXZlcmFsIHRpdGxlcy4gRml4IHNvbWUgdHlwZXMuCgoyMDA4LTA2LTEzIDExOjU0OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuKjogQWRkIHByb3BlcnR5IHRvIGNvbnRyb2wgYXV0b21hdGljIGpvaW4vbGVhdmUgb2YgbXVsdGljYXN0IGdyb3Vwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksIChnc3RfdWRwc3JjX2luaXQpLAoJICAoZ3N0X3VkcHNyY19jcmVhdGUpLCAoZ3N0X3VkcHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3VkcHNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X3VkcHNyY19zdGFydCksIChnc3RfdWRwc3JjX3N0b3ApOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmg6CgkgIEFkZCBwcm9wZXJ0eSB0byBjb250cm9sIGF1dG9tYXRpYyBqb2luL2xlYXZlIG9mIG11bHRpY2FzdCBncm91cHMuCgkgIEFkZCBHX0xJS0VMWS4KCSAgUmVtb3ZlIHNldHRpbmcgY2FwcyBvbiBidWZmZXJzIGV4cGxpY2l0bHksIGJhc2VzcmMgZG9lcyB0aGF0IGZvciB1cyBub3cuCgkgIEltcHJvdmUgZGVidWcgaW5mby4KCSAgQ29udmVydCBzb21lIG5vbi1mYXRhbCBlcnJvciBpbnRvIHdhcm5pbmdzLgoJICBVc2UgZ19udG9ocyBmb3IgYmV0dGVyIHBvcnRhYmlsaXR5LgoJICBMZWF2ZSBtdWx0aWNhc3QgZ3JvdXBzIHdoZW4gc3RvcHBpbmcuCgkgIFdoZW4gdXNpbmcgZXh0ZXJuYWwgc29ja2V0cywgdXNlIGdldHNvY2tuYW1lKCkgb24gdGhlbSB0byBmaWxsIHVwIHRoZQoJICBhZGRyIHN0cnVjdHVyZSBiZWZvcmUgY2FsbGluZyBtZXRob2RzIHRoYXQgdXNlIHRoZSBzdHJ1Y3R1cmUuCgkgIFNob3VsZCBhbGwgZml4ICM1MzY5MDMuCgkgIEFQSTogR3N0VURQU3JjOjphdXRvLW11bHRpY2FzdCBwcm9wZXJ0eQoKMjAwOC0wNi0xMyAxMTo0NzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzogVXNlIGdfbnRvaGwgZm9yIGJldHRlciBwb3J0YWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOiAoZ3N0X3VkcF9pc19tdWx0aWNhc3QpOgoJICBVc2UgZ19udG9obCBmb3IgYmV0dGVyIHBvcnRhYmlsaXR5LgoKMjAwOC0wNi0xMyAxMTo0NTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IEZpeCBhIHR5cG8gYW5kIGRvIHNvbWUgc21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IChnc3RfbXVsdGl1ZHBzaW5rX2luaXRfc2VuZCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX3JlbW92ZSk6CgkgIEZpeCBhIHR5cG8gYW5kIGRvIHNvbWUgc21hbGwgY2xlYW51cHMuCgoyMDA4LTA2LTEzIDA5OjM5OjQxICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOiBNYWtlIHRoZSBkZWxpdmVyeS1tZXRob2QgbWFuZGF0b3J5IG9uIHRoZSBjYXBzIGFuZCBvbmx5IGFjY2VwdCBpbmxpbmUgZm9yIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5LmM6IChnc3RfcnRwX3RoZW9yYV9kZXBheV9zZXRjYXBzKToKCSAgTWFrZSB0aGUgZGVsaXZlcnktbWV0aG9kIG1hbmRhdG9yeSBvbiB0aGUgY2FwcyBhbmQgb25seSBhY2NlcHQgaW5saW5lCgkgIGZvciBub3cuCgkgIFJldmVyc2Ugc3RyY21wIGNoZWNrcyBmb3IgZGVsaXZlcnktbWV0aG9kLgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzogKGdzdF9ydHBfdm9yYmlzX2RlcGF5X3NldGNhcHMpOgoJICBNYWtlIGRlbGl2ZXJ5IG1ldGhvZCBvcHRpb25hbCB3aGVuIHBhcnNpbmcgY2FwcyBhbmQgbm90ZSB0aGlzIGluIHRoZQoJICBjYXBzLgoJICBSZXZlcnNlIHN0cmNtcCBjaGVja3MgZm9yIGRlbGl2ZXJ5LW1ldGhvZC4KCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJICBVcGRhdGUgYSBjb21tZW50IHRvIG5vdGUgdGhhdCB0aGUgZGVsaXZlcnktbWV0aG9kIGlzIG9wdGlvbmFsLAoJICBGaXhlcyAjNTM3Njc1LgoKMjAwOC0wNi0xMiAxNzozMDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogU2V0IHVkcHNyYyBmb3IgcmVjZWl2aW5nIGRhdGEgZnJvbSBtdWx0aWNhc3QgZ3JvdXBzIHRvIFBBVVNFRCBpbnN0ZWFkIG9mIGxlYXZpbmcgdGhlbSBpbiBSRUFEWS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX21jYXN0KToKCSAgU2V0IHVkcHNyYyBmb3IgcmVjZWl2aW5nIGRhdGEgZnJvbSBtdWx0aWNhc3QgZ3JvdXBzIHRvIFBBVVNFRCBpbnN0ZWFkIG9mCgkgIGxlYXZpbmcgdGhlbSBpbiBSRUFEWS4gRml4ZXMgIzUzNzgzMi4KCjIwMDgtMDYtMTIgMTI6MTQ6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IFNpbXBsaWZ5IGNvZGUuIGdzdF90YWdfbGlzdF9tZXJnZSgpIGRvZXMgdGhlIE5VTEwgY2hlY2tzLiBBZGQgYSBGSVhNRSBmb3IgYSByYW5kb20gY29uc3RhbnQgaW4gdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBTaW1wbGlmeSBjb2RlLiBnc3RfdGFnX2xpc3RfbWVyZ2UoKSBkb2VzIHRoZSBOVUxMIGNoZWNrcy4gQWRkIGEgRklYTUUKCSAgZm9yIGEgcmFuZG9tIGNvbnN0YW50IGluIHRhZ211eGluZyBjb2RlLgoKMjAwOC0wNi0xMSAxNDoyODo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC4qOiBOb3cgYWN0dWFsbHkgYWRkaW5nIHRoZSBuZXcgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2dzdHRhZ2luamVjdC5jOgoJICAqIGdzdC9kZWJ1Zy9nc3R0YWdpbmplY3QuaDoKCSAgTm93IGFjdHVhbGx5IGFkZGluZyB0aGUgbmV3IGVsZW1lbnQuCgoyMDA4LTA2LTExIDE0OjExOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZW1vdmUgZHVtbXkgcGx1Z2luX2luaXQuIFJlbW92ZSBzb21lIHVuZGVmaW5lZCBlbnRyaWVzIGZyb20gZG9jLSBzZWN0aW9uIGZpbGUuIEFkZCB0YWdpbmplY3QgZWxlbWVudCBhbmQgcmVidWlsZCBkb2MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkgICogZ3N0L2RlYnVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWJ1Zy9icmVha215ZGF0YS5jOgoJICAqIGdzdC9kZWJ1Zy9lZmVuY2UuYzoKCSAgKiBnc3QvZGVidWcvZ3N0ZGVidWcuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2c2Vlay5jOgoJICAqIGdzdC9kZWJ1Zy9nc3RwdXNoZmlsZXNyYy5jOgoJICAqIGdzdC9kZWJ1Zy9nc3RwdXNoZmlsZXNyYy5oOgoJICAqIGdzdC9kZWJ1Zy9uZWdvdGlhdGlvbi5jOgoJICAqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5jOgoJICAqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5oOgoJICAqIGdzdC9kZWJ1Zy9ybmRidWZmZXJzaXplLmM6CgkgICogZ3N0L2RlYnVnL3Rlc3RwbHVnaW4uYzoKCSAgUmVtb3ZlIGR1bW15IHBsdWdpbl9pbml0LiBSZW1vdmUgc29tZSB1bmRlZmluZWQgZW50cmllcyBmcm9tIGRvYy0KCSAgc2VjdGlvbiBmaWxlLiBBZGQgdGFnaW5qZWN0IGVsZW1lbnQgYW5kIHJlYnVpbGQgZG9jcyBmb3IgaXQuCgoyMDA4LTA2LTExIDExOjI3OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IFVwZGF0ZSB0aGUgY291bnRlciBmb3IgdGhlIG51bWJlciBvZiBzdHJlYW1zIHdoZW4gcGFkcyBhcmUgYWRkZWQgb3IgcmVtb3ZlZC4gVGhpcyB3aWxsIG0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X21hdHJvc2thX211eF9yZWxlYXNlX3BhZCksIChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX2RhdGEpOgoJICBVcGRhdGUgdGhlIGNvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2Ygc3RyZWFtcyB3aGVuIHBhZHMgYXJlIGFkZGVkIG9yCgkgIHJlbW92ZWQuIFRoaXMgd2lsbCBtYWtlIHN1cmUgdGhhdCBhIHNlZWsgdGFibGUgaXMgZ2VuZXJhdGVkIGZvcgoJICBmaWxlcyB3aXRoIGp1c3Qgb25lIGF1ZGlvIHN0cmVhbS4KCjIwMDgtMDYtMTEgMTE6MTg6MjMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS86IEFkZCBzb21lIG1vcmUgdGFncywgaW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQgYW5kIG1ha2Ugc3VyZSB0aGF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX21ldGFkYXRhX2lkX3NpbXBsZV90YWcpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX3NpbXBsZV90YWcpOgoJICBBZGQgc29tZSBtb3JlIHRhZ3MsIGltcHJvdmUgZGVidWdnaW5nIGEgYml0IGFuZCBtYWtlIHN1cmUgdGhhdAoJICBHVmFsdWUgdHJhbnNmb3JtYXRpb24gaGFzIHN1Y2NlZWRlZCBiZWZvcmUgdXNpbmcgdGhlIHJlc3VsdAoJICBhcyBhIHRhZy4KCjIwMDgtMDYtMTEgMDg6NTY6MTYgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOiBUaGUgVGhlb3JhIFJUUCBwYXlsb2FkZXIgb25seSBzdXBwb3J0cyB0aGUgImlubGluZSIgZGVsaWV2ZXJ5IG1ldGhvZCBzbyBsZXQncyBkZWNsYXJlIHRoaXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJICBUaGUgVGhlb3JhIFJUUCBwYXlsb2FkZXIgb25seSBzdXBwb3J0cyB0aGUgImlubGluZSIgZGVsaWV2ZXJ5IG1ldGhvZAoJICBzbyBsZXQncyBkZWNsYXJlIHRoaXMgb24gdGhlIGNhcHMgb2YgdGhlIHN0YXRpYyBwYWQgdGVtcGxhdGUuCgkgIEZpeGVzIGJ1ZyAjNTM3Njc1LgoKMjAwOC0wNi0xMCAxNzoyMDo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogUmVtb3ZlIGJvZ3VzIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9maWxsX3F1ZXVlcyksCgkgIChnc3RfdmlkZW9taXhlcl9ibGVuZF9idWZmZXJzKSwgKGdzdF92aWRlb21peGVyX3VwZGF0ZV9xdWV1ZXMpOgoJICBSZW1vdmUgYm9ndXMgY2hlY2suCgoyMDA4LTA2LTEwIDE2OjI1OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiBVc2Ugc3RyZWFtX3RpbWUgdG8gc3luY2hyb25pemUgdGhlIG9iamVjdCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9maWxsX3F1ZXVlcyksCgkgIChnc3RfdmlkZW9taXhlcl9ibGVuZF9idWZmZXJzKToKCSAgVXNlIHN0cmVhbV90aW1lIHRvIHN5bmNocm9uaXplIHRoZSBvYmplY3QgcHJvcGVydGllcy4KCSAgVXNlIHJ1bm5pbmdfdGltZSBvZiB0aGUgbWFzdGVyIHBhZCB0byB0aW1lc3RhbXAgb3V0Z29pbmcgYnVmZmVycy4KCSAgRml4IHRoZSBpbml0aWFsIHNlZ21lbnQgZXZlbnQgdG8gZXh0ZW5kIGFuIHVua25vd24gYW1vdW50IG9mIHRpbWUuCgkgIEZpeGVzICM1MzczNjEuCgoyMDA4LTA2LTEwIDExOjA1OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBUcnkgdG8gaWdub3JlIHVucGFyc2FibGUvdW5rbm93biBzdHJlYW1zIGFuZCBnaXZlIGEgd2FybmluZyBpbnN0ZWFkIG9mIGVycm9yaW5nIG91dC4gRml4ZXMgIzUzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9tYXNzYWdlX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfY2FsY3VsYXRlX2R1cmF0aW9uc19mcm9tX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcl9wdXNoKSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcl9wdWxsKToKCSAgVHJ5IHRvIGlnbm9yZSB1bnBhcnNhYmxlL3Vua25vd24gc3RyZWFtcyBhbmQgZ2l2ZSBhIHdhcm5pbmcgaW5zdGVhZCBvZgoJICBlcnJvcmluZyBvdXQuIEZpeGVzICM1MzczNzcuCgoyMDA4LTA2LTEwIDEwOjQ0OjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOiBVc2UgR0RPVUJMRV9UT19CRSgpIGluc3RlYWQgb2YgKHByb2JhYmx5IHNsb3dlcikgY3VzdG9tIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6IChnc3RfZWJtbF93cml0ZV9mbG9hdCk6CgkgIFVzZSBHRE9VQkxFX1RPX0JFKCkgaW5zdGVhZCBvZiAocHJvYmFibHkgc2xvd2VyKSBjdXN0b20gY29kZS4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9iYXNlX2luaXQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2NsYXNzX2luaXQpLCAoZ3N0X21hdHJvc2thX2RlbXV4X2luaXQpLAoJICAoZ3N0X21hdHJvc2thX3RyYWNrX2ZyZWUpLCAoZ3N0X21hdHJvc2thX2RlbXV4X2VuY29kaW5nX2NtcCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcmVhZF90cmFja19lbmNvZGluZ3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2luaXRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleF9jdWV0cmFjayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5kZXhfcG9pbnRlbnRyeSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5mbyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGEpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF93dnBrX2hlYWRlciksIChnc3RfbWF0cm9za2FfZGVjb2RlX2J1ZmZlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY2x1c3RlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY29udGVudHNfc2Vla2VudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbV9wYXJzZV9pZCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcCksIChnc3RfbWF0cm9za2FfZGVtdXhfdmlkZW9fY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2Fwcyk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jOgoJICAoZ3N0X21hdHJvc2thX3RyYWNrX2luaXRfc3VidGl0bGVfY29udGV4dCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfY2xhc3NfaW5pdCksIChnc3RfbWF0cm9za2FfbXV4X2luaXQpLAoJICAoZ3N0X21hdHJvc2thX211eF9jcmVhdGVfdWlkKSwgKGdzdF9tYXRyb3NrYV9tdXhfcmVzZXQpLAoJICAoZ3N0X21hdHJvc2thX211eF92aWRlb19wYWRfc2V0Y2FwcyksCgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfc3VidGl0bGVfcGFkX3NldGNhcHMpLAoJICAoZ3N0X21hdHJvc2thX211eF9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X21hdHJvc2thX211eF90cmFja19oZWFkZXIpLCAoZ3N0X21hdHJvc2thX211eF9zdGFydCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX3NpbXBsZV90YWcpLCAoZ3N0X21hdHJvc2thX211eF9maW5pc2gpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKSwgKGdzdF9tYXRyb3NrYV9tdXhfY29sbGVjdGVkKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfc2V0X3Byb3BlcnR5KToKCSAgQWRkIG1hbnkgRklYTUVzL1RPRE9zIGFsbCBvdmVyIHRoZSBtYXRyb3NrYSBtdXhlciBhbmQgZGVtdXhlcgoJICBlbGVtZW50cywgZG8gc29tZSBjaGVja3MgZm9yIHZhbGlkIHZhbHVlcyBpbiB0aGUgZGVtdXhlciwgaGFuZGxlCgkgIHRyYWNrdGltZWNvZGVzY2FsZSBpbiB0aGUgZGVtdXhlciwgc2V0IGNvcnJlY3QgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbAoJICBzZXR0aW5ncyBpbiB0aGUgZGVtdXhlciwgcmV2aWV3IGFuZCBhZGQgYWxsIG1pc3NpbmcgbWF0cm9za2EKCSAgSURzIGFuZCBzb21lIG1vcmUgcmF3IFlVViBmb3JtYXRzLCBhbmQgc29tZSB0cml2aWFsIGNsZWFudXAuCgoyMDA4LTA2LTEwIDA4OjU5OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvcHVsc2UvOiBTb21lIHNtYWxsZXIgY2xlYW51cC4gVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MsIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGFuZCBmaXggY29kaW5nIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzogKGdzdF9wdWxzZW1peGVyX2Jhc2VfaW5pdCksCgkgIChnc3RfcHVsc2VtaXhlcl9jbGFzc19pbml0KToKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6IChnc3RfcHVsc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfcHVsc2VzaW5rX2NsYXNzX2luaXQpLCAoZ3N0X3B1bHNlc2lua19wcmVwYXJlKToKCSAgKiBleHQvcHVsc2UvcHVsc2VzcmMuYzogKGdzdF9wdWxzZXNyY19pbnRlcmZhY2Vfc3VwcG9ydGVkKSwKCSAgKGdzdF9wdWxzZXNyY19iYXNlX2luaXQpLCAoZ3N0X3B1bHNlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1bHNlc3JjX3ByZXBhcmUpOgoJICBTb21lIHNtYWxsZXIgY2xlYW51cC4gVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MsCgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGFuZCBmaXggY29kaW5nIHN0eWxlIGEgYml0CgkgIG1vcmUuCgoyMDA4LTA2LTEwIDA4OjIyOjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBZGQgZG9jdW1lbnRhdGlvbiB0byB0aGUgcHVsc2VhdWRpbyBwbHVnaW4gYW5kIHJ1biBtYWtlIHVwZGF0ZSBpbiBkb2NzL3BsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Rpby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nYW1tYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbTJrMS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9ub3Njb3BlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcHVsc2VhdWRpby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdXAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSAgKiBleHQvcHVsc2UvcGx1Z2luLmM6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzoKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmM6CgkgICogZXh0L3B1bHNlL3B1bHNlc3JjLmM6CgkgIEFkZCBkb2N1bWVudGF0aW9uIHRvIHRoZSBwdWxzZWF1ZGlvIHBsdWdpbiBhbmQgcnVuIG1ha2UgdXBkYXRlCgkgIGluIGRvY3MvcGx1Z2lucy4KCjIwMDgtMDYtMTAgMDY6NTI6NDQgKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOiBJbXByb3ZlbWVudHMgZm9yIHRoZSBTdW5BdWRpbyBtaXhlciBieSBoYW5kbGluZyBtdXRlIGFzIG5vIGdhaW4gZm9yIHRyYWNrcyB0aGF0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb24gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX2dldF92b2x1bWUpLAoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfY3RybF9zZXRfdm9sdW1lKToKCSAgSW1wcm92ZW1lbnRzIGZvciB0aGUgU3VuQXVkaW8gbWl4ZXIgYnkgaGFuZGxpbmcgbXV0ZSBhcyBubyBnYWluCgkgIGZvciB0cmFja3MgdGhhdCBoYXZlIGEgZ2FpbiBwcm9wZXJ0eSBidXQgbm8gbXV0ZSBwcm9wZXJ0eS4KCSAgRml4ZXMgYnVnICM1MzYwNjcuCgoyMDA4LTA2LTEwIDA2OjQ1OjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBZGQgcHVsc2VhdWRpbyBHU3RyZWFtZXIgZWxlbWVudCBmcm9tIGdzdC1wdWxzZS4gRGV2ZWxvcG1lbnQgd2lsbCBjb250aW51ZSBoZXJlIGluc3RlYWQgb2YgcHVsc2VhdWRpbyBTVk4uIEZpeGVzIGJ1ZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC9wdWxzZS9NYWtlZmlsZS5hbToKCSAgKiBleHQvcHVsc2UvcGx1Z2luLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuYzogKGdzdF9wdWxzZW1peGVyX2ludGVyZmFjZV9zdXBwb3J0ZWQpLAoJICAoZ3N0X3B1bHNlbWl4ZXJfaW1wbGVtZW50c19pbnRlcmZhY2VfaW5pdCksCgkgIChnc3RfcHVsc2VtaXhlcl9pbml0X2ludGVyZmFjZXMpLCAoZ3N0X3B1bHNlbWl4ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9wdWxzZW1peGVyX2NsYXNzX2luaXQpLCAoZ3N0X3B1bHNlbWl4ZXJfaW5pdCksCgkgIChnc3RfcHVsc2VtaXhlcl9maW5hbGl6ZSksIChnc3RfcHVsc2VtaXhlcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3B1bHNlbWl4ZXJfZ2V0X3Byb3BlcnR5KSwgKGdzdF9wdWxzZW1peGVyX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L3B1bHNlL3B1bHNlbWl4ZXIuaDoKCSAgKiBleHQvcHVsc2UvcHVsc2VtaXhlcmN0cmwuYzoKCSAgKGdzdF9wdWxzZW1peGVyX2N0cmxfY29udGV4dF9zdGF0ZV9jYiksCgkgIChnc3RfcHVsc2VtaXhlcl9jdHJsX3NpbmtfaW5mb19jYiksCgkgIChnc3RfcHVsc2VtaXhlcl9jdHJsX3NvdXJjZV9pbmZvX2NiKSwKCSAgKGdzdF9wdWxzZW1peGVyX2N0cmxfc3Vic2NyaWJlX2NiKSwKCSAgKGdzdF9wdWxzZW1peGVyX2N0cmxfc3VjY2Vzc19jYiksIChnc3RfcHVsc2VtaXhlcl9jdHJsX29wZW4pLAoJICAoZ3N0X3B1bHNlbWl4ZXJfY3RybF9jbG9zZSksIChnc3RfcHVsc2VtaXhlcl9jdHJsX25ldyksCgkgIChnc3RfcHVsc2VtaXhlcl9jdHJsX2ZyZWUpLCAoZ3N0X3B1bHNlbWl4ZXJfY3RybF9saXN0X3RyYWNrcyksCgkgIChnc3RfcHVsc2VtaXhlcl9jdHJsX3RpbWVvdXRfZXZlbnQpLCAocmVzdGFydF90aW1lX2V2ZW50KSwKCSAgKGdzdF9wdWxzZW1peGVyX2N0cmxfc2V0X3ZvbHVtZSksIChnc3RfcHVsc2VtaXhlcl9jdHJsX2dldF92b2x1bWUpLAoJICAoZ3N0X3B1bHNlbWl4ZXJfY3RybF9zZXRfcmVjb3JkKSwgKGdzdF9wdWxzZW1peGVyX2N0cmxfc2V0X211dGUpOgoJICAqIGV4dC9wdWxzZS9wdWxzZW1peGVyY3RybC5oOgoJICAqIGV4dC9wdWxzZS9wdWxzZW1peGVydHJhY2suYzogKGdzdF9wdWxzZW1peGVyX3RyYWNrX2NsYXNzX2luaXQpLAoJICAoZ3N0X3B1bHNlbWl4ZXJfdHJhY2tfaW5pdCksIChnc3RfcHVsc2VtaXhlcl90cmFja19uZXcpOgoJICAqIGV4dC9wdWxzZS9wdWxzZW1peGVydHJhY2suaDoKCSAgKiBleHQvcHVsc2UvcHVsc2Vwcm9iZS5jOiAoZ3N0X3B1bHNlcHJvYmVfY29udGV4dF9zdGF0ZV9jYiksCgkgIChnc3RfcHVsc2Vwcm9iZV9zaW5rX2luZm9fY2IpLCAoZ3N0X3B1bHNlcHJvYmVfc291cmNlX2luZm9fY2IpLAoJICAoZ3N0X3B1bHNlcHJvYmVfaW52YWxpZGF0ZSksIChnc3RfcHVsc2Vwcm9iZV9vcGVuKSwKCSAgKGdzdF9wdWxzZXByb2JlX2VudW1lcmF0ZSksIChnc3RfcHVsc2Vwcm9iZV9jbG9zZSksCgkgIChnc3RfcHVsc2Vwcm9iZV9uZXcpLCAoZ3N0X3B1bHNlcHJvYmVfZnJlZSksCgkgIChnc3RfcHVsc2Vwcm9iZV9nZXRfcHJvcGVydGllcyksIChnc3RfcHVsc2Vwcm9iZV9uZWVkc19wcm9iZSksCgkgIChnc3RfcHVsc2Vwcm9iZV9wcm9iZV9wcm9wZXJ0eSksIChnc3RfcHVsc2Vwcm9iZV9nZXRfdmFsdWVzKSwKCSAgKGdzdF9wdWxzZXByb2JlX3NldF9zZXJ2ZXIpOgoJICAqIGV4dC9wdWxzZS9wdWxzZXByb2JlLmg6CgkgICogZXh0L3B1bHNlL3B1bHNlc2luay5jOiAoZ3N0X3B1bHNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X3B1bHNlc2lua19jbGFzc19pbml0KSwgKGdzdF9wdWxzZXNpbmtfaW5pdCksCgkgIChnc3RfcHVsc2VzaW5rX2Rlc3Ryb3lfc3RyZWFtKSwgKGdzdF9wdWxzZXNpbmtfZGVzdHJveV9jb250ZXh0KSwKCSAgKGdzdF9wdWxzZXNpbmtfZmluYWxpemUpLCAoZ3N0X3B1bHNlc2lua19kaXNwb3NlKSwKCSAgKGdzdF9wdWxzZXNpbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9wdWxzZXNpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wdWxzZXNpbmtfY29udGV4dF9zdGF0ZV9jYiksIChnc3RfcHVsc2VzaW5rX3N0cmVhbV9zdGF0ZV9jYiksCgkgIChnc3RfcHVsc2VzaW5rX3N0cmVhbV9yZXF1ZXN0X2NiKSwKCSAgKGdzdF9wdWxzZXNpbmtfc3RyZWFtX2xhdGVuY3lfdXBkYXRlX2NiKSwgKGdzdF9wdWxzZXNpbmtfb3BlbiksCgkgIChnc3RfcHVsc2VzaW5rX2Nsb3NlKSwgKGdzdF9wdWxzZXNpbmtfcHJlcGFyZSksCgkgIChnc3RfcHVsc2VzaW5rX3VucHJlcGFyZSksIChnc3RfcHVsc2VzaW5rX3dyaXRlKSwKCSAgKGdzdF9wdWxzZXNpbmtfZGVsYXkpLCAoZ3N0X3B1bHNlc2lua19zdWNjZXNzX2NiKSwKCSAgKGdzdF9wdWxzZXNpbmtfcmVzZXQpLCAoZ3N0X3B1bHNlc2lua19jaGFuZ2VfdGl0bGUpLAoJICAoZ3N0X3B1bHNlc2lua19ldmVudCksIChnc3RfcHVsc2VzaW5rX2dldF90eXBlKToKCSAgKiBleHQvcHVsc2UvcHVsc2VzaW5rLmg6CgkgICogZXh0L3B1bHNlL3B1bHNlc3JjLmM6IChnc3RfcHVsc2VzcmNfaW50ZXJmYWNlX3N1cHBvcnRlZCksCgkgIChnc3RfcHVsc2VzcmNfaW1wbGVtZW50c19pbnRlcmZhY2VfaW5pdCksCgkgIChnc3RfcHVsc2VzcmNfaW5pdF9pbnRlcmZhY2VzKSwgKGdzdF9wdWxzZXNyY19iYXNlX2luaXQpLAoJICAoZ3N0X3B1bHNlc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3B1bHNlc3JjX2luaXQpLAoJICAoZ3N0X3B1bHNlc3JjX2Rlc3Ryb3lfc3RyZWFtKSwgKGdzdF9wdWxzZXNyY19kZXN0cm95X2NvbnRleHQpLAoJICAoZ3N0X3B1bHNlc3JjX2ZpbmFsaXplKSwgKGdzdF9wdWxzZXNyY19kaXNwb3NlKSwKCSAgKGdzdF9wdWxzZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3B1bHNlc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcHVsc2VzcmNfY29udGV4dF9zdGF0ZV9jYiksIChnc3RfcHVsc2VzcmNfc3RyZWFtX3N0YXRlX2NiKSwKCSAgKGdzdF9wdWxzZXNyY19zdHJlYW1fcmVxdWVzdF9jYiksIChnc3RfcHVsc2VzcmNfb3BlbiksCgkgIChnc3RfcHVsc2VzcmNfY2xvc2UpLCAoZ3N0X3B1bHNlc3JjX3ByZXBhcmUpLAoJICAoZ3N0X3B1bHNlc3JjX3VucHJlcGFyZSksIChnc3RfcHVsc2VzcmNfcmVhZCksCgkgIChnc3RfcHVsc2VzcmNfZGVsYXkpLCAoZ3N0X3B1bHNlc3JjX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcHVsc2VzcmNfZ2V0X3R5cGUpOgoJICAqIGV4dC9wdWxzZS9wdWxzZXNyYy5oOgoJICAqIGV4dC9wdWxzZS9wdWxzZXV0aWwuYzogKGdzdF9wdWxzZV9maWxsX3NhbXBsZV9zcGVjKSwKCSAgKGdzdF9wdWxzZV9jbGllbnRfbmFtZSksIChnc3RfcHVsc2VfZ3N0X3RvX2NoYW5uZWxfbWFwKToKCSAgKiBleHQvcHVsc2UvcHVsc2V1dGlsLmg6CgkgIEFkZCBwdWxzZWF1ZGlvIEdTdHJlYW1lciBlbGVtZW50IGZyb20gZ3N0LXB1bHNlLiBEZXZlbG9wbWVudCB3aWxsCgkgIGNvbnRpbnVlIGhlcmUgaW5zdGVhZCBvZiBwdWxzZWF1ZGlvIFNWTi4gRml4ZXMgYnVnICM0MDA2NzkuCgkgIE9ubHkgY2hhbmdlcyBvdmVyIGdzdC1wdWxzZSBTVk4gYXJlIGFkZGVkIGNvcHlyaWdodCB0byB0aGUgdG9wIG9mCgkgIGZpbGVzIGFuZCBjb2Rpbmcgc3R5bGUgY2hhbmdlcy4KCjIwMDgtMDYtMDkgMjA6MDI6MDUgKzAwMDAgIEJlbmphbWluIEthbXBtYW5uIDxiZW5qYW1pbkBmbHVlbmRvLmNvbT4KCgkgIGV4dC9jZGlvLzogQWxzbyBleHRyYWN0IGFsYnVtIHRpdGxlIGFuZCBhbGJ1bSBnZW5yZSBmcm9tIENELVRFWFQgaWYgYXZhaWxhYmxlICgjNTM3MDIxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBCZW5qYW1pbiBLYW1wbWFubiAgPGJlbmphbWluIGF0IGZsdWVuZG8gZG90IGNvbT4KCSAgKiBleHQvY2Rpby9nc3RjZGlvLmM6IChnc3RfY2Rpb19nZXRfY2R0ZXh0KSwKCSAgKGdzdF9jZGlvX2FkZF9jZHRleHRfYWxidW1fdGFncyk6CgkgICogZXh0L2NkaW8vZ3N0Y2Rpby5oOgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6IChnc3RfY2Rpb19jZGRhX3NyY19vcGVuKToKCSAgQWxzbyBleHRyYWN0IGFsYnVtIHRpdGxlIGFuZCBhbGJ1bSBnZW5yZSBmcm9tIENELVRFWFQgaWYKCSAgYXZhaWxhYmxlICgjNTM3MDIxKS4KCjIwMDgtMDYtMDkgMDg6NTI6MDQgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogSW1wcm92ZSBuZWdvdGlhdGlvbiBhIGJpdCBtb3JlIGJ5IHBpY2tpbmcgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIHJlc29sdXRpb24gdGhhdCBpcyBsYXJnZXIgdGhhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfbmVnb3RpYXRlKToKCSAgSW1wcm92ZSBuZWdvdGlhdGlvbiBhIGJpdCBtb3JlIGJ5IHBpY2tpbmcgdGhlIHNtYWxsZXN0IHBvc3NpYmxlCgkgIHJlc29sdXRpb24gdGhhdCBpcyBsYXJnZXIgdGhhbiB0aGUgcmVzb2x1dGlvbiBzcGVjaWZpZWQgaW4gdGhlCgkgIGZpcnN0IGNhcHMgZW50cnkgb2YgdGhlIHBlZXIgY2Fwcy4gRml4ZXMgYnVnICM1MzY5OTQuCgoyMDA4LTA2LTA5IDA4OjQyOjQ5ICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJICBzeXMvdjRsMi86IEZpeCBjb21waWxhdGlvbiB3aXRoIG5ld2VyIEdJVCBrZXJuZWxzIHRoYXQgZGVwcmVjYXRlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJhc3RpZW4gTm9jZXJhIDxoYWRlc3MgYXQgaGFkZXNzIGRvdCBuZXQ+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnZpZG9yaWVudC5jOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogKGdzdF92NGwyX2ZpbGxfbGlzdHMpOgoJICBGaXggY29tcGlsYXRpb24gd2l0aCBuZXdlciBHSVQga2VybmVscyB0aGF0IGRlcHJlY2F0ZWQKCSAgVjRMMl9DSURfSENFTlRFUiBhbmQgVjRMMl9DSURfVkNFTlRFUi4gRml4ZXMgYnVnICM1MzYzMTcuCgoyMDA4LTA2LTA3IDE4OjQ4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmVxdWlyZSBsaWJjZGlvID49IDAuNzYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvY2Rpby9nc3RjZGlvLmM6CgkgICogZXh0L2NkaW8vZ3N0Y2Rpby5oOgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6IChnc3RfY2Rpb19jZGRhX3NyY19vcGVuKToKCSAgUmVxdWlyZSBsaWJjZGlvID49IDAuNzYuCgoyMDA4LTA2LTA1IDExOjA3OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvaW50ZXJsZWF2ZS86IFByb3Blcmx5IGltcGxlbWVudCBkdXJhdGlvbiBhbmQgcG9zaXRpb24gcXVlcmllcyBpbiBieXRlcyBmb3JtYXQuIFdlIGhhdmUgdG8gdGFrZSB0aGUgdXBzdHJlYW0gcmVwbHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6IChnc3RfZGVpbnRlcmxlYXZlX2FkZF9uZXdfcGFkcyksCgkgIChnc3RfZGVpbnRlcmxlYXZlX3NyY19xdWVyeSk6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOiAoZ3N0X2ludGVybGVhdmVfc3JjX3F1ZXJ5X2R1cmF0aW9uKSwKCSAgKGdzdF9pbnRlcmxlYXZlX3NyY19xdWVyeSk6CgkgIFByb3Blcmx5IGltcGxlbWVudCBkdXJhdGlvbiBhbmQgcG9zaXRpb24gcXVlcmllcyBpbiBieXRlcyBmb3JtYXQuIFdlCgkgIGhhdmUgdG8gdGFrZSB0aGUgdXBzdHJlYW0gcmVwbHkgYW5kIGRpdmlkZS9tdWx0aXBseSBpdCBieSB0aGUgbnVtYmVyCgkgIG9mIGNoYW5uZWxzIHRvIGdldCB0aGUgY29ycmVjdCByZXN1bHQuCgoyMDA4LTA2LTA1IDA5OjQ1OjAwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBDYXRjaCBVTkVYUEVDVEVEIHdoZW4gZG93bnN0cmVhbSBoYXMgcmVhY2hlZCBlbmQgb2Ygc2VnbWVudCBpbiByZXZlcnNlIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgQ2F0Y2ggVU5FWFBFQ1RFRCB3aGVuIGRvd25zdHJlYW0gaGFzIHJlYWNoZWQgZW5kIG9mCgkgIHNlZ21lbnQgaW4gcmV2ZXJzZSBtb2RlLgoKMjAwOC0wNi0wNCAxODowODozNSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogRml4IHR5cG8gaW4gY29tbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIEZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDgtMDYtMDQgMTg6MDM6MjQgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB0aGUgZnJhbWUgb3JkZXIgd2UgbmVlZCB0byBwdXNoIHRpbGwgdGhlIG5leHQga2V5ZnJhbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBCZWNhdXNlIHdlIGRvbid0IGtub3cgdGhlIGZyYW1lIG9yZGVyIHdlIG5lZWQgdG8gcHVzaCB0aWxsCgkgIHRoZSBuZXh0IGtleWZyYW1lCgoyMDA4LTA2LTA0IDE3OjM5OjMxICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IFByb3ZpZGUgYSBjdXN0b20gbmVnb3RpYXRpb24gZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRvIHBpY2sgdGhlIGhpZ2hlc3QgcG9zc2libGUgZnJhbWVyYXRlIGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Y0bDJzcmNfZml4YXRlKSwgKGdzdF92NGwyc3JjX25lZ290aWF0ZSk6CgkgIFByb3ZpZGUgYSBjdXN0b20gbmVnb3RpYXRpb24gZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRvIHBpY2sgdGhlIGhpZ2hlc3QKCSAgcG9zc2libGUgZnJhbWVyYXRlIGFuZCByZXNvbHV0aW9uLiBGaXhlcyBidWcgIzUzNjY0Ni4KCjIwMDgtMDYtMDQgMTY6NDk6MjYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFNldCBFT1Mgd2hlbiBnb2luZyBvdXQgb2YgdGhlIHNlZ21lbnQgaW4gcmV2ZXJzZSBwbGF5YmFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIFNldCBFT1Mgd2hlbiBnb2luZyBvdXQgb2YgdGhlIHNlZ21lbnQgaW4gcmV2ZXJzZSBwbGF5YmFjawoKMjAwOC0wNi0wNCAxNToxOTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC90YWdsaWIvTWFrZWZpbGUuYW06IEFkZCAtV25vLWF0dHJpYnV0ZXMgdG8gQ1hYRkxBR1MgdG8gc3VwcHJlc3Mgd2FybmluZyBjYXVzZWQgYnkgdGFnbGliIGhlYWRlcnMgKHdpdGggZ2NjIDQuMy4xKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbTo6CgkgIEFkZCAtV25vLWF0dHJpYnV0ZXMgdG8gQ1hYRkxBR1MgdG8gc3VwcHJlc3Mgd2FybmluZyBjYXVzZWQgYnkKCSAgdGFnbGliIGhlYWRlcnMgKHdpdGggZ2NjIDQuMy4xKS4KCjIwMDgtMDYtMDQgMTE6NTk6MTggKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBVc2UgdGhlIG5ldyBnc3RfcnRzcF9jb25uZWN0aW9uX2dldF9pcCgpIHRvIGFjY2VzcyB0aGUgSVAgYWRkcmVzcyBvZiBhIEdzdFJUU1BDb25uZWN0aW9uIHNpbmNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdWRwX3NpbmspOgoJICBVc2UgdGhlIG5ldyBnc3RfcnRzcF9jb25uZWN0aW9uX2dldF9pcCgpIHRvIGFjY2VzcyB0aGUgSVAgYWRkcmVzcwoJICBvZiBhIEdzdFJUU1BDb25uZWN0aW9uIHNpbmNlIGl0IGlzIGEgcHJpdmF0ZSBtZW1iZXIuCgoyMDA4LTA2LTA0IDEwOjQyOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVXNlIG5ldyB1dGlsaXR5IGZ1bmN0aW9ucyBpbiBsaWJnc3R0YWcgdG8gcHJvY2VzcyBjb3ZlcmFydCAoIzUxMjMzMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2V4dHJhY3RfcGljdHVyZV9idWZmZXIpOgoJICAqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiAocGFyc2VfcGljdHVyZV9mcmFtZSk6CgkgIFVzZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnMgaW4gbGliZ3N0dGFnIHRvIHByb2Nlc3MgY292ZXJhcnQgKCM1MTIzMzMpLgoKMjAwOC0wNi0wNCAwODo1NDowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiBXZSBhY3R1YWxseSBzdXBwb3J0IGxlZnQvc2lkZSwgcmlnaHQvc2lkZSBhbmQgbWlkL3NpZGUgZmlsZXMuIFRoZSBjb252ZXJzaW9uIHRvIG5vcm1hbCwgaW50ZXJsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY193cml0ZSk6CgkgIFdlIGFjdHVhbGx5IHN1cHBvcnQgbGVmdC9zaWRlLCByaWdodC9zaWRlIGFuZCBtaWQvc2lkZSBmaWxlcy4gVGhlCgkgIGNvbnZlcnNpb24gdG8gbm9ybWFsLCBpbnRlcmxlYXZlZCBzdGVyZW8gaXMgZG9uZSBieSBsaWJmbGFjLgoKMjAwOC0wNi0wNCAwNzozNjowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzogVW5yZWYgdGhlIHdyaXRlIGNhY2hlIGluIGZpbmFsaXplIGlmIGl0IHdhcyBzZXQgYW5kIGFkZCBhZGQgIkZJWE1FIiB0byBhIGNvbW1lbnQgdGhhdCBuZWVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6IChnc3RfZWJtbF93cml0ZV9maW5hbGl6ZSksCgkgIChnc3RfZWJtbF93cml0ZV9zZXRfY2FjaGUpOgoJICBVbnJlZiB0aGUgd3JpdGUgY2FjaGUgaW4gZmluYWxpemUgaWYgaXQgd2FzIHNldCBhbmQgYWRkIGFkZCAiRklYTUUiCgkgIHRvIGEgY29tbWVudCB0aGF0IG5lZWRzIGl0LgoKMjAwOC0wNi0wNCAwNjo0ODo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS4qOiBVc2UgYW4gYWx3YXlzIGluY3JlYXNpbmcgaW50ZWdlciBmb3IgdGhlIG51bWJlciBpbiB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIHNpbmsgcGFkcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzogKGdzdF9pbnRlcmxlYXZlX3BhZF9nZXRfdHlwZSksCgkgIChnc3RfaW50ZXJsZWF2ZV9wYWRfZ2V0X3Byb3BlcnR5KSwgKGdzdF9pbnRlcmxlYXZlX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9pbnRlcmxlYXZlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfaW50ZXJsZWF2ZV9yZWxlYXNlX3BhZCk6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5oOgoJICBVc2UgYW4gYWx3YXlzIGluY3JlYXNpbmcgaW50ZWdlciBmb3IgdGhlIG51bWJlciBpbiB0aGUgbmFtZSBvZiB0aGUKCSAgcmVxdWVzdGVkIHNpbmsgcGFkcyB0byBndWFyYW50dWVlIGEgdW5pcXVlIG5hbWUuIEFkZCBhICJjaGFubmVsIgoJICBwcm9wZXJ0eSB0byBHc3RJbnRlcmxlYXZlUGFkIHRvIG1ha2UgaXQgcG9zc2libGUgZm9yIGFwcGxpY2F0aW9ucwoJICB0byByZXRyaWV2ZSB0aGUgY2hhbm5lbCBudW1iZXIgaW4gdGhlIG91dHB1dCBmb3IgZXZlcnkgcGFkLgoJICBVc2UgZ190eXBlX3JlZ2lzdGVyX3N0YXRpY19zaW1wbGUoKSBpbnN0ZWFkIG9mCgkgIGdfdHlwZV9yZWdpc3Rlcl9zdGF0aWMoKSB0byBzYXZlIHNvbWUgcmVsb2NhdGlvbnMuCgoyMDA4LTA2LTAzIDE0OjM1OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IFN0b3AgR3N0Q29sbGVjdFBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcmVudCdzIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB3aGVuIGdvaW5nIGZyb20gUEEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOiAoZ3N0X2ludGVybGVhdmVfcGFkX2dldF90eXBlKSwKCSAgKGdzdF9pbnRlcmxlYXZlX2NoYW5nZV9zdGF0ZSk6CgkgIFN0b3AgR3N0Q29sbGVjdFBhZHMgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcmVudCdzIHN0YXRlIGNoYW5nZSBmdW5jdGlvbgoJICB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvIFJFQURZIGFzIHdlIG90aGVyd2lzZSBkZWFkbG9jay4KCSAgRml4ZXMgYnVnICM1MzYyNTguCgoyMDA4LTA2LTAzIDA5OjAzOjE5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IFVzZSBuZXcgZ3N0X2F1ZGlvX2NoZWNrX2NoYW5uZWxfcG9zaXRpb25zKCkgZnVuY3Rpb24gYW5kIHJlZ2lzdGVyIHRoZSBHc3RJbnRlcmxlYXZlUGFkIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJICAoZ3N0X2ludGVybGVhdmVfY2hlY2tfY2hhbm5lbF9wb3NpdGlvbnMpLAoJICAoZ3N0X2ludGVybGVhdmVfc2V0X2NoYW5uZWxfcG9zaXRpb25zKSwKCSAgKGdzdF9pbnRlcmxlYXZlX2NsYXNzX2luaXQpOgoJICBVc2UgbmV3IGdzdF9hdWRpb19jaGVja19jaGFubmVsX3Bvc2l0aW9ucygpIGZ1bmN0aW9uIGFuZCByZWdpc3RlcgoJICB0aGUgR3N0SW50ZXJsZWF2ZVBhZCB0eXBlIGZyb20gYSB0aHJlYWRzYWZlIGNvbnRleHQuCgoyMDA4LTA2LTAyIDE2OjEwOjAwICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC4qOiBJbXBsZW1lbnQgcmV2ZXJzZSBwbGF5YmFjay4gRml4ZXMgIzUzNTMwMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXIgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2luZGV4X25leHQpLAoJICAoZ3N0X2F2aV9kZW11eF9pbmRleF9wcmV2KSwgKGdzdF9hdmlfZGVtdXhfaW5kZXhfZW50cnlfZm9yX3RpbWUpLAoJICAoZ3N0X2F2aV9kZW11eF9kb19zZWVrKSwgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgSW1wbGVtZW50IHJldmVyc2UgcGxheWJhY2suIEZpeGVzICM1MzUzMDAuCgkgIFNtYWxsIGNsZWFudXBzLgoKMjAwOC0wNi0wMiAxMjo0MjoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS4qOiBBbGxvdyBzZXR0aW5nIGNoYW5uZWwgcG9zaXRpb25zIHZpYSBhIHByb3BlcnR5IGFuZCBhbGxvdyB1c2luZyB0aGUgY2hhbm5lbCBwb3NpdGlvbnMgb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzogKGdzdF9pbnRlcmxlYXZlX3BhZF9nZXRfdHlwZSksCgkgIChnc3RfaW50ZXJsZWF2ZV9maW5hbGl6ZSksIChnc3RfYXVkaW9fY2hlY2tfY2hhbm5lbF9wb3NpdGlvbnMpLAoJICAoZ3N0X2ludGVybGVhdmVfc2V0X2NoYW5uZWxfcG9zaXRpb25zKSwKCSAgKGdzdF9pbnRlcmxlYXZlX2NsYXNzX2luaXQpLCAoZ3N0X2ludGVybGVhdmVfaW5pdCksCgkgIChnc3RfaW50ZXJsZWF2ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X2ludGVybGVhdmVfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnRlcmxlYXZlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfaW50ZXJsZWF2ZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfaW50ZXJsZWF2ZV9zaW5rX3NldGNhcHMpLCAoZ3N0X2ludGVybGVhdmVfc3JjX3F1ZXJ5X2R1cmF0aW9uKSwKCSAgKGdzdF9pbnRlcmxlYXZlX3NyY19xdWVyeV9sYXRlbmN5KSwgKGdzdF9pbnRlcmxlYXZlX2NvbGxlY3RlZCk6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5oOgoJICBBbGxvdyBzZXR0aW5nIGNoYW5uZWwgcG9zaXRpb25zIHZpYSBhIHByb3BlcnR5IGFuZCBhbGxvdyB1c2luZyB0aGUKCSAgY2hhbm5lbCBwb3NpdGlvbnMgb24gdGhlIGlucHV0IGFzIHRoZSBjaGFubmVsIHBvc2l0aW9ucyBvZiB0aGUgb3V0cHV0LgoJICBGaXggc29tZSBicm9rZW4gbG9naWMgYW5kIG1lbW9yeSBsZWFrcy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pbnRlcmxlYXZlLmM6IChzcmNfaGFuZG9mZl9mbG9hdDMyKSwKCSAgKHNpbmtfaGFuZG9mZl9mbG9hdDMyKSwgKEdTVF9TVEFSVF9URVNUKSwgKGludGVybGVhdmVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgY2hlY2tpbmcgY29ycmVjdCBoYW5kbGluZyBvZiBjaGFubmVsIHBvc2l0aW9ucy4KCjIwMDgtMDYtMDIgMTI6MjI6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogV2hlbiB1c2luZyBnc3RfZWxlbWVudF9pdGVyYXRlX3BhZHMoKSBvbmUgaGFzIHRvIHVucmVmIGV2ZXJ5IHBhZCBhZnRlciB1c2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfcXVlcnlfZHVyYXRpb24pLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcXVlcnlfbGF0ZW5jeSk6CgkgIFdoZW4gdXNpbmcgZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRzKCkgb25lIGhhcyB0byB1bnJlZiBldmVyeSBwYWQKCSAgYWZ0ZXIgdXNhZ2UuCgoyMDA4LTA1LTMxIDE2OjUzOjIzICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJICBnc3QvcXRkZW11eC86IEltcHJvdmUgbWV0YS1kYXRhIGhhbmRsaW5nLCBhZGQgJ2NvbW1lbnQnLCAnZGVzY3JpcHRpb24nIGFuZCAnY29weXJpZ2h0JyB0YWcgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQmFzdGllbiBOb2NlcmEgPGhhZGVzcyBhdCBoYWRlc3MgZG90IG5ldD4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3RhZ19hZGRfc3RyKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdWR0YSk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSAgSW1wcm92ZSBtZXRhLWRhdGEgaGFuZGxpbmcsIGFkZCAnY29tbWVudCcsICdkZXNjcmlwdGlvbicgYW5kCgkgICdjb3B5cmlnaHQnIHRhZyBoYW5kbGluZy4KCSAgRml4ZXMgIzUzNTkzNQoKMjAwOC0wNS0zMSAxNTozMDo0MSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IE1ha2Ugc3VyZSB3ZSB3ZSBkb24ndCBjbGlwIHRoZSBzZWdtZW50J3Mgc3RvcCB1c2luZyB0aGUgbWFpbiBzZWdtZW50IGR1cmF0aW9uIGFzIHRoYXQgY291bGQgY3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDUtMzEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZmluZF9rZXlmcmFtZSksCgkgIChnc3RfcXRkZW11eF9maW5kX3NlZ21lbnQpLCAoZ3N0X3F0ZGVtdXhfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9xdGRlbXV4X3NlZWtfdG9fcHJldmlvdXNfa2V5ZnJhbWUpLAoJICAoZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCksIChnc3RfcXRkZW11eF9sb29wKTogTWFrZSBzdXJlIHdlCgkgIHdlIGRvbid0IGNsaXAgdGhlIHNlZ21lbnQncyBzdG9wIHVzaW5nIHRoZSBtYWluIHNlZ21lbnQgZHVyYXRpb24KCSAgYXMKCSAgdGhhdCBjb3VsZCBjcm9wIHF1aXRlIHNvbWUgdmlkZW8gZnJhbWVzLiBNYWtlIHJldmVyc2UgcGxheWJhY2sKCSAgc3VwcG9ydAoJICBtb3JlIHJvYnVzdCBhbmQgc3VwcG9ydCBlZGl0IGxpc3RzLiBTdXBwb3J0IHNlZWtpbmcgdG8gdGhlIGxhc3QKCSAgZnJhbWUsCgkgIGFuZCBmaXggcmV2ZXJzZSBsb29waW5nIHBsYXliYWNrLiBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiBVcGRhdGVkLgoKMjAwOC0wNS0zMSAwODozNzowMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogRG9uJ3QgY2xpcCBmbG9hdC9kb3VibGUgc2FtcGxlcywgY29ycmVjdGx5IHVuc2V0IHBhc3N0aHJvdWdoIG1vZGUgYW5kIHVzZSBiZXR0ZXIgcm91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl90cmFuc2Zvcm1faXApOgoJICBEb24ndCBjbGlwIGZsb2F0L2RvdWJsZSBzYW1wbGVzLCBjb3JyZWN0bHkgdW5zZXQgcGFzc3Rocm91Z2ggbW9kZQoJICBhbmQgdXNlIGJldHRlciByb3VuZGluZyBmb3IgaW50ZWdlciBzYW1wbGVzLgoKMjAwOC0wNS0zMCAxMTowMzo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuKjogVXBkYXRlIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzIG9ubHkgd2hlbiBuZWVkZWQgaW4gdGhlIHRyYW5zZm9ybV9pcCBmdW5jdGlvbiBhbmQgY29yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl9iYW5kX3NldF9wcm9wZXJ0eSksIChnc3RfaWlyX2VxdWFsaXplcl9pbml0KSwKCSAgKHNldHVwX2ZpbHRlciksIChzZXRfcGFzc3Rocm91Z2gpLCAodXBkYXRlX2NvZWZmaWNpZW50cyksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jb21wdXRlX2ZyZXF1ZW5jaWVzKSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuaDoKCSAgVXBkYXRlIHRoZSBmaWx0ZXIgY29lZmZpY2llbnRzIG9ubHkgd2hlbiBuZWVkZWQgaW4gdGhlIHRyYW5zZm9ybV9pcAoJICBmdW5jdGlvbiBhbmQgY29ycmVjdGx5IHNldCB0aGUgZWxlbWVudCBpbnRvIHBhc3N0aHJvdWdoIG1vZGUgaWYgdGhlCgkgIGdhaW4gb2YgYWxsIGJhbmRzIGlzIDAuCgoyMDA4LTA1LTI5IDExOjMwOjE2ICswMDAwICBTZWJhc3RpYW4gS2VsbGVyIDxzZWJhc3RpYW4ta2VsbGVyQGdteC5kZT4KCgkgIGdzdC9hbHBoYS9nc3RhbHBoYS5jOiBUcnkgdG8gc2tpcCBwaXhlbHMgb3IgYXJlYXMgdGhhdCBhcmUgdG9vIGRhcmsgb3IgdG9vIGJyaWdodCBmb3IgdXMgdG8gZG8gbWVhbmluZ2Z1bGwgY29sb3IgZGV0ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFNlYmFzdGlhbiBLZWxsZXIgPHNlYmFzdGlhbi1rZWxsZXIgYXQgZ214IGRvdCBkZT4KCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzogKGdzdF9hbHBoYV9jbGFzc19pbml0KSwgKGdzdF9hbHBoYV9pbml0KSwKCSAgKGdzdF9hbHBoYV9zZXRfcHJvcGVydHkpLCAoZ3N0X2FscGhhX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYWxwaGFfY2hyb21hX2tleV9heXV2KSwgKGdzdF9hbHBoYV9jaHJvbWFrZXlfcm93X2k0MjApOgoJICBUcnkgdG8gc2tpcCBwaXhlbHMgb3IgYXJlYXMgdGhhdCBhcmUgdG9vIGRhcmsgb3IgdG9vIGJyaWdodCBmb3IgdXMgdG8gZG8KCSAgbWVhbmluZ2Z1bGwgY29sb3IgZGV0ZWN0aW9uLgoJICBBZGRlZCBwcm9wZXJ0aWVzIHRvIGNvbnRyb2wgdGhlIHNlbnNpdGl2aXR5IHRvIGxpZ2h0IGFuZCBkYXJrbmVzcy4KCSAgQWRkZWQgc29tZSBzbWFsbCBjbGVhbnVwcy4gRml4ZXMgIzUxMjM0NS4KCjIwMDgtMDUtMjggMjA6MDE6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgSWdub3JlIHNvbWUgbW9yZSBnZW5lcmF0ZWQgdGhpbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBzb21lIG1vcmUgZ2VuZXJhdGVkIHRoaW5ncwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBJZ25vcmUgT1NTIGVsZW1lbnRzIGluIHRoZSBzdGF0ZSBjaGFuZ2VzIHRlc3QgdG9vLgoKMjAwOC0wNS0yOCAxNjoyMjozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IEFkZCBTTVBURSBlZmZlY3QgZWxlbWVudHMgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBBZGQgU01QVEUgZWZmZWN0IGVsZW1lbnRzIHRvIGRvY3MuCgoyMDA4LTA1LTI4IDE0OjMxOjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCB3aGF0cyBmaXJzdCBzaG93biBvbiB0aGUgZmRvIHBsdWdpbiBkb2NzIHBhZ2UgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJICBEb2N1bWVudCB3aGF0cyBmaXJzdCBzaG93biBvbiB0aGUgZmRvIHBsdWdpbiBkb2NzIHBhZ2UgOikKCjIwMDgtMDUtMjggMTQ6MDc6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlbmFtZSBhdWRpb3ZvaWNlIHRvIGF1ZGlva2FyYW9rZSBhbmQgYWRkIGl0IHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9rYXJhb2tlLmg6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW92b2ljZS5jOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvdm9pY2UuaDoKCSAgUmVuYW1lIGF1ZGlvdm9pY2UgdG8gYXVkaW9rYXJhb2tlIGFuZCBhZGQgaXQgdG8gdGhlIGRvY3MuCgoyMDA4LTA1LTI4IDEzOjI4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCBhYXNpbmsgYW5kIGNhY2FzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRVFVSVJFTUVOVFM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tMmsxLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkgICogZXh0L2FhbGliL2dzdGFhc2luay5jOgoJICAqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkgIERvY3VtZW50IGFhc2luayBhbmQgY2FjYXNpbmsuCgoyMDA4LTA1LTI4IDA4OjM2OjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLio6IGR1cmF0aW9uIGFuZCBsYXRlbmN5IHF1ZXJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogKGdzdF92aWRlb21peGVyX3Jlc2V0KSwKCSAgKGdzdF92aWRlb21peGVyX2luaXQpLCAoZ3N0X3ZpZGVvbWl4ZXJfcXVlcnlfZHVyYXRpb24pLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcXVlcnlfbGF0ZW5jeSksIChnc3RfdmlkZW9taXhlcl9xdWVyeSksCgkgIChnc3RfdmlkZW9taXhlcl9ibGVuZF9idWZmZXJzKToKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIEltcGxlbWVudCBwb3NpdGlvbiAoaW4gdGltZSksIGR1cmF0aW9uIGFuZCBsYXRlbmN5IHF1ZXJpZXMuCgoyMDA4LTA1LTI4IDA4OjE0OjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IEltcGxlbWVudCBsYXRlbmN5IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IChnc3RfaW50ZXJsZWF2ZV9zcmNfcXVlcnlfZHVyYXRpb24pLAoJICAoZ3N0X2ludGVybGVhdmVfc3JjX3F1ZXJ5X2xhdGVuY3kpLCAoZ3N0X2ludGVybGVhdmVfc3JjX3F1ZXJ5KToKCSAgSW1wbGVtZW50IGxhdGVuY3kgcXVlcnkuCgoyMDA4LTA1LTI3IDE3OjU1OjMwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci4qOiBJbXBsZW1lbnQgcHJvcGVyIHNlZWsvbmV3c2VnbWVudCBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfcmVzZXQpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfaW5pdCksIChnc3RfdmlkZW9taXhlcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9xdWV1ZXMpLCAoZm9yd2FyZF9ldmVudF9mdW5jKSwKCSAgKGZvcndhcmRfZXZlbnQpLCAoZ3N0X3ZpZGVvbWl4ZXJfc3JjX2V2ZW50KSwKCSAgKGdzdF92aWRlb21peGVyX3NpbmtfZXZlbnQpOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuaDoKCSAgSW1wbGVtZW50IHByb3BlciBzZWVrL25ld3NlZ21lbnQgaGFuZGxpbmcuCgkgIEJhc2VkIG9uIGFkZGVyJ3MgaW1wbGVtZW50YXRpb24uCgkgIEZpeGVzICM1MzUxMjEKCjIwMDgtMDUtMjYgMTY6MjU6MTUgKzAwMDAgIGpeIDxqQG9pbDIxLm9yZz4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIGNhcHMgZm9yIERWQ1BSTzUwIGFuZCBEVkNQUk8gSEQgUEFML05UU0MuIFNlZSAjNTI2NDgxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpeIDxqIGF0IG9pbDIxIGRvdCBvcmc+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF92aWRlb19jYXBzKToKCSAgQWRkIGNhcHMgZm9yIERWQ1BSTzUwIGFuZCBEVkNQUk8gSEQgUEFML05UU0MuIFNlZSAjNTI2NDgxLgoKMjAwOC0wNS0yNiAxNTo1MTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdWRpb2Z4LzogQWRkIHNpbXBsZSB2b2ljZSByZW1vdmFsIGVsZW1lbnQuIFlheSBrYXJhb2tlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW92b2ljZS5jOiAoZ3N0X2F1ZGlvX3ZvaWNlX2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9fdm9pY2VfY2xhc3NfaW5pdCksIChnc3RfYXVkaW9fdm9pY2VfaW5pdCksCgkgICh1cGRhdGVfZmlsdGVyKSwgKGdzdF9hdWRpb192b2ljZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX3ZvaWNlX2dldF9wcm9wZXJ0eSksIChnc3RfYXVkaW9fdm9pY2Vfc2V0dXApLAoJICAoZ3N0X2F1ZGlvX3ZvaWNlX3RyYW5zZm9ybV9pbnQpLCAoZ3N0X2F1ZGlvX3ZvaWNlX3RyYW5zZm9ybV9mbG9hdCksCgkgIChnc3RfYXVkaW9fdm9pY2VfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3ZvaWNlLmg6CgkgIEFkZCBzaW1wbGUgdm9pY2UgcmVtb3ZhbCBlbGVtZW50LiBZYXkga2FyYW9rZS4KCjIwMDgtMDUtMjYgMTU6Mzk6MjYgKzAwMDAgIFdpbGxpYW0gTS4gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBGaXggcG90ZW50aWFsIGNhcHMgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXaWxsaWFtIE0uIEJyYWNrIDx3YnJhY2sgYXQgbW1tIGRvdCBjb20gZG90IGhrPgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdCk6CgkgIEZpeCBwb3RlbnRpYWwgY2FwcyBsZWFrLgoJICBJZiB3ZSBjYW4ndCBnZXQgdGhlIGZyYW1lcmF0ZSB3aXRoIGFuIGlvY3RsLCB0cnkgdG8gZ2V0IGl0IHdpdGggdGhlCgkgIGN1cnJlbnQgbm9ybS4gRml4ZXMgIzUyMDA5Mi4KCjIwMDgtMDUtMjYgMTU6MTQ6NTUgKzAwMDAgIFdpbGxpYW0gTS4gQnJhY2sgPHdicmFja0BtbW0uY29tLmhrPgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBJZiB3ZSBmYWlsIHRvIGdldCB0aGUgZnJhbWUgaW50ZXJ2YWxzLCBzaW1wbHkgZG9uJ3QgdG91Y2ggdGhlIGZyYW1lcmF0ZXMgb24gdGhlIHRlbXBsYXRlIGNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV2lsbGlhbSBNLiBCcmFjayA8d2JyYWNrIGF0IG1tbSBkb3QgY29tIGRvdCBoaz4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXRfYW5kX3NpemUpOgoJICBJZiB3ZSBmYWlsIHRvIGdldCB0aGUgZnJhbWUgaW50ZXJ2YWxzLCBzaW1wbHkgZG9uJ3QgdG91Y2ggdGhlIGZyYW1lcmF0ZXMKCSAgb24gdGhlIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBkaXNjYXJkaW5nIHRoZSBmb3JtYXQuIFNlZSAjNTIwMDkyLgoKMjAwOC0wNS0yNiAxNDo1Mjo1MSArMDAwMCAgV2lsbGlhbSBNLiBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IEFkZCBOVjEyLCBOVjIxIGFuZCBiYXllciBzdXBwb3J0LiBTZWUgIzUyMDA5Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXaWxsaWFtIE0uIEJyYWNrIDx3YnJhY2sgYXQgbW1tIGRvdCBjb20gZG90IGhrPgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX3Y0bDJmb3VyY2NfdG9fc3RydWN0dXJlKSwKCSAgKGdzdF92NGwyX2dldF9jYXBzX2luZm8pOgoJICBBZGQgTlYxMiwgTlYyMSBhbmQgYmF5ZXIgc3VwcG9ydC4gU2VlICM1MjAwOTIuCgoyMDA4LTA1LTI2IDEzOjUxOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBVbmJyZWFrIHNlZ21lbnQgYWN0aXZhdGlvbiBhZ2Fpbi4gRml4ZXMgIzUzMTY3Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZmluZF9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X2FjdGl2YXRlX3NlZ21lbnQpOgoJICBVbmJyZWFrIHNlZ21lbnQgYWN0aXZhdGlvbiBhZ2Fpbi4gRml4ZXMgIzUzMTY3Mi4KCjIwMDgtMDUtMjYgMTA6Mjg6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOiBBZGQgYW5vdGhlciBleGFtcGxlIGxhdW5jaCBsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSAgQWRkIGFub3RoZXIgZXhhbXBsZSBsYXVuY2ggbGluZS4KCSAgKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IChpbnRlcmxlYXZlXzI0KSwKCSAgKGdzdF9pbnRlcmxlYXZlX2ZpbmFsaXplKSwgKGdzdF9pbnRlcmxlYXZlX2Jhc2VfaW5pdCksCgkgIChnc3RfaW50ZXJsZWF2ZV9jbGFzc19pbml0KSwgKGdzdF9pbnRlcmxlYXZlX2luaXQpLAoJICAoZ3N0X2ludGVybGVhdmVfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF9pbnRlcmxlYXZlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9pbnRlcmxlYXZlX2NoYW5nZV9zdGF0ZSksIChfX3JlbW92ZV9jaGFubmVscyksCgkgIChfX3NldF9jaGFubmVscyksIChnc3RfaW50ZXJsZWF2ZV9zaW5rX2dldGNhcHMpLAoJICAoZ3N0X2ludGVybGVhdmVfc2V0X3Byb2Nlc3NfZnVuY3Rpb24pLAoJICAoZ3N0X2ludGVybGVhdmVfc2lua19zZXRjYXBzKSwgKGdzdF9pbnRlcmxlYXZlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ludGVybGVhdmVfc3JjX3F1ZXJ5X2R1cmF0aW9uKSwgKGdzdF9pbnRlcmxlYXZlX3NyY19xdWVyeSksCgkgIChmb3J3YXJkX2V2ZW50X2Z1bmMpLCAoZm9yd2FyZF9ldmVudCksIChnc3RfaW50ZXJsZWF2ZV9zcmNfZXZlbnQpLAoJICAoZ3N0X2ludGVybGVhdmVfY29sbGVjdGVkKToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmg6CgkgIE1ham9yIHJld3JpdGUgb2YgaW50ZXJsZWF2ZSB1c2luZyBHc3RDb2xsZWN0cGFkcy4gVGhpcyBuZXcgdmVyc2lvbgoJICBhbHNvIHN1cHBvcnRzIGFsbW9zdCBhbGwgcmF3IGF1ZGlvIGZvcm1hdHMgYW5kIGhhcyBiZXR0ZXIgY2FwcwoJICBuZWdvdGlhdGlvbi4gRml4ZXMgYnVnICM1MDY1OTQuCgkgIEFsc28gdXBkYXRlIGRvY3MgYW5kIGFkZCBzb21lIG1vcmUgZXhhbXBsZXMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaW50ZXJsZWF2ZS5jOiAoaW50ZXJsZWF2ZV9jaGFpbl9mdW5jKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHNyY19oYW5kb2ZmX2Zsb2F0MzIpLCAoc2lua19oYW5kb2ZmX2Zsb2F0MzIpLAoJICAoaW50ZXJsZWF2ZV9zdWl0ZSk6CgkgIEFkZCBzb21lIG1vcmUgZXh0ZW5zaXZlIHVuaXQgdGVzdHMgZm9yIGludGVybGVhdmUuCgoyMDA4LTA1LTI2IDA5OjU3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9uJ3QgdXNlIF9nc3RfcGFkKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4YW1wbGVzL3N3aXRjaC9zd2l0Y2hlci5jOiAoc3dpdGNoX3RpbWVyKToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOiAoZ3N0X3JnX3ZvbHVtZV9pbml0KToKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzogKGNyZWF0ZV9zdHJlYW0pOgoJICAqIGdzdC9zZHAvZ3N0c2RwZGVtdXguYzogKGdzdF9zZHBfZGVtdXhfc3RyZWFtX2NvbmZpZ3VyZV91ZHApLAoJICAoZ3N0X3NkcF9kZW11eF9zdHJlYW1fY29uZmlndXJlX3VkcF9zaW5rKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHBhZF9hZGRlZF9zZXR1cF9kYXRhX2NoZWNrX2Zsb2F0MzJfOGNoX2NiKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6IChzZW5kX2Vvc19ldmVudCksCgkgIChzZW5kX3RhZ19ldmVudCk6CgkgIERvbid0IHVzZSBfZ3N0X3BhZCgpLgoKMjAwOC0wNS0yNSAxNjowOTozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2ZsYWMvOiBTZXQgdGhlIGNoYW5uZWwgbGF5b3V0IHdoZW4gZGVjb2RpbmcgRkxBQyBmaWxlcyB3aXRoIG1vcmUgdGhhbiAyIGNoYW5uZWxzIGFzIGRlZmluZWQgYnkgdGhlIEZMQUMgc3BlYy4gRml4Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY193cml0ZSk6CgkgIFNldCB0aGUgY2hhbm5lbCBsYXlvdXQgd2hlbiBkZWNvZGluZyBGTEFDIGZpbGVzIHdpdGggbW9yZSB0aGFuIDIKCSAgY2hhbm5lbHMgYXMgZGVmaW5lZCBieSB0aGUgRkxBQyBzcGVjLiBGaXhlcyBidWcgIzUzNDU3MC4KCSAgQWxzbyBkb24ndCB0cnkgdG8gZGVjb2RlIGxlZnQvc2lkZSwgcmlnaHQvc2lkZSBhbmQgbWlkL3NpZGUgZmlsZXMKCSAgYXMgd2UgZG9uJ3Qgc3VwcG9ydCB0aGlzIGF0IGFsbC4KCjIwMDgtMDUtMjQgMTI6NTU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFdlIG5lZWQgLWJhc2UgQ1ZTIChydHNwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBXZSBuZWVkIC1iYXNlIENWUyAocnRzcCkuCgoyMDA4LTA1LTIyIDE5OjQ3OjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGQgaW50ZXJsZWF2ZS9kZWludGVybGVhdmUgdG8gdGhlIGRvY3MgYW5kIHdoaWxlIGF0IHRoYXQgcnVuIG1ha2UgdXBkYXRlIGluIGRvY3MvcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHNhc3BkaWYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbXJ3Yi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWJheWVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYnoyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2RhdWRpby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkeGFwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRmYnZpZGVvc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR0c2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2Yi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2ZHNwdS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZhYWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mYWFkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmJkZXZzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmVzdGl2YWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1maWx0ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHZkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZyZWV6ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzbS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oMjY0cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tamFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxhZHNwYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1ldGFkYXRhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW1zLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9kcGx1Zy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1wZWcyZW5jLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZzR2aWRlb3BhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZ3RzcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tcGVndmlkZW9wYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11c2VwYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVzaWNicmFpbnoueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdmUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uZW9uLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnNmZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnV2ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yYXdwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlYWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmZic3JjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2RsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2RwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2VsZWN0b3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbmRmaWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwY2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWVkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXhyZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0ZXJlby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXR0YS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZjZHNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvc2lnbmFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdm1uYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdpbGRtaWRpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teDI2NC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXh2aWQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi15NG1lbmMueG1sOgoJICBBZGQgaW50ZXJsZWF2ZS9kZWludGVybGVhdmUgdG8gdGhlIGRvY3MgYW5kIHdoaWxlIGF0IHRoYXQKCSAgcnVuIG1ha2UgdXBkYXRlIGluIGRvY3MvcGx1Z2lucy4KCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzoKCSAgQWRkIGEgcGFyYXByYXBoIGFib3V0IHVzaW5nIGEgcXVldWUgYW5kIGF1ZGlvY29udmVydCBhZnRlciB0aGUgc291cmNlCgkgIHBhZHMgdG8gdGhlIGRvY3MuCgoyMDA4LTA1LTIyIDE4OjU1OjA5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuKjogRG9uJ3Qgc2V0IGEgZ2V0Y2FwcygpIGZ1bmN0aW9uIG9uIHRoZSBzcmMgcGFkcyBhcyBpdCdzIG5vdCByZXF1aXJlZCBhbmQgdGhlIGRlZmF1bHQgZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6IChnc3RfZGVpbnRlcmxlYXZlX2Jhc2VfaW5pdCksCgkgIChnc3RfZGVpbnRlcmxlYXZlX2NsYXNzX2luaXQpLCAoZ3N0X2RlaW50ZXJsZWF2ZV9pbml0KSwKCSAgKGdzdF9kZWludGVybGVhdmVfYWRkX25ld19wYWRzKSwgKGdzdF9kZWludGVybGVhdmVfc2lua19nZXRjYXBzKToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuaDoKCSAgRG9uJ3Qgc2V0IGEgZ2V0Y2FwcygpIGZ1bmN0aW9uIG9uIHRoZSBzcmMgcGFkcyBhcyBpdCdzIG5vdCByZXF1aXJlZAoJICBhbmQgdGhlIGRlZmF1bHQgZ2V0Y2FwcygpIGZ1bmN0aW9uIHJldHVybnMgdGhlIGNvcnJlY3QgcmVzdWx0cyBmb3IKCSAgb3VyIHNyYyBwYWRzLgoJICBDb21wbGV0ZSBkb2N1bWVudGF0aW9uIGFuZCBhZGQgbXlzZWxmIHRvIHRoZSBhdXRob3JzIG9mIHRoZSBlbGVtZW50LgoKMjAwOC0wNS0yMiAxNDo0OTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC91ZHAvTWFrZWZpbGUuYW06IEFkZCAtRF9HTlVfU09VUkNFIHRvIENGTEFHUyBzbyB3ZSBnZXQgdGhpbmdzIGxpa2UgRUFJX0FERFJGQU1JTFkgd2hlbiBpbmNsdWRpbmcgbmV0ZGIuaCB3aGVuIGJ1aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL01ha2VmaWxlLmFtOgoJICBBZGQgLURfR05VX1NPVVJDRSB0byBDRkxBR1Mgc28gd2UgZ2V0IHRoaW5ncyBsaWtlIEVBSV9BRERSRkFNSUxZCgkgIHdoZW4gaW5jbHVkaW5nIG5ldGRiLmggd2hlbiBidWlsZGluZyBhZ2FpbnN0IGdsaWJjID49IDIuOC4KCjIwMDgtMDUtMjIgMTE6MTk6MDMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuYzogRml4IGRlYnVnIHN0YXRlbWVudCBhcmd1bWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTA1LTIyICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZWFscGhhLmM6IChnc3Rfc21wdGVfYWxwaGFfc2V0Y2Fwcyk6IEZpeAoJICBkZWJ1ZyBzdGF0ZW1lbnQgYXJndW1lbnRzLgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IChnc3RfbXVsdGl1ZHBzaW5rX3NldHVwX3Fvc19kc2NwKToKCSAgKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmM6IChnc3RfdWRwX2pvaW5fZ3JvdXApLAoJICAoZ3N0X3VkcF9sZWF2ZV9ncm91cCk6IEZpeCBJUCBhbmQgSVBWNiBvcHRpb25zIHRvIG1ha2UgaXQgd29yawoJICBvbiBtb3JlIHBsYXRmb3Jtcy4KCjIwMDgtMDUtMjEgMTc6NTE6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCksIGl0J3MgYSBiYWQsIGJhZCBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F2aW11eC5jOiAoc2V0dXBfc3JjX3BhZCksCgkgICh0ZWFyZG93bl9zcmNfcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pY3lkZW11eC5jOiAoaWN5ZGVtdXhfZm91bmRfcGFkKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOiAoc2V0dXBfc3JjX3BhZCksCgkgICh0ZWFyZG93bl9zcmNfcGFkKSwgKHNldHVwX3NpbmtfcGFkKSwgKHRlYXJkb3duX3NpbmtfcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2Nyb3AuYzogKHZpZGVvX2Nyb3BfZ2V0X3Rlc3RfY2FwcyksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja3BhcnNlLmM6ICh3YXZwYWNrcGFyc2VfZm91bmRfcGFkKSwKCSAgKHNldHVwX3dhdnBhY2twYXJzZSksIChjbGVhbnVwX3dhdnBhY2twYXJzZSk6CgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCksIGl0J3MgYSBiYWQsIGJhZCBtZXRob2QuCgoyMDA4LTA1LTIxIDE3OjM5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9uJ3QgdXNlIGdzdF9lbGVtZW50X2dldF9wYWQoKSwgaXQncyBhIGJhZCBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmM6IChnc3RfZ2NvbmZfYXVkaW9fc3JjX3Jlc2V0KSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuYzogKGdzdF9nY29uZl92aWRlb19zaW5rX3Jlc2V0KSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5jOiAoZ3N0X2djb25mX3ZpZGVvX3NyY19yZXNldCksCgkgIChkb190b2dnbGVfZWxlbWVudCk6CgkgICogZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuYzogKGdzdF9zd2l0Y2hfY29tbWl0X25ld19raWQpOgoJICAqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmM6IChnc3RfaGFsX2F1ZGlvX3NpbmtfcmVzZXQpLAoJICAoZG9fdG9nZ2xlX2VsZW1lbnQpOgoJICAqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zcmMuYzogKGdzdF9oYWxfYXVkaW9fc3JjX3Jlc2V0KSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6IChnc3RfYXV0b19hdWRpb19zaW5rX3Jlc2V0KSwKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZGV0ZWN0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6IChnc3RfYXV0b192aWRlb19zaW5rX3Jlc2V0KSwKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfZGV0ZWN0KToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19pbml0KSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9mcmVlKSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdWRwKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdWRwX3NpbmspLCAoZ3N0X3J0c3BzcmNfc2tpcF9sd3MpLAoJICAoZ3N0X3J0c3BzcmNfdW5za2lwX2x3cyksIChnc3RfcnRzcHNyY19za2lwX2NvbW1hcyksCgkgIChnc3RfcnRzcHNyY19za2lwX2l0ZW0pLCAoZ3N0X3J0c3BfZGVjb2RlX3F1b3RlZF9zdHJpbmcpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfZGlnZXN0X2NoYWxsZW5nZSksIChnc3RfcnRzcHNyY19wYXJzZV9hdXRoX2hkcik6CgkgICogdGVzdHMvaWNsZXMvdmlkZW9jcm9wLXRlc3QuYzogKHRlc3Rfd2l0aF9jYXBzKSwKCSAgKHZpZGVvX2Nyb3BfZ2V0X3Rlc3RfY2Fwcyk6CgkgIERvbid0IHVzZSBnc3RfZWxlbWVudF9nZXRfcGFkKCksIGl0J3MgYSBiYWQgbWV0aG9kLgoKMjAwOC0wNS0yMSAxNzozNTo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvOiBKb2luaW5nIGEgbXVsdGljYXN0IGdyb3VwIGFuZCBzZXR0aW5nIHRoZSBsb29wL3R0bCBwcm9wZXJ0aWVzIGFyZSB0b3RhbGx5IHVucmVsYXRlZCB0YXNrcyBhcmUgbXVzdCBiZSBzZXBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19pbml0X3NlbmQpLAoJICAoZ3N0X211bHRpdWRwc2lua19hZGRfaW50ZXJuYWwpOgoJICAqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzogKGdzdF91ZHBfc2V0X2xvb3BfdHRsKSwKCSAgKGdzdF91ZHBfam9pbl9ncm91cCk6CgkgICogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5oOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX3N0YXJ0KToKCSAgSm9pbmluZyBhIG11bHRpY2FzdCBncm91cCBhbmQgc2V0dGluZyB0aGUgbG9vcC90dGwgcHJvcGVydGllcyBhcmUKCSAgdG90YWxseSB1bnJlbGF0ZWQgdGFza3MgYXJlIG11c3QgYmUgc2VwYXJhdGVkLgoKMjAwOC0wNS0yMSAxNDowOTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguYzogQWxzbyBzdXBwb3J0IGFsYXcvbXVsYXcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIEFsc28gc3VwcG9ydCBhbGF3L211bGF3LgoKMjAwOC0wNS0yMSAxMzo0Nzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLio6IEFkZCBhIGZpeG1lIGZvciB0aGUgYXV0by1tdWx0aWNhc3QgcHJvcGVydHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IChnc3RfbXVsdGl1ZHBzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X211bHRpdWRwc2lua19zZXR1cF9xb3NfZHNjcCksIChnc3RfbXVsdGl1ZHBzaW5rX2FkZF9pbnRlcm5hbCk6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSAgQWRkIGEgZml4bWUgZm9yIHRoZSBhdXRvLW11bHRpY2FzdCBwcm9wZXJ0eS4KCSAgRml4IHNvbWUgY29uZnVzaW5nIGRlYnVnIG1lc3NhZ2VzLgoJICBEaXNhYmxlIHNldHRpbmcgYSBxb3MgdmFsdWUgYnkgZGVmYXVsdC4KCjIwMDgtMDUtMjEgMTE6Mzg6MTcgKzAwMDAgIEd1c3RhZiBSw6RudGlsw6QgPGcucmFudGlsYUBnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiBJZ25vcmUgRVBFUk0gZXJyb3JzIGZyb20gc2VuZHRvLiBGaXhlcyAjNTMzNjE5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEd1c3RhZiBSw6RudGlsw6QgPGcgZG90IHJhbnRpbGEgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19yZW5kZXIpOgoJICBJZ25vcmUgRVBFUk0gZXJyb3JzIGZyb20gc2VuZHRvLiBGaXhlcyAjNTMzNjE5LgoKMjAwOC0wNS0yMSAxMDo1MTo1MiArMDAwMCAgSGVucmlrIEVyaWtzc29uIDxoZW5yaWtlbkBheGlzLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLio6IEFkZCBxb3MtZHNjcCBwcm9wZXJ0eSB0byBtYW5hZ2UgdGhlIFF1YWxpdHkgb2Ygc2VydmljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBIZW5yaWsgRXJpa3Nzb24gPGhlbnJpa2VuIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfaW5pdCksIChnc3RfbXVsdGl1ZHBzaW5rX3NldHVwX3Fvc19kc2NwKSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9tdWx0aXVkcHNpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfaW5pdF9zZW5kKSwgKGdzdF9tdWx0aXVkcHNpbmtfYWRkX2ludGVybmFsKToKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5oOgoJICBBZGQgcW9zLWRzY3AgcHJvcGVydHkgdG8gbWFuYWdlIHRoZSBRdWFsaXR5IG9mIHNlcnZpY2UuCgoyMDA4LTA1LTIxIDEwOjA5OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOiBJbXByb3ZlIGRlYnVnZ2luZyBvZiB0aGUgaWRlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzogKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3Byb2Nlc3MpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiB0aGUgaWRlbnQuCgoyMDA4LTA1LTIxIDA5OjU2OjAyICswMDAwICBCcnVubyBTYW50b3MgPGJydW5vZkB1YS5wdD4KCgkgIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuKjogUHJvdmlkZSBhIGJ1bmNoIG9mIGhlbHBlciBtZXRob2RzIHRvIGRlYWwgd2l0aCBJUHY0IGFuZCBJUHY2IHRyYW5zcGFyZW50bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQnJ1bm8gU2FudG9zIDxicnVub2YgYXQgdWEgZG90IHB0PgoJICAqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuYzogKGdzdF91ZHBfZ2V0X2FkZHIpLAoJICAoZ3N0X3VkcF9qb2luX2dyb3VwKSwgKGdzdF91ZHBfbGVhdmVfZ3JvdXApLAoJICAoZ3N0X3VkcF9pc19tdWx0aWNhc3QpOgoJICAqIGdzdC91ZHAvZ3N0dWRwbmV0dXRpbHMuaDoKCSAgUHJvdmlkZSBhIGJ1bmNoIG9mIGhlbHBlciBtZXRob2RzIHRvIGRlYWwgd2l0aCBJUHY0IGFuZCBJUHY2CgkgIHRyYW5zcGFyZW50bHkuCgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2luaXQpLCAoZ3N0X211bHRpdWRwc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X211bHRpdWRwc2lua19nZXRfcHJvcGVydHkpLCAoam9pbl9tdWx0aWNhc3QpLAoJICAoZ3N0X211bHRpdWRwc2lua19pbml0X3NlbmQpLCAoZ3N0X211bHRpdWRwc2lua19hZGRfaW50ZXJuYWwpLAoJICAoZ3N0X211bHRpdWRwc2lua19yZW1vdmUpOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgIEFkZCBtdWx0aWNhc3QgVFRMIGFuZCBsb29wYmFjayBwcm9wZXJ0aWVzLgoJICBVc2UgdGhlIGhlbHBlciBtZXRob2RzIHRvIGltcGxlbWVudCBpcDQgYW5kIGlwNi4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jcmVhdGUpLCAoZ3N0X3VkcHNyY19zdGFydCk6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgVXNlIHRoZSBoZWxwZXIgbWV0aG9kcyB0byBpbXBsZW1lbnQgaXA0IGFuZCBpcDYuCgkgIEZpeGVzICM1MTU5NjIuCgoyMDA4LTA1LTIxIDA5OjM4OjQ4ICswMDAwICBQYXRyaWNrIFJhZGl6aSA8cGF0cmljay5yYWRpemlAYXhpcy5jb20+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4Lio6IERvbid0IGJsaW5kbHkgY29weSB0aGUgbWltZS10eXBlIGFzIHRoZSBjYXBzIG5hbWUgYmVjYXVzZSB0aGV5IG5vdCBhbHdheXMgbWFwIGRpcmVjdGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQYXRyaWNrIFJhZGl6aSA8cGF0cmljayBkb3QgcmFkaXppIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X211bHRpcGFydF9kZW11eF9nZXRfZ3N0bmFtZSksCgkgIChnc3RfbXVsdGlwYXJ0X2ZpbmRfcGFkX2J5X21pbWUpLCAoZ3N0X211bHRpcGFydF9kZW11eF9jaGFpbik6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5oOgoJICBEb24ndCBibGluZGx5IGNvcHkgdGhlIG1pbWUtdHlwZSBhcyB0aGUgY2FwcyBuYW1lIGJlY2F1c2UgdGhleSBub3QKCSAgYWx3YXlzIG1hcCBkaXJlY3RseS4gSW5zdGVhZCB1c2UgYSBoYXNodGFibGUgd2l0aCBjb21tb24gbWFwcGluZ3MuCgkgIEZpeGVzICM1MzMyODcuCgoyMDA4LTA1LTIwIDE3OjI3OjM1ICswMDAwICBNaWNoYWVsIE1lZWtzIDxtbWVla3NAeGltaWFuLm9yZz4KCgkgIGV4dC9lc2QvZXNkc2luay5jOiBXaGVuIHdlIHBvc3QgYW4gZXJyb3IsIHdlIG11c3QgcmV0dXJuIC0xIHRvIGxldCB0aGUgcGFyZW50IGtub3cgdGhhdCB3ZSBjYW5ub3Qgd3JpdGUgdGhlIHNlZ21lbnQgZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZXNkL2VzZHNpbmsuYzogKGdzdF9lc2RzaW5rX3dyaXRlKToKCSAgV2hlbiB3ZSBwb3N0IGFuIGVycm9yLCB3ZSBtdXN0IHJldHVybiAtMSB0byBsZXQgdGhlIHBhcmVudCBrbm93IHRoYXQgd2UKCSAgY2Fubm90IHdyaXRlIHRoZSBzZWdtZW50IGVsc2UgaXQgd2lsbCBsb29wIGFuZCBjb250aW51ZSB0byBjYWxsIHVzIGFnYWluCgkgIGZvcmV2ZXIuIFBhdGNoIGJ5IE1pY2hhZWwgTWVla3MuCgoyMDA4LTA1LTIwIDE0OjI0OjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IEFkZCBtaXNzaW5nIGluY3VkZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgQWRkIG1pc3NpbmcgaW5jdWRlcy4KCjIwMDgtMDUtMjAgMTM6NTc6NDQgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjY0cGF5Lio6IENvcnJlY3QgYSB0eXBvIChzaW5sZSAtPiBzaW5nbGUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzogKGdzdF9oMjY0X3NjYW5fbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfcnRwX2gyNjRfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5oOgoJICBDb3JyZWN0IGEgdHlwbyAoc2lubGUgLT4gc2luZ2xlKS4KCjIwMDgtMDUtMjAgMTE6MzM6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS4qOiBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIG91dHB1dHRpbmcgcXVpY2t0aW1lLWxpa2UgQVZDIG91dHB1dCBpbiBhZGRpdGlvbiB0byB0aGUgZXhpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzogKGdzdF9ydHBfaDI2NF9kZXBheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfaDI2NF9kZXBheV9pbml0KSwgKGdzdF9ydHBfaDI2NF9kZXBheV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9oMjY0X2RlcGF5X2dldF9wcm9wZXJ0eSksIChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuaDoKCSAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBvdXRwdXR0aW5nIHF1aWNrdGltZS1saWtlIEFWQyBvdXRwdXQgaW4KCSAgYWRkaXRpb24gdG8gdGhlIGV4aXN0aW5nIGJ5dGVzdHJlYW0gb3V0cHV0LgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOiAoZ3N0X2gyNjRfc2Nhbl9tb2RlX2dldF90eXBlKSwKCSAgKGdzdF9ydHBfaDI2NF9wYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2gyNjRfcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9oMjY0X3BheV9zZXRjYXBzKSwgKGdzdF9ydHBfaDI2NF9wYXlfcGF5bG9hZF9uYWwpLAoJICAoZ3N0X3J0cF9oMjY0X3BheV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9ydHBfaDI2NF9wYXlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfaDI2NF9wYXlfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgTWFrZSB0aGUgcGFyc2luZyBtb2RlIGNvbmZpZ3VyYWJsZSwgZm9yIHNvbWUgaW5wdXRzIHdlIGRvbid0IG5lZWQgdG8KCSAgc2NhbiBldmVyeSBieXRlIGZvciBzdGFydCBjb2Rlcy4KCSAgT25seSBzZXQgdGhlIG1hcmtlciBiaXQgb24gQUNDRVNTIHVuaXRzLgoKMjAwOC0wNS0yMCAxMDo0NzoxMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogVXNlIGEgYmlnZ2VyIHR5cGUgaW4gaW50ZWdlciBtb2RlIGZvciB0aGUgaW50ZXJtZWRpYXRlIHJlc3VsdHMgdG8gcHJldmVudCBvdmVyZmxvd3MuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIFVzZSBhIGJpZ2dlciB0eXBlIGluIGludGVnZXIgbW9kZSBmb3IgdGhlIGludGVybWVkaWF0ZSByZXN1bHRzIHRvCgkgIHByZXZlbnQgb3ZlcmZsb3dzLiBUaGlzIGZpeGVzIHRoZSBjcmlwcGxlZCBzb3VuZCB3aGVuIHVzaW5nIHRoZQoJICBlcXVhbGl6ZXIgaW4gaW50ZWdlciBtb2RlLiBGaXhlcyBidWcgIzUxMDg2NS4KCjIwMDgtMDUtMjAgMTA6NDI6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci4qOiBJbnN0ZWFkIG9mIGEgcmFuZG9tIG51bWJlciBmb3IgdGhlIHJlcXVlc3QgcGFkIGlkJ3MsIHVzZSBhIGNvdW50ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmg6CgkgIEluc3RlYWQgb2YgYSByYW5kb20gbnVtYmVyIGZvciB0aGUgcmVxdWVzdCBwYWQgaWQncywKCSAgdXNlIGEgY291bnRlci4KCSAgUmVnaXN0ZXIgdGhlIHZpZGVvbWl4ZXJwYWQgY2xhc3MgZnJvbSB0aGUgZWxlbWVudCdzIGNsYXNzX2luaXQKCSAgd2hlcmUgaXQncyBzYWZlciwgYW5kIGFsbG93cyB0aGUgZG9jcyBnZW5lcmF0b3IgdG8gc2NhbiBpdC4KCjIwMDgtMDUtMjAgMDk6Mjk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvc21wdGUvOiBBZGQgbmV3IHBsdWdpbiB0aGF0IGFkZHMgdGhlIFNNUFRFIHRyYW5zaXRpb24gaW4gdGhlIGFscGhhIGNoYW5uZWwgb2YKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NtcHRlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX3BsdWdpbl9pbml0KToKCSAgKiBnc3Qvc21wdGUvZ3N0c21wdGUuaDoKCSAgKiBnc3Qvc21wdGUvZ3N0c21wdGVhbHBoYS5jOgoJICAoZ3N0X3NtcHRlX2FscGhhX3RyYW5zaXRpb25fdHlwZV9nZXRfdHlwZSksCgkgIChnc3Rfc21wdGVfYWxwaGFfZ2V0X3R5cGUpLCAoZ3N0X3NtcHRlX2FscGhhX2Jhc2VfaW5pdCksCgkgIChnc3Rfc21wdGVfYWxwaGFfY2xhc3NfaW5pdCksIChnc3Rfc21wdGVfYWxwaGFfdXBkYXRlX21hc2spLAoJICAoZ3N0X3NtcHRlX2FscGhhX3NldGNhcHMpLCAoZ3N0X3NtcHRlX2FscGhhX2dldF91bml0X3NpemUpLAoJICAoZ3N0X3NtcHRlX2FscGhhX2luaXQpLCAoZ3N0X3NtcHRlX2FscGhhX2ZpbmFsaXplKSwKCSAgKGdzdF9zbXB0ZV9hbHBoYV9kb19heXV2KSwgKGdzdF9zbXB0ZV9hbHBoYV9kb19pNDIwKSwKCSAgKGdzdF9zbXB0ZV9hbHBoYV90cmFuc2Zvcm0pLCAoZ3N0X3NtcHRlX2FscGhhX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc21wdGVfYWxwaGFfZ2V0X3Byb3BlcnR5KSwgKGdzdF9zbXB0ZV9hbHBoYV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlYWxwaGEuaDoKCSAgKiBnc3Qvc21wdGUvcGx1Z2luLmM6IChwbHVnaW5faW5pdCk6CgkgIEFkZCBuZXcgcGx1Z2luIHRoYXQgYWRkcyB0aGUgU01QVEUgdHJhbnNpdGlvbiBpbiB0aGUgYWxwaGEgY2hhbm5lbCBvZgoJICBJNDIwIGFuZCBBWVVWIGZyYW1lcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGJsZW5kZWQgd2l0aCB2aWRlb21peGVyIGxhdGVyCgkgIG9uLiBVc2VzIGFsbCBuaWNldGllcyBzdWNoIGFzIHVzaW5nIGJhc2UgdHJhbnNmb3JtIGZvciBlZmZpY2llbnQgYWxsb2MKCSAgYW5kIG5lZ290aWF0aW9uLiBJdCBjdXJyZW50bHkgcmVxdWlyZXMgR3N0Q29udHJvbGxlciB0byBjb250cm9sIHRoZQoJICBwb3NpdGlvbiBpbiB0aGUgdHJhbnNpdGlvbiBlZmZlY3QuCgoyMDA4LTA1LTE5IDIxOjA1OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBUcnkgdXNpbmcgdGhheXRhbnMgbmV3IG1lY2hhbmlzbSB0byBnZXQgZXh0cmEgY2xhc3NlcyBpbnRvIHBsdWdpbiBkb2NzLiBBcGFyZW50bHkgd29ya3MgZm9yIHRoZSBFcS4gRm9yIFZpZGVvTWl4ZXIgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnR5cGVzOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgVHJ5IHVzaW5nIHRoYXl0YW5zIG5ldyBtZWNoYW5pc20gdG8gZ2V0IGV4dHJhIGNsYXNzZXMgaW50byBwbHVnaW4KCSAgZG9jcy4gQXBhcmVudGx5IHdvcmtzIGZvciB0aGUgRXEuIEZvciBWaWRlb01peGVyIHRoZSBHT2JqZWN0IHN0dWZmIGlzCgkgIG1pc3Npbmcgc3RpbGwuCgoyMDA4LTA1LTE5IDEyOjMyOjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzogU2V0IGtlZXAtcG9zaXRpb25zIHByb3BlcnR5IHRvIFRSVUUgZm9yIHRoZSA4IGNoYW5uZWwgdGVzdCB0byBlbnN1cmUgdGhhdCB0aGUgb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZGVpbnRlcmxlYXZlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFNldCBrZWVwLXBvc2l0aW9ucyBwcm9wZXJ0eSB0byBUUlVFIGZvciB0aGUgOCBjaGFubmVsIHRlc3QgdG8gZW5zdXJlCgkgIHRoYXQgdGhlIG9yaWdpbmFsIGNoYW5uZWwgcG9zaXRpb24gaXMgc2V0IG9uIHRoZSBvdXRwdXQuCgoyMDA4LTA1LTE5IDA3OjQ2OjA1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuKjogQWRkIGEgcHJvcGVydHkgdG8gc2VsZWN0IHdoZXRoZXIgY2hhbm5lbCBwb3NpdGlvbnMgc2hvdWxkIGJlIGtlcHQgb24gdGhlIG1vbm8gb3V0cHV0IGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6IChnc3RfZGVpbnRlcmxlYXZlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsZWF2ZV9pbml0KSwgKGdzdF9kZWludGVybGVhdmVfYWRkX25ld19wYWRzKSwKCSAgKGdzdF9kZWludGVybGVhdmVfc2V0X3BhZHNfY2FwcyksIChnc3RfZGVpbnRlcmxlYXZlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZGVpbnRlcmxlYXZlX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmg6CgkgIEFkZCBhIHByb3BlcnR5IHRvIHNlbGVjdCB3aGV0aGVyIGNoYW5uZWwgcG9zaXRpb25zIHNob3VsZCBiZSBrZXB0IG9uCgkgIHRoZSBtb25vIG91dHB1dCBidWZmZXJzIG9yIHNob3VsZCBiZSBkcm9wcGVkLgoKMjAwOC0wNS0xOCAxOToyNzo1OSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBTZXQgcHJvcGVyIHJhdGUgaW4gYXZpIHN0cmVhbSBoZWFkZXIgZm9yIFBDTSBhdWRpbywgYW5kIGFsc28gZG8gc29tZSBtb3JlIHNhbml0eSBjaGVja3Mgb24gY2FwcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X2F1ZHNpbmtfc2V0X2NhcHMpOgoJICBTZXQgcHJvcGVyIHJhdGUgaW4gYXZpIHN0cmVhbSBoZWFkZXIgZm9yIFBDTSBhdWRpbywgYW5kIGFsc28gZG8gc29tZQoJICBtb3JlIHNhbml0eSBjaGVja3Mgb24gY2FwcyBpbiB0aGlzIGNhc2UuICBGaXhlcyAjNTExNDg5LgoKMjAwOC0wNS0xNyAxOTozOTo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLio6IFF1ZXVlIGV2ZW50cyB1bnRpbCBzcmMgcGFkcyB3ZXJlIGFkZGVkIGFuZCB0aGV5IGNhbiBiZSBzZW50LiBPdGhlcndpc2UgZG93bnN0cmVhbSB3aWxsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOiAoZ3N0X2RlaW50ZXJsZWF2ZV9maW5hbGl6ZSksCgkgIChnc3RfZGVpbnRlcmxlYXZlX2luaXQpLCAoZ3N0X2RlaW50ZXJsZWF2ZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9kZWludGVybGVhdmVfcHJvY2VzcyksIChnc3RfZGVpbnRlcmxlYXZlX3NpbmtfYWN0aXZhdGVfcHVzaCk6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmg6CgkgIFF1ZXVlIGV2ZW50cyB1bnRpbCBzcmMgcGFkcyB3ZXJlIGFkZGVkIGFuZCB0aGV5IGNhbiBiZSBzZW50LiBPdGhlcndpc2UKCSAgZG93bnN0cmVhbSB3aWxsIG5ldmVyIGdldCB0aGUgZmlyc3QgbmV3c2VnbWVudCBldmVudC4KCjIwMDgtMDUtMTcgMTQ6MDU6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOiBBbHdheXMgc2V0IHRoZSBjaGFubmVsIHBvc2l0aW9ucyB3aGVuIGdzdF9hdWRpb19nZXRfY2hhbm5lbF9wb3NpdGlvbnMoKSByZXR1cm5zIHNvbWV0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGdzdF9kZWludGVybGVhdmVfc2lua19zZXRjYXBzKSwKCSAgKGdzdF9kZWludGVybGVhdmVfZ2V0Y2Fwcyk6CgkgIEFsd2F5cyBzZXQgdGhlIGNoYW5uZWwgcG9zaXRpb25zIHdoZW4gZ3N0X2F1ZGlvX2dldF9jaGFubmVsX3Bvc2l0aW9ucygpCgkgIHJldHVybnMgc29tZXRoaW5nLCBldmVuIGlmIHRoZXkncmUgbm90IHNldCBpbiB0aGUgY2Fwcy4gVGhpcyBtYWtlcwoJICBzdXJlIHRoYXQgdGhlIG91dHB1dCBjaGFubmVscyBjYW4gYmUgaW50ZXJsZWF2ZWQgYWdhaW4gY29ycmVjdGx5CgkgIGluIHRoZSBtb25vL3N0ZXJlbyBjYXNlcyB0b28uCgkgIERvbid0IGFzayBmb3IgdGhlIHBlZXJjYXBzIG9mIHRoZSBjdXJyZW50IHBhZCBpbiBnZXRjYXBzKCkgYXMgdGhpcwoJICBtaWdodCBjYWxsIGdldGNhcHMoKSBhZ2FpbiBhbmQgZGVhZGxvY2suCgoyMDA4LTA1LTE3IDEwOjM4OjE4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IERvbid0IGluY2x1ZGUgdGhlIGdzdHY0bDJ4b3ZlcmxheS5oIGhlYWRlciBhcyB0aGUgWE92ZXJsYXkgc3VwcG9ydCBpc24ndCBpbXBsZW1lbnRlZCBhdCBhbGwgeWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBEb24ndCBpbmNsdWRlIHRoZSBnc3R2NGwyeG92ZXJsYXkuaCBoZWFkZXIgYXMgdGhlIFhPdmVybGF5IHN1cHBvcnQKCSAgaXNuJ3QgaW1wbGVtZW50ZWQgYXQgYWxsIHlldCBhbmQgdGhpcyByZXF1aXJlcyBYIGhlYWRlcnMgdG8gYmUKCSAgaW5zdGFsbGVkLiBGaXhlcyBidWcgIzUzMzI2NC4KCjIwMDgtMDUtMTYgMjE6NTY6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9pbnRlcmxlYXZlLzogQWRkIHN1cHBvcnQgZm9yIGFsbCByYXcgYXVkaW8gZm9ybWF0cyBhbmQgcHJvdmlkZSBiZXR0ZXIgbmVnb3RpYXRpb24gaWYgdGhlIGNhcHMgYXJlIGNoYW5naW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGRlaW50ZXJsZWF2ZV8yNCksCgkgIChnc3RfZGVpbnRlcmxlYXZlX2ZpbmFsaXplKSwgKGdzdF9kZWludGVybGVhdmVfYmFzZV9pbml0KSwKCSAgKGdzdF9kZWludGVybGVhdmVfY2xhc3NfaW5pdCksIChnc3RfZGVpbnRlcmxlYXZlX2luaXQpLAoJICAoZ3N0X2RlaW50ZXJsZWF2ZV9hZGRfbmV3X3BhZHMpLCAoZ3N0X2RlaW50ZXJsZWF2ZV9zZXRfcGFkc19jYXBzKSwKCSAgKGdzdF9kZWludGVybGVhdmVfc2V0X3Byb2Nlc3NfZnVuY3Rpb24pLAoJICAoZ3N0X2RlaW50ZXJsZWF2ZV9zaW5rX3NldGNhcHMpLCAoX19yZW1vdmVfY2hhbm5lbHMpLAoJICAoX19zZXRfY2hhbm5lbHMpLCAoZ3N0X2RlaW50ZXJsZWF2ZV9nZXRjYXBzKSwKCSAgKGdzdF9kZWludGVybGVhdmVfcHJvY2VzcyksIChnc3RfZGVpbnRlcmxlYXZlX2NoYWluKSwKCSAgKGdzdF9kZWludGVybGVhdmVfc2lua19hY3RpdmF0ZV9wdXNoKToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuaDoKCSAgQWRkIHN1cHBvcnQgZm9yIGFsbCByYXcgYXVkaW8gZm9ybWF0cyBhbmQgcHJvdmlkZSBiZXR0ZXIgbmVnb3RpYXRpb24KCSAgaWYgdGhlIGNhcHMgYXJlIGNoYW5naW5nLgoJICBEb24ndCBhbGxvdyBjaGFuZ2VzIG9mIHRoZSBjaGFubmVsIHBvc2l0aW9ucyBhbmQgc2V0IHRoZSBwb3NpdGlvbiBvZgoJICB0aGUgY29ycmVzcG9uZGluZyBjaGFubmVsIG9uIHRoZSBzcmMgcGFkIGNhcHMuCgkgIEdlbmVyYWwgY2xlYW51cCBhbmQgc21hbGxlciBidWdmaXhlcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzogKGZsb2F0X2J1ZmZlcl9jaGVja19wcm9iZSk6CgkgIENoZWNrIHRoZSBjaGFubmVsIHBvc2l0aW9ucyBvbiB0aGUgb3V0cHV0IGJ1ZmZlciBjYXBzLgoKMjAwOC0wNS0xNiAxNzo1MDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggc29tZSBjb21waWxlciB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3N0cmVhbXJlYWRlci5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkgICogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vZGVtby1vc3NzcmMuYzoKCSAgRml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDA4LTA1LTE0IDE4OjI4OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzogU21hbGwgY29tbWVudCBhZGRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzogKGdzdF9ydHBfaDI2NF9kZXBheV9wcm9jZXNzKToKCSAgU21hbGwgY29tbWVudCBhZGRlZC4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzogKGdzdF9ydHBfaDI2NF9wYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2gyNjRfcGF5X2RlY29kZV9uYWwpLCAoZ3N0X3J0cF9oMjY0X3BheV9wYXJzZV9zcHNfcHBzKSwKCSAgKGdzdF9ydHBfaDI2NF9wYXlfcGF5bG9hZF9uYWwpLCAoZ3N0X3J0cF9oMjY0X3BheV9oYW5kbGVfYnVmZmVyKToKCSAgRGVidWcgc3RyaW5nIGNsZWFudXBzIChyZW1vdmUgdHJhaWxpbmcgXG4pCgkgIFJlZmFjdG9yIGFuZCBjbGVhbiB1cCB0aGUgcGF5bG9hZGVyIGEgYml0IGFuZCBtYWtlIHN1cmUgdGhhdCB3ZSBvbmx5CgkgIHB1dCBvbmUgTkFMIHVuaXQgaW4gYW4gUlRQIHBhY2tldCBldmVuIGlmIHRoZSBpbnB1dCBidWZmZXIgY29udGFpbnMKCSAgbXVsdGlwbGUgTkFMIHVuaXRzLgoJICBBZGQgc3Vwb3J0IGZvciBBVkMgZm9ybWF0IGlucHV0LgoKMjAwOC0wNS0xNCAxNzo1ODo1MCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuKjogTWFrZSBpdCBwb3NzaWJsZSB0byBzcGVjaWZ5IHByb2ZpbGUtbGV2ZWwtaWQgYW5kIHNwcm9wLXBhcmFtZXRlci1zZXRzIHVzaW5nIHByb3BlcnRpZXMgaW4gY2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6IChnc3RfcnRwX2gyNjRfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9oMjY0X3BheV9maW5hbGl6ZSksIChnc3RfcnRwX2gyNjRfcGF5X2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cF9oMjY0X3BheV9zZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9oMjY0X3BheV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5oOgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHNwZWNpZnkgcHJvZmlsZS1sZXZlbC1pZCBhbmQgc3Byb3AtcGFyYW1ldGVyLXNldHMKCSAgdXNpbmcgcHJvcGVydGllcyBpbiBjYXNlIHRoZXkgYXJlIG5vdCBhdmFpbGFibGUgaW4tc3RyZWFtLgoKMjAwOC0wNS0xNCAxNDoxOTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBBZGQgZGVpbnRlcmxlYXZlIHVuaXQgdGVzdCB0byBWQUxHUklORF9UT19GSVgsIHNpbmNlIGl0IGNhdXNlcyB3ZWlyZCBpbnZhbGlkIGZyZWUgZXJyb3JzIGluIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQWRkIGRlaW50ZXJsZWF2ZSB1bml0IHRlc3QgdG8gVkFMR1JJTkRfVE9fRklYLCBzaW5jZSBpdCBjYXVzZXMKCSAgd2VpcmQgaW52YWxpZCBmcmVlIGVycm9ycyBpbiB2YWxncmluZC9saWJjIGFmdGVyIF9leGl0IGZvciBzb21lCgkgIHJlYXNvbi4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9kZWludGVybGVhdmUuYzogKHBhZHNfY3JlYXRlZCksCgkgIChzZXRfY2hhbm5lbF9wb3NpdGlvbnMpLCAoc3JjX2hhbmRvZmZfZmxvYXQzMl84Y2gpLAoJICAoZmxvYXRfYnVmZmVyX2NoZWNrX3Byb2JlKSwKCSAgKHBhZF9hZGRlZF9zZXR1cF9kYXRhX2NoZWNrX2Zsb2F0MzJfOGNoX2NiKSwKCSAgKG1ha2VfZmFrZV9zcmNfOGNoYW5zX2Zsb2F0MzIpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVpbnRlcmxlYXZlX3N1aXRlKToKCSAgQWRkIHNvbWUgbW9yZSBkZWludGVybGVhdmUgdW5pdCB0ZXN0IGJpdHMgSSBoYWQgbG9jYWxseS4KCjIwMDgtMDUtMTQgMTI6NTI6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFJlbW92ZSBsYWRzcGEgZnJvIHBsdWdpbi1kb2NzLCBpdHMgaW4gZ3N0LXBsdWdpbnMtYmFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxhZHNwYS54bWw6CgkgIFJlbW92ZSBsYWRzcGEgZnJvIHBsdWdpbi1kb2NzLCBpdHMgaW4gZ3N0LXBsdWdpbnMtYmFkLgoKMjAwOC0wNS0xNCAwNzozMjo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ludGVybGVhdmUvOiBTcGxpdCBkZWZpbml0aW9ucyBpbnRvIHNlcGFyYXRlIGhlYWRlciBmaWxlcyBmb3IgYmV0dGVyIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ludGVybGVhdmUvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmg6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5oOgoJICAqIGdzdC9pbnRlcmxlYXZlL3BsdWdpbi5oOgoJICBTcGxpdCBkZWZpbml0aW9ucyBpbnRvIHNlcGFyYXRlIGhlYWRlciBmaWxlcyBmb3IgYmV0dGVyIGRvY3VtZW50YXRpb24KCSAgZ2VuZXJhdGlvbi4KCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGdzdF9kZWludGVybGVhdmVfYmFzZV9pbml0KSwKCSAgKGdzdF9kZWludGVybGVhdmVfY2xhc3NfaW5pdCksIChnc3RfZGVpbnRlcmxlYXZlX3Npbmtfc2V0Y2FwcyksCgkgIChnc3RfZGVpbnRlcmxlYXZlX3Byb2Nlc3MpOgoJICBEb24ndCB1c2UgYWxsb2NhLCBhbGxvdyBjYXBzIGNoYW5nZXMgYXMgbG9uZyBhcyB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzCgkgIGRvZXMgbm90IGNoYW5nZSwgZG9uJ3QgdXNlIGdfd2FybmluZywgcmV0dXJuIE5PVF9ORUdPVElBVEVEIGFzIGVhcmx5CgkgIGFzIHBvc3NpYmxlIGFuZCBzb21lIG90aGVyIGNsZWFudXAuCgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOiAoZ3N0X2ludGVybGVhdmVfYmFzZV9pbml0KSwKCSAgKGdzdF9pbnRlcmxlYXZlX2NsYXNzX2luaXQpOgoJICBEbyBzb21lIHJhbmRvbSBjbGVhbnVwLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2RlaW50ZXJsZWF2ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVpbnRlcmxlYXZlX2NoYWluX2Z1bmMpLCAoZGVpbnRlcmxlYXZlX3BhZF9hZGRlZCksCgkgIChkZWludGVybGVhdmVfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIGRlaW50ZXJsZWF2ZSBlbGVtZW50LgoKMjAwOC0wNS0xMyAyMDoyNToyMCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBTZW5kIGFuIGluaXRpYWwgQllURSBzZWdtZW50IHRvIGluZm9ybSBkb3duc3RyZWFtIG9mIGxhdGVyIHNlZWtpbmcsIGFuZCB0byBmb3JlZ28gc3luYyBhdHRlbXB0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X3N0YXJ0X2ZpbGUpOgoJICBTZW5kIGFuIGluaXRpYWwgQllURSBzZWdtZW50IHRvIGluZm9ybSBkb3duc3RyZWFtIG9mIGxhdGVyIHNlZWtpbmcsCgkgIGFuZCB0byBmb3JlZ28gc3luYyBhdHRlbXB0cy4KCjIwMDgtMDUtMTMgMDg6NTk6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5jOiBGaXggd3JvbmcgY2FwcyBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyOWRlcGF5LmM6IChnc3RfcnRwX2c3MjlfZGVwYXlfc2V0Y2Fwcyk6CgkgIEZpeCB3cm9uZyBjYXBzIHN0cmluZy4KCjIwMDgtMDUtMTMgMDg6MzU6NTUgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwLzogQWRkZWQgRzcyOSBwYXkgYW5kIGRlcGF5bG9hZGVycy4gRml4ZXMgIzUzMjQwOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBnNzI5ZGVwYXkuYzogKGdzdF9ydHBfZzcyOV9kZXBheV9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9nNzI5X2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9nNzI5X2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9nNzI5X2RlcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9nNzI5X2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9nNzI5X2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGc3MjlkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5jOiAoZ3N0X3J0cGc3MjlwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBnNzI5cGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cGc3MjlwYXlfaW5pdCksCgkgIChnc3RfcnRwZzcyOXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfZzcyOV9wYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZzcyOXBheS5oOgoJICBBZGRlZCBHNzI5IHBheSBhbmQgZGVwYXlsb2FkZXJzLiBGaXhlcyAjNTMyNDA5LgoKMjAwOC0wNS0xMyAwODoyMToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiBGaXggdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBkdXJhdGlvbiBvZiB0aGUgY29uY2VhbG1lbnQgcGFja2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfc2lua19ldmVudCk6CgkgIEZpeCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGR1cmF0aW9uIG9mIHRoZSBjb25jZWFsbWVudCBwYWNrZXRzLgoKMjAwOC0wNS0xMiAxODoyNzoyNCArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHAvOiBBZGQgRFYgcGF5IGFuZCBkZXBheWxvYWRlcnMuIEZpeGVzICM1MzI0MjMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZHZkZXBheS5jOiAoZ3N0X3J0cF9kdl9kZXBheV9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9kdl9kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfZHZfZGVwYXlfaW5pdCksCgkgIChwYXJzZV9lbmNvZGUpLCAoZ3N0X3J0cF9kdl9kZXBheV9zZXRjYXBzKSwKCSAgKGNhbGN1bGF0ZV9kaWZibG9ja19sb2NhdGlvbiksIChnc3RfcnRwX2R2X2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9kdl9kZXBheV9yZXNldCksIChnc3RfcnRwX2R2X2RlcGF5X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRwX2R2X2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGR2ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGR2cGF5LmM6IChnc3RfZHZfcGF5X21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0cF9kdl9wYXlfYmFzZV9pbml0KSwgKGdzdF9ydHBfZHZfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9kdl9wYXlfaW5pdCksIChnc3RfZHZfcGF5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZHZfcGF5X2dldF9wcm9wZXJ0eSksIChnc3RfcnRwX2R2X3BheV9zZXRjYXBzKSwKCSAgKGdzdF9kdl9wYXlfbmVnb3RpYXRlKSwgKGluY2x1ZGVfZGlmKSwKCSAgKGdzdF9ydHBfZHZfcGF5X2hhbmRsZV9idWZmZXIpLCAoZ3N0X3J0cF9kdl9wYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZHZwYXkuaDoKCSAgQWRkIERWIHBheSBhbmQgZGVwYXlsb2FkZXJzLiBGaXhlcyAjNTMyNDIzLgoKMjAwOC0wNS0xMiAxNjozNTozOSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogQ29udmVydCBzdWJ0aXRsZSBwYWxldHRlIGluZm8gaW4gVm9iU3ViIHByaXZhdGUgZGF0YSBmcm9tIFZvYlN1YidzIChidWdneSkgUkdCIHRvIFlVVi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF9kdmRfY2x1dF9jaGFuZ2VfZXZlbnQpOgoJICBDb252ZXJ0IHN1YnRpdGxlIHBhbGV0dGUgaW5mbyBpbiBWb2JTdWIgcHJpdmF0ZSBkYXRhIGZyb20gVm9iU3ViJ3MKCSAgKGJ1Z2d5KSBSR0IgdG8gWVVWLgoKMjAwOC0wNS0xMiAxNToyNjowMSArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBEbyBub3QgbGVhdmUgZm91cmNjIHN0cmVhbSBoZWFkZXIgZmllbGQgZW1wdHkgdXBvbiByZXNldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X3BhZF9yZXNldCk6CgkgIERvIG5vdCBsZWF2ZSBmb3VyY2Mgc3RyZWFtIGhlYWRlciBmaWVsZCBlbXB0eSB1cG9uIHJlc2V0LgoJICBGaXhlcyAjNTE5MzAxLgoKMjAwOC0wNS0xMSAxNDo0MzoyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBZGQgZ29vbTJrMSBpbnRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20yazEueG1sOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgKiBnc3QvZ29vbTJrMS9nc3Rnb29tLmM6CgkgIEFkZCBnb29tMmsxIGludG8gdGhlIGRvY3MuCgoyMDA4LTA1LTA4IDE2OjU4OjAyICswMDAwICBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlckBtaW5kLmJlPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBTdXBwb3J0IERpZ2VzdCBhdXRoZW50aWNhdGlvbi4gRml4ZXMgIzUzMjA2NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgIDx3b3V0ZXIgYXQgbWluZCBiZT4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19pbml0KSwKCSAgKGdzdF9ydHNwc3JjX3NraXBfbHdzKSwgKGdzdF9ydHNwc3JjX3Vuc2tpcF9sd3MpLAoJICAoZ3N0X3J0c3BzcmNfc2tpcF9jb21tYXMpLCAoZ3N0X3J0c3BzcmNfc2tpcF9pdGVtKSwKCSAgKGdzdF9ydHNwX2RlY29kZV9xdW90ZWRfc3RyaW5nKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX2RpZ2VzdF9jaGFsbGVuZ2UpLCAoZ3N0X3J0c3BzcmNfcGFyc2VfYXV0aF9oZHIpLAoJICAoZ3N0X3J0c3BzcmNfc2V0dXBfYXV0aCk6CgkgIFN1cHBvcnQgRGlnZXN0IGF1dGhlbnRpY2F0aW9uLiBGaXhlcyAjNTMyMDY1LgoKMjAwOC0wNS0wOCAxMDoyMDo1MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2xldmVsL2dzdGxldmVsLmM6IEFsc28gc3VwcG9ydCAzMmJpdCAoZS5nLiB3aGUgaGF2aW5nIGl0IGFmdGVyICdtYWQnKS4gQWRkIG1vcmUgbm90ZXMgYWJvdXQgd2hhdHMgbmVlZGVkIGZvciBsaWJvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBBbHNvIHN1cHBvcnQgMzJiaXQgKGUuZy4gd2hlIGhhdmluZyBpdCBhZnRlciAnbWFkJykuIEFkZCBtb3JlIG5vdGVzCgkgIGFib3V0IHdoYXRzIG5lZWRlZCBmb3IgbGlib2lsIGFjY2VsZXJhdGlvbi4gU2ltcGxpZnkgZG9jcyBhIGJpdC4KCjIwMDgtMDUtMDggMDg6MTU6MzQgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogVXBkYXRlIHRoZSB0cmFjayBkdXJhdGlvbiBpZiB0aGUgb2xkIG9uZSB3YXMgaW52YWxpZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfY29sbGVjdGVkKToKCSAgVXBkYXRlIHRoZSB0cmFjayBkdXJhdGlvbiBpZiB0aGUgb2xkIG9uZSB3YXMgaW52YWxpZC4KCSAgRml4ZXMgYnVnICM1MzIxMTcuCgoyMDA4LTA1LTA3IDE2OjM2OjA0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmMgKGdzdF9ydHBfaDI2NF9wYXlfcGFyc2Vfc3BzX3Bwcyk6IFVzZSBHU1RfU1RSX05VTEwgd2hlbiB0cnlpbmcgdG8gcHJpbnQgc3BzIGFuZCBwcHMgc3RyaW5ncyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jIChnc3RfcnRwX2gyNjRfcGF5X3BhcnNlX3Nwc19wcHMpOgoJICBVc2UgR1NUX1NUUl9OVUxMIHdoZW4gdHJ5aW5nIHRvIHByaW50IHNwcyBhbmQgcHBzIHN0cmluZ3MgdGhhdCBjb3VsZAoJICBiZSBOVUxMLCBhcyB0aGlzIG1pZ2h0IGNyYXNoIG9uIHNvbWUgcGxhdGZvcm1zLgoKMjAwOC0wNS0wNyAxNTozMzo1MiArMDAwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUB0YW5kYmVyZy5jb20+CgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jIChnc3RfZGlyZWN0ZHJhd19zaW5rX3NldHVwX2RkcmF3KTogRG8gSURpcmVjdERyYXdDbGlwcGVyX1NldEhXbmQoKSBpZiB0aGUgd2luZG93IEkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBIYWFrb24gU3BvcnNoZWltIDxoYWFrb24uc3BvcnNoZWltIGF0IHRhbmRiZXJnIGNvbT4KCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jIChnc3RfZGlyZWN0ZHJhd19zaW5rX3NldHVwX2RkcmF3KToKCSAgRG8gSURpcmVjdERyYXdDbGlwcGVyX1NldEhXbmQoKSBpZiB0aGUgd2luZG93IElEIGhhcyBhbHJlYWR5IGJlZW4KCSAgc2V0IGFmdGVyIGNyZWF0aW5nIHRoZSBjbGlwcGVyLgoKMjAwOC0wNS0wNyAxNToyODowNiArMDAwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUB0YW5kYmVyZy5jb20+CgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jIChnc3RfZGlyZWN0ZHJhd19zaW5rX3Nob3dfZnJhbWUpOiBBZGRlZCBjaGVja2luZyBvZiBzdXJmYWNlIGxvc3QgY2FzZSBhZnRlciBhbiB1bnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBIYWFrb24gU3BvcnNoZWltIDxoYWFrb24uc3BvcnNoZWltIGF0IHRhbmRiZXJnIGNvbT4KCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jIChnc3RfZGlyZWN0ZHJhd19zaW5rX3Nob3dfZnJhbWUpOgoJICBBZGRlZCBjaGVja2luZyBvZiBzdXJmYWNlIGxvc3QgY2FzZSBhZnRlciBhbiB1bnN1Y2Nlc3NmdWwKCSAgSURpcmVjdERyYXdTdXJmYWNlN19Mb2NrKCkgY2FsbC4KCSAgSWYgc3VyZmFjZSBpcyBsb3N0LCByZXR1cm4gR1NUX0ZMT1dfT0suCgoyMDA4LTA1LTA3IDE1OjE5OjQ3ICswMDAwICBIYWFrb24gU3BvcnNoZWltIDxoYWFrb24uc3BvcnNoZWltQHRhbmRiZXJnLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYzoKCSAgc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYyAoZ3N0X2RpcmVjdGRyYXdfc2lua19zaG93X2ZyYW1lLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbi5zcG9yc2hlaW0gYXQgdGFuZGJlcmcgY29tPgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmMgKGdzdF9kaXJlY3RkcmF3X3Npbmtfc2hvd19mcmFtZSwKCSAgV25kUHJvYywgZ3N0X2RpcmVjdGRyYXdfc2lua193aW5kb3dfdGhyZWFkKToKCSAgSW1wcm92ZWQgV2luZG93cyBtZXNzYWdlIGxvb3AgYW5kIGZpeGVkIHdpbmRvdyBkZXN0cnVjdGlvbiBpc3N1ZS4KCSAgV2hlbiB0aGUgd2luZG93IHdoaWNoIERpcmVjdERyYXcgaXMgcmVuZGVyaW5nIHRvIGlzIGRlc3Ryb3llZCwgdGhlCgkgIHJlbmRlci9zaG93X2ZyYW1lIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIEdTVF9GTE9XX0VSUk9SLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzUyMDg4NS4KCjIwMDgtMDUtMDcgMTU6MDk6MTAgKzAwMDAgIEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbi5zcG9yc2hlaW1AdGFuZGJlcmcuY29tPgoKCSAgc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYyAoZ3N0X2RpcmVjdGRyYXdfc2lua19zZXRfY2Fwcyk6IEZpeGVkIG1pZCBzdHJlYW0gcmVzb2x1dGlvbiBjaGFuZ2UgYnVnLCB0aGUgb2Zmc2NyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbSBhdCB0YW5kYmVyZyBjb20+CgkgICogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYyAoZ3N0X2RpcmVjdGRyYXdfc2lua19zZXRfY2Fwcyk6CgkgIEZpeGVkIG1pZCBzdHJlYW0gcmVzb2x1dGlvbiBjaGFuZ2UgYnVnLCB0aGUgb2Zmc2NyZWVuIHN1cmZhY2UgaXMgbm93CgkgIHJlbGVhc2VkIHdoZW4gc2V0X2NhcHMgaXMgY2FsbGVkLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzUyMDg4NS4KCjIwMDgtMDUtMDcgMTQ6NTY6MjIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYwoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19idWZmZXJfYWxsb2MpOgoJICBNYWtlIGl0IHNvIHRoYXQgZ3N0X2RpcmVjdGRyYXdfc2lua19idWZmZXJfYWxsb2MgdXNlcyB0aGUgcmlnaHQKCSAgd2lkdGgvaGVpZ2h0LgoJICBFc3BlY2lhbGx5IHdoZW4gbG9va2luZyB0aHJvdWdoIHRoZSBwb29sIG9mIGJ1ZmZlcnMsIG1ha2Ugc3VyZSB0aGF0CgkgIHRoZSB3aWR0aC9oZWlnaHQgb2YgY2FwcyBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIGFscmVhZHkgbmVnb3RpYXRlZAoJICBkaW1lbnNpb25zLgoJICBGb3IgZXhhbXBsZSBpZiBhIGJ1ZmZlciB3aXRoIGRpZmZlcmVudCBjYXBzIGlzIHJlcXVlc3RlZCwgaS5lLgoJICBoaWdoZXIgcmVzb2x1dGlvbiwgdGhlIGNhbGxlciB3b3VsZCBnZXQgYSBidWZmZXIgd2l0aCB0aGUgb2xkCgkgIGRpbWVuc2lvbnMgYW5kIHRodXMgY29ycnVwdCB0aGUgaGVhcC4KCjIwMDgtMDUtMDcgMTQ6NDM6MzkgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmMKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfYnVmZmVyX2FsbG9jKToKCSAgQ2xlYXIgdGhlIGZsYWdzIG9uIHJlY3ljbGVkIGJ1ZmZlcnMgZnJvbSBidWZmZXJfYWxsb2MuCgkgIFBhcnRpYWxseSBmaXhlcyAjNTIwODg1LgoJICBUaGUgcmlnaHQgZml4IHRoaXMgdGltZS4KCjIwMDgtMDUtMDcgMTQ6Mzk6NDUgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmMKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfYnVmZmVyX2FsbG9jKToKCSAgUmV2ZXJ0aW5nIHByZXZpb3VzIGNvbW1pdCwgaXQgaGFkIGl0IGFsbCBtaXhlZCB1cCwgd2FzIGZvciBhIGRpZmZlcmVudAoJICBwYXRjaCAobWFqb3IgYXV0b21hdGlvbiBzY3Jldy11cCkuIFNvcnJ5IQoKMjAwOC0wNS0wNyAxMzo0ODoyOCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYzoKCSAgc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jCgkgIChnc3RfZGlyZWN0ZHJhd19zaW5rX2J1ZmZlcl9hbGxvYyk6CgkgIENsZWFyIHRoZSBmbGFncyBvbiByZWN5Y2xlZCBidWZmZXJzIGZyb20gYnVmZmVyX2FsbG9jLgoJICBQYXJ0aWFsbHkgZml4ZXMgIzUyMDg4NS4KCjIwMDgtMDUtMDcgMTE6MjI6NTEgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzogQWRkZWQgbWlzc2luZyBzdGRsaWIuaCBpbmNsdWRlIGZvciBzdHJ0b2woKSwgYW5kIG1hZGUgaW5jbHVkZSBvcmRlcmluZyBhbmQgc3R5bGUgY29uc2lzdGVudCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6CgkgIEFkZGVkIG1pc3Npbmcgc3RkbGliLmggaW5jbHVkZSBmb3Igc3RydG9sKCksIGFuZCBtYWRlIGluY2x1ZGUgb3JkZXJpbmcgYW5kCgkgIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkZXBheWxvYWRlci4KCjIwMDgtMDUtMDcgMDk6NTI6MzQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzogQWRkZWQgbWlzc2luZyBzdGRsaWIuaCBpbmNsdWRlIGZvciBzdHJ0b2woKSwgYW5kIG1hZGUgaW5jbHVkZSBvcmRlcmluZyBhbmQgc3R5bGUgY29uc2lzdGVudCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6CgkgIEFkZGVkIG1pc3Npbmcgc3RkbGliLmggaW5jbHVkZSBmb3Igc3RydG9sKCksIGFuZCBtYWRlIGluY2x1ZGUgb3JkZXJpbmcgYW5kCgkgIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkZXBheWxvYWRlci4KCjIwMDgtMDUtMDcgMDg6MDM6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEVycm9yIG91dCBpZiB3ZSBkb24ndCBoYXZlIHRoZSByZXF1aXJlZCBjb3JlL2Jhc2UgdmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRXJyb3Igb3V0IGlmIHdlIGRvbid0IGhhdmUgdGhlIHJlcXVpcmVkIGNvcmUvYmFzZSB2ZXJzaW9ucy4KCjIwMDgtMDUtMDYgMDk6MzM6NDYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubTogRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIFBQQzY0LiBGaXhlcyBidWcgIzQ5OTMxOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXIgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubToKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIFBQQzY0LiBGaXhlcyBidWcgIzQ5OTMxOC4KCjIwMDgtMDUtMDUgMTE6MTk6MTMgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogRG9uJ3QgbGVhayBmaWxlIGRlc2NyaXB0b3JzIG9uIGVycm9yLiBGaXhlcyAjNTMxNTMyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaW5pdCksIChnc3RfcnRzcHNyY19vcGVuKToKCSAgRG9uJ3QgbGVhayBmaWxlIGRlc2NyaXB0b3JzIG9uIGVycm9yLiBGaXhlcyAjNTMxNTMyLgoKMjAwOC0wNS0wMyAwOToxODoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2djb25mLzogV2hlbiB3ZSBjYW4ndCBjcmVhdGUgYSBmYWtlc2luay9mYWtlc3JjIGNvbXBsYWluIGluc3RlYWQgb2YgdW5yZWZmaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmM6IChnc3RfZ2NvbmZfYXVkaW9fc3JjX3Jlc2V0KSwKCSAgKGdzdF9nY29uZl9hdWRpb19zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuYzogKGdzdF9nY29uZl92aWRlb19zaW5rX3Jlc2V0KSwKCSAgKGdzdF9nY29uZl92aWRlb19zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zcmMuYzogKGdzdF9nY29uZl92aWRlb19zcmNfcmVzZXQpLAoJICAoZ3N0X2djb25mX3ZpZGVvX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6IChnc3Rfc3dpdGNoX3NpbmtfcmVzZXQpLAoJICAoZ3N0X3N3aXRjaF9jb21taXRfbmV3X2tpZCksIChnc3Rfc3dpdGNoX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgV2hlbiB3ZSBjYW4ndCBjcmVhdGUgYSBmYWtlc2luay9mYWtlc3JjIGNvbXBsYWluIGluc3RlYWQgb2YgdW5yZWZmaW5nCgkgIE5VTEwgcG9pbnRlcnMgYW5kIGNyYXNoaW5nIGxhdGVyLiBTZWUgYnVnICM1MzA1MzUuCgoyMDA4LTA1LTAyIDEyOjQ0OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBhbmQgZ3VhcmQgYWdhaW5zdCBzbWFsbCBwYXlsb2Fkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IChnc3RfcnRwX2gyNjNwX2RlcGF5X3Byb2Nlc3MpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8gYW5kIGd1YXJkIGFnYWluc3Qgc21hbGwgcGF5bG9hZHMuCgkgICogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzogKGdzdF9ydHBfcGNtdV9kZXBheV9wcm9jZXNzKToKCSAgU2V0IGR1cmF0aW9uIG9uIG91dGdvaW5nIGJ1ZmZlcnMgYmVjYXVzZSB3ZSBjYW4uCgoyMDA4LTA1LTAyIDEyOjM5OjAzICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IEFkZCBuZWdvdGlhdGlvbiBmb3IgdGhlIHNwZWV4IGNoYW5uZWxzIGFuZCByYXRlLiBGaXhlcyAjNDY1MTQ2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4X2VuY19zaW5rX2dldGNhcHMpLAoJICAoZ3N0X3NwZWV4X2VuY19pbml0KSwgKGdzdF9zcGVleF9lbmNfY2hhaW4pOgoJICBBZGQgbmVnb3RpYXRpb24gZm9yIHRoZSBzcGVleCBjaGFubmVscyBhbmQgcmF0ZS4gRml4ZXMgIzQ2NTE0Ni4KCjIwMDgtMDUtMDIgMTI6MzQ6MjIgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6IEFkZCBuZWdvdGlhdGlvbiBmb3IgdGhlIHNwZWVjIGNoYW5uZWxzIGFuZCByYXRlLiBTZWUgIzQ2NTE0Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6IChnc3RfcnRwX3NwZWV4X3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfc3BlZXhfcGF5X2dldGNhcHMpOgoJICBBZGQgbmVnb3RpYXRpb24gZm9yIHRoZSBzcGVlYyBjaGFubmVscyBhbmQgcmF0ZS4gU2VlICM0NjUxNDYuCgoyMDA4LTA1LTAyIDEyOjI0OjU1ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6IEFkZCBuZWdvdGlhdGlvbiBmb3IgdGhlIElMQkMgbW9kZS4gU2VlICM0NjUxNDYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6IChnc3RfcnRwaWxiY3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBpbGJjcGF5X3Npbmtfc2V0Y2FwcyksIChnc3RfcnRwaWxiY3BheV9zaW5rX2dldGNhcHMpOgoJICBBZGQgbmVnb3RpYXRpb24gZm9yIHRoZSBJTEJDIG1vZGUuIFNlZSAjNDY1MTQ2LgoKMjAwOC0wNS0wMiAxMTozMjozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogSW5jbHVkZSBzdGRsaWIgdG8gZml4IHRoZSBidWlsZC4gVXNlIGdfZnJlZSBpbnN0ZWFkIG9mIGZyZWUsIGxpYnNvdXAgdXNlcyBnbGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOgoJICBJbmNsdWRlIHN0ZGxpYiB0byBmaXggdGhlIGJ1aWxkLiBVc2UgZ19mcmVlIGluc3RlYWQgb2YgZnJlZSwgbGlic291cAoJICB1c2VzIGdsaWIuCgoyMDA4LTA1LTAyIDA5OjA5OjU4ICswMDAwICBqXiA8akBib290bGFiLm9yZz4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIG1vcmUgbXBlZzIgdmFyaWFudHMuIEZpeGVzICM1MzA4ODYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogal4gPGpAYm9vdGxhYi5vcmc+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF92aWRlb19jYXBzKToKCSAgQWRkIG1vcmUgbXBlZzIgdmFyaWFudHMuIEZpeGVzICM1MzA4ODYuCgoyMDA4LTA1LTAxIDEwOjUyOjExICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYzogRG9uJ3QgZXJyb3Igb3V0IGlmIHdlIGdldCBhbiBJQ01QIGRlc3RpbmF0aW9uLXVucmVhY2hhYmxlIG1lc3NhZ2Ugd2hlbiB0cnlpbmcgdG8gcmVhZCBwYWNrZXRzIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogWW91bmVzcyBBbGFvdWkgPHlvdW5lc3MuYWxhb3VpIGF0IGNvbGxhYm9yYSBjbyB1az4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jcmVhdGUpOgoJICBEb24ndCBlcnJvciBvdXQgaWYgd2UgZ2V0IGFuIElDTVAgZGVzdGluYXRpb24tdW5yZWFjaGFibGUKCSAgbWVzc2FnZSB3aGVuIHRyeWluZyB0byByZWFkIHBhY2tldHMgb24gd2luMzIgKCM1Mjk0NTQpLgoKMjAwOC0wNC0zMCAxMjoxODo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVzZSBuZXcgZXJyb3IgY29kZSBmb3IgZW5jcnlwdGVkIHN0cmVhbXMgKHdoaWNoIHJlcXVpcmVzIGNvcmUgQ1ZTKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIFVzZSBuZXcgZXJyb3IgY29kZSBmb3IgZW5jcnlwdGVkIHN0cmVhbXMgKHdoaWNoIHJlcXVpcmVzIGNvcmUgQ1ZTKS4KCjIwMDgtMDQtMzAgMTI6MTA6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBzd2FwcGVkIHBhZCB0ZW1wbGF0ZSBuYW1lcywgc3BvdHRlZCBieSBUaGlhZ28gU291c2EgU2FudG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF92aWRlb3NyY190ZW1wbGF0ZSksCgkgIChnc3RfcXRkZW11eF9hdWRpb3NyY190ZW1wbGF0ZSk6CgkgIEZpeCBzd2FwcGVkIHBhZCB0ZW1wbGF0ZSBuYW1lcywgc3BvdHRlZCBieSBUaGlhZ28gU291c2EgU2FudG9zLgoKMjAwOC0wNC0zMCAwOTo0ODoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiBQcm9kdWNlIGNvbmNlYWxtZW50IGRhdGEgd2hlbiB0aW1lIHByb2dyZXNzZXMgaW4gYSBzZWdtZW50IHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfc2lua19ldmVudCksCgkgIChzcGVleF9kZWNfY2hhaW5fcGFyc2VfZGF0YSk6CgkgIFByb2R1Y2UgY29uY2VhbG1lbnQgZGF0YSB3aGVuIHRpbWUgcHJvZ3Jlc3NlcyBpbiBhIHNlZ21lbnQgdXBkYXRlLgoKMjAwOC0wNC0yOSAxNDoxMTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiBUcnkgdG8gcHJlc2VydmUgaW5wdXQgdGltZXN0YW1wcyB3aGVuIHdlIGNhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfY2hhaW5fcGFyc2VfZGF0YSksCgkgIChzcGVleF9kZWNfY2hhaW4pOgoJICBUcnkgdG8gcHJlc2VydmUgaW5wdXQgdGltZXN0YW1wcyB3aGVuIHdlIGNhbi4KCSAgRG8gYmVnaW5uaW5ncyBvZiBlcnJvciBjb25jZWFsbWVudC4KCjIwMDgtMDQtMjggMjI6Mzg6MTEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9kZWJ1Zy9nc3RuYXZpZ2F0aW9udGVzdC5jOiBNU1ZDIGRvZXNuJ3QgcHJvdmlkZSByaW50KCksIGRlZmluZSBhbiBhZGVxdWF0ZSByZXBsYWNlbWVudCBsb2NhbGx5IGFzIGVsc2V3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2dzdG5hdmlnYXRpb250ZXN0LmM6CgkgIE1TVkMgZG9lc24ndCBwcm92aWRlIHJpbnQoKSwgZGVmaW5lIGFuIGFkZXF1YXRlIHJlcGxhY2VtZW50IGxvY2FsbHkgYXMKCSAgZWxzZXdoZXJlLgoKMjAwOC0wNC0yOCAxMToxNjozMiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZGVidWcvcm5kYnVmZmVyc2l6ZS5jOiBGaXggcHJpbnRmIGZvcm1hdCB0byBwYWNpZnkgTWFjIE9TWCdzIGdjYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDQtMjggIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZ3N0L2RlYnVnL3JuZGJ1ZmZlcnNpemUuYzogKGdzdF9ybmRfYnVmZmVyX3NpemVfbG9vcCk6IEZpeCBwcmludGYKCSAgZm9ybWF0IHRvIHBhY2lmeSBNYWMgT1NYJ3MgZ2NjLgoKMjAwOC0wNC0yNSAxOTozNDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9kZWJ1Zy9ybmRidWZmZXJzaXplLmM6IEJyaW5nIHJuZGJ1ZmZlcnNpemUgZWxlbWVudCBpbnRvIGEgc3RhdGUgdGhhdCBkb2Vzbid0IHJlcXVpcmUgdXMgdG8gbW92ZSBpdCB0byAtYmFkIGltbWVkaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvcm5kYnVmZmVyc2l6ZS5jOiAoREVGQVVMVF9TRUVEKSwgKERFRkFVTFRfTUlOKSwKCSAgKERFRkFVTFRfTUFYKSwgKHNyY190ZW1wbGF0ZSksIChzaW5rX3RlbXBsYXRlKSwKCSAgKGdzdF9ybmRfYnVmZmVyX3NpemVfYmFzZV9pbml0KSwgKGdzdF9ybmRfYnVmZmVyX3NpemVfY2xhc3NfaW5pdCksCgkgIChnc3Rfcm5kX2J1ZmZlcl9zaXplX2luaXQpLCAoZ3N0X3JuZF9idWZmZXJfc2l6ZV9hY3RpdmF0ZSksCgkgIChnc3Rfcm5kX2J1ZmZlcl9zaXplX2xvb3ApLCAoZ3N0X3JuZF9idWZmZXJfc2l6ZV9wbHVnaW5faW5pdCk6CgkgIEJyaW5nIHJuZGJ1ZmZlcnNpemUgZWxlbWVudCBpbnRvIGEgc3RhdGUgdGhhdCBkb2Vzbid0IHJlcXVpcmUgdXMKCSAgdG8gbW92ZSBpdCB0byAtYmFkIGltbWVkaWF0ZWx5LiBGb3Igb25lLCBmaXggdXAgZGVmYXVsdCBtaW4vbWF4CgkgIHZhbHVlcyBzbyB0aGF0IHRoZSBlbGVtZW50IGFjdHVhbGwgd29ya3MgdXNpbmcgdGhlIGRlZmF1bHQgdmFsdWVzLgoJICBBbHNvLCBkb24ndCBpZ25vcmUgZmxvdyByZXR1cm4gdmFsdWVzIGFuZCBkbyBzb21lIGtpbmQgb2YgbWluaW1hbAoJICBlb3MgbG9naWMuIEFsbG93IG1pbj1tYXggdG8gcHVsbCBmaXhlZC1zaXplZCBidWZmZXJzLiBCdW5jaCBvZgoJICBvdGhlciBncmF0dWl0aW91cyBjbGVhbi11cHMuCgoyMDA4LTA0LTI1IDE5OjI0OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogQWRkIGRvY3MgZm9yIGdka3BpeGJ1ZnNpbms7IHVwZGF0ZSBkb2NzIHRvIENWUyB2ZXJzaW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlmaWxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW80bGludXgyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSAgQWRkIGRvY3MgZm9yIGdka3BpeGJ1ZnNpbms7IHVwZGF0ZSBkb2NzIHRvIENWUyB2ZXJzaW9uLgoKMjAwOC0wNC0yNSAxODo0NTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjY0LWFsc2FzcmMtUENNQS5zaDogUmVtb3ZlIHRlc3Qgc3luYy1vZmZzZXQgYnkgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjQtYWxzYXNyYy1QQ01BLnNoOgoJICBSZW1vdmUgdGVzdCBzeW5jLW9mZnNldCBieSBkZWZhdWx0LgoKMjAwOC0wNC0yNSAxMzozMTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFVzZSBHTGliIHZlcnNpb25zIG9mIGh0b25sLCBodG9ucywgbnRvaGwgYW5kIG50b2hzIGluIG9yZGVyIHRvIGF2b2lkIHByb2JsZW1zIG9uIHdpbjMyICgjNTI5NzA3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzogKGdzdF9hc3Rlcmlza2gyNjNfY2hhaW4pOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IChnc3RfbXVsdGl1ZHBzaW5rX2FkZF9pbnRlcm5hbCk6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfc3RhcnQpOgoJICBVc2UgR0xpYiB2ZXJzaW9ucyBvZiBodG9ubCwgaHRvbnMsIG50b2hsIGFuZCBudG9ocyBpbiBvcmRlcgoJICB0byBhdm9pZCBwcm9ibGVtcyBvbiB3aW4zMiAoIzUyOTcwNykuCgoyMDA4LTA0LTI1IDEyOjUyOjQ0ICswMDAwICBKZXPDunMgQ29ycml1cyA8amVzdXNAc29mdGNhdGFsYS5vcmc+CgoJICBnc3QvZ29vbS86IEZpeCBidWlsZCB3aXRoIG1pbmd3MzI6IHVzZSByYW5kKCkgaW5zdGVhZCBvZiByYW5kb20oKSBhbmQgcmVwbGFjZSBiemVybygpIHdpdGggbWVtc2V0KCkuIEZpeGVzICM1Mjk2OTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVzw7pzIENvcnJpdXMgPGplc3VzIGF0IHNvZnRjYXRhbGEgb3JnPgoJICAqIGdzdC9nb29tL2ZpbHRlcnMuYzogKHpvb21WZWN0b3IpOgoJICAqIGdzdC9nb29tL2dvb21fY29yZS5jOiAoaW5pdF9idWZmZXJzKToKCSAgRml4IGJ1aWxkIHdpdGggbWluZ3czMjogdXNlIHJhbmQoKSBpbnN0ZWFkIG9mIHJhbmRvbSgpIGFuZAoJICByZXBsYWNlIGJ6ZXJvKCkgd2l0aCBtZW1zZXQoKS4gRml4ZXMgIzUyOTY5Mi4KCjIwMDgtMDQtMjUgMDc6NTY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCB0eXBvIGluIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2NvbWJpbmVfZmxvd3MpOgoJICBGaXggdHlwbyBpbiBjb21tZW50cy4KCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjNwLVBDTUEuc2RwOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtUENNQS5zaDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQtUENNQS5zZHA6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1IMjY0LVBDTUEuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1IMjY0LnNkcDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1QQ01BLnNkcDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1hbHNhc3JjLVBDTUEuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjNwLWFsc2FzcmMtQU1SLnNoOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjY0LWFsc2FzcmMtUENNQS5zaDoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGFuZCBmaXggZXhhbXBsZXMuCgoyMDA4LTA0LTI0IDIyOjA0OjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzogSW5jbHVkZSBzdGRsaWIuaCBhbmQgdW5pc3RkLmggZm9yIG1rZHRlbXAuIFNvbWUgcGxhdGZvcm1zIGhhdmUgaXQgZGVjbGFyZWQgaW4gdGhlIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlmaWxlLmM6CgkgIEluY2x1ZGUgc3RkbGliLmggYW5kIHVuaXN0ZC5oIGZvciBta2R0ZW1wLiBTb21lIHBsYXRmb3JtcyBoYXZlIGl0CgkgIGRlY2xhcmVkIGluIHRoZSBmb3JtZXIsIHNvbWUgaGF2ZSBpdCBkZWNsYXJlZCBpbiB0aGUgbGF0dGVyLgoKMjAwOC0wNC0yNCAyMjowMTo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEdMaWIgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzogKGdzdF90ZXh0X292ZXJsYXlfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZGVidWcvdGVzdHMuYzogKG1kNV9nZXRfdmFsdWUpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOiAoZ3N0X3J0cF9oMjYzcF9kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzogKGdzdF9ydHBpbGJjcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzogKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzogKGdzdF9ydHBfdm9yYmlzX2RlcGF5X3NldGNhcHMpOgoJICBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgR0xpYiBmdW5jdGlvbnMuCgoyMDA4LTA0LTI0IDIxOjE3OjQyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjguMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC44LjEKCSAgPT09IHJlbGVhc2UgMC4xMC44ID09PQoKPT09IHJlbGVhc2UgMC4xMC44ID09PQoKMjAwOC0wNC0yMyAyMzo0MDo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJICBSZWxlYXNlIDAuMTAuOCBhIGxpdHRsZSBoYXJkZXIgKGVkaXRlZCB0aGUgcmVsZWFzZSBub3RlcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC44IGEgbGl0dGxlIGhhcmRlciAoZWRpdGVkIHRoZSByZWxlYXNlIG5vdGVzKQoKMjAwOC0wNC0yMyAyMzoyNjoyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdhbW1hLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkqIHBvL0xJTkdVQVM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC44CgoyMDA4LTA0LTIzIDIzOjE4OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbW1vbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wNC0yMiAwMDoyOTowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IDAuMTAuNy40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC43LjQgcHJlLXJlbGVhc2UKCjIwMDgtMDQtMjIgMDA6MTg6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dvb20vOiBGcmVlIGEgYnVuY2ggb2Ygc3R1ZmYsIGFuZCBpbml0aWFsaXNlIHRoaW5ncyB0byBmaXggbGVha3MgYW5kIHZhbGdyaW5kIHdhcm5pbmdzIGluIHRoZSB0ZXN0c3VpdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2NvbmZpZ19wYXJhbS5jOiAoZ29vbV9wbHVnaW5fcGFyYW1ldGVyc19mcmVlKToKCSAgKiBnc3QvZ29vbS9jb252b2x2ZV9meC5jOiAoY29udm9sdmVfaW5pdCksIChjb252b2x2ZV9mcmVlKToKCSAgKiBnc3QvZ29vbS9maWx0ZXJzLmM6ICh6b29tRmlsdGVyVmlzdWFsRlhXcmFwcGVyX2ZyZWUpOgoJICAqIGdzdC9nb29tL2ZseWluZ19zdGFyc19meC5jOiAoZnNfZnJlZSk6CgkgICogZ3N0L2dvb20vZ29vbV9jb25maWdfcGFyYW0uaDoKCSAgKiBnc3QvZ29vbS9nb29tX2NvcmUuYzogKGdvb21faW5pdCksIChnb29tX2Nsb3NlKToKCSAgKiBnc3QvZ29vbS9nb29tX3BsdWdpbl9pbmZvLmg6CgkgICogZ3N0L2dvb20vZ3N0Z29vbS5jOiAoZ3N0X2dvb21fZmluYWxpemUpOgoJICAqIGdzdC9nb29tL2xpbmVzLmM6IChnb29tX2xpbmVzX2ZyZWUpOgoJICAqIGdzdC9nb29tL3BsdWdpbl9pbmZvLmM6IChwbHVnaW5faW5mb19pbml0KSwgKHBsdWdpbl9pbmZvX2ZyZWUpOgoJICAqIGdzdC9nb29tL3N1cmYzZC5jOiAoZ3JpZDNkX2ZyZWUpOgoJICAqIGdzdC9nb29tL3N1cmYzZC5oOgoJICAqIGdzdC9nb29tL3RlbnRhY2xlM2QuYzogKHRlbnRhY2xlX2ZyZWUpOgoJICBGcmVlIGEgYnVuY2ggb2Ygc3R1ZmYsIGFuZCBpbml0aWFsaXNlIHRoaW5ncyB0byBmaXggbGVha3MKCSAgYW5kIHZhbGdyaW5kIHdhcm5pbmdzIGluIHRoZSB0ZXN0c3VpdGUuCgkgIEZpeGVzOiAjNTI5MjY4CgoyMDA4LTA0LTIxIDIxOjU0OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6IERvbid0IGxlYWsgYSB0YWcgbGlzdC4gRml4ZXMgYnVnICM1MjkyODUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayBhIHRhZyBsaXN0LiBGaXhlcyBidWcgIzUyOTI4NS4KCjIwMDgtMDQtMjEgMDg6MjE6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IFJlZiBjYXBzIGFzIHRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSByZXF1ZXN0X3B0X21hcCBzaWduYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2luaXQpLCAocmVxdWVzdF9wdF9tYXApLAoJICAoZ3N0X3J0c3BzcmNfY29uZmlndXJlX2NhcHMpOgoJICBSZWYgY2FwcyBhcyB0aGUgcmV0dXJuIHZhbHVlIGZvciB0aGUgcmVxdWVzdF9wdF9tYXAgc2lnbmFsLgoJICBSZW1vdmUgc29tZSBjYXBzIHdlaXJkbmVzcyB3aGVuIGNvbmZpZ3VyaW5nIGEgc3RyZWFtLiBTZWUgIzUyODI0NS4KCjIwMDgtMDQtMTggMTg6NDc6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9pY2xlcy9nZGtwaXhidWZzaW5rLXRlc3QuYzogQWRkIGNhc3QgdG8gcGxhY2F0ZSBnY2MgNC4xLjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2ljbGVzL2dka3BpeGJ1ZnNpbmstdGVzdC5jOgoJICBBZGQgY2FzdCB0byBwbGFjYXRlIGdjYyA0LjEuMi4KCjIwMDgtMDQtMTcgMjM6MDA6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjcuMyBwcmUtcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIDAuMTAuNy4zIHByZS1yZWxlYXNlCgoyMDA4LTA0LTE3IDIyOjMyOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEaXNhYmxlIHNvbWUgbW9yZSBlbGVtZW50cyBpbiB0aGUgc3RhdGUgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIERpc2FibGUgc29tZSBtb3JlIGVsZW1lbnRzIGluIHRoZSBzdGF0ZSB0ZXN0LgoJICBBZGQgYSBkZWZpbmUgc28gdGhlIHNvdXAgdGVzdCBjYW4gZmluZCB0aGUgdGVzdCBmaWxlcwoJICBpdCBuZWVkcyBhdCBydW50aW1lLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6IChydW5fc2VydmVyKToKCSAgQWRkIGEgZGVmaW5lIHNvIHRoZSBzb3VwIHRlc3QgY2FuIGZpbmQgdGhlIHRlc3QgZmlsZXMKCSAgaXQgbmVlZHMgYXQgcnVudGltZS4KCjIwMDgtMDQtMTcgMTg6MDg6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dvb20vY29udm9sdmVfZnguYzogRG9uJ3QgZXZlciBkcmF3IHRoZSBHT09NIGxvZ28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2NvbnZvbHZlX2Z4LmM6IChjb252b2x2ZV9hcHBseSk6CgkgIERvbid0IGV2ZXIgZHJhdyB0aGUgR09PTSBsb2dvLgoJICBGaXhlczogIzUyODYxNQoKMjAwOC0wNC0xNyAxMDoyNDozMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC86IGdzdF9hdG9taWNfaW50X3NldCA9PT4gZ19hdG9taWNfaW50X3NldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Rpby9nc3RjZGlvY2RkYXNyYy5jOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkgIGdzdF9hdG9taWNfaW50X3NldCA9PT4gZ19hdG9taWNfaW50X3NldAoKMjAwOC0wNC0xNiAxMDozMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFN0cmlwIG91dCB0aGUgY29uZmlnL3NjcmlwdCBwYXJzaW5nIHN0dWZmLCB3ZSBkb24ndCBuZWVkIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dvb20vTWFrZWZpbGUuYW06CgkgICogZ3N0L2dvb20vY29udm9sdmVfZnguYzoKCSAgKiBnc3QvZ29vbS9kZWZhdWx0X3NjcmlwdHMuaDoKCSAgKiBnc3QvZ29vbS9nb29tLmg6CgkgICogZ3N0L2dvb20vZ29vbV9jb3JlLmM6IChjaG9vc2VfYV9nb29tX2xpbmUpOgoJICAqIGdzdC9nb29tL2dvb21fcGx1Z2luX2luZm8uaDoKCSAgKiBnc3QvZ29vbS9nb29tc2wuYzoKCSAgKiBnc3QvZ29vbS9nb29tc2wuaDoKCSAgKiBnc3QvZ29vbS9nb29tc2xfaGFzaC5jOgoJICAqIGdzdC9nb29tL2dvb21zbF9oYXNoLmg6CgkgICogZ3N0L2dvb20vZ29vbXNsX2hlYXAuYzoKCSAgKiBnc3QvZ29vbS9nb29tc2xfaGVhcC5oOgoJICAqIGdzdC9nb29tL2dvb21zbF9wcml2YXRlLmg6CgkgICogZ3N0L2dvb20vcGx1Z2luX2luZm8uYzoKCSAgU3RyaXAgb3V0IHRoZSBjb25maWcvc2NyaXB0IHBhcnNpbmcgc3R1ZmYsIHdlIGRvbid0IG5lZWQgaXQuCgkgIEZpeGVzICM1Mjc5OTkuCgoyMDA4LTA0LTE1IDE2OjU4OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dvb20vcGx1Z2luX2luZm8uYzogRGlzYWJsZSBhbHRpdmVjIG9wdGltaXNhdGlvbnMgZm9yIDMyLWJpdCBQUEMgYXMgd2VsbCB0byBtYWtlIHRoaW5ncyBidWlsZCBwcm9wZXJseSBvbiBhbGwgUFBDLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL3BsdWdpbl9pbmZvLmM6IChzZXRPcHRpbWl6ZWRNZXRob2RzKToKCSAgRGlzYWJsZSBhbHRpdmVjIG9wdGltaXNhdGlvbnMgZm9yIDMyLWJpdCBQUEMgYXMgd2VsbCB0byBtYWtlCgkgIHRoaW5ncyBidWlsZCBwcm9wZXJseSBvbiBhbGwgUFBDIHN5c3RlbXMuIEZpeGVzICM1MjgxNDMKCjIwMDgtMDQtMTQgMjA6MDE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46IFVwZGF0ZSBmb3Igc291cGh0dHBzcmMgcGx1Z2luIHdoaWNoIGhhcyBtb3ZlZCB0byAtZ29vZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBVcGRhdGUgZm9yIHNvdXBodHRwc3JjIHBsdWdpbiB3aGljaCBoYXMgbW92ZWQgdG8gLWdvb2QuCgoyMDA4LTA0LTE0IDEzOjM4OjMyICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEZpeCBvcGVuLWVuZGVkIHNlZWtzIGluIG1hdHJvc2thZGVtdXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZlbnQpOgoJICBGaXggb3Blbi1lbmRlZCBzZWVrcyBpbiBtYXRyb3NrYWRlbXV4CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgc2t5bmV0IGJlPgoJICBGaXhlczogIzUyNjU1NwoKMjAwOC0wNC0xMyAyMzoxMzozMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogQWRkIHNvdXAgdGVzdCBjZXJ0aWZpY2F0ZXMgdG8gdGhlIGRpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBBZGQgc291cCB0ZXN0IGNlcnRpZmljYXRlcyB0byB0aGUgZGlzdC4KCjIwMDgtMDQtMTMgMTc6NDM6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXh0L01ha2VmaWxlLmFtOiBSZW1vdmUgTEFEU1BBIHJlZmVyZW5jZSBJIG1pc3NlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICBSZW1vdmUgTEFEU1BBIHJlZmVyZW5jZSBJIG1pc3NlZC4KCjIwMDgtMDQtMTMgMTM6MDY6MzkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IEdpdmUgc291cGh0dHBzcmMgR1NUX1JBTktfUFJJTUFSWSB0byBtYWtlIGl0IHRoZSBkZWZhdWx0IEhUVFAgc291cmNlIG92ZXIgZ25vbWUtdmZzIGFuZCBldi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAocGx1Z2luX2luaXQpOgoJICBHaXZlIHNvdXBodHRwc3JjIEdTVF9SQU5LX1BSSU1BUlkgdG8gbWFrZSBpdCB0aGUgZGVmYXVsdCBIVFRQIHNvdXJjZQoJICBvdmVyIGdub21lLXZmcyBhbmQgZXZlcnl0aGluZyBlbHNlLiBGaXhlcyBidWcgIzUyNzg0OC4KCjIwMDgtMDQtMTIgMjM6NDc6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVtb3ZlIExBRFNQQSBwbHVnaW4uIEZpeGVzOiAjNTE1OTc4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgIFJlbW92ZSBMQURTUEEgcGx1Z2luLiBGaXhlczogIzUxNTk3OAoKMjAwOC0wNC0xMiAyMzozMDo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNb3ZlIHNvdXAgcGx1Z2luIGZyb20gLWJhZCAoRml4ZXM6ICM1MjMxMjQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIE1vdmUgc291cCBwbHVnaW4gZnJvbSAtYmFkIChGaXhlczogIzUyMzEyNCkKCjIwMDgtMDQtMTEgMTE6MDg6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggdGhlIENoYW5nZWxvZyAtIGFjdHVhbGx5IHNwZWV4IDw9IDEuMS4xMiBhcmUgdnVsbmVyYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB0aGUgQ2hhbmdlbG9nIC0gYWN0dWFsbHkgc3BlZXggPD0gMS4xLjEyIGFyZSB2dWxuZXJhYmxlLgoKMjAwOC0wNC0xMSAxMDozMjoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzogRml4IGJvdW5kcyBjaGVja2luZyBvZiBtb2RlIGluIFNwZWV4IGhlYWRlciwgd2hpY2ggbWF5IHByb2R1Y2UgbmVnYXRpdmUgbnVtYmVycyBpbiBzcGVleCA8IDEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfY2hhaW5fcGFyc2VfaGVhZGVyKToKCSAgRml4IGJvdW5kcyBjaGVja2luZyBvZiBtb2RlIGluIFNwZWV4IGhlYWRlciwgd2hpY2ggbWF5CgkgIHByb2R1Y2UgbmVnYXRpdmUgbnVtYmVycyBpbiBzcGVleCA8IDEuMS4xMgoKMjAwOC0wNC0xMCAwNzoxMTo1MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvc291cGh0dHBzcmMuYzogSW5jcmVhc2UgdGhlIHRpbWVvdXQgZm9yIHRoZSBpbnRlcm5ldCB0ZXN0cyB0byAyNTAgc2Vjb25kcyBhbmQgY2hlY2sgZm9yIE5VTEwgY2FwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NvdXBodHRwc3JjLmM6IChnb3RfYnVmZmVyKSwKCSAgKHNvdXBodHRwc3JjX3N1aXRlKToKCSAgSW5jcmVhc2UgdGhlIHRpbWVvdXQgZm9yIHRoZSBpbnRlcm5ldCB0ZXN0cyB0byAyNTAgc2Vjb25kcwoJICBhbmQgY2hlY2sgZm9yIE5VTEwgY2FwcyBpbnN0ZWFkIG9mIGp1c3QgY3Jhc2hpbmcuCgkgIFRoZSByZWFsIGZpeCB3b3VsZCBiZSB0byBpbXBsZW1lbnQgYW4gc2hvdXRjYXN0IHNlcnZlciBmb3IgdGhlIHVuaXQgdGVzdAoJICBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gYSB3b3JraW5nIGludGVybmV0IGNvbm5lY3Rpb24uCgkgIEZpeGVzIGJ1ZyAjNTIxNzQ5LgoKMjAwOC0wNC0wOSAxNjoxMTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nb29tLzogUmVtb3ZlIGEgYnVuY2ggb2YgZm9udC90ZXh0IHJlbGF0ZWQgY29kZSB0aGF0IHdlIGRvbid0IG5lZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tL2dmb250bGliLmM6CgkgICogZ3N0L2dvb20vZ2ZvbnRsaWIuaDoKCSAgKiBnc3QvZ29vbS9nZm9udHJsZS5jOgoJICAqIGdzdC9nb29tL2dmb250cmxlLmg6CgkgICogZ3N0L2dvb20vZ29vbS5oOgoJICAqIGdzdC9nb29tL2dvb21fY29yZS5jOiAoZ29vbV91cGRhdGUpOgoJICAqIGdzdC9nb29tL2dvb21fcGx1Z2luX2luZm8uaDoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9jaGFpbik6CgkgICogZ3N0L2dvb20vcGx1Z2luX2luZm8uYzoKCSAgUmVtb3ZlIGEgYnVuY2ggb2YgZm9udC90ZXh0IHJlbGF0ZWQgY29kZSB0aGF0IHdlIGRvbid0IG5lZWQuCgoyMDA4LTA0LTA5IDE0OjAyOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dvb20vOiBDaGFuZ2UgbGljZW5zZSBvZiB0aGVzZSBmaWxlcyB0byBMR1BMLCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGF1dGhvciwgR3VpbGxhdW1lIEJvcmlvcy4gU2VlICM1MTUwNzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL3BwY19kcmF3aW5ncy5zOgoJICAqIGdzdC9nb29tL3BwY196b29tX3VsdGltYXRlLnM6CgkgIENoYW5nZSBsaWNlbnNlIG9mIHRoZXNlIGZpbGVzIHRvIExHUEwsIGFzIHBlcm1pdHRlZCBieSB0aGUKCSAgYXV0aG9yLCBHdWlsbGF1bWUgQm9yaW9zLiBTZWUgIzUxNTA3My4KCjIwMDgtMDQtMDkgMTM6MzE6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nb29tLzogQXMgaGludGVkIGluIEJ1ZyAjNTE4MjEzLCByZXZlcnQgb25lIGNoYW5nZSBhbmQgZml4IHdhcm5pbmdzIHByb3Blcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9jb252b2x2ZV9meC5jOgoJICAqIGdzdC9nb29tL21vdGlmX2dvb20xLmg6CgkgICogZ3N0L2dvb20vbW90aWZfZ29vbTIuaDoKCSAgQXMgaGludGVkIGluIEJ1ZyAjNTE4MjEzLCByZXZlcnQgb25lIGNoYW5nZSBhbmQgZml4IHdhcm5pbmdzIHByb3Blcmx5LgoJICBUaGlzIGZpeGVzIGJvdGggIzUxODIxMyBhbmQgIzUyMDA3MyBmb3IgbWUuCgoyMDA4LTA0LTA5IDEyOjAyOjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9tYXRyb3NrYS86IEZpeCB0aGUgRm9ydGUgYnVpbGQgYnkgbWFraW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIHNpZ25hdHVyZXMgbWF0Y2ggdGhlIGltcGxlbWVudGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfcmVhZF9zZWVrKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfY29udGVudHNfc2Vla2VudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wKToKCSAgRml4IHRoZSBGb3J0ZSBidWlsZCBieSBtYWtpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24gc2lnbmF0dXJlcwoJICBtYXRjaCB0aGUgaW1wbGVtZW50YXRpb25zLgoKMjAwOC0wNC0wOCAxOTo0OTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy9vc3MvOiBNb3JlIGxvZ2dpbmcgd2hlbiBwcm9iaW5nIChzZWUgIzUxODQ3NCksIHNvbWUgY29tbWVudHMgaW4gX3Jlc2V0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmM6IChnc3Rfb3NzX2hlbHBlcl9yYXRlX2NoZWNrX3JhdGUpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiAoZ3N0X29zc19zaW5rX3Jlc2V0KToKCSAgKiBzeXMvb3NzL2dzdG9zc3NyYy5jOiAoZ3N0X29zc19zcmNfcmVzZXQpOgoJICBNb3JlIGxvZ2dpbmcgd2hlbiBwcm9iaW5nIChzZWUgIzUxODQ3NCksIHNvbWUgY29tbWVudHMgaW4gX3Jlc2V0KCkuCgoyMDA4LTA0LTA3IDE3OjE4OjQ4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOiBGaXggYnVpbGQgYmVjYXVzZSBvZiBhIGJhZCBhcmd1bWVudCBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTA0LTA3ICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOiAoZ3N0X3J0cF9oMjY0X3BheV9zZXRjYXBzKTogRml4IGJ1aWxkCgkgIGJlY2F1c2Ugb2YgYSBiYWQgYXJndW1lbnQgbnVtYmVyLgoKMjAwOC0wNC0wNiAxODoyODowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2ljbGVzLzogSW50ZXJhY3RpdmUgdGVzdCBhcHAgZm9yIGdka3BpeGJ1ZnNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMvZ2RrcGl4YnVmc2luay10ZXN0LmM6CgkgIEludGVyYWN0aXZlIHRlc3QgYXBwIGZvciBnZGtwaXhidWZzaW5rLgoKMjAwOC0wNC0wNiAwOTowMTo0MiArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogT25seSBpZ25vcmUgYWN0dWFsIHJlZGlyZWN0cyBub3QgYWxsIHJlc3BvbnNlcyB3aGVuIGluIHN0YXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoZ3N0X3NvdXBfaHR0cF9zcmNfcmVzcG9uc2VfY2IpOgoJICBPbmx5IGlnbm9yZSBhY3R1YWwgcmVkaXJlY3RzIG5vdCBhbGwgcmVzcG9uc2VzIHdoZW4gaW4gc3RhdGUKCSAgR1NUX1NPVVBfSFRUUF9TUkNfU0VTU0lPTl9JT19TVEFUVVNfUlVOTklORy4gRml4ZXMgYnVnICM1MjYzMzcuCgoyMDA4LTA0LTA2IDA4OjU3OjU5ICswMDAwICBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBY3R1YWxseSBidWlsZCBkbGxzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIHdpdGggbWluZ3czMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuIGRvdCBsZXNwaWF1IGF0IGdtYWlsIGRvdCBjb20+CgkgICogY29uZmlndXJlLmFjOgoJICBBY3R1YWxseSBidWlsZCBkbGxzIHdoZW4gY3Jvc3MtY29tcGlsaW5nIHdpdGggbWluZ3czMi4KCSAgRml4ZXMgYnVnICM1MjYyNDcuCgoyMDA4LTA0LTA1IDEyOjAwOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2hhbC9oYWwuYzogRG9uJ3QgbXVuZ2UgZGV2aWNlIHN0cmluZyB0byAnZGVmYXVsdDp4JyBmb3IgY2FwdHVyZSBkZXZpY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvaGFsL2hhbC5jOiAoZ3N0X2hhbF9nZXRfYWxzYV9lbGVtZW50KToKCSAgRG9uJ3QgbXVuZ2UgZGV2aWNlIHN0cmluZyB0byAnZGVmYXVsdDp4JyBmb3IgY2FwdHVyZSBkZXZpY2VzLgoJICBGaXhlcyAjNTI1ODMzLgoKMjAwOC0wNC0wNCAxOTowMDoxOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IEFsd2F5cyB1c2UgR1NsaWNlIGFzIHdlIGFjdHVhbGx5IGRlcGVuZCBvbiBHTGliIDIuMTIgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9lbnRyeV9mcmVlKToKCSAgQWx3YXlzIHVzZSBHU2xpY2UgYXMgd2UgYWN0dWFsbHkgZGVwZW5kIG9uIEdMaWIgMi4xMiBhbHJlYWR5LgoKMjAwOC0wNC0wNCAxMToyNjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBjb3JlL2Jhc2UgMC4xMC4xOCBmb3IgQVJHQiBjYXBzIHBhcnNpbmcgZml4ZXMgaW4gbGliZ3N0dmlkZW8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBjb3JlL2Jhc2UgMC4xMC4xOCBmb3IgQVJHQiBjYXBzIHBhcnNpbmcgZml4ZXMgaW4gbGliZ3N0dmlkZW8uCgkgIEFsc28gYnVtcCB0aGUgR0xpYiByZXF1aXJlbWVudCB0byB0aGUgY3VycmVudCBkZS1mYWN0byByZXF1aXJlbWVudAoJICAoaWUuIDIuMTIpLgoKMjAwOC0wNC0wNCAxMDozMjoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS4qOiBQYXJzZSBjb2RlY19kYXRhIGZvciBmdXR1cmUgQVZDIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOiAoZW5jb2RlX2Jhc2U2NCksCgkgIChnc3RfcnRwX2gyNjRfcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9oMjY0X3BheV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuaDoKCSAgUGFyc2UgY29kZWNfZGF0YSBmb3IgZnV0dXJlIEFWQyBjb21wYXRpYmlsaXR5LgoJICBGYWlsIHdoZW4gd2UgZW5jb3VudGVyIEFWQyBkYXRhIGZvciBub3cuCgoyMDA4LTA0LTA0IDA5OjUwOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IFJlbmFtZSBwcm9wZXJ0eSBlbnVtcyBhbmQgZGVmYXVsdCBkZWZpbmVzIGZvciB0aGUgcHJvcGVydGllcyB0byBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NwZWN0cnVtX2luaXQpLCAoZ3N0X3NwZWN0cnVtX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3BlY3RydW1fZ2V0X3Byb3BlcnR5KSwgKGdzdF9zcGVjdHJ1bV9tZXNzYWdlX25ldyk6CgkgIFJlbmFtZSBwcm9wZXJ0eSBlbnVtcyBhbmQgZGVmYXVsdCBkZWZpbmVzIGZvciB0aGUgcHJvcGVydGllcyB0byBtYXRjaAoJICB0aGUgcHJvcGVydHkgbmFtZXMgYW5kIHJlcGhyYXNlIHByb3BlcnR5IGRlc2NyaXB0aW9ucyB0byBtYWtlIHRoZW0gYQoJICBiaXQgY2xlYXJlciAoaG9wZWZ1bGx5KS4gU2VlICM1MTgxODguCgoyMDA4LTA0LTAzIDIyOjU5OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgdW5pdCB0ZXN0IGZvciBnZGtwaXhidWZzaW5rIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZ2RrcGl4YnVmc2luay5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBnZGtwaXhidWZzaW5rIGVsZW1lbnQuCgoyMDA4LTA0LTAzIDIyOjUwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2dka19waXhidWYvOiBBZGQgZ2RrcGl4YnVmc2luayBlbGVtZW50IGZvciBlYXN5IHNuYXBzaG90dGluZyAoIzUyNTk0NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nZGtfcGl4YnVmL01ha2VmaWxlLmFtOgoJICAqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1ZnNpbmsuYzoKCSAgKGdzdF9nZGtfcGl4YnVmX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9nZGtfcGl4YnVmX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX2luaXQpLAoJICAoZ3N0X2dka19waXhidWZfc2lua19zdGFydCksIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3N0b3ApLAoJICAoZ3N0X2dka19waXhidWZfc2lua19zZXRfY2FwcyksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3BpeGJ1Zl9kZXN0cm95X25vdGlmeSksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX2dldF9waXhidWZfZnJvbV9idWZmZXIpLAoJICAoZ3N0X2dka19waXhidWZfc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9nZGtfcGl4YnVmX3NpbmtfcHJlcm9sbCksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3JlbmRlciksIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX2dldF9wcm9wZXJ0eSk6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmc2luay5oOgoJICBBZGQgZ2RrcGl4YnVmc2luayBlbGVtZW50IGZvciBlYXN5IHNuYXBzaG90dGluZyAoIzUyNTk0NikuCgoyMDA4LTA0LTAzIDIwOjI1OjM0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvd2F2cGFjay5jOiBCdW1wIHRpbWVvdXQgZnJvbSAzIHRvIDYwIHNlY29uZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy93YXZwYWNrLmM6ICh3YXZwYWNrX3N1aXRlKToKCSAgQnVtcCB0aW1lb3V0IGZyb20gMyB0byA2MCBzZWNvbmRzLgoKMjAwOC0wNC0wMyAyMDoyMToxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdmlnbm9yZTogUmVtb3ZlIHVzZWxlc3MgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdmlnbm9yZToKCSAgUmVtb3ZlIHVzZWxlc3MgZmlsZS4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgQWRkIG5ldyB0ZXN0IHRvIC5jdnNpZ25vcmUuCgoyMDA4LTA0LTAzIDIwOjA1OjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay86IEFkZCB1bml0IHRlc3QgdGhhdCBlbmNvZGVzIGFuZCBkZWNvZGVzIHNvbWUgZGF0YSwgY2hlY2tzIHRoYXQgaXQgaXMgc3RpbGwgdGhlIHNhbWUgYW5kIHRoYXQgYWxsIHRpbWVzdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3dhdnBhY2suYzogKGJ1c19oYW5kbGVyKSwKCSAgKGlkZW50aXR5X2hhbmRvZmYpLCAoZmFrZXNpbmtfaGFuZG9mZiksIChHU1RfU1RBUlRfVEVTVCksCgkgICh3YXZwYWNrX3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdW5pdCB0ZXN0IHRoYXQgZW5jb2RlcyBhbmQgZGVjb2RlcyBzb21lIGRhdGEsIGNoZWNrcyB0aGF0IGl0CgkgIGlzIHN0aWxsIHRoZSBzYW1lIGFuZCB0aGF0IGFsbCB0aW1lc3RhbXBzL29mZnNldHMgYXJlIHBlcmZlY3QuCgoyMDA4LTA0LTAzIDE4OjI4OjI4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay86IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgaW5kZXggZW50cmllcyBhbmQgdXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfYmFzZV9pbml0KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IChnc3Rfd2F2cGFja19lbmNfYmFzZV9pbml0KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2luZGV4X2VudHJ5X25ldyksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9lbnRyeV9mcmVlKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2Jhc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9hcHBlbmRfZW50cnkpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpOgoJICBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIGluZGV4IGVudHJpZXMgYW5kIHVzZQoJICBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKS4KCjIwMDgtMDQtMDIgMjI6Mzc6MjkgKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIHN5cy9zdW5hdWRpby86IEZpeCB1cCBjb3B5cmlnaHRzICgjNTI1ODYwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uIGF0IHN1biBkb3QgY29tPgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpby5jOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXIuaDoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuYzoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuaDoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcnRyYWNrLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5oOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmg6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmg6CgkgIEZpeCB1cCBjb3B5cmlnaHRzICgjNTI1ODYwKS4KCjIwMDgtMDQtMDIgMTY6MTA6MzMgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgYWRkIG5ldyBnb29tIHBsdWdpbiB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBuZXcgZ29vbSBwbHVnaW4gdG8gc3BlYyBmaWxlCgoyMDA4LTA0LTAyIDE1OjQyOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dvb20vZ29vbXNsLmM6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBmcmVhZCgpIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9nb29tc2wuYzogKGdzbF9yZWFkX2ZpbGUpOgoJICBDaGVjayByZXR1cm4gdmFsdWUgb2YgZnJlYWQoKSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDgtMDQtMDEgMTE6MDA6NDMgKzAwMDAgIG1lcnNhZCA8bWVyc2FkQGF4aXMuY29tPgoKCSAgZ3N0L2xhdy86IE1ha2UgbmVnb3RpYXRpb24gYSBiaXQgbW9kZXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IG1lcnNhZCA8bWVyc2FkIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvbGF3L2FsYXctZGVjb2RlLmM6IChnc3RfYWxhd19kZWNfc2lua19zZXRjYXBzKSwKCSAgKGdzdF9hbGF3X2RlY19jaGFpbiksIChnc3RfYWxhd19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvbGF3L2FsYXctZGVjb2RlLmg6CgkgICogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOiAoZ3N0X2FsYXdfZW5jX2NoYWluKToKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOiAobXVsYXdkZWNfc2lua19zZXRjYXBzKSwKCSAgKGdzdF9tdWxhd2RlY19jaGFpbiksIChnc3RfbXVsYXdkZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5oOgoJICAqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6IChnc3RfbXVsYXdlbmNfY2hhaW4pOgoJICBNYWtlIG5lZ290aWF0aW9uIGEgYml0IG1vZGVybi4KCSAgVXNlIHBhZF9hbGxvYy4gRml4ZXMgIzUyNTM1OS4KCjIwMDgtMDMtMzEgMjI6MDY6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dvb20veG1teC5jOiBGaXggY29uc3RyYWludHMgb24gYXNtIGNvZGUgc28gdGhhdCBpdCBjb21waWxlcyBjb25zaXN0ZW50bHkuICBGaXhlcyAjNTIyMjc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS94bW14LmM6IEZpeCBjb25zdHJhaW50cyBvbiBhc20gY29kZSBzbyB0aGF0IGl0CgkgIGNvbXBpbGVzIGNvbnNpc3RlbnRseS4gIEZpeGVzICM1MjIyNzguCgoyMDA4LTAzLTI3IDA5OjM2OjU4ICswMDAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vOiBGaXggdXAgdGhlIG1peGVyIHRyYWNrcyB0byB1c2UgYSB2b2x1bWUgcmFuZ2Ugb2YgMC0yNTUsIHdoaWNoIGlzIHdoYXQgdGhlIHN1biBhdWRpbyBBUEkgdXNlcy4gVGhpcyBzaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uIGF0IHN1biBkb3QgY29tPgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOgoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfY3RybF9nZXRfdm9sdW1lKSwKCSAgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfc2V0X3ZvbHVtZSk6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5jOiAoZ3N0X3N1bmF1ZGlvbWl4ZXJfdHJhY2tfbmV3KToKCSAgRml4IHVwIHRoZSBtaXhlciB0cmFja3MgdG8gdXNlIGEgdm9sdW1lIHJhbmdlIG9mIDAtMjU1LCB3aGljaCBpcyB3aGF0CgkgIHRoZSBzdW4gYXVkaW8gQVBJIHVzZXMuIFRoaXMgc2ltcGxpZmllcyB0aGUgY29kZSBhbmQgYXZvaWRzIHJvdW5kaW5nCgkgIGVycm9ycy4gRml4ZXMgIzUyNDU5My4KCjIwMDgtMDMtMjYgMTU6MTA6MDggKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkgIEFkZCBkZXZpY2UtZmQgcHJvcGVydHkgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBhcHBzIHRvIGNhbGwgaW9jdGwncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBkZXZpY2UtZmQgcHJvcGVydHkgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBhcHBzIHRvIGNhbGwgaW9jdGwncy4KCjIwMDgtMDMtMjUgMTY6NDQ6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFVuYnJlYWsgc3RyZWFtaW5nIG1vZGUgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKG5leHRfZW50cnlfc2l6ZSk6CgkgIFVuYnJlYWsgc3RyZWFtaW5nIG1vZGUgYWdhaW4uCgoyMDA4LTAzLTI1IDEyOjM5OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBSZW1vdmUgc3VwZXJmbHVvdXMgREVCVUcgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX3NldF9jYXB0dXJlKToKCSAgUmVtb3ZlIHN1cGVyZmx1b3VzIERFQlVHIG1hY3JvLgoKMjAwOC0wMy0yNSAxMjozMzowOSArMDAwMCAgV2lsbGlhbSBNLiBCcmFjayA8d2JyYWNrQG1tbS5jb20uaGs+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IENoZWNrIHdoZXRoZXIgdGhlIGRldmljZSBzdXBwb3J0cyBzZXR0aW5nIHRoZSBmcmFtZXJhdGUgYmVmb3JlIHRyeWluZyB0byBzZXQgaXQgYW5kIHRoZW4gcG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBXaWxsaWFtIE0uIEJyYWNrIDx3YnJhY2sgYXQgbW1tIGNvbSBoaz4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChmcmFjdGlvbnNfYXJlX2VxdWFsKSwKCSAgKGdzdF92NGwyc3JjX3NldF9jYXB0dXJlKToKCSAgQ2hlY2sgd2hldGhlciB0aGUgZGV2aWNlIHN1cHBvcnRzIHNldHRpbmcgdGhlIGZyYW1lcmF0ZSBiZWZvcmUKCSAgdHJ5aW5nIHRvIHNldCBpdCBhbmQgdGhlbiBwb3N0aW5nIGEgd2FybmluZyBvciBlcnJvciBpZiBpdCBkb2Vzbid0CgkgIHdvcmsgKCM1MTY2NDksICM1MjAwOTIpLiBBbHNvIGNvbXBhcmUgZnJhY3Rpb25zIG1vcmUgY29ycmVjdGx5LgoKMjAwOC0wMy0yNCAxMjozMjo1OSArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgTWFrZSByZ2FuYWx5c2lzIGFuZCByZ2xpbWl0ZXIgZWxlbWVudHMgR0FQLWZsYWcgYXdhcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYyAoZ3N0X3JnX2FuYWx5c2lzX2luaXQpLAoJICAoZ3N0X3JnX2FuYWx5c2lzX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmMgKGdzdF9yZ19saW1pdGVyX2luaXQpLAoJICAoZ3N0X3JnX2xpbWl0ZXJfdHJhbnNmb3JtX2lwKToKCSAgTWFrZSByZ2FuYWx5c2lzIGFuZCByZ2xpbWl0ZXIgZWxlbWVudHMgR0FQLWZsYWcgYXdhcmUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOiAodGVzdF9nYXBfYnVmZmVycyksCgkgIChyZ2FuYWx5c2lzX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2xpbWl0ZXIuYyAodGVzdF9nYXApLCAocmdsaW1pdGVyX3N1aXRlKToKCSAgQWRkIHRlc3RzIHRvIHZlcmlmeSBnYXAtYXdhcmVuZXNzLgoKMjAwOC0wMy0yMyAxMzozMToxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nb29tL01ha2VmaWxlLmFtOiBSZW1vdmUgcHBjIGFzc2VtYmxlciBvcHRpbWlzYXRpb25zIGZyb20gdGhlIGJ1aWxkIHVudGlsIHRoZXkgYWN0dWFsbHkgYnVpbGQgKHRoZXkgYWxzbyBzZWVtIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIHBwYyBhc3NlbWJsZXIgb3B0aW1pc2F0aW9ucyBmcm9tIHRoZSBidWlsZCB1bnRpbCB0aGV5CgkgIGFjdHVhbGx5IGJ1aWxkICh0aGV5IGFsc28gc2VlbSB0byBoYXZlIEdQTCBoZWFkZXJzKS4KCjIwMDgtMDMtMjMgMTI6NDg6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBtNC9NYWtlZmlsZS5hbTogQmV0dGVyIG5vdCBkaXN0IGZpbGVzIHRoYXQgZG9uJ3QgZXhpc3QgYW55IGxvbmdlciAobHJpbnQqbTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBtNC9NYWtlZmlsZS5hbToKCSAgQmV0dGVyIG5vdCBkaXN0IGZpbGVzIHRoYXQgZG9uJ3QgZXhpc3QgYW55IGxvbmdlciAobHJpbnQqbTQpLgoKMjAwOC0wMy0yMiAxOToyNjowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogRG9uJ3QgYXV0b3BsdWcgc291cGh0dHBzcmMgZm9yIGRhdi9kYXZzLiBUaGlzIGlzIGJldHRlciBoYW5kbGVkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cF9odHRwX3NyY19nb3RfaGVhZGVyc19jYiksCgkgIChnc3Rfc291cF9odHRwX3NyY19jaHVua19hbGxvY2F0b3IpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfZ290X2NodW5rX2NiKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3VyaV9nZXRfcHJvdG9jb2xzKToKCSAgRG9uJ3QgYXV0b3BsdWcgc291cGh0dHBzcmMgZm9yIGRhdi9kYXZzLiBUaGlzIGlzIGJldHRlciBoYW5kbGVkIGJ5CgkgIEdJTyBhbmQgR25vbWVWRlMgYXMgdGhleSBwcm92aWRlIGF1dGhlbnRpY2F0aW9uLgoJICBEb24ndCBsZWFrIHRoZSBpY3kgY2FwcyBpZiB3ZSBhbHJlYWR5IHNldCB0aGVtIGFuZCBnZXQgYSBuZXcKCSAgaWN5LW1ldGFpbnQgaGVhZGVyLgoJICBUcnkgaGFyZGVyIHRvIHNldCB0aGUgaWN5IGNhcHMgb24gdGhlIG91dHB1dCBidWZmZXIgdG8gaGF2ZSBjb3JyZWN0CgkgIGNhcHMgZm9yIHRoZSBmaXJzdCBidWZmZXIgYWxyZWFkeS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOiAoZ290X2J1ZmZlciksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIENoZWNrIHRoYXQgd2UgZ2V0IGEgYnVmZmVyIHdpdGggYXBwbGljYXRpb24veC1pY3kgY2FwcyBpZiBpcmFkaW8tbW9kZQoJICBpcyBlbmFibGVkIGFuZCB3ZSBoYXZlIGFuIGljZWNhc3QgVVJMLgoKMjAwOC0wMy0yMiAxODoxODo0NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogQWN0dWFsbHkgc2V0IHRoZSBpY3kgY2FwcyBvbiBvdXIgc3JjIHBhZCBpZiB3ZSBoYXZlIGljZWNhc3QgZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogKGdzdF9zb3VwX2h0dHBfc3JjX2NodW5rX2FsbG9jYXRvcik6CgkgIEFjdHVhbGx5IHNldCB0aGUgaWN5IGNhcHMgb24gb3VyIHNyYyBwYWQgaWYgd2UgaGF2ZSBpY2VjYXN0IGRhdGEuCgkgIEZpeGVzIGJ1ZyAjNTIzODU0LgoKMjAwOC0wMy0yMSAxMzozNjoyNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUmVtb3ZlIGxyaW50L2xyaW50ZiBjaGVja3MuIFdlIGRvbid0IHVzZSBpdCBhbnl3aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIG00L2xyaW50Lm00OgoJICAqIG00L2xyaW50Zi5tNDoKCSAgUmVtb3ZlIGxyaW50L2xyaW50ZiBjaGVja3MuIFdlIGRvbid0IHVzZSBpdCBhbnl3aGVyZS4KCjIwMDgtMDMtMTkgMTk6NTY6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9mcmVlemUvOiBBZGQgZXhhbXBsZSB0byBzb3VyY2UgY29kZSBkb2N1bWVudGF0aW9uIGJsb2IgYW5kIHJlbW92ZSB0aGUgMyBsaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mcmVlemUvRkFROgoJICAqIGdzdC9mcmVlemUvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZyZWV6ZS9nc3RmcmVlemUuYzoKCSAgQWRkIGV4YW1wbGUgdG8gc291cmNlIGNvZGUgZG9jdW1lbnRhdGlvbiBibG9iIGFuZCByZW1vdmUgdGhlIDMgbGluZQoJICBGQVEuCgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJICBBZGQgYSBzb3VyY2UgY29kZSBkb2N1bWVudGF0aW9uIGJsb2IuCgoyMDA4LTAzLTE4IDE1OjAzOjA2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm0gKGdzdF9vc3hfdmlkZW9fc2lua19vc3h3aW5kb3dfZGVzdHJveSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDMtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tCgkgIChnc3Rfb3N4X3ZpZGVvX3Npbmtfb3N4d2luZG93X2Rlc3Ryb3kpCgkgIChnc3Rfb3N4X3ZpZGVvX3Npbmtfb3N4d2luZG93X25ldyk6IEFjdHVhbGx5IHNldCBhIGxvY2sgb24gdGhlCgkgIHRhc2ssIHdob29wZGVlLgoJICAoY29jb2FfZXZlbnRfbG9vcCk6IFBhY2lmeSB0aGUgdGF5bWFucyBieSB1cHBpbmcgdGhlIHVzbGVlcGFnZSB0bwoJICAyIG1zLgoKMjAwOC0wMy0xOCAxMTo1MDowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tIChnc3Rfb3N4X3ZpZGVvX3Npbmtfb3N4d2luZG93X2Rlc3Ryb3kpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTAzLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubSAoZ3N0X29zeF92aWRlb19zaW5rX29zeHdpbmRvd19kZXN0cm95KQoJICAoZ3N0X29zeF92aWRlb19zaW5rX29zeHdpbmRvd19uZXcsIGNvY29hX2V2ZW50X2xvb3ApOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaCAoc3RydWN0IF9Hc3RPU1hWaWRlb1NpbmspOiBJZiB3ZQoJICBuZWVkIHRvIHJ1biBhbiBldmVudCBsb29wLCBkbyBzbyBpbiBhIHRhc2sgaW5zdGVhZCBvZiBhc3N1bWluZwoJICB0aGF0IHRoZXJlIHdpbGwgYmUgYSBHTWFpbkxvb3AuIEZpeGVzICM1MjMxMzQuCgoyMDA4LTAzLTE3IDE5OjUwOjU4ICswMDAwICBXaWxsaWFtIE0uIEJyYWNrIDx3YnJhY2tAbW1tLmNvbS5oaz4KCgkgIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogTWFrZSBzdXJlIHRoZSBwcm9iZWQgZnJhbWUgc2l6ZXMgYXJlIHJldmVyc2VkIGluIHRoZSByZXN1bHRpbmcgY2FwcyBhbHNvIHdoZW4gdXNpbmcgVjRMMl9GUi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdpbGxpYW0gTS4gQnJhY2sgPHdicmFjayBhdCBtbW0gY29tIGhrPgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdF9hbmRfc2l6ZSksCgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXQpOgoJICBNYWtlIHN1cmUgdGhlIHByb2JlZCBmcmFtZSBzaXplcyBhcmUgcmV2ZXJzZWQgaW4gdGhlIHJlc3VsdGluZwoJICBjYXBzIGFsc28gd2hlbiB1c2luZyBWNEwyX0ZSTVNJWkVfU1RFUFdJU0UgKHNvIHRoZXkgZW5kIHVwCgkgIGhpZ2hlc3QgcmVzb2x1dGlvbiBmaXJzdCk7IGFsc28gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgKFBhcnRseSBmaXhlcyAjNTIwMDkyKQoKMjAwOC0wMy0xNyAxNTo1NjowMSArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogQ2FsbCBXU0FTdGFydHVwKCkgYW5kIFdTQUNsZWFudXAgYmVmb3JlIHVzaW5nIHRoZSBXaW5zb2NrIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19pbml0KSwKCSAgKGdzdF9ydHNwc3JjX2ZpbmFsaXplKToKCSAgQ2FsbCBXU0FTdGFydHVwKCkgYW5kIFdTQUNsZWFudXAgYmVmb3JlIHVzaW5nIHRoZSBXaW5zb2NrIEFQSS4KCSAgU2VlICM1MjA4MDguCgoyMDA4LTAzLTE2IDE1OjAxOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEVybSwgdGhlIGJ1ZmZlci1zaXplIGlzIGp1c3QgZ3VpbnQsIG5vIG5lZWQgZm9yIHRoZSBzcGVjaWFsIGZvcm1hdCBzcGVjaWZpZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgRXJtLCB0aGUgYnVmZmVyLXNpemUgaXMganVzdCBndWludCwgbm8gbmVlZCBmb3IgdGhlIHNwZWNpYWwgZm9ybWF0CgkgIHNwZWNpZmllci4KCjIwMDgtMDMtMTYgMTQ6MzQ6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ29vbS86IFNtYWxsIGZpeGVzIHRvIGJ1aWxkIG1vcmUgb24gUFBDOiBpZmRlZiBvdXQgY29kZSB0aGF0IHVzZXMgdW5rbm93biBkZWZpbmU7IGFkZCBuZXdsaW5lIGF0IGVuZCBvZiBoZWFkZXIgZmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dvb20vcGx1Z2luX2luZm8uYzoKCSAgKiBnc3QvZ29vbS9wcGNfem9vbV91bHRpbWF0ZS5oOgoJICBTbWFsbCBmaXhlcyB0byBidWlsZCBtb3JlIG9uIFBQQzogaWZkZWYgb3V0IGNvZGUgdGhhdCB1c2VzIHVua25vd24KCSAgZGVmaW5lOyBhZGQgbmV3bGluZSBhdCBlbmQgb2YgaGVhZGVyIGZpbGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZy4KCSAgQXNzZW1ibGVyIGNvZGUgc3RpbGwgZG9lc24ndCBidWlsZCB0aG91Z2guCgoyMDA4LTAzLTE2IDE0OjA0OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCB1cCBteSBsYXN0IGNvbW1pdC4gVXNlIEdfR1VJTlQzMl9GT1JNQVQgZm9yIHRoZSBndWludDMyIGRlYnVnIGxvZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBGaXggdXAgbXkgbGFzdCBjb21taXQuIFVzZSBHX0dVSU5UMzJfRk9STUFUIGZvciB0aGUgZ3VpbnQzMiBkZWJ1ZyBsb2cuCgkgIEFsc28gZG93bmdyYWRlIGEgR1NUX1dBUk5JTkcgdG8gR1NUX0RFQlVHIGFuZCBhZGQgYSBjb21tZW50LgoKMjAwOC0wMy0xNSAyMjoxMDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBDaHVua3NpemUgaXMgdWludDMyLiBGaXggZm9ybWF0IHNwZWNpZmllci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBDaHVua3NpemUgaXMgdWludDMyLiBGaXggZm9ybWF0IHNwZWNpZmllci4KCjIwMDgtMDMtMTQgMTU6NTM6MDEgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0c3AvQ09QWUlORy5NSVQ6CgkgIGZpeCBsaWNlbnNlIGZpbGUsIHJlbW92ZSBleHRyYSBsaW5lIGNvcGllZCBvdmVyIGJ5IG1pc3Rha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsaWNlbnNlIGZpbGUsIHJlbW92ZSBleHRyYSBsaW5lIGNvcGllZCBvdmVyIGJ5IG1pc3Rha2UKCjIwMDgtMDMtMTMgMTQ6MzA6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4L2F1ZGlvZnguYzogVXNlIEdTVF9MSUNFTlNFLCBHU1RfUEFDS0FHRV9OQU1FIGFuZCBHU1RfUEFDS0FHRV9PUklHSU4gaW5zdGVhZCBvZiBoYXJkY29kaW5nIHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meC5jOgoJICBVc2UgR1NUX0xJQ0VOU0UsIEdTVF9QQUNLQUdFX05BTUUgYW5kIEdTVF9QQUNLQUdFX09SSUdJTiBpbnN0ZWFkCgkgIG9mIGhhcmRjb2RpbmcgdmFsdWVzLgoKMjAwOC0wMy0xMyAwOTo0NTowOSArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLio6IFRyeSB0byByZXN1bWUgb24gc2VydmVyIGRpc2Nvbm5lY3QuIEZpeGVzIGJ1ZyAjNTIyMTM0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyA8d291dGVyIGF0IG1pbmQgZG90IGJlPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cF9odHRwX3NyY19pbml0KSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2ZpbmlzaGVkX2NiKSwgKGdzdF9zb3VwX2h0dHBfc3JjX3Jlc3BvbnNlX2NiKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2J1aWxkX21lc3NhZ2UpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfY3JlYXRlKToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBUcnkgdG8gcmVzdW1lIG9uIHNlcnZlciBkaXNjb25uZWN0LiBGaXhlcyBidWcgIzUyMjEzNC4KCjIwMDgtMDMtMTEgMjM6MTI6MDQgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBzeXMvb3NzL2dzdG9zc3NyYy4qOiBDYWNoZSBwcm9iZWQgY2Fwcywgc28gX2dldF9jYXBzKCkgZHVyaW5nIHJlY29yZGluZyBkb2Vzbid0IGNhdXNlIGlvY3RsIGNhbGxzIHdoaWNoIG1heSBkaXNydXB0IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgc2t5bmV0IGJlPgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IChnc3Rfb3NzX3NyY19pbml0KSwgKGdzdF9vc3Nfc3JjX2dldGNhcHMpLAoJICAoZ3N0X29zc19zcmNfY2xvc2UpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmg6CgkgIENhY2hlIHByb2JlZCBjYXBzLCBzbyBfZ2V0X2NhcHMoKSBkdXJpbmcgcmVjb3JkaW5nIGRvZXNuJ3QgY2F1c2UKCSAgaW9jdGwgY2FsbHMgd2hpY2ggbWF5IGRpc3J1cHQgdGhlIHJlY29yZGluZyAoZml4ZXMgIzUyMTg3NSkuCgoyMDA4LTAzLTExIDE2OjIzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBNYWtlIHN1cmUgd2UgYWx3YXlzIHNlbmQgYSBESVNDT05UIGFmdGVyIGEgc2VlayBieSBzZXR0aW5nIHRoZSBzYW1wbGUgaW5kZXggdG8gYW4gdW5kZWZpbmVkIHZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X3BlcmZvcm1fc2VlayksCgkgIChnc3RfcXRkZW11eF9hY3RpdmF0ZV9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X3ByZXBhcmVfY3VycmVudF9zYW1wbGUpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksIChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBNYWtlIHN1cmUgd2UgYWx3YXlzIHNlbmQgYSBESVNDT05UIGFmdGVyIGEgc2VlayBieSBzZXR0aW5nIHRoZSBzYW1wbGUKCSAgaW5kZXggdG8gYW4gdW5kZWZpbmVkIHZhbHVlIGFmdGVyIGEgc2Vlay4KCjIwMDgtMDMtMTEgMTU6MTg6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmg6IEZpeCB1cCBJU19GT08gbWFjcm9zLCB3aGljaCBtYWtlcyBndGstZG9jIG11Y2ggaGFwcGllci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5oOiAoR1NUX0lTX0FWSV9TVUJUSVRMRSksCgkgIChHU1RfSVNfQVZJX1NVQlRJVExFX0NMQVNTKToKCSAgRml4IHVwIElTX0ZPTyBtYWNyb3MsIHdoaWNoIG1ha2VzIGd0ay1kb2MgbXVjaCBoYXBwaWVyLgoKMjAwOC0wMy0wOCAxOToyOToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOiBNb3ZlIHRoZSAtbGdzdGZvbyB3aGVyZSBpdCBiZWxvbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgTW92ZSB0aGUgLWxnc3Rmb28gd2hlcmUgaXQgYmVsb25ncy4KCjIwMDgtMDMtMDggMTk6MTQ6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeQoKMjAwOC0wMy0wOCAwNDo0MDozMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L21hdHJvc2thL2VibWwtaWRzLmg6IEFkZCBJRCBmb3IgRUJNTCBDUkMzMiBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtaWRzLmg6CgkgIEFkZCBJRCBmb3IgRUJNTCBDUkMzMiBlbGVtZW50cy4KCSAgKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfZmluYWxpemUpLAoJICAoZ3N0X2VibWxfcmVhZF9jbGFzc19pbml0KSwgKGdzdF9lYm1sX3JlYWRfcGVla19ieXRlcyksCgkgIChnc3RfZWJtbF9yZWFkX2dldF9sZW5ndGgpLCAoX2V4dDJkYmwpLCAoZ3N0X2VibWxfcmVhZF9mbG9hdCksCgkgIChnc3RfZWJtbF9yZWFkX2hlYWRlcik6CgkgIFN1cHBvcnQgcmVhZGluZyA4MGJpdCBmbG9hdHMsIGFkZCBmaW5hbGl6ZSBtZXRob2QgdG8gY2xlYW4gdXAKCSAgaW4gYW55IGNhc2UsIHN1cHBvcnQgcmVhZGluZyBsZW5ndGgvaWQgZWxlbWVudHMgd2l0aCBhbnkgbGVuZ3RoCgkgIGFzIGxvbmcgYXMgaXQncyBzbWFsbGVyIHRoYW4gb3VyIHN1cHBvcnRlZCBtYXhpbXVtLCBkb24ndCBsZWFrCgkgIGJ1ZmZlcnMgaWYgcmVhZGluZyBhcyBtdWNoIGRhdGEgYXMgd2Ugd2FudGVkIGZhaWxlZCBhbmQgc29tZQoJICBzbWFsbGVyIGNsZWFudXAuCgoyMDA4LTAzLTA4IDA0OjIxOjM0ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IENoZWNrIHRoYXQgYSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoIGJlZm9yZSByZWFkaW5nIGZyb20gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IChnc3RfcnRwX2gyNjNwX2RlcGF5X3Byb2Nlc3MpOgoJICBDaGVjayB0aGF0IGEgYnVmZmVyIGlzIGxhcmdlIGVub3VnaCBiZWZvcmUgcmVhZGluZyBmcm9tIGl0LgoJICBGaXhlcyBidWcgIzUyMTEwMi4KCjIwMDgtMDMtMDcgMTU6NTQ6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBGaXggY29tcGlsYXRpb24gYWZ0ZXIgcmVtb3ZpbmcgdGhlIEdzdFBvbGxNb2RlIGZyb20gdGhlIGNvbnN0cnVjdG9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19zdGFydCk6CgkgIEZpeCBjb21waWxhdGlvbiBhZnRlciByZW1vdmluZyB0aGUgR3N0UG9sbE1vZGUgZnJvbSB0aGUKCSAgY29uc3RydWN0b3IuCgoyMDA4LTAzLTA3IDEzOjA4OjQyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBDaGVjayBmb3Igc2luaCgpLCBjb3NoKCkgYW5kIGFzaW5oKCkgYW5kIGRlZmluZSBvdXIgb3duIGltcGxlbWVudGF0aW9ucyBpZiB0aGV5J3JlIG5vdCBhdmFpbGFibGUuIEZpeGVzIGJ1ZyAjNTIwODgwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkgICogZ3N0L2F1ZGlvZngvbWF0aF9jb21wYXQuaDoKCSAgQ2hlY2sgZm9yIHNpbmgoKSwgY29zaCgpIGFuZCBhc2luaCgpIGFuZCBkZWZpbmUgb3VyIG93bgoJICBpbXBsZW1lbnRhdGlvbnMgaWYgdGhleSdyZSBub3QgYXZhaWxhYmxlLiBGaXhlcyBidWcgIzUyMDg4MC4KCjIwMDgtMDMtMDcgMTI6NDA6MTggKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogVW5yZWYgdGhlIGJ1ZmZlcnMgb25seSBvbmNlIHdoZW4gaGFuZGxpbmcgbm90LW5lZ290aWF0ZWQgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4X2VuY19jaGFpbik6CgkgIFVucmVmIHRoZSBidWZmZXJzIG9ubHkgb25jZSB3aGVuIGhhbmRsaW5nIG5vdC1uZWdvdGlhdGVkIGVycm9ycy4KCSAgRml4ZXMgYnVnICM1MjA3NjQuCgoyMDA4LTAzLTA3IDEwOjAxOjQwICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYzogUHJvcGVybHkgYmFsYW5jZSBXU0FfQ2xlYW51cCB3aXRoIFdTQV9TdGFydHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyAgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2ZpbmFsaXplKSwgKGdzdF91ZHBzcmNfc3RhcnQpLAoJICAoZ3N0X3VkcHNyY19zdG9wKToKCSAgUHJvcGVybHkgYmFsYW5jZSBXU0FfQ2xlYW51cCB3aXRoIFdTQV9TdGFydHVwLgoJICBBbHNvIG1ha2UgdGhlIHBvbGwgY29udHJvbGxhYmxlIG9uIHdpbmRvd3MuIEZpeGVzICM1MjA4ODguCgoyMDA4LTAzLTA2IDE5OjQ3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L21hdHJvc2thLzogSGFuZGxlIHJldHVybiB2YWx1ZXMgZnJvbSBwdWxsX3JhbmdlIGluIGEgbW9yZSBncmFudWxhciB3YXkgdG8gcHJvcGVybHkgc2h1dCBkb3duIG9uIHNlZWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IChnc3RfZWJtbF9yZWFkX3BlZWtfYnl0ZXMpLAoJICAoZ3N0X2VibWxfcmVhZF9wdWxsX2J5dGVzKSwgKGdzdF9lYm1sX3JlYWRfZWxlbWVudF9pZCksCgkgIChnc3RfZWJtbF9yZWFkX2VsZW1lbnRfbGVuZ3RoKSwgKGdzdF9lYm1sX3BlZWtfaWQpLAoJICAoZ3N0X2VibWxfcmVhZF9za2lwKSwgKGdzdF9lYm1sX3JlYWRfYnVmZmVyKSwKCSAgKGdzdF9lYm1sX3JlYWRfYnl0ZXMpLCAoZ3N0X2VibWxfcmVhZF91aW50KSwgKGdzdF9lYm1sX3JlYWRfc2ludCksCgkgIChnc3RfZWJtbF9yZWFkX2Zsb2F0KSwgKGdzdF9lYm1sX3JlYWRfYXNjaWkpLCAoZ3N0X2VibWxfcmVhZF91dGY4KSwKCSAgKGdzdF9lYm1sX3JlYWRfZGF0ZSksIChnc3RfZWJtbF9yZWFkX21hc3RlciksCgkgIChnc3RfZWJtbF9yZWFkX2JpbmFyeSksIChnc3RfZWJtbF9yZWFkX2hlYWRlcik6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2NvbWJpbmVfZmxvd3MpLCAoZ3N0X21hdHJvc2thX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9yZWFkX3RyYWNrX2VuY29kaW5ncyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3N0cmVhbSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZlbnQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2luaXRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV90cmFja3MpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZGV4X2N1ZXRyYWNrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleF9wb2ludGVudHJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmRleCksIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaW5mbyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfbWV0YWRhdGFfaWRfdGFnKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9tZXRhZGF0YSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3luY19zdHJlYW1zKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wdXNoX2hkcl9idWYpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3B1c2hfZmxhY19jb2RlY19wcml2X2RhdGEpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3B1c2hfeGlwaF9jb2RlY19wcml2X2RhdGEpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF93dnBrX2hlYWRlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfY2hlY2tfc3VidGl0bGVfYnVmZmVyKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jbHVzdGVyKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jb250ZW50c19zZWVrZW50cnkpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2NvbnRlbnRzKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbV9wYXJzZV9pZCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcF9zdHJlYW0pLCAoZ3N0X21hdHJvc2thX2RlbXV4X2xvb3ApOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgSGFuZGxlIHJldHVybiB2YWx1ZXMgZnJvbSBwdWxsX3JhbmdlIGluIGEgbW9yZSBncmFudWxhciB3YXkgdG8gcHJvcGVybHkKCSAgc2h1dCBkb3duIG9uIHNlZWtzLgoJICBDb21iaW5lIHJldHVybiB2YWx1ZXMgZnJvbSBwdXNoLgoJICBJbXBsZW1lbnQgcHJvcGVyIGVycm9yIGhhbmRsaW5nLgoJICBQcmVwYXJlIGZvciBoYW5kbGluZyBzZWVraW5nIGNvcnJlY3RseS4KCjIwMDgtMDMtMDMgMjI6MDE6NTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiBVc2UgR0lOVDY0IGZvcm1hdHRpbmcgY29uc3RhbnRzIGZyb20gR0xJQi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOgoJICBVc2UgR0lOVDY0IGZvcm1hdHRpbmcgY29uc3RhbnRzIGZyb20gR0xJQi4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgQWRkIHNvbWUgZ3VhcmRzIHRvIGF2b2lkIGEgcG9zc2libGUgZGl2aXNpb24gYnkgMCBhbmQgY3Jhc2hpbmcKCSAgd2l0aCBOVUxMIGV2ZW50cyBvbiBzb21lIHN5c3RlbXMuCgkgIFVzZSBnc3RfZ2RvdWJsZV90b19ndWludDY0IHNvbWV3aGVyZSBpbnN0ZWFkIG9mIGFuIGltcGxpY2l0CgkgIGNvbnZlcnNpb24uCgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICBDaGVjayBmb3IgaW52YWxpZCB0aW1lc3RhbXBzIGluIGEgYnVuY2ggb2YgcGxhY2VzIHRvIGF2b2lkCgkgIHdyaXRpbmcgYm9ndXMgZHVyYXRpb25zIGludG8gdGhlIG91dHB1dCBmaWxlLgoJICBGaXggc29tZSBkb3VibGU8LT5naW50NjQgY29udmVyc2lvbnMgdGhhdCB3ZXJlbid0IHVzaW5nCgkgIGdzdF9ndWludDY0X3RvX2dkb3VibGUKCjIwMDgtMDMtMDMgMTM6MDM6NDMgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgY29uZmlndXJlLmFjOiBNb3ZlIHRoZSBjaGVja3MgZm9yIGJpc29uLCBmbGV4IGFuZCBhcyB0byB0aGUgcHJvZ3JhbSBzZWN0aW9uIGFuZCB0aGUgY2hlY2sgZm9yIGdjYyBpbmxpbmUgYXNtIHRvIHRoZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgTW92ZSB0aGUgY2hlY2tzIGZvciBiaXNvbiwgZmxleCBhbmQgYXMgdG8gdGhlIHByb2dyYW0gc2VjdGlvbiBhbmQgdGhlCgkgIGNoZWNrIGZvciBnY2MgaW5saW5lIGFzbSB0byB0aGUgY29tcGlsZXIgY2hhcmFjdGVyaXN0aWNzIHNlY3Rpb24uCgoyMDA4LTAzLTAzIDEyOjEwOjU1ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFHX0dTVF9DSEVDS19QTFVHSU4gYW5kIEFHX0dTVF9ESVNBQkxFX1BMVUdJTiB0byBzaW1wbGlmeSB3aGljaCBwbHVnLWlucyBhcmUgaW5jbHVkZWQvZXhjbHVkZWQuICgjNC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBR19HU1RfQ0hFQ0tfUExVR0lOIGFuZCBBR19HU1RfRElTQUJMRV9QTFVHSU4gdG8gc2ltcGxpZnkgd2hpY2gKCSAgcGx1Zy1pbnMgYXJlIGluY2x1ZGVkL2V4Y2x1ZGVkLiAoIzQ5ODIyMikKCjIwMDgtMDItMjkgMTI6MzU6MjQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogRG9uJ3QgY2FsbCBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKCkgdW5sZXNzIHdlIGhhdmUgYSB2YWxpZCB0aW1lc3RhbXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogKGdzdF92aWRlb21peGVyX2JsZW5kX2J1ZmZlcnMpOgoJICBEb24ndCBjYWxsIGdzdF9vYmplY3Rfc3luY192YWx1ZXMoKSB1bmxlc3Mgd2UgaGF2ZSBhIHZhbGlkIHRpbWVzdGFtcC4KCjIwMDgtMDItMjkgMDY6MTg6NTUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L21hdHJvc2thLzogRml4IERpcmFjIG1hcHBpbmcuICBJIGhhZCBwcmV2aW91c2x5IGFkZGVkIGEgVmZXLXR5cGUgbWFwcGluZywgYnV0IGl0IGxvb2tzIGxpa2UgRGlyYWMgd2lsbCBnZXQgYSBuYXRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIEZpeCBEaXJhYyBtYXBwaW5nLiAgSSBoYWQgcHJldmlvdXNseSBhZGRlZCBhIFZmVy10eXBlCgkgIG1hcHBpbmcsIGJ1dCBpdCBsb29rcyBsaWtlIERpcmFjIHdpbGwgZ2V0IGEgbmF0aXZlIE1hdHJvc2thCgkgIG1hcHBpbmcsIGFuZCB0aGlzIGlzIHRoZSBtb3N0IGxpa2VseSBtZXRob2QuCgoyMDA4LTAyLTI4IDIzOjU2OjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IEFkZCBEaXJhYyBlbmNvZGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOiBBZGQgRGlyYWMgZW5jb2RpbmcKCjIwMDgtMDItMjggMTE6NTE6MjQgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuKjogUG9ydCB0byBHc3RQb2xsLiBTZWUgIzUwNTQxNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19pbml0KSwgKGdzdF91ZHBzcmNfY3JlYXRlKSwKCSAgKGdzdF91ZHBzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF91ZHBzcmNfc3RhcnQpLCAoZ3N0X3VkcHNyY191bmxvY2spLAoJICAoZ3N0X3VkcHNyY191bmxvY2tfc3RvcCksIChnc3RfdWRwc3JjX3N0b3ApOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmg6CgkgIFBvcnQgdG8gR3N0UG9sbC4gU2VlICM1MDU0MTcuCgoyMDA4LTAyLTI4IDA4OjM3OjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbGF3L211bGF3LWRlY29kZS5jOiBSZXR1cm4gR1NUX0ZMT1dfTk9UX05FR09USUFURUQgd2hlbiB0aGUgY2FwcyBhcmUgbm90IHNldCB5ZXQgb24gdGhlIHNyY3BhZC4gV2UgbmVlZCByYXRlIGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzogKGdzdF9tdWxhd2RlY19jaGFpbik6CgkgIFJldHVybiBHU1RfRkxPV19OT1RfTkVHT1RJQVRFRCB3aGVuIHRoZSBjYXBzIGFyZSBub3Qgc2V0CgkgIHlldCBvbiB0aGUgc3JjcGFkLiBXZSBuZWVkIHJhdGUgYW5kIGNoYW5uZWxzIGJlZm9yZSB3ZQoJICBjYW4gZG8gYW55IHByb2Nlc3NpbmcuIEZpeGVzIGJ1ZyAjNTE5MDg4LgoKMjAwOC0wMi0yNiAxMDowOTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IERldGVjdCBhbmQgaW5kaWNhdGUgaWYgR0NDIGlubGluZSBhc3NlbWJseSBzeW50YXggaXMgYXZhaWxhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERldGVjdCBhbmQgaW5kaWNhdGUgaWYgR0NDIGlubGluZSBhc3NlbWJseSBzeW50YXggaXMKCSAgYXZhaWxhYmxlLgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tL2NvbnZvbHZlX2Z4LmM6CgkgICogZ3N0L2dvb20vZmx5aW5nX3N0YXJzX2Z4LmM6CgkgICogZ3N0L2dvb20vZ29vbV9jb25maWcuaDoKCSAgKiBnc3QvZ29vbS9nb29tX2NvcmUuYzoKCSAgKiBnc3QvZ29vbS9nb29tc2wuYzoKCSAgKiBnc3QvZ29vbS9pZnMuYzoKCSAgKiBnc3QvZ29vbS9tbXguYzoKCSAgKiBnc3QvZ29vbS9wbHVnaW5faW5mby5jOgoJICAqIGdzdC9nb29tL3htbXguYzoKCSAgRml4IHZhcmlvdXMgR0NDLWlzbXMsIGFuZCBvbmx5IGJ1aWxkIHRoZSBpbmxpbmUgYXNzZW1ibHkKCSAgd2l0aCBjb21waWxlcnMgdGhhdCBzdXBwb3J0IEdDQyBpbmxpbmUgYXNzZW1ibHkuCgkgIEZpeCBhIGNvdXBsZSBvZiBvdGhlciB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoKMjAwOC0wMi0yNiAwNTozNjoxNyArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIEFkZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGEgbGlzdCBvZiBjb29raWVzIHRvIGJlIHBhc3NlZCBpbiB0aGUgSFRUUCByZXF1ZXN0LiBGaXhlcyBidWcgIzUxODcyMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlciBhdCBtaW5kIGRvdCBiZT4KCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoZ3N0X3NvdXBfaHR0cF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3Rfc291cF9odHRwX3NyY19pbml0KSwgKGdzdF9zb3VwX2h0dHBfc3JjX2Rpc3Bvc2UpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9zb3VwX2h0dHBfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc291cF9odHRwX3NyY19jcmVhdGUpOgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmg6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc291cGh0dHBzcmMuYzogKHJ1bl90ZXN0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHNvdXBodHRwc3JjX3N1aXRlKToKCSAgQWRkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYSBsaXN0IG9mIGNvb2tpZXMgdG8gYmUgcGFzc2VkIGluCgkgIHRoZSBIVFRQIHJlcXVlc3QuIEZpeGVzIGJ1ZyAjNTE4NzIyLgoKMjAwOC0wMi0yNSAxMjowMzo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dvb20veG1teC5jOiBVc2UgJ2VtbXMnIGluc3RlYWQgb2YgJ2ZlbW1zJyB0byBub3QgY3Jhc2ggb24gY3B1cyB0aGF0IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyAzZG5vdyBzcGVjaWZpYyBpbnN0cnVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL3htbXguYzoKCSAgVXNlICdlbW1zJyBpbnN0ZWFkIG9mICdmZW1tcycgdG8gbm90IGNyYXNoIG9uIGNwdXMgdGhhdCBkbyBub3QKCSAgaW1wbGVtZW50IHRoaXMgM2Rub3cgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24uCgoyMDA4LTAyLTI1IDEwOjMyOjM1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ29vbS9wbHVnaW5faW5mby5jOiBVc2UgZXh0ZW5kZWQgTU1YIGZvciBkcmF3X2xpbmUoKSB0b28gaWYgYXZhaWxhYmxlLCBub3Qgb25seSBub3JtYWwgTU1YLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9wbHVnaW5faW5mby5jOiAoc2V0T3B0aW1pemVkTWV0aG9kcyk6CgkgIFVzZSBleHRlbmRlZCBNTVggZm9yIGRyYXdfbGluZSgpIHRvbyBpZiBhdmFpbGFibGUsIG5vdCBvbmx5CgkgIG5vcm1hbCBNTVguCgoyMDA4LTAyLTI1IDA2OjUwOjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvanBlZy9nc3RqcGVnLmM6IFJlbW92ZSAoY29tbWVudGVkIG91dCkgc21va2UgdHlwZWZpbmRlci4gVGhpcyBpcyBpbiBiYXNlIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZy5jOiAocGx1Z2luX2luaXQpOgoJICBSZW1vdmUgKGNvbW1lbnRlZCBvdXQpIHNtb2tlIHR5cGVmaW5kZXIuIFRoaXMgaXMgaW4gYmFzZSBub3cuCgoyMDA4LTAyLTIzIDE1OjAyOjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nb29tMmsxLzogUmVuYW1lIHRoZSBpbnN0YWxsZWQgbGlicmFyeSwgYW5kIGRvbid0IHJlZ2lzdGVyIHRoZSBzYW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tMmsxL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tMmsxL2dzdGdvb20uYzoKCSAgUmVuYW1lIHRoZSBpbnN0YWxsZWQgbGlicmFyeSwgYW5kIGRvbid0IHJlZ2lzdGVyIHRoZSBzYW1lCgkgIEdUeXBlIG5hbWUgYXMgdGhlIG5ldyBnb29tLgoKMjAwOC0wMi0yMyAxMjoyMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENoZWNrIGZvciBhbmQgZGVmaW5lIEVSUk9SX0NYWEZMQUdTIGFuZCB1c2UgdGhlbSB3aGVuIGJ1aWxkaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvdGFnbGliL01ha2VmaWxlLmFtOgoJICBDaGVjayBmb3IgYW5kIGRlZmluZSBFUlJPUl9DWFhGTEFHUyBhbmQgdXNlIHRoZW0gd2hlbiBidWlsZGluZwoJICBDKysgY29kZSAoIzUxNjUwOSkuCgoyMDA4LTAyLTIzIDEyOjEwOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dvb20vOiBDYWxsIG9pbF9pbml0KCksIG90aGVyd2lzZSBvaWxfZ2V0X2NwdV9mbGFncygpIHdvbid0IHJldHVybiBhbnl0aGluZyB1c2VmdWwuIEV4cG9ydCBnb29tIGRlYnVnIGNhdGVnb3J5IHNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzogKGdvb21fZGVidWcpLCAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9nb29tL3BsdWdpbl9pbmZvLmM6IChnb29tX2RlYnVnKSwgKEdTVF9DQVRfREVGQVVMVCksCgkgIChzZXRPcHRpbWl6ZWRNZXRob2RzKToKCSAgQ2FsbCBvaWxfaW5pdCgpLCBvdGhlcndpc2Ugb2lsX2dldF9jcHVfZmxhZ3MoKSB3b24ndCByZXR1cm4KCSAgYW55dGhpbmcgdXNlZnVsLiBFeHBvcnQgZ29vbSBkZWJ1ZyBjYXRlZ29yeSBzbyB3ZSBjYW4gZ2V0CgkgIHJpZCBvZiB0aGUgVkVSQk9TRSBkZWZpbmUgYW5kIHRoZSBwcmludGZzLgoKMjAwOC0wMi0yMyAxMTo1MzoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nb29tLzogQ29tcGlsZSBmaXhlcyBmb3IgeDg2LTY0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9nb29tc2xfaGVhcC5jOiAoYWxpZ25faXQpOgoJICAqIGdzdC9nb29tL3BsdWdpbl9pbmZvLmM6IChzZXRPcHRpbWl6ZWRNZXRob2RzKToKCSAgQ29tcGlsZSBmaXhlcyBmb3IgeDg2LTY0LgoKMjAwOC0wMi0yMyAwMzoxMDo1NSArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSAgZ3N0L2dvb20vTWFrZWZpbGUuYW06IERvbid0IGNvbXBpbGUgbGV4IG9yIHlhY2Mgb3V0cHV0cyB3aXRoIHdhcm5pbmdzLCBidXQgYWRkIG90aGVyIENGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9NYWtlZmlsZS5hbTogRG9uJ3QgY29tcGlsZSBsZXggb3IgeWFjYyBvdXRwdXRzCgkgIHdpdGggd2FybmluZ3MsIGJ1dCBhZGQgb3RoZXIgQ0ZMQUdTCgkgICogZ3N0L2dvb20vZ29vbXNsLmMgKGdzbF9pbnN0cl9zZXRfbmFtZXNwYWNlKSwKCSAgKGdzbF9pbnN0cl9hZGRfcGFyYW0pLCAoaWZsb3dfZXhlY3V0ZSksIChnc2xfZW50ZXJuYW1lc3BhY2UpLAoJICAoY2FsY3VsYXRlX2xhYmVscyksIChnc2xfcmVhZF9maWxlKToKCSAgKiBnc3QvZ29vbS9nb29tc2xfbGV4Lmw6CgkgICogZ3N0L2dvb20vZ29vbXNsX3lhY2MueToKCSAgKiBnc3QvZ29vbS9wbHVnaW5faW5mby5jOiBSZW1vdmUgYSBmZXcgbGl2ZSBwcmludGYsIGFuZAoJICBmcHJpbnRmLCByZXBsYWNlIGV4aXQoKSBjYWxscyB3aXRoIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCkKCSAgaWYgaXQgbm90IG9wdGltYWwgZm9yIGEgbGlicmFyeQoKMjAwOC0wMi0yMyAwMjozODowMyArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSAgZ3N0L2dvb20vTWFrZWZpbGUuYW06IFJlbW92ZSB0aGUgd2FybmluZ3MgYmVpbmcgZGlzYWJsZWQsIGZpeCBsaW5rYWdlIG9uIHg4Niwgc3BvdHRlZCBieSBTZWJhc3RpYW4gRHLDtmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOiBSZW1vdmUgdGhlIHdhcm5pbmdzIGJlaW5nIGRpc2FibGVkLAoJICBmaXggbGlua2FnZSBvbiB4ODYsIHNwb3R0ZWQgYnkgU2ViYXN0aWFuIERyw7ZnZQoJICA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoJICAqIGdzdC9nb29tL2NvbnZvbHZlX2Z4LmMgKGNvbnZvbHZlX2luaXQpLAoJICAoY3JlYXRlX291dHB1dF93aXRoX2JyaWdodG5lc3MpLCAoY29udm9sdmVfYXBwbHkpOgoJICAqIGdzdC9nb29tL2ZpbHRlcnMuYyAoem9vbUZpbHRlclZpc3VhbEZYV3JhcHBlcl9jcmVhdGUpOgoJICAqIGdzdC9nb29tL2dvb21zbC5jOgoJICAqIGdzdC9nb29tL2lmcy5jIChpZnNfdXBkYXRlKSwgKGlmc192aXN1YWxmeF9jcmVhdGUpOgoJICAqIGdzdC9nb29tL3BsdWdpbl9pbmZvLmM6CgkgICogZ3N0L2dvb20vdGVudGFjbGUzZC5jICh0ZW50YWNsZV9meF9jcmVhdGUpOgoJICBGaXggd2FybmluZ3MsIGFuZCBkaXNhYmxlIHRoZSBtb3RpZnMgaW4gdGhlIGNvbnZvbHZlX2Z4CgkgIHBsdWdpbiAodGhleSB3ZXJlIGNhdXNpbmcgd2FybmluZ3MsIGFuZCB0aGV5IHdlcmUganVzdAoJICAiR29vbSIgaW4gZnVubnkgbGV0dGVycmluZykKCjIwMDgtMDItMjMgMDE6NTE6MzcgKzAwMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIGNoZWNrcyBmb3IgRmxleC9ZYWNjL0Jpc29uIGFuZCBvdGhlciBmdXJyeSBhbmltYWxzLCBmb3IgdGhlIG5ldyBnb29tIDJrNCBiYXNlZCBwbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMDItMjMgIEJhc3RpZW4gTm9jZXJhICA8aGFkZXNzQGhhZGVzcy5uZXQ+CgkgICogY29uZmlndXJlLmFjOiBBZGQgY2hlY2tzIGZvciBGbGV4L1lhY2MvQmlzb24gYW5kIG90aGVyCgkgIGZ1cnJ5IGFuaW1hbHMsIGZvciB0aGUgbmV3IGdvb20gMms0IGJhc2VkIHBsdWdpbgoJICAqIGdzdC9nb29tLyo6IFVwZGF0ZSB0byB1c2UgZ29vbSAyazQsIHVzZXMgbGlib2lsIHRvIGRldGVjdAoJICBDUFUgb3B0aW1pc2F0aW9ucyAobm90IHdvcmtpbmcgeWV0KSwgbW92ZSB0aGUgb2xkIHBsdWdpbiB0by4uLgoJICAqIGdzdC9nb29tMmsxLyo6IC4uLiBoZXJlLCBpbiBjYXNlIHNvbWVib2R5IGlzIHNpY2sgZW5vdWdoCgkgIEZpeGVzICM1MTUwNzMKCjIwMDgtMDItMjIgMDk6NTY6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IFBvc3QgdGhlIHNlcnZlciByZXNwb25zZSBjb2RlIGluIGFuIGVycm9yIG1lc3NhZ2UgaW5zdGVhZCBvZiBhIGdlbmVyaWMgJ2Vycm9yJyBtZXNzYWdlLiBGaXhlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2V0dXBfc3RyZWFtcyk6CgkgIFBvc3QgdGhlIHNlcnZlciByZXNwb25zZSBjb2RlIGluIGFuIGVycm9yIG1lc3NhZ2UgaW5zdGVhZCBvZiBhIGdlbmVyaWMKCSAgJ2Vycm9yJyBtZXNzYWdlLiBGaXhlcyAjNTE3MjM3LgoKMjAwOC0wMi0yMiAwNzoyMDowMyArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIEltcGxlbWVudCB6ZXJvLWNvcHkgYW5kIG1ha2UgdGhlIGJ1ZmZlciBzaXplIGNvbmZpZ3VyYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlciBhdCBtaW5kIGRvdCBiZT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogKGdzdF9zb3VwX2h0dHBfc3JjX2NhbmNlbF9tZXNzYWdlKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2ZpbmlzaGVkX2NiKSwgKGdzdF9zb3VwX2h0dHBfc3JjX2NodW5rX2ZyZWUpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfY2h1bmtfYWxsb2NhdG9yKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2dvdF9jaHVua19jYiksIChnc3Rfc291cF9odHRwX3NyY19jcmVhdGUpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc3RhcnQpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfc2V0X3Byb3h5KToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBJbXBsZW1lbnQgemVyby1jb3B5IGFuZCBtYWtlIHRoZSBidWZmZXIgc2l6ZSBjb25maWd1cmFibGUuCgkgIFByZWZpeCBwcm94eSBVUklzIHdpdGggImh0dHA6Ly8iIGlmIHRoZXkgZG9uJ3Qgc3RhcnQgd2l0aCBpdAoJICBhbHJlYWR5IGFuZCBjYXRjaCBlcnJvcnMgZWFybGllciwgZml4ZXMgaGFuZ2luZyBpbiBzb21lIHNpdHVhdGlvbnMuCgkgIEZpeGVzIGJ1ZyAjNTE0OTQ4LgoKMjAwOC0wMi0yMiAwNjoyMjozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IElnbm9yZSBnY29uZmF1ZGlvc3JjIGZvciB0aGUgc3RhdGVzIHVuaXQgdGVzdCB0b28uIEl0IHdpbGwgZmFsbGJhY2sgdG8gYWxzYXNyYyBpZiB0aGUgZ2NvbmYgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBJZ25vcmUgZ2NvbmZhdWRpb3NyYyBmb3IgdGhlIHN0YXRlcyB1bml0IHRlc3QgdG9vLiBJdCB3aWxsIGZhbGxiYWNrCgkgIHRvIGFsc2FzcmMgaWYgdGhlIGdjb25mIHNldHRpbmdzIGNhbid0IGJlIHJlYWQgYW5kIG5vdCBldmVyeWJvZHkgaGFzCgkgIGFsc2EuCgoyMDA4LTAyLTIyIDA2OjA2OjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuKjogQWx3YXlzIHJlcG9ydCB0aGUgZHVyYXRpb24gaWYgd2Uga25vdyBpdCBpbiBwdXNoIG1vZGUgYW5kIGRvbid0IHJldHVybiAwIGp1c3QgdG8gbWFrZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfY3JlYXRlX3NyY19wYWQpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICBBbHdheXMgcmVwb3J0IHRoZSBkdXJhdGlvbiBpZiB3ZSBrbm93IGl0IGluIHB1c2ggbW9kZSBhbmQgZG9uJ3QKCSAgcmV0dXJuIDAganVzdCB0byBtYWtlIHRvdGVtIGJlbGlldmUgd2UgY2FuJ3Qgc2VlayBpbiBwdXNoIG1vZGUuCgkgIE5ld2VyIHRvdGVtIHZlcnNpb24gdXNlIHRoZSBTRUVLSU5HIHF1ZXJ5IHdoaWNoIHByb3Blcmx5IHJlcG9ydHMKCSAgaWYgd2UgY2FuIHNlZWsgb3Igbm90LgoKMjAwOC0wMi0yMiAwNTozOTowMSArMDAwMCAgSmVucyBHcmFuc2V1ZXIgPGplbnNnckBnbXgubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvZXF1YWxpemVyL2RlbW8uYzogQzg5IGZpeCwgbW92aW5nIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jay4gRml4ZXMgYnVnICM1MTc5MzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVucyBHcmFuc2V1ZXIgPGplbnNnciBhdCBnbXggZG90IG5ldD4KCSAgKiB0ZXN0cy9leGFtcGxlcy9lcXVhbGl6ZXIvZGVtby5jOiAobWFpbik6CgkgIEM4OSBmaXgsIG1vdmluZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gdGhlIGJlZ2lubmluZyBvZgoJICB0aGUgYmxvY2suIEZpeGVzIGJ1ZyAjNTE3OTMzLgoKMjAwOC0wMi0yMSAyMzo0NzozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gZGV2ZWxvcG1lbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Li4uCgo9PT0gcmVsZWFzZSAwLjEwLjcgPT09CgoyMDA4LTAyLTIxIDAwOjA5OjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmludGVyZmFjZXM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Rpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXF1YWxpemVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vbm9zY29wZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aWZpbGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvNGxpbnV4Mi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSogcG8vTElOR1VBUzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuNyAtIFJlZCBEb29yIEJsYWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuNyAtIFJlZCBEb29yIEJsYWNrCgoyMDA4LTAyLTIwIDIyOjUxOjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX0hLLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOC0wMi0xOSAxMDo0NzoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2FscGhhL01ha2VmaWxlLmFtOiBMaW5rIGFscGhhIHBsdWdpbiB3aXRoIGxpYmdzdGJhc2UuIEZpeGVzIGJ1ZyAjNTE3Mzg2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYWxwaGEvTWFrZWZpbGUuYW06CgkgIExpbmsgYWxwaGEgcGx1Z2luIHdpdGggbGliZ3N0YmFzZS4gRml4ZXMgYnVnICM1MTczODYuCgoyMDA4LTAyLTE4IDExOjEzOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBJbml0IHZhbHVlcyB0byAtMSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IDAgdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NyZWF0ZV9zdHJlYW0pOgoJICBJbml0IHZhbHVlcyB0byAtMSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IDAgdmFsdWUuCgkgIEZpeGVzICM1MTY1MjQuCgoyMDA4LTAyLTE0IDE0OjUwOjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9zcGVjdHJ1bS1leGFtcGxlLmM6IEFkZCBtaXNzaW5nIGluY2x1ZGUgdG8gZml4IGNvbXBpbGF0aW9uIHdoZW4gbGlieG1sIHVzYWdlIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9zcGVjdHJ1bS1leGFtcGxlLmM6CgkgIEFkZCBtaXNzaW5nIGluY2x1ZGUgdG8gZml4IGNvbXBpbGF0aW9uIHdoZW4gbGlieG1sIHVzYWdlIGlzIGRpc2FibGVkLgoJICBGaXhlczogIzUxNjM3MQoKMjAwOC0wMi0xMiAyMzozODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIGZpeGVzOiAjNTE0ODg5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogIFdpbSBUYXltYW5zICA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoJICBmaXhlczogIzUxNDg4OQoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJICBGaXggdmFyaW91cyBsZWFrcyBzaG93biB1cCBpbiB2YWxncmluZAoJICAtIGZyZWUgc3Byb3BzIGFuZCBidWZmZXIgaW4gZXJyb3IgY2FzZXMgaW4gSDI2NCBwYXlsb2FkZXIKCSAgLSBmaXggbGVhayBpbiBtcDRnIGRlcGF5bG9hZGVyIHdoZW4gY29uc3RydWN0aW9uIHRoZSBjYXBzCgkgIC0gZG9uJ3QgbGVhayBjb25maWcgc3RyaW5nIGluIHRoZSBtcDRnIHBheWxvYWRlcgoJICAtIGRvbid0IGxlYWsgYnVmZmVycyBhbmQgaGVhZGVycyBpbiB0aGVvcmEgYW5kIHZvcmJpcyBwYXlsb2FkZXJzCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzoKCSAgRml4IHRoZSBSVFAgZGF0YSB0ZXN0CgkgIC0gQWN0dWFsbHkgc2VuZCB2YWxpZCBhbXIgZGF0YSB0byB0aGUgcGF5bG9hZGVyIGluc3RlYWQgb2YgMjAKCSAgemVyby1ieXRlcwoJICAtIFRoZSBtcDRnIHBheWxvYWRlciBleHBlY3RzIGNvZGVjX2RhdGEgb24gdGhlIGNhcHMKCjIwMDgtMDItMTIgMjE6MzY6NDAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBBZGQgbGliZ3N0cG5nLmRzcCB0byBNQU5JRkVTVC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIEFkZCBsaWJnc3RwbmcuZHNwIHRvIE1BTklGRVNULgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhdWRpb2Z4LmRzcDoKCSAgQWRkIG5ldyBzb3VyY2UgZmlsZXMgdG8gVlMgcHJvamVjdCBmaWxlLgoKMjAwOC0wMi0xMiAxMzozNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiBJbml0aWFsaXNlIHZhcmlhYmxlcyB3aGVuIG9wZW5pbmcgdGhlIFggZGlzcGxheSByYXRoZXIgdGhhbiBpbiBfc3RhcnQoKSwgYXMgdGhlIGRpc3BsYXkgY2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSAgSW5pdGlhbGlzZSB2YXJpYWJsZXMgd2hlbiBvcGVuaW5nIHRoZSBYIGRpc3BsYXkgcmF0aGVyCgkgIHRoYW4gaW4gX3N0YXJ0KCksIGFzIHRoZSBkaXNwbGF5IGNhbiBiZSBvcGVuZWQgYmVmb3JlIHRoYXQuCgkgIEZpeGVzOiAjNTE1OTg1CgoyMDA4LTAyLTEyIDEyOjIyOjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOiBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBmdW5jdGlvbnMuIEZpeGVzIGJ1ZyAjNTE1OTgwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICAoZ3N0X2RkcmF3c3VyZmFjZV9jbGFzc19pbml0KSwgKGdzdF9kZHJhd3N1cmZhY2VfZmluYWxpemUpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19maW5hbGl6ZSk6CgkgIFByb3Blcmx5IGNoYWluIHVwIGZpbmFsaXplIGZ1bmN0aW9ucy4gRml4ZXMgYnVnICM1MTU5ODAuCgoyMDA4LTAyLTEyIDExOjM4OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IENoYWluIHVwIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbnMuIEZpeGVzIGJ1ZyAjNTE1OTg0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMl9idWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3Y0bDJfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfZmluYWxpemUpLAoJICAoZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfY2xhc3NfaW5pdCk6CgkgIENoYWluIHVwIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbnMuIEZpeGVzIGJ1ZyAjNTE1OTg0LgoKMjAwOC0wMi0xMiAxMToxNDozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6IENoYWluIHVwIGluIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbiBmb3Igb3VyIGN1c3RvbSBidWZmZXIgc3ViLWNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzoKCSAgQ2hhaW4gdXAgaW4gdGhlIGZpbmFsaXplIGZ1bmN0aW9uIGZvciBvdXIgY3VzdG9tCgkgIGJ1ZmZlciBzdWItY2xhc3MuCgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoJICBGaXhlczogIzUxNTcwNgoKMjAwOC0wMi0xMiAxMToxMjo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2RlYnVnL2VmZW5jZS5jOiBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBtZXRob2QuIEZpeGVzIGJ1ZyAjNTE1OTc5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvZWZlbmNlLmM6IChnc3RfZmVuY2VkX2J1ZmZlcl9maW5hbGl6ZSksCgkgIChnc3RfZmVuY2VkX2J1ZmZlcl9jbGFzc19pbml0KToKCSAgUHJvcGVybHkgY2hhaW4gdXAgZmluYWxpemUgbWV0aG9kLiBGaXhlcyBidWcgIzUxNTk3OS4KCjIwMDgtMDItMTIgMTE6MDk6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogRnJlZSBhbGxvY2F0ZWQgRGFtYWdlIG1lbW9yeSBiZWZvcmUgY2xvc2luZyBvdXIgY29ubmVjdGlvbiB0byB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSAgRnJlZSBhbGxvY2F0ZWQgRGFtYWdlIG1lbW9yeSBiZWZvcmUgY2xvc2luZyBvdXIgY29ubmVjdGlvbiB0byB0aGUKCSAgWCBzZXJ2ZXIuIEZpeGVzOiAjNTE1NzA2CgoyMDA4LTAyLTEyIDA1OjIxOjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9zb3VwaHR0cHNyYy5jOiBJbmNsdWRlIGdsaWIvZ3ByaW50Zi5oIGZvciBnX3Zhc3ByaW50ZigpLiBGaXhlcyBidWcgIzUxNTU2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc291cGh0dHBzcmMuYzoKCSAgSW5jbHVkZSBnbGliL2dwcmludGYuaCBmb3IgZ192YXNwcmludGYoKS4gRml4ZXMgYnVnICM1MTU1NjQuCgoyMDA4LTAyLTEyIDA1OjE0OjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBZGQgYSBmZXcgbGlianBlZyBzdXBwcmVzc2lvbnMgYW5kIGluaXRpYWxpemUgYSB2YXJpYWJsZSB0byBtYWtlIHNtb2tlZW5jIHZhbGdyaW5kIGNsZWFuLiBGaXhlcyBidWcgIzUxNTcwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19jaGFpbik6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0LXBsdWdpbnMtZ29vZC5zdXBwOgoJICBBZGQgYSBmZXcgbGlianBlZyBzdXBwcmVzc2lvbnMgYW5kIGluaXRpYWxpemUgYSB2YXJpYWJsZSB0bwoJICBtYWtlIHNtb2tlZW5jIHZhbGdyaW5kIGNsZWFuLiBGaXhlcyBidWcgIzUxNTcwMS4KCjIwMDgtMDItMTEgMjE6MjQ6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBSZXZlcnQgcGF0Y2ggd2hpY2ggc2VuZHMgdGltZXN0YW1wcyBvbmx5IG9uIGtleWZyYW1lcywgYXMgaXQgYnJlYWtzIHBsYXliYWNrIHdpdGggY3VycmVudCBnc3QtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgUmV2ZXJ0IHBhdGNoIHdoaWNoIHNlbmRzIHRpbWVzdGFtcHMgb25seSBvbiBrZXlmcmFtZXMsIGFzIGl0CgkgIGJyZWFrcyBwbGF5YmFjayB3aXRoIGN1cnJlbnQgZ3N0LWZmbXBlZy4KCSAgRml4ZXM6ICM1MTU1NjIKCjIwMDgtMDItMTEgMTQ6MDE6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIENsb3NlIHNvbWUgbWVtb3J5IGxlYWtzIHNwb3R0ZWQgYnkgdGhlIHVuaXQgdGVzdC4gRml4ZXMgYnVnICM1MTU2OTcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6IChnc3RfbXVsdGlfZmlsZV9zcmNfY3JlYXRlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2xvc2Ugc29tZSBtZW1vcnkgbGVha3Mgc3BvdHRlZCBieSB0aGUgdW5pdCB0ZXN0LiBGaXhlcyBidWcgIzUxNTY5Ny4KCjIwMDgtMDItMTEgMTM6NDg6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9nY29uZi9nY29uZi5jOiBVc2UgYW5kIHVuc2V0IHRoZSBHRXJyb3Igd2hlbiBwaXBlbGluZSBjcmVhdGlvbiBmYWlscyBpbnN0ZWFkIG9mIHNpbXBseSBsZWFraW5nIGl0LiBGaXhlcyBidWcgIzUxNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvZ2NvbmYuYzogKGdzdF9nY29uZl9yZW5kZXJfYmluX3dpdGhfZGVmYXVsdCk6CgkgIFVzZSBhbmQgdW5zZXQgdGhlIEdFcnJvciB3aGVuIHBpcGVsaW5lIGNyZWF0aW9uIGZhaWxzIGluc3RlYWQgb2YKCSAgc2ltcGx5IGxlYWtpbmcgaXQuIEZpeGVzIGJ1ZyAjNTE1NzA0LgoKMjAwOC0wMi0xMCAxMDo0NjoxMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2F1ZGlvZngvOiBGaXggbG9uZyBkZXNjcmlwdGlvbiBvZiBhdWRpb2Z4IGVsZW1lbnRzLiBGaXhlcyBidWcgIzUxNTQ1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5jOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9pbnZlcnQuYzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jbGltaXQuYzoKCSAgRml4IGxvbmcgZGVzY3JpcHRpb24gb2YgYXVkaW9meCBlbGVtZW50cy4gRml4ZXMgYnVnICM1MTU0NTcuCgoyMDA4LTAyLTA5IDAxOjQ1OjMyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBhIHNpbXBsZSBleGFtcGxlIGFwcGxpY2F0aW9uIGZvciB0aGUgc3BlY3RydW0gZWxlbWVudCwgaW5jbHVkZSBpdCBpbiB0aGUgZG9jcywgYW5kIGZpeCBzb21lIGRvY3VtZW50YXRpb24gYW1iaWd1aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgICogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9zcGVjdHJ1bS1leGFtcGxlLmM6CgkgIEFkZCBhIHNpbXBsZSBleGFtcGxlIGFwcGxpY2F0aW9uIGZvciB0aGUgc3BlY3RydW0gZWxlbWVudCwgaW5jbHVkZSBpdAoJICBpbiB0aGUgZG9jcywgYW5kIGZpeCBzb21lIGRvY3VtZW50YXRpb24gYW1iaWd1aXRpZXMuCgkgIEZpeGVzOiAjMzQ4MDg1CgoyMDA4LTAyLTA5IDAwOjE1OjI1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IEZpeCBpbmNsdWRlcyBvcmRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSAgRml4IGluY2x1ZGVzIG9yZGVyCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEV4Y2x1ZGUgdjRsMnNyYyBmcm9tIHRoZSBzdGF0ZXMgdGVzdCAtIGl0IHRha2VzIHRvbyBsb25nIHRvIHN0YXJ0LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6CgkgIE1ha2UgdGhlIHRlc3QgcnVuIHByb3Blcmx5IHdpdGggQ0tfRk9SSz1ubwoKMjAwOC0wMi0wOCAxNTozMjozNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBhZGQgMyBuZXcgcGx1Z2lucyB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCAzIG5ldyBwbHVnaW5zIHRvIHNwZWMgZmlsZQoKMjAwOC0wMi0wOCAxNToyNzo1MSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGVzIGZvciBkaXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyBoZWFkZXIgZmlsZXMgZm9yIGRpc3RpbmcKCjIwMDgtMDItMDggMTU6MjA6MzEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEZsYWcga2V5ZnJhbWUgYW5kIGRlbHRhIHVuaXRzIGNvcnJlY3RseSB3aGVuIGRlYWxpZ24gd2l0aCBhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTAyLTA4ICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2spOiBGbGFnCgkgIGtleWZyYW1lIGFuZCBkZWx0YSB1bml0cyBjb3JyZWN0bHkgd2hlbiBkZWFsaWduIHdpdGggYQoJICBCbG9ja0dyb3VwLgoJICBGaXhlczogIzUxNDM5NwoKMjAwOC0wMi0wOCAxMDoxOTozMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBTcGVsbCB0aGUgbmV3IHRlc3RzIGNvcnJlY3RseSBpbiAuY3ZzaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIFNwZWxsIHRoZSBuZXcgdGVzdHMgY29ycmVjdGx5IGluIC5jdnNpZ25vcmUKCjIwMDgtMDItMDggMTA6MDk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOiBOZWVkIHRvIHVzZSBnc2l6ZSBoZXJlIGZvciB0aGUgc2l6ZSwgZml4ZXMgY29tcGlsZXIgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzogKGdzdF9tdWx0aV9maWxlX3NyY19jcmVhdGUpOgoJICBOZWVkIHRvIHVzZSBnc2l6ZSBoZXJlIGZvciB0aGUgc2l6ZSwgZml4ZXMgY29tcGlsZXIgd2FybmluZy4KCSAgKiB0ZXN0cy9leGFtcGxlcy9lcXVhbGl6ZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvc3BlY3RydW0vLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSAgQWRkIG1pc3NpbmcgZmlsZXMgdG8gZml4IHRoZSBidWlsZC4KCjIwMDgtMDItMDggMDQ6MjU6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTW92ZSBtdWx0aWZpbGUgcGx1Z2luIGZyb20gLWJhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpZmlsZS54bWw6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgTW92ZSBtdWx0aWZpbGUgcGx1Z2luIGZyb20gLWJhZC4KCSAgRml4ZXM6ICM0OTAyODMKCjIwMDgtMDItMDggMDM6NDQ6MTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L211bHRpZmlsZS86IFVzZSBnX2ZpbGVfW3NnXWV0X2NvbnRlbnRzKCkgaW5zdGVhZCBvZiB1c2luZyBzdGRpbyBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgIFVzZSBnX2ZpbGVfW3NnXWV0X2NvbnRlbnRzKCkgaW5zdGVhZCBvZiB1c2luZyBzdGRpbyBmdW5jdGlvbnMuCgkgIFNob3VsZCBiZSBsZXNzIGVycm9yIHByb25lLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpZmlsZS5jOgoJICBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVzaW5nIHN0YW5kYXJkIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mCgkgIGNyZWF0aW5nIGEgZGlyZWN0b3J5IGluIHRoZSBjdXJyZW50IGRpci4KCjIwMDgtMDItMDggMDM6Mjg6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTW92ZSBzcGVjdHJ1bSBwbHVnaW4gZnJvbSAtYmFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlY3RydW0ueG1sOgoJICAqIGdzdC9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBNb3ZlIHNwZWN0cnVtIHBsdWdpbiBmcm9tIC1iYWQuCgkgIE1vdmUgZXhhbXBsZXMgaW50byB0ZXN0cy9leGFtcGxlcy9zcGVjdHJ1bS4KCjIwMDgtMDItMDggMDI6NTY6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyA0MTU2MjcgZml4ZWQgd2l0aCBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIDQxNTYyNyBmaXhlZCB3aXRoIHByZXZpb3VzIGNvbW1pdAoKMjAwOC0wMi0wOCAwMjo0OToyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNb3ZlIHRoZSBlcXVhbGl6ZXIgcGx1Z2luIGFjcm9zcyBmcm9tIC1iYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lcXVhbGl6ZXIueG1sOgoJICAqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIE1vdmUgdGhlIGVxdWFsaXplciBwbHVnaW4gYWNyb3NzIGZyb20gLWJhZAoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIEFkZCBlcXVhbGl6ZXIsIGF1ZGlvc2luY3diYW5kIGFuZCBhdWRpb3NpbmN3bGltaXQKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9lcXVhbGl6ZXIuYzoKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA4LTAyLTA4IDAyOjQ4OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy4qOiBSZW1vdmUgZXF1YWxpemVyIHBsdWdpbiBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgIFJlbW92ZSBlcXVhbGl6ZXIgcGx1Z2luIGRvY3MKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQWRkIEdTVF9PUFRJT05fQ0ZMQUdTLCB0byBnZXQgLVdlcnJvciAtV2FsbCBpbnRvIHRoZSB0ZXN0cyBhcyBmb3IKCSAgb3RoZXIgbW9kdWxlcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdsaW1pdGVyLmM6CgkgIEZpeCBjb21waWxlciB3YXJuaW5ncyBmcm9tIC1XYWxsIC1XZXJyb3IKCjIwMDgtMDItMDggMDE6MDc6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBPbmx5IGJ1aWxkIHdpdGggRElTQUJMRV9ERVBSRUNBVEVEIGR1cmluZyB0aGUgQ1ZTIGN5Y2xlLiBQcmUtcmVsZWFzZXMgYXJlIHRyZWF0ZWQgbGlrZSByZWxlYXNlcyBhbmQgYnVpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgT25seSBidWlsZCB3aXRoIERJU0FCTEVfREVQUkVDQVRFRCBkdXJpbmcgdGhlIENWUyBjeWNsZS4gUHJlLXJlbGVhc2VzCgkgIGFyZSB0cmVhdGVkIGxpa2UgcmVsZWFzZXMgYW5kIGJ1aWxkIHdpdGhvdXQgaXQuCgoyMDA4LTAyLTA3IDIxOjU3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE1vdmUgdGhlIGxwd3NpbmMgYW5kIGJwd3NpbmMgZWxlbWVudHMgZnJvbSBnc3QtcGx1Z2lucy1iYWQgaW50byB0aGUgYXVkaW9meCBwbHVnaW4sIGFuZCByZW5hbWUgdG8gYXVkaW93c2luY2xpbWl0IGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW93c2luY2JhbmQuYzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3dzaW5jYmFuZC5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5jOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvd3NpbmNsaW1pdC5oOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvd3NpbmNiYW5kLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW93c2luY2xpbWl0LmM6CgkgIE1vdmUgdGhlIGxwd3NpbmMgYW5kIGJwd3NpbmMgZWxlbWVudHMgZnJvbSBnc3QtcGx1Z2lucy1iYWQgaW50bwoJICB0aGUgYXVkaW9meCBwbHVnaW4sIGFuZCByZW5hbWUgdG8gYXVkaW93c2luY2xpbWl0IGFuZCBhdWRpb3dzaW5jYmFuZAoJICByZXNwZWN0aXZlbHkuCgkgIEZpeGVzOiAjNDY3NjY2CgoyMDA4LTAyLTA3IDIxOjE3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmV0dXJuIEdTVF9GTE9XX05PVF9ORUdPVElBVEVEIGlmIHdlIGdldCBhIGJ1ZmZlciB3aXRob3V0IGNhcHMsIGFuZCBhZGQgYSBzb21ld2hhdCB1c2VmdWwgZGVidWcgbWVzc2FnZS4gUGx1cyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzogKGdzdF9pY3lkZW11eF9jaGFpbik6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWN5ZGVtdXguYzoKCSAgUmV0dXJuIEdTVF9GTE9XX05PVF9ORUdPVElBVEVEIGlmIHdlIGdldCBhIGJ1ZmZlciB3aXRob3V0CgkgIGNhcHMsIGFuZCBhZGQgYSBzb21ld2hhdCB1c2VmdWwgZGVidWcgbWVzc2FnZS4gUGx1cyB0ZXN0LgoKMjAwOC0wMi0wNyAxOToxMzo1NiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBJbmNsdWRlIHVuaXN0ZC5oIG9ubHkgaWYgSEFWRV9VTklTVERfSCBpcyBkZWZpbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgSW5jbHVkZSB1bmlzdGQuaCBvbmx5IGlmIEhBVkVfVU5JU1REX0ggaXMgZGVmaW5lZAoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaXQgc2VlbXMgaXQncyBub3QgZGVmaW5lZCBpbiBkZWZhdWx0CgkgIFZpc3VhbCBTdHVkaW8gaGVhZGVycy4KCSAgKiB3aW4zMi92czYvbGliZ3N0YWxwaGEuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhcGV0YWcuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhdmkuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RydHAuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RydHNwLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0dmlkZW9taXhlci5kc3A6CgkgIFVwZGF0ZSBwcm9qZWN0IGZpbGUgZGVwZW5kZW5jaWVzIGFuZCBhZGQgbmV3IHNvdXJjZSBmaWxlcwoKMjAwOC0wMi0wNyAxNjozODo1NSArMDAwMCAgQmphcm5lIFJvc2VuZ3JlbiA8Ymphcm5lQGF4aXMuY29tPgoKCSAgZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzogRG9uJ3QgbGVhayBidWZmZXJzIHdoZW4gd2UgZG9uJ3QgcHVzaCB0aGVtIGRvd25zdHJlYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQmphcm5lIFJvc2VuZ3JlbiA8Ymphcm5lIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOiAoZ3N0X2VibWxfd3JpdGVfZWxlbWVudF9wdXNoKToKCSAgRG9uJ3QgbGVhayBidWZmZXJzIHdoZW4gd2UgZG9uJ3QgcHVzaCB0aGVtIGRvd25zdHJlYW0uCgkgIEZpeGVzIGJ1ZyAjNTE0OTY1LgoKMjAwOC0wMi0wNyAxMzo0ODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6IEFkZCBhIGZpeG1lIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICBBZGQgYSBmaXhtZSBjb21tZW50LgoJICAqIGdzdC9zZWxlY3Rvci9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBGaXggc2FtZSBsZWFrIGFzIGluIGlucHV0LXNlbGVjdG9yLgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIEltcHJvdmUgdGhlIHRlc3QuCgoyMDA4LTAyLTA3IDEzOjQxOjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogSW1wcm92ZSB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIEltcHJvdmUgdGhlIGRvY3MuCgoyMDA4LTAyLTA3IDEwOjE3OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHJlcXVpcmVtZW50cyB0byAoZ29vZCkgcmVsZWFzZWQgdmVyc2lvbnMgdG8gYXZvaWQgY29uZnVzaW9uIGFuZCBtYWtlIGltcGxpY2l0IGNvcmUgcmVxdWlyZW1lbnQgZXhwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCByZXF1aXJlbWVudHMgdG8gKGdvb2QpIHJlbGVhc2VkIHZlcnNpb25zIHRvIGF2b2lkCgkgIGNvbmZ1c2lvbiBhbmQgbWFrZSBpbXBsaWNpdCBjb3JlIHJlcXVpcmVtZW50IGV4cGxpY2l0LgoKMjAwOC0wMi0wNyAxMDowNDowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IEZpeCB0eXBvIGluIHRoZSBsb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzoKCSAgRml4IHR5cG8gaW4gdGhlIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhlIGVsZW1lbnQuCgoyMDA4LTAyLTA2IDIzOjQ0OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlbmFtZSBhdWRpb2NoZWJ5c2hldmZyZXFiYW5kIC0+IGF1ZGlvY2hlYmJhbmQgYW5kIGF1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0IC0+IGF1ZGlvY2hlYmxpbWl0IGFuZCBkbyB0aGUgcmVxdWlzaXRlIENWUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJiYW5kLmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGViYmFuZC5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYmxpbWl0LmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVibGltaXQuaDoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJ5c2hldmZyZXFiYW5kLmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxYmFuZC5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0LmM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxbGltaXQuaDoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2Z4LmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJiYW5kLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGVibGltaXQuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJ5c2hldmZyZXFiYW5kLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGVieXNoZXZmcmVxbGltaXQuYzoKCSAgUmVuYW1lIGF1ZGlvY2hlYnlzaGV2ZnJlcWJhbmQgLT4gYXVkaW9jaGViYmFuZCBhbmQKCSAgYXVkaW9jaGVieXNoZXZmcmVxbGltaXQgLT4gYXVkaW9jaGVibGltaXQgYW5kIGRvIHRoZSByZXF1aXNpdGUgQ1ZTCgkgIHN1cmdlcnkuCgkgIENsb3NlczogIzQ5MTgxMQoKMjAwOC0wMi0wNiAxMTowNzo0NyArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IEZpeCBtZW1vcnkgbGVhayBhbmQgaW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV291dGVyIENsb2V0ZW5zIDx3b3V0ZXIgYXQgbWluZCBkb3QgYmU+CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogKGdzdF9zb3VwX2h0dHBfc3JjX2dvdF9jaHVua19jYiksCgkgIChnc3Rfc291cF9odHRwX3NyY19jcmVhdGUpOgoJICBGaXggbWVtb3J5IGxlYWsgYW5kIGltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoKMjAwOC0wMi0wNSAxNzo1OToyNCArMDAwMCAgb3JqYW4gPG9yamFuZkBheGlzLmNvbT4KCgkgIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IEZpeCBjYXBzIG1lbW9yeSBsZWFrLiBGaXhlcyAjNTE0NTczLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IG9yamFuIDxvcmphbmYgYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICBGaXggY2FwcyBtZW1vcnkgbGVhay4gRml4ZXMgIzUxNDU3My4KCjIwMDgtMDItMDQgMTI6MDc6MTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IElmIHRoZXJlJ3Mgbm8gZW50cmllcyBpbiB0aGUgc3ViaW5kZXgsIGRvbid0IHRyeSB0byBkbyBhbnl0aGluZyBzdHVwaWQsIGp1c3QgcmV0dXJuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1YmluZGV4KToKCSAgSWYgdGhlcmUncyBubyBlbnRyaWVzIGluIHRoZSBzdWJpbmRleCwgZG9uJ3QgdHJ5IHRvIGRvIGFueXRoaW5nIHN0dXBpZCwKCSAganVzdCByZXR1cm4uCgoyMDA4LTAyLTAyIDE5OjQ3OjUwICswMDAwICBKb2huIE1pbGxpa2luIDxqbWlsbGlraW5AZ21haWwuY29tPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiBGaXggZXh0cmFjdGlvbiBvZiBwaWN0dXJlIGJsb2NrcyB3aXRoIG5ld2VyIGxpYmZsYWMgdmVyc2lvbnMgYWdhaW46CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9obiBNaWxsaWtpbiA8am1pbGxpa2luIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX3NjYW5fZm9yX2xhc3RfYmxvY2spLAoJICAoZ3N0X2ZsYWNfZXh0cmFjdF9waWN0dXJlX2J1ZmZlciksIChnc3RfZmxhY19kZWNfbWV0YWRhdGFfY2FsbGJhY2spOgoJICBGaXggZXh0cmFjdGlvbiBvZiBwaWN0dXJlIGJsb2NrcyB3aXRoIG5ld2VyIGxpYmZsYWMgdmVyc2lvbnMgYWdhaW46CgkgIEZMQUNfX01FVEFEQVRBX1RZUEVfUElDVFVSRSBpcyBhbiBlbnVtLCBub3QgYSBkZWZpbmUgKCM1MTM2MjgpLgoKMjAwOC0wMi0wMiAxODowNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBBZGQgcnRwLXBheWxvYWRpbmcgdGVzdCB0byBWQUxHUklORF9UT19GSVguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBBZGQgcnRwLXBheWxvYWRpbmcgdGVzdCB0byBWQUxHUklORF9UT19GSVguCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcnRwLXBheWxvYWRpbmcuYzoKCSAgQWRkIHNlbWljb2xvbnMgYWZ0ZXIgR1NUX1RFU1RfRU5EIHNvIGdzdC1pbmRlbnQgZ2V0cyB0aGUKCSAgZm9ybWF0dGluZyByaWdodDsgbWFrZSB0ZXN0IGxlc3MgdmVyYm9zZSBpbiBnZW5lcmFsLCBidXQKCSAgbW9yZSB2ZXJib3NlIGluIHRoZSBlcnJvciBjYXNlICh3aGljaCBzaG91bGQgcHJvYmFibHkKCSAgbWFrZSB0aGUgdGVzdCBmYWlsIGFueXdheSkuCgoyMDA4LTAyLTAxIDE4OjI5OjIxICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIGF2aXN1YnRpdGxlIGFuZCBjaGFuZ2UgY2xhc3MgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSAgQWRkIGRvY3VtZW50YXRpb24gZm9yIGF2aXN1YnRpdGxlIGFuZCBjaGFuZ2UgY2xhc3MgdG8KCSAgQ29kZWMvUGFyc2VyL1N1YnRpdGxlCgoyMDA4LTAxLTMxIDE2OjEyOjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogVHJlYXQgRU5PVFRZIChkcml2ZXIgZG9lcyBub3QgaW1wbGVtZW50IGlvY3RsKSB0aGUgc2FtZSBhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6IChnc3RfdjRsMl9maWxsX2xpc3RzKToKCSAgVHJlYXQgRU5PVFRZIChkcml2ZXIgZG9lcyBub3QgaW1wbGVtZW50IGlvY3RsKSB0aGUgc2FtZSBhcwoJICBFSU5WQUwgc2luY2UgaXQgaW1wbGllcyB0aGVyZSBhcmUgbm8gYXZhaWxhYmxlIHN0YW5kYXJkcy4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXQpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X25lYXJlc3Rfc2l6ZSk6CgkgIFJlcGxhY2UgZ3N0X3Y0bDJzcmNfZ2V0X3NpemVfbGltaXRzIHdpdGggMiBjYWxscyB0byBuZXcgZnVuY3Rpb24KCSAgZ3N0X3Y0bDJzcmNfZ2V0X25lYXJlc3Rfc2l6ZSwgYW5kIGdldCBpdCB0byB1c2UgVklESU9DX1NfRk1UIHRvCgkgIHByb2JlIGlmIHRoZSBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCBWSURJT0NfVFJZX0ZNVCBmb3Igd2hhdGV2ZXIKCSAgcmVhc29uLCBhbmQgaWYgd2UgYXJlbid0IHlldCBhY3RpdmVseSBjYXB0dXJpbmcuCgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJICBSZW1vdmUgcmVwbGFjZWQgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDA4LTAxLTMxIDE2OjAzOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCBwbHVnaW5zLWJhc2UgcmVxdWlyZW1lbnQgdG8gMC4xMC4xNiBmb3IgdGhlIGdzdF92aWRlb19mb3JtYXRfKgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgcGx1Z2lucy1iYXNlIHJlcXVpcmVtZW50IHRvIDAuMTAuMTYgZm9yIHRoZSBnc3RfdmlkZW9fZm9ybWF0XyoKCSAgQVBJLgoKMjAwOC0wMS0zMSAwOTo1MDozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogQWRkIGNoYW5nZXMgdG8gZ3N0c291cGh0dHBzcmMuYyB0aGF0IHdlcmUgbWlzc2luZyBmcm9tIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoX2RvX2luaXQpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfYmFzZV9pbml0KSwgKGdzdF9zb3VwX2h0dHBfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfaW5pdCksIChnc3Rfc291cF9odHRwX3NyY19kaXNwb3NlKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3NldF9wcm9wZXJ0eSksIChnc3Rfc291cF9odHRwX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfdW5pY29kaWZ5KSwgKGdzdF9zb3VwX2h0dHBfc3JjX2NhbmNlbF9tZXNzYWdlKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3F1ZXVlX21lc3NhZ2UpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfYWRkX3JhbmdlX2hlYWRlciksCgkgIChnc3Rfc291cF9odHRwX3NyY19zZXNzaW9uX3VucGF1c2VfbWVzc2FnZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19zZXNzaW9uX3BhdXNlX21lc3NhZ2UpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc2Vzc2lvbl9jbG9zZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19nb3RfaGVhZGVyc19jYiksCgkgIChnc3Rfc291cF9odHRwX3NyY19nb3RfYm9keV9jYiksIChnc3Rfc291cF9odHRwX3NyY19maW5pc2hlZF9jYiksCgkgIChnc3Rfc291cF9odHRwX3NyY19nb3RfY2h1bmtfY2IpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfcmVzcG9uc2VfY2IpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfcGFyc2Vfc3RhdHVzKSwgKGdzdF9zb3VwX2h0dHBfc3JjX2NyZWF0ZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19zdGFydCksIChnc3Rfc291cF9odHRwX3NyY19zdG9wKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3VubG9jayksIChnc3Rfc291cF9odHRwX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3Rfc291cF9odHRwX3NyY19nZXRfc2l6ZSksIChnc3Rfc291cF9odHRwX3NyY19pc19zZWVrYWJsZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19kb19zZWVrKSwgKGdzdF9zb3VwX2h0dHBfc3JjX3NldF9sb2NhdGlvbiksCgkgIChnc3Rfc291cF9odHRwX3NyY19zZXRfcHJveHkpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfdXJpX2dldF90eXBlKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3VyaV9nZXRfcHJvdG9jb2xzKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9zb3VwX2h0dHBfc3JjX3VyaV9zZXRfdXJpKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3VyaV9oYW5kbGVyX2luaXQpLCAocGx1Z2luX2luaXQpOgoJICBBZGQgY2hhbmdlcyB0byBnc3Rzb3VwaHR0cHNyYy5jIHRoYXQgd2VyZSBtaXNzaW5nIGZyb20gbGFzdCBjb21taXQuCgoyMDA4LTAxLTMxIDA4OjU3OjE2ICswMDAwICBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlckBtaW5kLmJlPgoKCSAgTWFrZSBjb2Rpbmcgc3R5bGUgbW9yZSBjb25zaXN0ZW50LCBpbmNsdWRpbmcgY2xhc3MgcmVuYW1pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV291dGVyIENsb2V0ZW5zIDx3b3V0ZXIgYXQgbWluZCBkb3QgYmU+CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VwLnhtbDoKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2Jhc2VfaW5pdCksIChnc3Rfc291cF9odHRwX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2luaXQpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfZGlzcG9zZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3VuaWNvZGlmeSksIChnc3Rfc291cF9odHRwX3NyY19jYW5jZWxfbWVzc2FnZSksCgkgIChnc3Rfc291cF9odHRwX3NyY19xdWV1ZV9tZXNzYWdlKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX2FkZF9yYW5nZV9oZWFkZXIpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc2Vzc2lvbl91bnBhdXNlX21lc3NhZ2UpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3Nlc3Npb25fY2xvc2UpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfZ290X2hlYWRlcnNfY2IpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfZ290X2JvZHlfY2IpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfZmluaXNoZWRfY2IpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfZ290X2NodW5rX2NiKSwgKGdzdF9zb3VwX2h0dHBfc3JjX3Jlc3BvbnNlX2NiKSwKCSAgKGdzdF9zb3VwX2h0dHBfc3JjX3BhcnNlX3N0YXR1cyksIChnc3Rfc291cF9odHRwX3NyY19jcmVhdGUpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc3RhcnQpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfc3RvcCksCgkgIChnc3Rfc291cF9odHRwX3NyY191bmxvY2spLCAoZ3N0X3NvdXBfaHR0cF9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfZ2V0X3NpemUpLCAoZ3N0X3NvdXBfaHR0cF9zcmNfaXNfc2Vla2FibGUpLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfZG9fc2VlayksIChnc3Rfc291cF9odHRwX3NyY19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X3NvdXBfaHR0cF9zcmNfc2V0X3Byb3h5KSwgKGdzdF9zb3VwX2h0dHBfc3JjX3VyaV9nZXRfdHlwZSksCgkgIChnc3Rfc291cF9odHRwX3NyY191cmlfZ2V0X3Byb3RvY29scyksCgkgIChnc3Rfc291cF9odHRwX3NyY191cmlfZ2V0X3VyaSksIChnc3Rfc291cF9odHRwX3NyY191cmlfc2V0X3VyaSksCgkgIChnc3Rfc291cF9odHRwX3NyY191cmlfaGFuZGxlcl9pbml0KSwgKHBsdWdpbl9pbml0KToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBNYWtlIGNvZGluZyBzdHlsZSBtb3JlIGNvbnNpc3RlbnQsIGluY2x1ZGluZyBjbGFzcyByZW5hbWluZy4KCjIwMDgtMDEtMzEgMDA6MDM6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggdHlwby4KCjIwMDgtMDEtMzEgMDA6MDA6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2FscGhhLzogUmUtd3JpdGUgdGhlICdhbHBoYScgcGx1Z2luIHRvIGJlIEJhc2VUcmFuc2Zvcm0gYmFzZWQsIHNpbXBsaWZ5aW5nIHNvbWUgc3R1ZmYsIGFuZCBtYWtpbmcgYnVmZmVyLWFsbG9jIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hbHBoYS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgUmUtd3JpdGUgdGhlICdhbHBoYScgcGx1Z2luIHRvIGJlIEJhc2VUcmFuc2Zvcm0gYmFzZWQsIHNpbXBsaWZ5aW5nCgkgIHNvbWUgc3R1ZmYsIGFuZCBtYWtpbmcgYnVmZmVyLWFsbG9jIGFuZCByZXNpemluZyB3b3JrIGF1dG9tYXRpY2FsbHkuCgkgIE5vIGxvbmdlciBjcmFzaGVzIG9uIG9kZCBmcmFtZSB3aWR0aHMgYW5kIGhlaWdodHMsIGFsdGhvdWdoIHRoZXJlCgkgIHNlZW1zIHRvIGJlIGEgZGlzYWdyZWVtZW50IHdpdGggZmZtcGVnY29sb3JzcGFjZSBhYm91dCB3aGF0IHNpemUKCSAgYW4gQVlVViBmcmFtZSB3aXRoIG9kZCBoZWlnaHQgc2hvdWxkIGJlLgoKMjAwOC0wMS0zMCAxNTo0MDozNiArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyA8d291dGVyIGF0IG1pbmQgZG90IGJlPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6CgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGEgYml0LgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsc2FzcGRpZi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2Yi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZpbHRlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdsaW1hZ2VzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZ3ZpZGVvcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yYXdwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zZGwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VuZHRvdWNoLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291cC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwY2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZWQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleHJlc2FtcGxlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3dpdGNoLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgUmVnZW5lcmF0ZSBldmVyeXRoaW5nIGZvciB0aGUgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIHdlIGhhZC4KCjIwMDgtMDEtMzAgMTM6Mjk6MTUgKzAwMDAgIFdvdXRlciBDbG9ldGVucyA8d291dGVyQG1pbmQuYmU+CgoJICBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiBMZXQgdGhlIHByb3h5IHByb3BlcnR5IGRlZmF1bHQgdG8gdGhlIGNvbnRlbnQgb2YgdGhlICRodHRwX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyA8d291dGVyIGF0IG1pbmQgZG90IGJlPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cGh0dHBfc3JjX2luaXQpOgoJICBMZXQgdGhlIHByb3h5IHByb3BlcnR5IGRlZmF1bHQgdG8gdGhlIGNvbnRlbnQgb2YgdGhlICRodHRwX3Byb3h5CgkgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKMjAwOC0wMS0zMCAxMzowODo0NSArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIG1pc3NpbmcgZmlsZXMgZm9yIHRoZSB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV291dGVyIENsb2V0ZW5zIDx3b3V0ZXIgYXQgbWluZCBkb3QgYmU+CgkgICogdGVzdHMvY2hlY2svdGVzdC1jZXJ0LnBlbToKCSAgKiB0ZXN0cy9jaGVjay90ZXN0LWtleS5wZW06CgkgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciB0aGUgdW5pdCB0ZXN0LgoKMjAwOC0wMS0zMCAxMzowNjowMSArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGRvY3MvcGx1Z2lucy86IEFkZCBzb3VwaHR0cHNyYyB0byB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlciBhdCBtaW5kIGRvdCBiZT4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBBZGQgc291cGh0dHBzcmMgdG8gdGhlIGRvY3MuCgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cGh0dHBfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19pbml0KSwgKGdzdF9zb3VwaHR0cF9zcmNfZGlzcG9zZSksCgkgIChnc3Rfc291cGh0dHBfc3JjX3NldF9wcm9wZXJ0eSksIChnc3Rfc291cGh0dHBfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc291cGh0dHBfc3JjX2NhbmNlbF9tZXNzYWdlKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfcXVldWVfbWVzc2FnZSksCgkgIChnc3Rfc291cGh0dHBfc3JjX2FkZF9yYW5nZV9oZWFkZXIpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19zZXNzaW9uX3VucGF1c2VfbWVzc2FnZSksCgkgIChnc3Rfc291cGh0dHBfc3JjX3Nlc3Npb25fcGF1c2VfbWVzc2FnZSksCgkgIChnc3Rfc291cGh0dHBfc3JjX3Nlc3Npb25fY2xvc2UpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19nb3RfaGVhZGVyc19jYiksIChnc3Rfc291cGh0dHBfc3JjX2dvdF9ib2R5X2NiKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfZmluaXNoZWRfY2IpLCAoZ3N0X3NvdXBodHRwX3NyY19nb3RfY2h1bmtfY2IpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19yZXNwb25zZV9jYiksIChnc3Rfc291cGh0dHBfc3JjX3BhcnNlX3N0YXR1cyksCgkgIChnc3Rfc291cGh0dHBfc3JjX2NyZWF0ZSksIChnc3Rfc291cGh0dHBfc3JjX3N0YXJ0KSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfc3RvcCksIChnc3Rfc291cGh0dHBfc3JjX3VubG9jayksCgkgIChnc3Rfc291cGh0dHBfc3JjX3VubG9ja19zdG9wKSwgKGdzdF9zb3VwaHR0cF9zcmNfZ2V0X3NpemUpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19pc19zZWVrYWJsZSksIChnc3Rfc291cGh0dHBfc3JjX2RvX3NlZWspLAoJICAoZ3N0X3NvdXBodHRwX3NyY19zZXRfbG9jYXRpb24pLCAoZ3N0X3NvdXBodHRwX3NyY19zZXRfcHJveHkpLAoJICAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBsaWJzb3VwMi40IGFuZCByZXF1aXJlIGl0LiBBbHNvIGltcGxlbWVudCByZWRpcmVjdGlvbgoJICBhbmQgbWFudWFsIHByb3h5IHNwZWNpZmljYXRpb24uIEZpeGVzIGJ1ZyAjNTEwNzA4LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc291cGh0dHBzcmMuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3Igc291cGh0dHBzcmMuCgoyMDA4LTAxLTI5IDE4OjQzOjMyICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZW5jLio6IFByZWFsbG9jYXRlIHRoZSBvdXRwdXQgYnVmZmVyIHNvIHRoYXQgZ19tZW1kdXAoKSBhbmQgZ3N0X2J1ZmZlcl9tZXJnZSgpIGFyZW4ndCBuZWVkZWQgYW55bW9yZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOiAodXNlcl93cml0ZV9kYXRhKSwgKGdzdF9wbmdlbmNfY2hhaW4pOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmg6CgkgIFByZWFsbG9jYXRlIHRoZSBvdXRwdXQgYnVmZmVyIHNvIHRoYXQgZ19tZW1kdXAoKSBhbmQKCSAgZ3N0X2J1ZmZlcl9tZXJnZSgpIGFyZW4ndCBuZWVkZWQgYW55bW9yZS4gVGhpcyBncmVhdGx5IGltcHJvdmVzCgkgIHBlcmZvcm1hbmNlcyBhbmQgZml4ZXMgIzUxMjU0NC4KCjIwMDgtMDEtMjkgMTg6MjQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEdTdHJlYW1lciB0aW1lc3RhbXBzIGFyZSBQVFMgdmFsdWVzIHdoaWxlIEFWSSBvbmx5IGtub3dzIGFib3V0IERUUyB0aW1lc3RhbXBzLiBNYWtlIHN1cmUgd2Ugb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSk6CgkgIEdTdHJlYW1lciB0aW1lc3RhbXBzIGFyZSBQVFMgdmFsdWVzIHdoaWxlIEFWSSBvbmx5IGtub3dzIGFib3V0IERUUwoJICB0aW1lc3RhbXBzLiBNYWtlIHN1cmUgd2Ugb25seSBjb3B5IHRoZSBEVFMgYXMgdGhlIGJ1ZmZlciB0aW1lc3RhbXAgd2hlbgoJICB3ZSBhcmUgZGVhbGluZyB3aXRoIGEga2V5IGZyYW1lLgoKMjAwOC0wMS0yOSAxNTo0NTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgYWRkIHRlc3RzdWl0ZSBmb3IgdGhlIHJ0cC1wYXlsb2FkZXIgdGhhdCB0cmllcyBzaW11bGF0aW5nIGRhdGFmbG93LiBOZWVkcyBtb3JlIHRlc3QgZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHAtcGF5bG9hZGluZy5jOgoJICBBZGQgYWRkIHRlc3RzdWl0ZSBmb3IgdGhlIHJ0cC1wYXlsb2FkZXIgdGhhdCB0cmllcyBzaW11bGF0aW5nCgkgIGRhdGFmbG93LiBOZWVkcyBtb3JlIHRlc3QgZGF0YS4KCjIwMDgtMDEtMjkgMTU6Mjc6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FscGhhY29sb3IuYzogUmVtb3ZlIHR3byB1bnVzZWQgdmFyaWFibGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hbHBoYWNvbG9yLmM6CgkgIFJlbW92ZSB0d28gdW51c2VkIHZhcmlhYmxlcy4KCjIwMDgtMDEtMjggMTI6MTc6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IFVzZSBnX2FzY2lpX3N0cnRvbGwoKSBpbnN0ZWFkIG9mIGF0b2xsLCB3aGljaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBDOTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3BhcnNlX3J0cGluZm8pOgoJICBVc2UgZ19hc2NpaV9zdHJ0b2xsKCkgaW5zdGVhZCBvZiBhdG9sbCwgd2hpY2ggaXMgb25seQoJICBhdmFpbGFibGUgaW4gQzk5LgoKMjAwOC0wMS0yNiAxNjoxOToyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci86IERvbid0IGltcGxlbWVudCBnZXRfdW5pdF9zaXplKCkgb3Vyc2VsdmVzLCB0aGUgR3N0QXVkaW9GaWx0ZXIgYmFzZSBjbGFzcyBhbHJlYWR5IGRvZXMgdGhpcyBmb3IgdXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5jOiAoZ3N0X2Jwd3NpbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChnc3RfbHB3c2luY19jbGFzc19pbml0KToKCSAgRG9uJ3QgaW1wbGVtZW50IGdldF91bml0X3NpemUoKSBvdXJzZWx2ZXMsIHRoZSBHc3RBdWRpb0ZpbHRlciBiYXNlCgkgIGNsYXNzIGFscmVhZHkgZG9lcyB0aGlzIGZvciB1cy4KCjIwMDgtMDEtMjUgMTA6NTM6MTcgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogQWRkIE1QRUcyIHZpZGVvIHBheWxvYWRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcHZwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wdnBheS5oOgoJICBBZGQgTVBFRzIgdmlkZW8gcGF5bG9hZGVyCgoyMDA4LTAxLTIzIDE3OjA1OjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogVXNlICNpbmNsdWRlIDxtYXRoLmg+IGluc3RlYWQgb2YgI2luY2x1ZGUgIm1hdGguaCIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBVc2UgI2luY2x1ZGUgPG1hdGguaD4gaW5zdGVhZCBvZiAjaW5jbHVkZSAibWF0aC5oIi4KCjIwMDgtMDEtMjEgMTk6NDE6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IEZpeCB1cCBzb21lIENGTEFHUyBzZXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRml4IHVwIHNvbWUgQ0ZMQUdTIHNldHMuCgkgIERvbid0IGluY2x1ZGUgZ2NvbmZ2aWRlb3NyYyBpbiB0aGUgc3RhdGVzIHRlc3QuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXV0b2RldGVjdC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBlcnJvciBzdHJpbmdzIHRvIGZhaWxfdW5sZXNzIGFyZ3VtZW50cyB0byBmaXggc29tZSB3ZWlyZAoJICBjb21waWxlciBlcnJvcnMgb24gU29sYXJpcy4KCjIwMDgtMDEtMjEgMTk6MzU6NTggKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogRGV0ZWN0IHZpZGVvNGxpbnV4IGhlYWRlcnMgb24gU29sYXJpcyB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRGV0ZWN0IHZpZGVvNGxpbnV4IGhlYWRlcnMgb24gU29sYXJpcyB0b28uCgkgICogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSAgKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJfYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF92NGwyX2J1ZmZlcl9uZXcpOgoJICBNYWtlIHY0bDIgYnVpbGQgb24gU29sYXJpcy4KCSAgUGF0Y2ggYnk6IEJyaWFuIENhbWVyb24gIDxicmlhbi5jYW1lcm9uIGF0IHN1biBkb3QgY29tPgoJICBGaXhlczogIzUxMDUwNQoKMjAwOC0wMS0yMSAxMTo0NjoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6IFVwZGF0ZSBsaXN0IGZyb20gKHN0aWxsIGxvY2FsKSBzY2FubmluZyBzY3JpcHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBVcGRhdGUgbGlzdCBmcm9tIChzdGlsbCBsb2NhbCkgc2Nhbm5pbmcgc2NyaXB0LgoKMjAwOC0wMS0yMSAwOTo1NzowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogQWRkIHN5bWJvbHMgZnJvbSAtdW51c2VkLnR4dCB0byB0aGUgcmlnaHQgcGxhY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBBZGQgc3ltYm9scyBmcm9tIC11bnVzZWQudHh0IHRvIHRoZSByaWdodCBwbGFjZS4KCSAgKiBnc3QvZHZkc3B1L2dzdGR2ZHNwdS5jOgoJICAqIGdzdC9kdmRzcHUvZ3N0ZHZkc3B1Lmg6CgkgIENvaGVyZW50IG5hbWVzcGFjZSB1c2FnZS4KCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgRml4IGJyb2tlbiBYTUwgZnJhZ21lbnQgaW4gZG9jIHNuaXBwZXQgZXZlbiBtb3JlLgoKMjAwOC0wMS0yMSAwNzo1NDowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOiBVcGRhdGUgaW5jbHVkZSBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIFVwZGF0ZSBpbmNsdWRlIGxpc3QuCgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgVXBkYXRlIHhtbCBpbmNsdWRlcy4KCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxzYXNwZGlmLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW1yd2IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1iYXllci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWJ6Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkeGFwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR0c2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2YnNyYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2ZHNwdS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVxdWFsaXplci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZhYWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mYWFkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmJkZXZzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmVzdGl2YWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1maWx0ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHZkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZyZWV6ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzbS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdGludGVybGFjZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oMjY0cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pbnRlcmxlYXZlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGFkc3BhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWV0YWRhdGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb2RwbHVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZzR2aWRlb3BhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZ3RzcGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tcGVndmlkZW9wYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11c2ljYnJhaW56LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXZlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnNmZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnV2ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdGRlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVhbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJlcGxheWdhaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zZGwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zZHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWVkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXhyZXNhbXBsZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN0ZXJlby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN3aXRjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRpbWlkaXR5LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdHRhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9wYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvc2lnbmFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdm1uYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdpbGRtaWRpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teDI2NC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbmdoZWFkZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmlkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teTRtZW5jLnhtbDoKCSAgUmVnZW5lcmF0ZSBmaWxlcy4KCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgRml4IGJyb2tlbiBYTUwgZnJhZ21lbnQgaW4gZG9jIHNuaXBwZXQuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgQWRkIHRlc3QgYmluYXJ5IHRvIGlnbm9yZXMuCgoyMDA4LTAxLTIwIDA1OjA3OjUyICswMDAwICBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlckBtaW5kLmJlPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogUmVwb3J0IHRoZSBzaXplIG9mIHRoZSBzdHJlYW0gYXMgdGhlIHRvdGFsIHNpemUgaW5zdGVhZCBvZiB0aGUgcmVtYWluaW5nIENvbnRlbnQtTGVuZ3RoLCB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV291dGVyIENsb2V0ZW5zIDx3b3V0ZXIgYXQgbWluZCBkb3QgYmU+CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogKHNvdXBfZ290X2hlYWRlcnMpOgoJICBSZXBvcnQgdGhlIHNpemUgb2YgdGhlIHN0cmVhbSBhcyB0aGUgdG90YWwgc2l6ZSBpbnN0ZWFkIG9mCgkgIHRoZSByZW1haW5pbmcgQ29udGVudC1MZW5ndGgsIHdoaWNoIGlzIHdyb25nIGFmdGVyIGEgc2Vlay4KCjIwMDgtMDEtMTkgMTQ6NTk6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgQWRkIGJ1ZyBudW1iZXIgdG8gdGhlIGxhdGVzdCBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGJ1ZyBudW1iZXIgdG8gdGhlIGxhdGVzdCBlbnRyeQoKMjAwOC0wMS0xOSAxNDo1Mzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IFNldCB2YXJpYWJsZSB0byBOVUxMIGFmdGVyIGZyZWVpbmcgaXQgdG8gcHJldmVudCBkb3VibGUgZnJlZXMgb3IgbWFrZSBmYWlsdXJlcyBieSBhbm90aGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5OgoJICBWaWN0b3IgU1RJTk5FUiA8dmljdG9yIGRvdCBzdGlubmVyIGF0IGhheXBvY2FsYyBkb3QgY29tPgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKToKCSAgU2V0IHZhcmlhYmxlIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyBpdCB0byBwcmV2ZW50IGRvdWJsZSBmcmVlcwoJICBvciBtYWtlIGZhaWx1cmVzIGJ5IGFub3RoZXIgdXNlIG9mIGl0IGFmdGVyd2FyZHMgbW9yZSBvYnZpb3VzCgkgIGFuZCBmaXggdXNlIG9mIGl0IGFmdGVyIHRoZSBmcmVlaW5nLgoKMjAwOC0wMS0xOSAxNDozNDo1MCArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IENvcnJlY3RseSBzZXQgZHVyYXRpb24gb24gdGhlIEdzdEJhc2VTcmMgc2VnbWVudCB3aGVuIHdlIGtub3cgaXQgdG8gZml4IGZhaWxpbmcgdGhlIGR1cmF0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyA8d291dGVyIGF0IG1pbmQgZG90IGJlPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChzb3VwX2dvdF9oZWFkZXJzKToKCSAgQ29ycmVjdGx5IHNldCBkdXJhdGlvbiBvbiB0aGUgR3N0QmFzZVNyYyBzZWdtZW50IHdoZW4gd2Uga25vdyBpdAoJICB0byBmaXggZmFpbGluZyB0aGUgZHVyYXRpb24gcXVlcnkuCgoyMDA4LTAxLTE4IDEzOjQwOjM4ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogdXNlIEdTVF9XQVJOSU5HIGZvciBsb2dnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIHVzZSBHU1RfV0FSTklORyBmb3IgbG9nZ2luZwoKMjAwOC0wMS0xOCAxMDowNTo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzogRml4IG1lbW9yeSBsZWFrIHNwb3R0ZWQgYnkgdGhlIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzogKGdzdF9tdWx0aV9maWxlX3NyY19jcmVhdGUpOgoJICBGaXggbWVtb3J5IGxlYWsgc3BvdHRlZCBieSB0aGUgdW5pdCB0ZXN0LgoKMjAwOC0wMS0xOCAxMDowNDoyNSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IERvbid0IHRyeSB0byBsZWF2ZSBhIG11bHRpY2FzdCBncm91cCB3aXRoIGFuIGludmFsaWQgc29ja2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIERvbid0IHRyeSB0byBsZWF2ZSBhIG11bHRpY2FzdCBncm91cCB3aXRoIGFuIGludmFsaWQgc29ja2V0CgoyMDA4LTAxLTE4IDA4OjQ5OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBzb21lIG1pbmltYWwgdGVzdHMgZm9yIHRoZSBlcXVhbGl6ZXIgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2VxdWFsaXplci5jOiAoc2V0dXBfZXF1YWxpemVyKSwKCSAgKGNsZWFudXBfZXF1YWxpemVyKSwgKEdTVF9TVEFSVF9URVNUKSwgKGVxdWFsaXplcl9zdWl0ZSksIChtYWluKToKCSAgQWRkIHNvbWUgbWluaW1hbCB0ZXN0cyBmb3IgdGhlIGVxdWFsaXplciBwbHVnaW4uCgoyMDA4LTAxLTE4IDA3OjAzOjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOiBVbnBhcmVudCBhbGwgYmFuZHMgZnJvbSB0aGUgZXF1YWxpemVyIHdoZW4gZmluYWxpemluZyB0byBzdG9wIGxlYWtpbmcJdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogKGdzdF9paXJfZXF1YWxpemVyX2ZpbmFsaXplKToKCSAgVW5wYXJlbnQgYWxsIGJhbmRzIGZyb20gdGhlIGVxdWFsaXplciB3aGVuIGZpbmFsaXppbmcgdG8gc3RvcAoJICBsZWFraW5nCXRoZW0uCgoyMDA4LTAxLTE4IDA1OjMyOjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiBBZGQgc3VwcG9ydCBmb3IgV2ViREFWLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoZ3N0X3NvdXBodHRwX3NyY191cmlfZ2V0X3Byb3RvY29scyk6CgkgIEFkZCBzdXBwb3J0IGZvciBXZWJEQVYuCgoyMDA4LTAxLTE4IDA1OjI0OjM5ICswMDAwICBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlckBtaW5kLmJlPgoKCSAgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuKjogQWRkIHN1cHBvcnQgZm9yIHNlZWtpbmcgdG8gc291cGh0dHBzcmMuIEZpeGVzIGJ1ZyAjNTAyMzM1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyA8d291dGVyIGF0IG1pbmQgZG90IGJlPgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cGh0dHBfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19pbml0KSwgKGdzdF9zb3VwaHR0cF9zcmNfY3JlYXRlKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfaXNfc2Vla2FibGUpLCAoZ3N0X3NvdXBodHRwX3NyY19kb19zZWVrKSwKCSAgKHNvdXBfYWRkX3JhbmdlX2hlYWRlciksIChzb3VwX2dvdF9oZWFkZXJzKSwgKHNvdXBfZ290X2NodW5rKToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBBZGQgc3VwcG9ydCBmb3Igc2Vla2luZyB0byBzb3VwaHR0cHNyYy4gRml4ZXMgYnVnICM1MDIzMzUuCgoyMDA4LTAxLTE3IDIxOjIzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiB3aGVyZSB0aGUgcGljdHVyZSBtZXRhZGF0YSBkZWZpbmVzIGFuZCBzdHJ1Y3RzIGRvbid0IGV4aXN0IHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICBGaXggY29tcGlsYXRpb24gYWdhaW5zdCBmbGFjIDEuMS4yIChhcyBvbiBkZWJpYW4gc3RhYmxlKSwgd2hlcmUKCSAgdGhlIHBpY3R1cmUgbWV0YWRhdGEgZGVmaW5lcyBhbmQgc3RydWN0cyBkb24ndCBleGlzdCB5ZXQuCgkgIEZpeGVzICM1MDkzMDEuCgoyMDA4LTAxLTE3IDExOjEzOjE2ICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuKjogQWRkIHByb3BlcnR5IHRvIGF1dG9tYXRpY2FsbHkgam9pbiBhIG11bHRpY2FzdCBncm91cCBvciBub3QuIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIHNoYXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2luaXQpLCAoZ3N0X211bHRpdWRwc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X211bHRpdWRwc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X211bHRpdWRwc2lua19pbml0X3NlbmQpLAoJICAoZ3N0X211bHRpdWRwc2lua19hZGRfaW50ZXJuYWwpLCAoZ3N0X211bHRpdWRwc2lua19yZW1vdmUpOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgIEFkZCBwcm9wZXJ0eSB0byBhdXRvbWF0aWNhbGx5IGpvaW4gYSBtdWx0aWNhc3QgZ3JvdXAgb3Igbm90LiBUaGlzIGNhbiBiZQoJICB1c2VmdWwgd2hlbiBzaGFyaW5nIGEgc29ja2V0IGJldHdlZW4gbXVsdGlwbGUgZWxlbWVudHMuCgkgIEZpeGVzICM1MDk1MzEuCgoyMDA4LTAxLTE2IDIxOjUzOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbTogQWRkIGNvbnRyb2xsZXIgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb21peGVyL01ha2VmaWxlLmFtOgoJICBBZGQgY29udHJvbGxlciBmbGFncy4KCjIwMDgtMDEtMTYgMjA6MTc6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogQWxzbyBjb21taXQgdGhlIG1pc3NpbmcgZ3N0X29iamVjdF9zeW5jX3ZhbHVlcygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIEFsc28gY29tbWl0IHRoZSBtaXNzaW5nIGdzdF9vYmplY3Rfc3luY192YWx1ZXMoKS4KCjIwMDgtMDEtMTYgMDg6MTE6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbTogUmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5LgoKMjAwOC0wMS0xNSAxNjo1MjoxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogQWRkIDMgbW9yZSBwbHVnaW5zIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2FtbWEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tb25vc2NvcGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eDIueG1sOgoJICBBZGQgMyBtb3JlIHBsdWdpbnMgdG8gZG9jcy4KCjIwMDgtMDEtMTUgMTY6MDQ6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2UgY2F1c2VkIGJ5IGEgZmlsZSB0aGF0IGdvdCBzdHVjayBvbiBhbiBvbGQgcmV2aXNpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSBjYXVzZWQgYnkgYSBmaWxlIHRoYXQgZ290IHN0dWNrIG9uIGFuIG9sZAoJICByZXZpc2lvbi4KCjIwMDgtMDEtMTUgMTU6NDA6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlLWFkZCBtdWx0aXBhcnRkZW11eCB0byB0aGUgZG9jcy4gTGFzdCByb3VuZCBvZiBzZWN0aW9uIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9tdWx0aXBhcnQvTWFrZWZpbGUuYW06CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguaDoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4Lmg6CgkgIFJlLWFkZCBtdWx0aXBhcnRkZW11eCB0byB0aGUgZG9jcy4gTGFzdCByb3VuZCBvZiBzZWN0aW9uIGNsZWFudXAuCgoyMDA4LTAxLTE1IDE1OjIyOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYW5hZ2VkIHRvIHJlc29sdmUgbW9zdCB1bnVzZWQgZGVjbGFyYXRpb25zLiBGaWxlZCBhIGJ1ZyBmb3Igb25lIGxlZnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmg6CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5oOgoJICBNYW5hZ2VkIHRvIHJlc29sdmUgbW9zdCB1bnVzZWQgZGVjbGFyYXRpb25zLiBGaWxlZCBhIGJ1ZyBmb3Igb25lIGxlZnQuCgoyMDA4LTAxLTE1IDA4OjAzOjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDogQ2xlYW51cCBzZWN0aW9uIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBDbGVhbnVwIHNlY3Rpb24gZmlsZS4KCjIwMDgtMDEtMTUgMDc6NDI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBwbHVnaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGFkc3BhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJICBVcGRhdGUgcGx1Z2luIGRvY3MuCgkgICogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuaDoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVycGFkLmg6CgkgIFNwbGl0IG91dCBoZWFkZXIgdG8gZml4IHdhcm5pbmdzIGZyb20gdGhlIGRvYy1idWlsZC4KCjIwMDgtMDEtMTQgMTI6MzU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBcyBmb3VuZCBieTogVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuIG5va2lhIGNvbT4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFzIGZvdW5kIGJ5OiBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW4gbm9raWEgY29tPgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3BhcnNlX3J0cGluZm8pOgoJICBVc2UgYXRvbGwgdG8gcGFyc2UgdGhlIHJ0cHRpbWUgd2l0aCBlbm91Z2ggcHJlY2lzaW9uLiBGaXhlcyAjNTA5MzI5LgoKMjAwOC0wMS0xNCAxMjoxMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEluaXRpYWxpc2UgdmFyaWFibGVzIHRvIHdvcmsgYXJvdW5kIChmYWxzZSkgJ2ZvbyBtaWdodCBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbicgd2FybmluZ3MgYnkgZ2NjLS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmM6IChnc3RfYXZpX3N1YnRpdGxlX2V4dHJhY3RfZmlsZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2VuZCk6CgkgIEluaXRpYWxpc2UgdmFyaWFibGVzIHRvIHdvcmsgYXJvdW5kIChmYWxzZSkgJ2ZvbyBtaWdodCBiZSB1c2VkCgkgIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbicgd2FybmluZ3MgYnkgZ2NjLTMuMy4zICgjNTA5Mjk4KS4KCjIwMDgtMDEtMTIgMDI6MzI6MzUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgSWdub3JlIG1vcmUgZmlsZXMgZm9yIHRoZSBidWlsZGJvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlIGZpbGVzIGZvciB0aGUgYnVpbGRib3QuCgoyMDA4LTAxLTExIDIxOjA4OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEdlbmVyYXRlIHRoZSBpbWFnZS10eXBlIHZhbHVlcyBjb3JyZWN0bHkuIExlYXZlIHRoZW0gb3V0IG9mIHRoZSBjYXBzIHdoZW4gb3V0cHV0dGluZyBhICJwcmV2aWV3IGltYWdlIiB0YWcsIHNpbmNlIGl0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19leHRyYWN0X3BpY3R1cmVfYnVmZmVyKToKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX3BpY3R1cmVfZnJhbWUpOgoJICBHZW5lcmF0ZSB0aGUgaW1hZ2UtdHlwZSB2YWx1ZXMgY29ycmVjdGx5LiBMZWF2ZSB0aGVtIG91dCBvZiB0aGUgY2FwcwoJICB3aGVuIG91dHB1dHRpbmcgYSAicHJldmlldyBpbWFnZSIgdGFnLCBzaW5jZSBpdCBvbmx5IG1ha2VzIHNlbnNlCgkgIHRvIGhhdmUgb25lIG9mIHRob3NlIC0gdGhlIHR5cGUgaXMgaXJyZWxldmFudC4KCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuYzoKCSAgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfb3Blbik6CgkgIElmIHdlIGNhbiwgbWFyayB0aGUgbWl4ZXIgbXVsdGlwbGUgb3BlbiB3aGVuIHdlIHVzZSBpdCwgaW4gY2FzZQoJICAoZm9yIHNvbWUgcmVhc29uKSB0aGUgcHJvY2VzcyB3YW50cyB0byBvcGVuIGl0IGFnYWluIGVsc2V3aGVyZS4KCjIwMDgtMDEtMTEgMTk6MTY6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IEl0J3MgImVuZGlhbm5lc3MiLCBub3QgImVuZGlhbmVzcyIuIEZpeGVzIHVuaXQgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzogKHRlc3RfYnVmZmVyX2NvbnN0X2Zsb2F0X21vbm8pLAoJICAodGVzdF9idWZmZXJfY29uc3RfZmxvYXRfc3RlcmVvKSwgKHRlc3RfYnVmZmVyX2NvbnN0X2ludDE2X21vbm8pLAoJICAodGVzdF9idWZmZXJfY29uc3RfaW50MTZfc3RlcmVvKSwgKHRlc3RfYnVmZmVyX3NxdWFyZV9mbG9hdF9tb25vKSwKCSAgKHRlc3RfYnVmZmVyX3NxdWFyZV9mbG9hdF9zdGVyZW8pLCAodGVzdF9idWZmZXJfc3F1YXJlX2ludDE2X21vbm8pLAoJICAodGVzdF9idWZmZXJfc3F1YXJlX2ludDE2X3N0ZXJlbyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdsaW1pdGVyLmM6IChjcmVhdGVfdGVzdF9idWZmZXIpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmM6ICh0ZXN0X2J1ZmZlcl9uZXcpOgoJICBJdCdzICJlbmRpYW5uZXNzIiwgbm90ICJlbmRpYW5lc3MiLiBGaXhlcyB1bml0IHRlc3RzLgoKMjAwOC0wMS0xMSAxODo1NjowNiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uY3ZpZ25vcmU6CgkgIGlnbm9yZSBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBzb21lIG1vcmUKCjIwMDgtMDEtMTEgMTg6NTQ6MzEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgc29tZSBtb3JlCgoyMDA4LTAxLTExIDE3OjIxOjMwICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L3J0cC86IEZpeCB0aGUgY2xvY2sgcmF0ZSB0byA5MDAwMCBhcyByZXF1aXJlZCBieSB0aGUgUkZDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzogKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgIEZpeCB0aGUgY2xvY2sgcmF0ZSB0byA5MDAwMCBhcyByZXF1aXJlZCBieSB0aGUgUkZDLgoJICBGaXhlcyAjNTA4NjQ0LgoKMjAwOC0wMS0xMSAxNzoxMjozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ljeWRlbXV4LmM6IERvbid0IHVzZSBkZXByZWNhdGVkIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWN5ZGVtdXguYzogKEdTVF9TVEFSVF9URVNUKSwgKGljeWRlbXV4X3N1aXRlKToKCSAgRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLgoKMjAwOC0wMS0xMCAxMjoyNTo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgYXV0b2dlbi5zaDogQWRkIC1Xbm8tcG9ydGFiaWxpdHkgdG8gdGhlIGF1dG9tYWtlIHBhcmFtZXRlcnMgdG8gc3RvcCB3YXJuaW5ncyBhYm91dCBHTlUgbWFrZSBleHRlbnNpb25zIGJlaW5nIHVzZWQuIFdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIEFkZCAtV25vLXBvcnRhYmlsaXR5IHRvIHRoZSBhdXRvbWFrZSBwYXJhbWV0ZXJzIHRvIHN0b3Agd2FybmluZ3MKCSAgYWJvdXQgR05VIG1ha2UgZXh0ZW5zaW9ucyBiZWluZyB1c2VkLiBXZSByZXF1aXJlIEdOVSBtYWtlIGluIGFsbW9zdAoJICBldmVyeSBNYWtlZmlsZSBhbnl3YXkuCgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQU1fUFJPR19DQ19DX08gYXMgYSBjb21waWxlciB0aGF0IGFjY2VwdHMgYm90aCAtYyBhbmQgLW8KCSAgYXQgdGhlIHNhbWUgdGltZSBpcyByZXF1aXJlZCBmb3IgcGVyIHRhcmdldCBmbGFncy4KCjIwMDgtMDEtMDkgMTU6Mjg6MjkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IEZpeCBlcnJvciBmcm9tIG15IGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9pbml0KToKCSAgRml4IGVycm9yIGZyb20gbXkgbGFzdCBjb21taXQuCgoyMDA4LTAxLTA5IDE1OjIwOjE5ICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IE1ha2Ugc3VyZSB0aGUgSVNPIDYzOS1YIGxhbmd1YWdlIGNvZGUgaW4gSUQzdjIgQ09NTSBmcmFtZXMgc28gd2UgZG9uJ3QgZW5kIHVwIHdpdGggbm9uLVVULi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuIG5va2lhIGNvbT4KCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX2NvbW1lbnRfZnJhbWUpOgoJICBNYWtlIHN1cmUgdGhlIElTTyA2MzktWCBsYW5ndWFnZSBjb2RlIGluIElEM3YyIENPTU0gZnJhbWVzCgkgIGlzIGFjdHVhbGx5IHZhbGlkIFVURi04IChvciByYXRoZXI6IEFTQ0lJKSwgc28gd2UgZG9uJ3QgZW5kCgkgIHVwIHdpdGggbm9uLVVURjggc3RyaW5ncyBpbiB0YWdzIGlmIHRoZXJlJ3MgZ2FyYmFnZSBpbiB0aGUKCSAgbGFuZ3VhZ2UgZmllbGQuIEFsc28gbWFrZSBzdXJlIHRoZSBsYW5ndWFnZSBjb2RlIGlzIGFsd2F5cwoJICBsb3dlciBjYXNlLiBGaXhlczogIzUwODI5MS4KCjIwMDgtMDEtMDkgMTM6NTU6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogRml4IENoYW5nZUxvZyB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIEZpeCBDaGFuZ2VMb2cgdHlwby4KCjIwMDgtMDEtMDkgMTM6NTA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBJbmNsdWRlIGxjb3YubWFrIHRvIGFsbG93IGJ1aWxnaW5nIGNvdmVyYWdlIHJlcG9ydHMuIEd1YXJkIGNoZWNrLXRvcnR1cmUgdGFyZ2V0IGxpa2UgaW4gdGhlIG90aGVyIHBhY2thZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgSW5jbHVkZSBsY292Lm1hayB0byBhbGxvdyBidWlsZ2luZyBjb3ZlcmFnZSByZXBvcnRzLiBHdWFyZAoJICBjaGVjay10b3J0dXJlIHRhcmdldCBsaWtlIGluIHRoZSBvdGhlciBwYWNrYWdlcy4KCjIwMDgtMDEtMDkgMTI6MzM6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IEltcGxlbWVudCBHc3RDaGlsZFByb3h5IGludGVyZmFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBFZHdhcmQgSGVydmV5ICA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICAoZ3N0X3ZpZGVvbWl4ZXJfc2V0X21hc3Rlcl9nZW9tZXRyeSksIChfZG9faW5pdCksCgkgIChnc3RfdmlkZW9taXhlcl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwKCSAgKGdzdF92aWRlb21peGVyX2NoaWxkX3Byb3h5X2luaXQpLCAoZ3N0X3ZpZGVvbWl4ZXJfcmVzZXQpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfaW5pdCksIChnc3RfdmlkZW9taXhlcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcmVsZWFzZV9wYWQpLCAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9xdWV1ZXMpOgoJICBJbXBsZW1lbnQgR3N0Q2hpbGRQcm94eSBpbnRlcmZhY2UuCgkgIFNlbmQgbmV3c2VnbWVudCBhdCB0aGUgcmlnaHQgbW9tZW50CgkgIEZpeGVzICM0ODg4NzkKCjIwMDgtMDEtMDkgMTI6MDE6MTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYWxwaGEvOiBNYWtlIHRoZSB2YXJpb3VzIHByb3BlcnRpZXMgb2YgJ2FscGhhJyBjb250cm9sbGFibGUuIFRoaXMgYWxsb3dzIGRvaW5nIG5pY2V0aWVzIGxpa2UgZmFkZS1pbi9mYWRlLW91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FscGhhL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOiAoZ3N0X2FscGhhX2NsYXNzX2luaXQpLCAoZ3N0X2FscGhhX2luaXQpLAoJICAoZ3N0X2FscGhhX3NpbmtfZXZlbnQpLCAoZ3N0X2FscGhhX2NoYWluKSwKCSAgKGdzdF9hbHBoYV9jaGFuZ2Vfc3RhdGUpLCAocGx1Z2luX2luaXQpOgoJICBNYWtlIHRoZSB2YXJpb3VzIHByb3BlcnRpZXMgb2YgJ2FscGhhJyBjb250cm9sbGFibGUuIFRoaXMgYWxsb3dzIGRvaW5nCgkgIG5pY2V0aWVzIGxpa2UgZmFkZS1pbi9mYWRlLW91dC4KCjIwMDgtMDEtMDkgMTE6MTE6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9ydHAvOiBSZW1vdmUgY29weS9wYXN0ZSB1bnVzZWQgY29kZSAocHJvcGVydHkgc2V0dGVycyBhbmQgZ2V0dGVyKSBmb3VuZCBieSB0aGUgY292ZXJhZ2Ugc3VpdGUgKHlheSwgc2F2ZXMgfjIwayBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFjM2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkgIFJlbW92ZSBjb3B5L3Bhc3RlIHVudXNlZCBjb2RlIChwcm9wZXJ0eSBzZXR0ZXJzIGFuZCBnZXR0ZXIpIGZvdW5kIGJ5CgkgIHRoZSBjb3ZlcmFnZSBzdWl0ZSAoeWF5LCBzYXZlcyB+MjBrIG9uIGRpc2spLgoKMjAwOC0wMS0wOCAyMDowMzozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogQWxzbyBmaXggdXAgcGFkIHRlbXBsYXRlcyB0byBpbmRpY2F0ZSB0aGF0IGltYWdlL2pwZWcgZG9lc24ndCBhYnNvbHV0ZWx5IHJlcXVpcmUgdGhlIGZyYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChDT01NT05fVklERU9fQ0FQU19OT19GUkFNRVJBVEUpLAoJICAodmlkZW9zaW5rX3RlbXBsKToKCSAgQWxzbyBmaXggdXAgcGFkIHRlbXBsYXRlcyB0byBpbmRpY2F0ZSB0aGF0IGltYWdlL2pwZWcgZG9lc24ndAoJICBhYnNvbHV0ZWx5IHJlcXVpcmUgdGhlIGZyYW1lcmF0ZSBwcm9wZXJ0eSB0byBiZSBzZXQgKCM1MDQwODEpLgoKMjAwOC0wMS0wOCAxOTo1NzoyMyArMDAwMCAgV291dGVyIENsb2V0ZW5zIDx3b3V0ZXJAbWluZC5iZT4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguKjogS2VlcCB0cmFjayBvZiBmaXJzdCBhbmQgbGFzdCB0aW1lc3RhbXBzIGZvciBlYWNoIGluY29taW5nIHN0cmVhbSwgc28gd2UgY2FuIGNhbGN1bGF0ZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyAgPHdvdXRlciBhdCBtaW5kIGJlPgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfdmlkZW9fcGFkX3NldGNhcHMpLAoJICAoZ3N0X21hdHJvc2thX211eF9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X21hdHJvc2thX211eF9yZWxlYXNlX3BhZCksCgkgIChnc3RfbWF0cm9za2FfbXV4X2ZpbmlzaCksIChnc3RfbWF0cm9za2FfbXV4X2NvbGxlY3RlZCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICBLZWVwIHRyYWNrIG9mIGZpcnN0IGFuZCBsYXN0IHRpbWVzdGFtcHMgZm9yIGVhY2ggaW5jb21pbmcgc3RyZWFtLAoJICBzbyB3ZSBjYW4gY2FsY3VsYXRlIHRoZSB0b3RhbCBkdXJhdGlvbiBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlcgoJICBpbnB1dCB3aGVyZSB3ZSBjYW4ndCBxdWVyeSB0aGUgZHVyYXRpb24gZnJvbSB0aGUgc3RhcnQgb3Igd2hlcmUKCSAgdGhlcmUncyBubyBjb25zdGFudCBmcmFtZXJhdGUgZnJvbSB3aGljaCB3ZSBjYW4gZGVkdWNlIHRoZQoJICBkdXJhdGlvbjsgYWxzbyB1c2UgY2FsY3VsYXRlZC9vYnNlcnZlZCBkdXJhdGlvbiBpZiBpdCBpcyBiaWdnZXIKCSAgdGhhbiB0aGUgcHJldmlvdXNseSBxdWVyaWVkIGR1cmF0aW9uLiBGdXJ0aGVybW9yZSwgdXNlCgkgIGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbigpIGFuZCB0YWtlIGludG8gYWNjb3VudCB0aGF0IGl0IG1heQoJICByZXR1cm4gVFJVRSBidXQgc3RpbGwgYSBkdXJhdGlvbiBvZiBDTE9DS19USU1FX05PTkUsIHdoaWNoIGVhc2lseQoJICBzY3Jld3MgdXAgY29tcGFyaXNvbnMgd2hlbiB1c2luZyB1bnNpZ25lZCBpbnRlZ2Vycy4gRml4ZXMgIzUwNDA4MS4KCjIwMDgtMDEtMDggMTQ6NTg6MTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIE1ha2UgZWxlbWVudHMgR1NUX0JVRkZFUl9GTEFHX0dBUCBhd2FyZSBhbmQgY2FsbCBnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSBmb3IgdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5jOgoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfY2xpcHBpbmdfbWV0aG9kX2dldF90eXBlKSwKCSAgKGdzdF9hdWRpb19hbXBsaWZ5X2luaXQpLCAoZ3N0X2F1ZGlvX2FtcGxpZnlfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuYzogKGdzdF9hdWRpb19keW5hbWljX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOiAoZ3N0X2F1ZGlvX2ludmVydF9pbml0KSwKCSAgKGdzdF9hdWRpb19pbnZlcnRfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6IChnc3RfYXVkaW9fcGFub3JhbWFfaW5pdCksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtKToKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9pbml0KToKCSAgTWFrZSBlbGVtZW50cyBHU1RfQlVGRkVSX0ZMQUdfR0FQIGF3YXJlIGFuZCBjYWxsCgkgIGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlIGZvciB0aGlzLgoJICBCdW1wIGNvcmUgcmVxdWlyZW1lbnQgdG8gQ1ZTLgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYnlzaGV2ZnJlcWJhbmQuYzoKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9iYW5kX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxbGltaXQuYzoKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF90cmFuc2Zvcm1faXApOgoJICBBbHNvIHN5bmMgR09iamVjdCBwcm9wZXJ0aWVzIHRvIHRoZSBjb250cm9sbGVyIGlmIG9wZXJhdGluZwoJICBpbiBwYXNzdGhyb3VnaCBtb2RlLgoKMjAwOC0wMS0wNyAxNjo0MTowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6IEZBTFNFIGlzIG5vdCBhIGdwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua193aW5kb3dfdGhyZWFkKToKCSAgRkFMU0UgaXMgbm90IGEgZ3BvaW50ZXIuCgoyMDA4LTAxLTA1IDIxOjIwOjA4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6IE1ha2Ugc3VyZSB3ZSBjcmVhdGUgb3VyIGludGVybmFsIHdpbmRvdyBvbmx5IHdoZW4gd2UgbmVlZCBpdC4gVGhhdCB3aWxsIGdpdmUgYSBjaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wMS0wNSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19zZXRfd2luZG93X2lkKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3Npbmtfc2V0X2NhcHMpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19kcmF3X2JvcmRlcnMpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19zaG93X2ZyYW1lKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3Npbmtfc2V0dXBfZGRyYXcpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua193aW5kb3dfdGhyZWFkKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfZ2V0X2RkcmF3Y2FwcyksCgkgIChnc3RfZGlyZWN0ZHJhd19zaW5rX3N1cmZhY2VfY3JlYXRlKTogTWFrZSBzdXJlIHdlIGNyZWF0ZSBvdXIKCSAgaW50ZXJuYWwgd2luZG93IG9ubHkgd2hlbiB3ZSBuZWVkIGl0LiBUaGF0IHdpbGwgZ2l2ZSBhIGNoYW5jZSB0bwoJICB0aGUgYXBwbGljYXRpb24gdG8gZ2V0IHRoZSBwcmVwYXJlLXh3aW5kb3ctaWQgYnVzIG1lc3NhZ2UuIERyYXcKCSAgYmxhY2sgYm9yZGVycyB3aGVuIGtlZXBpbmcgYXNwZWN0IHJhdGlvLiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUKCSAgb3VyCgkgIHJlbmRlcmluZyB3aW5kb3cgZGlzYXBwZWFycyAoY2xvc2VkIG9yIGVycm9ycykgbGlrZSBvdGhlciBzaW5rcwoJICBkby4gVmFyaW91cyA4MCBjb2x1bW5zIGZpeGVzLCBpbXByb3ZlIHN0YXRlIGNoYW5nZSBvcmRlci4gVGhhdAoJICBlbGVtZW50IGNvdWxkIG5lZWQgc29tZSBtb3JlIGxvdmUuCgoyMDA4LTAxLTA0IDE4OjMwOjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvdGFnbGliLzogUmVtb3ZlIHVzZWxlc3MgdHlwZWRlZnMgd2l0aG91dCBuZXcgdHlwZSBuYW1lLiBGaXhlcyBhIHdhcm5pbmcgd2l0aCBnY2MgNC4zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvdGFnbGliL2dzdGFwZXYybXV4Lmg6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5oOgoJICBSZW1vdmUgdXNlbGVzcyB0eXBlZGVmcyB3aXRob3V0IG5ldyB0eXBlIG5hbWUuIEZpeGVzIGEgd2FybmluZyB3aXRoCgkgIGdjYyA0LjMuCgoyMDA4LTAxLTAzIDEyOjI2OjAzICswMDAwICBKb2huIE1pbGxpa2luIDxqbWlsbGlraW5AZ21haWwuY29tPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiBFbWl0IG1ldGFkYXRhIG1lc3NhZ2VzIHdoZW4gYSBQSUNUVVJFIGJsb2NrIGlzIGVuY291bnRlcmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvaG4gTWlsbGlraW4gPGptaWxsaWtpbiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19zZXR1cF9zZWVrYWJsZV9kZWNvZGVyKSwKCSAgKGdzdF9mbGFjX2RlY19zZXR1cF9zdHJlYW1fZGVjb2RlciksCgkgIChnc3RfZmxhY19ub3JtYWxpemVfcGljdHVyZV9taW1lX3R5cGUpLAoJICAoZ3N0X2ZsYWNfZXh0cmFjdF9waWN0dXJlX2J1ZmZlciksCgkgIChnc3RfZmxhY19kZWNfbWV0YWRhdGFfY2FsbGJhY2spOgoJICBFbWl0IG1ldGFkYXRhIG1lc3NhZ2VzIHdoZW4gYSBQSUNUVVJFIGJsb2NrIGlzIGVuY291bnRlcmVkLgoJICBGaXhlcyAjNTA2NzE1LgoKMjAwOC0wMS0wMiAxMzo1NDoxMCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpLmM6IGluY3JlYXNlIHJhbmsgYmVjYXVzZSBubyBrbm93biBpc3N1ZXMgYW55bW9yZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmkuYzoKCSAgaW5jcmVhc2UgcmFuayBiZWNhdXNlIG5vIGtub3duIGlzc3VlcyBhbnltb3JlIC4uLgoJICAqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSAgc2VuZCBzdWJ0aXRsZSBuYW1lIHRvIHRoZSBzcmNwYWQKCjIwMDctMTItMzEgMTM6Mjc6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLio6IEltcGxlbWVudCByZWRpcmVjdCBmb3IgdGhlIERFU0NSSUJFIHJlcGx5LiBGaXhlcyAjNTA2MDI1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19zZW5kKSwgKGdzdF9ydHNwc3JjX29wZW4pOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgSW1wbGVtZW50IHJlZGlyZWN0IGZvciB0aGUgREVTQ1JJQkUgcmVwbHkuIEZpeGVzICM1MDYwMjUuCgoyMDA3LTEyLTI5IDE2OjQ4OjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IEZpeCAneHl6IG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQnIGNvbXBpbGVyIHdhcm5pbmdzIGNhdXNlZCBieSBicm9rZW4gZ19hc3NlcnRfbm90X3JlYWNoZWQoKSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX3dyaXRlKToKCSAgRml4ICd4eXogbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCcgY29tcGlsZXIgd2FybmluZ3MgY2F1c2VkCgkgIGJ5IGJyb2tlbiBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpIG1hY3JvIGluIEdMaWItMi4xNS54IGFuZCBkb24ndAoJICBhYm9ydCgpIGluIGFueSBjYXNlIGJ1dCBwcm9wZXJseSByZXBvcnQgdGhlIGVycm9yLgoKMjAwNy0xMi0yOCAxMTo0NDoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9zb3VwLzogVXNlIGdzdF90YWdfZnJlZWZvcm1fc3RyaW5nX3RvX3V0ZjgoKSBhbmQgcG9zdCByYWRpbyBzdGF0aW9uIGluZm8gYXMgdGFncyBvbiB0aGUgYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc291cC9NYWtlZmlsZS5hbToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoZ3N0X3NvdXBodHRwX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NvdXBodHRwX3NyY191bmljb2RpZnkpLCAoc291cF9nb3RfaGVhZGVycyk6CgkgIFVzZSBnc3RfdGFnX2ZyZWVmb3JtX3N0cmluZ190b191dGY4KCkgYW5kIHBvc3QgcmFkaW8gc3RhdGlvbgoJICBpbmZvIGFzIHRhZ3Mgb24gdGhlIGJ1cy4KCjIwMDctMTItMjYgMTY6MDM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggJ3h5eiBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkJyBjb21waWxlciB3YXJuaW5ncyBjYXVzZWQgYnkgYnJva2VuIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCkgbWFjcm8gaW4gR0xpYi0yLjE1LnggKGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9sb29wKToKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9jaGFpbik6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogKGNvbXBvc2l0ZV9waXhlbCk6CgkgIEZpeCAneHl6IG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQnIGNvbXBpbGVyIHdhcm5pbmdzIGNhdXNlZAoJICBieSBicm9rZW4gZ19hc3NlcnRfbm90X3JlYWNoZWQoKSBtYWNybyBpbiBHTGliLTIuMTUueCAoaXQncwoJICBub3QgcmVhbGx5IG5pY2UgdG8gYWJvcnQgaW4gYW55IGNhc2UpLiBGaXhlcyAjNTA1NzQ1LgoKMjAwNy0xMi0yMCAxNzowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyLy5jdnNpZ25vcmU6CgkgICogZ3N0L3N3aXRjaC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDctMTItMTggMjM6MTc6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmlzdWJ0aXRsZS5jOiBTbWFsbCB1bml0IHRlc3QgZml4IChoYXMgbm8gcHJhY3RpY2FsIGltcGFjdCBhdCB0aGUgbW9tZW50LCBzaW5jZSB3ZSdyZSBvbmx5IGZlZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpc3VidGl0bGUuYzogKGNoZWNrX2NvcnJlY3RfYnVmZmVyKToKCSAgU21hbGwgdW5pdCB0ZXN0IGZpeCAoaGFzIG5vIHByYWN0aWNhbCBpbXBhY3QgYXQgdGhlIG1vbWVudCwKCSAgc2luY2Ugd2UncmUgb25seSBmZWVkaW5nIHV0ZjggYW5kIGhlbmNlIGp1c3QgY3JlYXRlIGEgc3ViLQoJICBidWZmZXIgZm9yIHRoZSBvdXRwdXQpLgoKMjAwNy0xMi0xOCAyMToxMzowNSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIEFkZCBzZWVraW5nIHN1cHBvcnQgZm9yIGF2aSBzdWJ0aXRsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpc3VidGl0bGUuYzoKCSAgQWRkIHNlZWtpbmcgc3VwcG9ydCBmb3IgYXZpIHN1YnRpdGxlCgoyMDA3LTEyLTE4IDE3OjQwOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy4qOiBSZW1vdmUgc29tZSB1bnVzZWQgdmFycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX3Jlc2V0X2RlY29kZXJzKSwKCSAgKGdzdF9mbGFjX2RlY191cGRhdGVfbWV0YWRhdGEpLCAoZ3N0X2ZsYWNfZGVjX21ldGFkYXRhX2NhbGxiYWNrKSwKCSAgKGdzdF9mbGFjX2RlY193cml0ZSk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBSZW1vdmUgc29tZSB1bnVzZWQgdmFycy4KCSAgRG8gbW9yZSBjbGVhbnVwIG9mIGxlZnRvdmVyIGV2ZW50cyBhbmQgdGFncy4KCSAgT3V0cHV0IHRhZ3MgYWZ0ZXIgdGhlIHNlZ21lbnQgZXZlbnQuIEZpeGVzICM1MDQwMTguCgoyMDA3LTEyLTE4IDE0OjMxOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOiBEZXRlY3Qgb3RoZXIgVVRGIGJ5dGUgb3JkZXIgbWFya2VycyBhbmQgY29udmVydCB0byBVVEYtOCBhcyBhcHByb3ByaWF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlzdWJ0aXRsZS5jOiAoSVNfQk9NX1VURjgpLCAoSVNfQk9NX1VURjE2X0JFKSwKCSAgKElTX0JPTV9VVEYxNl9MRSksIChJU19CT01fVVRGMzJfQkUpLCAoSVNfQk9NX1VURjMyX0xFKSwKCSAgKGdzdF9hdmlfc3VidGl0bGVfZXh0cmFjdF9maWxlKSwgKGdzdF9hdmlfc3VidGl0bGVfcGFyc2VfZ2FiMl9jaHVuayk6CgkgIERldGVjdCBvdGhlciBVVEYgYnl0ZSBvcmRlciBtYXJrZXJzIGFuZCBjb252ZXJ0IHRvIFVURi04IGFzCgkgIGFwcHJvcHJpYXRlLgoKMjAwNy0xMi0xOCAxMzozMDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuKjogUmVmYWN0b3IgYSBiaXQ7IGZpeCBuYW1lIGV4dHJhY3Rpb247IGRvbid0IGFzc3VtZSBhbGwgdGhlIGRhdGEgaW4gdGhlIGNodW5rIGlzIGFjdHVhbGx5IHN1Yi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmM6IChzcmNfdGVtcGxhdGUpLAoJICAoZ3N0X2F2aV9zdWJ0aXRsZV9leHRyYWN0X3V0ZjhfZmlsZSksCgkgIChnc3RfYXZpX3N1YnRpdGxlX3BhcnNlX2dhYjJfY2h1bmspLCAoZ3N0X2F2aV9zdWJ0aXRsZV9jaGFpbiksCgkgIChnc3RfYXZpX3N1YnRpdGxlX2Jhc2VfaW5pdCksIChnc3RfYXZpX3N1YnRpdGxlX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F2aV9zdWJ0aXRsZV9pbml0KSwgKGdzdF9hdmlfc3VidGl0bGVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmg6CgkgIFJlZmFjdG9yIGEgYml0OyBmaXggbmFtZSBleHRyYWN0aW9uOyBkb24ndCBhc3N1bWUgYWxsIHRoZSBkYXRhCgkgIGluIHRoZSBjaHVuayBpcyBhY3R1YWxseSBzdWJ0aXRsZSBkYXRhLCB0aGVyZSBtYXkgYmUgcGFkZGluZyBhdAoJICB0aGUgZW5kOyBmaXggR1NUX0VMRU1FTlRfRVJST1IgdXNhZ2U7IHN0b3JlIGV4dHJhY3RlZCBzdWJ0aXRsZQoJICBmaWxlIHNvIGl0J3MgdGhlcmUgdG8gc2VuZCBhZ2FpbiBhZnRlciBhIHNlZWsgKGZvciBmdXR1cmUgdXNlKS4KCjIwMDctMTItMTggMDk6MTM6MTIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBBZGQgYXZpIHN1YnRpdGxlIGVsZW1lbnQgZm9yIGJ1ZyAjNDQyMDM0LiBOZWVkIHNlZWtpbmcgc3VwcG9ydCBhbmQgbW9yZSBzdXBwb3J0IGZvciBjaGFyYWN0ZXIgY29udmVyc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXZpL2dzdGF2aS5jOgoJICAqIGdzdC9hdmkvZ3N0YXZpc3VidGl0bGUuYzoKCSAgKiBnc3QvYXZpL2dzdGF2aXN1YnRpdGxlLmg6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpc3VidGl0bGUuYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEFkZCBhdmkgc3VidGl0bGUgZWxlbWVudCBmb3IgYnVnICM0NDIwMzQuIE5lZWQgc2Vla2luZyBzdXBwb3J0CgkgIGFuZCBtb3JlIHN1cHBvcnQgZm9yIGNoYXJhY3RlciBjb252ZXJzaW9uLgoKMjAwNy0xMi0xOCAwOTowNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBJbmNsdWRlIGNvbW1vbi93aW4zMi5tYWsgZm9yIENSTEYgY2hlY2sgb2Ygd2luMzIgcHJvamVjdCBmaWxlcyAoc2VlICMzOTM2MjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgSW5jbHVkZSBjb21tb24vd2luMzIubWFrIGZvciBDUkxGIGNoZWNrIG9mIHdpbjMyIHByb2plY3QKCSAgZmlsZXMgKHNlZSAjMzkzNjI2KS4KCSAgKiB3aW4zMi92czYvbGliZ3N0cG5nLmRzcDoKCSAgRml4IGxpbmUgZW5kaW5ncyBhbmQgZG8gY3ZzIGFkbWluIC1rYi4KCjIwMDctMTItMTcgMjE6MTI6MjggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuKjogV2hlbiBzdWJzZXF1ZW50IGZpbGVzIGFyZSByZWFkLCBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCBzZW5kIGFuIEVPUyBpbnN0ZWFkIG9mIGNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuaDoKCSAgV2hlbiBzdWJzZXF1ZW50IGZpbGVzIGFyZSByZWFkLCBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCBzZW5kCgkgIGFuIEVPUyBpbnN0ZWFkIG9mIGNhdXNpbmcgYW4gZXJyb3IuCgoyMDA3LTEyLTE2IDIzOjQzOjQ2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiBBY3R1YWxseSBkcm9wIHRoZSBidWZmZXJzIHdoaWNoIGFyZSBvdXRzaWRlIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBzZWdtZW50IGluc3RlYWQgb2YganVzdCBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19jaGFpbik6CgkgIEFjdHVhbGx5IGRyb3AgdGhlIGJ1ZmZlcnMgd2hpY2ggYXJlIG91dHNpZGUgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkCgkgIHNlZ21lbnQgaW5zdGVhZCBvZiBqdXN0IGVtaXR0aW5nIGEgV0FSTklORy4KCjIwMDctMTItMTQgMTg6NDk6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLio6IFNlbmQgc2VnbWVudHMgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4gRml4ZXMgIzUwMjE4Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX21ldGFkYXRhX2NhbGxiYWNrKSwKCSAgKGdzdF9mbGFjX2RlY193cml0ZSk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBTZW5kIHNlZ21lbnRzIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQuIEZpeGVzICM1MDIxODcuCgkgIEZpeCBzZWdtZW50IHNlZWtpbmcgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgc2Vla2luZyBjYXNlcy4KCjIwMDctMTItMTQgMTA6MTc6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogUGFyc2UgV09BRiBmcmFtZXMgYW5kIHB1dCB0aGUgcmVzdWx0IGludG8gR1NUX1RBR19DT05UQUNULCB3aGljaCBpcyB3aGVyZSBpdCB3b3VsZCBlbmQgdXAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChwYXJzZV91cmxfbGlua19mcmFtZSk6CgkgIFBhcnNlIFdPQUYgZnJhbWVzIGFuZCBwdXQgdGhlIHJlc3VsdCBpbnRvIEdTVF9UQUdfQ09OVEFDVCwKCSAgd2hpY2ggaXMgd2hlcmUgaXQgd291bGQgZW5kIHVwIGlmIHRoZSBzYW1lIGluZm9ybWF0aW9uIHdhcwoJICBwdXQgaW4gYSB2b3JiaXMgY29tbWVudCAoZG9uJ3QgdGhpbmsgaXQncyB3b3J0aCBhZGRpbmcgYQoJICBuZXcgVVJJIHRhZyBmb3IgdGhpcykuIEZpeGVzICM0ODgxMTIuCgoyMDA3LTEyLTExIDIyOjI5OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBXZSBuZWVkIGNvcmUvYmFzZSAwLjEwLjE1IG9yIGxhdGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFdlIG5lZWQgY29yZS9iYXNlIDAuMTAuMTUgb3IgbGF0ZXIuCgoyMDA3LTEyLTExIDE2OjQ3OjEyICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguYzogRml4IHJlZ3Jlc3Npb24gaW4gc3RyZWFtIG51bWJlcmluZy4gRml4ZXMgIzUwMjY1NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgc2t5bmV0IGJlPgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpX211eF9zdGFydF9maWxlKToKCSAgRml4IHJlZ3Jlc3Npb24gaW4gc3RyZWFtIG51bWJlcmluZy4gRml4ZXMgIzUwMjY1NS4KCjIwMDctMTItMTEgMTY6Mzk6MzkgKzAwMDAgIFdvdXRlciBDbG9ldGVucyA8d291dGVyQG1pbmQuYmU+CgoJICBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy4qOiBEbyBub3QgdHJ5IHRvIHVucGF1c2UgSS9PIGluIHRoZSAicXVldWVkIiBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlciBhdCBtaW5kIGRvdCBiZT4KCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jOiAoX2RvX2luaXQpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19jbGFzc19pbml0KSwgKGdzdF9zb3VwaHR0cF9zcmNfaW5pdCksCgkgIChnc3Rfc291cGh0dHBfc3JjX2Rpc3Bvc2UpLCAoZ3N0X3NvdXBodHRwX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19nZXRfcHJvcGVydHkpLCAodW5pY29kaWZ5KSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfdW5pY29kaWZ5KSwgKGdzdF9zb3VwaHR0cF9zcmNfY3JlYXRlKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfc3RhcnQpLCAoZ3N0X3NvdXBodHRwX3NyY19zdG9wKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfdW5sb2NrKSwgKGdzdF9zb3VwaHR0cF9zcmNfdW5sb2NrX3N0b3ApLAoJICAoZ3N0X3NvdXBodHRwX3NyY19nZXRfc2l6ZSksIChnc3Rfc291cGh0dHBfc3JjX2lzX3NlZWthYmxlKSwKCSAgKHNvdXBfZ290X2hlYWRlcnMpLCAoc291cF9nb3RfYm9keSksIChzb3VwX2ZpbmlzaGVkKSwKCSAgKHNvdXBfZ290X2NodW5rKSwgKHNvdXBfcmVzcG9uc2UpLCAoc291cF9wYXJzZV9zdGF0dXMpLAoJICAoZ3N0X3NvdXBodHRwX3NyY191cmlfZ2V0X3R5cGUpLAoJICAoZ3N0X3NvdXBodHRwX3NyY191cmlfZ2V0X3Byb3RvY29scyksCgkgIChnc3Rfc291cGh0dHBfc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9zb3VwaHR0cF9zcmNfdXJpX3NldF91cmkpLAoJICAoZ3N0X3NvdXBodHRwX3NyY191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBEbyBub3QgdHJ5IHRvIHVucGF1c2UgSS9PIGluIHRoZSAicXVldWVkIiBzdGF0ZS4KCSAgUmVvcmdhbmlzZSBhIGJ1bmNoIG9mIHRoaW5ncyBhbmQgY2xlYW51cHMuCgkgIFVzZXMgR19HVUlOVDY0X0ZPUk1BVCBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nICVsbHUuCgkgIFNlZSAjNTAyMzM1LgoKMjAwNy0xMi0xMSAxNjozMTo0OSArMDAwMCAgV2FpLU1pbmcgSG8gPHdlYnJlZ2JveEB5YWhvby5jby51az4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS4qOiBVc2UgaGlnaGVyIHBlcmZvcm1hbmNlIHN0YXJ0LWNvZGUgc2VhcmNoaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdhaS1NaW5nIEhvIDx3ZWJyZWdib3ggYXQgeWFob28gZG90IGNvIGRvdCB1az4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzogKGdzdF9ydHBfaDI2NF9wYXlfaW5pdCksCgkgIChnc3RfcnRwX2gyNjRfcGF5X2ZpbmFsaXplKSwgKGdzdF9ydHBfaDI2NF9wYXlfc2V0Y2FwcyksCgkgIChuZXh0X3N0YXJ0X2NvZGUpLCAoaXNfbmFsX2VxdWFsKSwgKGdzdF9ydHBfaDI2NF9wYXlfZGVjb2RlX25hbCksCgkgIChlbmNvZGVfYmFzZTY0KSwgKGdzdF9ydHBfaDI2NF9wYXlfcGFyc2Vfc3BzX3BwcyksCgkgIChnc3RfcnRwX2gyNjRfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5oOgoJICBVc2UgaGlnaGVyIHBlcmZvcm1hbmNlIHN0YXJ0LWNvZGUgc2VhcmNoaW5nLgoJICBQYXJzZSBOQUxzIGFuZCBzdG9yZSBTUFMsIFBQUyBhbmQgcHJvZmlsZSBpbiB0aGUgY2FwcyBzbyB0aGF0IHRoZXkgY2FuCgkgIGJlIHVzZWQgaW4gdGhlIFNEUC4gRml4ZXMgIzUwMjgxNC4KCjIwMDctMTItMTEgMTE6NTA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMvdjRsMi86IEluaXQgc29tZSBzdHJ1Y3RzIHRvIHplcm8gYmVmb3JlIHdlIHBhc3MgdGhlbSB0byBpb2N0bCwgd2hpY2ggYXZvaWRzIHZhbGdyaW5kIHdhcm5pbmdzLiAgQWxzbyBmaXggYSBzbWFsbCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZmlsbF9saXN0cyk6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJzcmNfZmlsbF9mb3JtYXRfbGlzdCk6CgkgIEluaXQgc29tZSBzdHJ1Y3RzIHRvIHplcm8gYmVmb3JlIHdlIHBhc3MgdGhlbSB0byBpb2N0bCwgd2hpY2gKCSAgYXZvaWRzIHZhbGdyaW5kIHdhcm5pbmdzLiAgQWxzbyBmaXggYSBzbWFsbCBtZW1vcnkgbGVhay4KCjIwMDctMTItMTEgMTE6MDU6NTcgKzAwMDAgIFdvdXRlciBDbG9ldGVucyA8d291dGVyQG1pbmQuYmU+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IENvcHkgdGltZXN0YW1wIGZyb20gaW5wdXQgdG8gb3V0cHV0LiBOb3QgdmVyeSBwZXJmZWN0IHlldCBidXQgYmV0dGVyIHRoYW4gbm90aGluZy4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlciBhdCBtaW5kIGRvdCBiZT4KCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NoYWluKToKCSAgQ29weSB0aW1lc3RhbXAgZnJvbSBpbnB1dCB0byBvdXRwdXQuIE5vdCB2ZXJ5IHBlcmZlY3QgeWV0IGJ1dCBiZXR0ZXIKCSAgdGhhbiBub3RoaW5nLiBGaXhlcyAjNTAzMDIzLgoKMjAwNy0xMi0wOSAxNjo0OTowOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiBBbHNvIHByaW50IGEgdXNlZnVsIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgb2xkIFdhdnBhY2sgQVBJIGlmIHBvc3NpYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfY2hhaW4pOgoJICBBbHNvIHByaW50IGEgdXNlZnVsIGVycm9yIG1lc3NhZ2Ugd2l0aCB0aGUgb2xkIFdhdnBhY2sgQVBJCgkgIGlmIHBvc3NpYmxlLgoKMjAwNy0xMi0wOSAxNjozNDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogTW9yZSBidWlsZCBmaXhlcyBmb3Igb2xkIGxpYndhdnBhY2sgdmVyc2lvbnM6IGluY2x1ZGUgY29uZmlnLmggc28gdGhhdCBXQVZQQUNLX09MRF9BUEkgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkgIE1vcmUgYnVpbGQgZml4ZXMgZm9yIG9sZCBsaWJ3YXZwYWNrIHZlcnNpb25zOiBpbmNsdWRlIGNvbmZpZy5oIHNvCgkgIHRoYXQgV0FWUEFDS19PTERfQVBJIGlzIGFjdHVhbGx5IGRlZmluZWQgYXMgZGV0ZWN0ZWQ7IG9ubHkgdXNlCgkgIFdhdnBhY2tHZXRFcnJvck1lc3NhZ2UgaWYgaXQgaXMgYXZhaWxhYmxlLiBUaGlzIGZpeGVzIHRoZSBidWlsZAoJICBvbiBkZWJpYW4gc3RhYmxlIGZvciBtZS4KCjIwMDctMTItMDkgMTY6MjE6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrLzogV29ya2Fyb3VuZCB0aGUgbm9uLWV4aXN0YW5jZSBvZiBXYXZwYWNrR2V0Q2hhbm5lbE1hc2sgaW4gV2F2cGFjayB2ZXJzaW9ucyBiZWxvdyA0LjQwLjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogKGdzdF93YXZwYWNrX2RlY19jaGFpbik6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkgIChnc3Rfd2F2cGFja19wYXJzZV9jcmVhdGVfc3JjX3BhZCk6CgkgIFdvcmthcm91bmQgdGhlIG5vbi1leGlzdGFuY2Ugb2YgV2F2cGFja0dldENoYW5uZWxNYXNrIGluIFdhdnBhY2sKCSAgdmVyc2lvbnMgYmVsb3cgNC40MC4wLgoKMjAwNy0xMi0wOSAwNToxMzo1OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBBbmQgbm93IGRvIGl0IHJpZ2h0IGZvciByZWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQW5kIG5vdyBkbyBpdCByaWdodCBmb3IgcmVhbC4uLgoKMjAwNy0xMi0wOSAwNTowOTo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBDb3JyZWN0bHkgcmVzZXQgJExJQlMgdG8gbm90IGNvbnRhaW4gLWxtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENvcnJlY3RseSByZXNldCAkTElCUyB0byBub3QgY29udGFpbiAtbG0uCgoyMDA3LTEyLTA5IDA1OjAyOjE3ICswMDAwICBLd2FuZyBZdWwgU2VvIDxrd2FuZ3l1bC5zZW9AZ21haWwuY29tPgoKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggTVNWQyBieSB1c2luZyBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUoKSBhbmQgY2hlY2tpbmcgZm9yIHJpbnQoKSBhbmQgaW1wbGVtZW50aW5nIGl0IG91cnNlbGYgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBhIHBhdGNoIGJ5OiBLd2FuZyBZdWwgU2VvIDxrd2FuZ3l1bCBkb3Qgc2VvIGF0IGdtYWlsIGRvdCBjb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJICAoZ3N0X2NhaXJvX3RpbWVfb3ZlcmxheV9wcmludF9zbXB0ZV90aW1lKToKCSAgRml4IGNvbXBpbGF0aW9uIHdpdGggTVNWQyBieSB1c2luZyBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUoKQoJICBhbmQgY2hlY2tpbmcgZm9yIHJpbnQoKSBhbmQgaW1wbGVtZW50aW5nIGl0IG91cnNlbGYgaWYgaXQgZG9lc24ndAoJICBleGlzdC4KCjIwMDctMTItMDkgMDQ6Mjk6MDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgZGVmaW5lIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZm9yIHJlbGVhc2VzLiBGaXhlcyAjNDk4MTgxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IGRlZmluZSBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciByZWxlYXNlcy4gRml4ZXMgIzQ5ODE4MS4KCjIwMDctMTItMDggMTY6NDc6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgc3lzL29zcy9nc3Rvc3NoZWxwZXIuYzogVmVyaWZ5IHRoYXQgdGhlIGZvcm1hdCByZXR1cm5lZCBhZnRlciB0aGUgaW9jdGwgaXMgdGhlIG9uZSB3ZSByZXF1ZXN0ZWQuIEl0IGlzIHZhbGlkIGZvciB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmM6CgkgIFZlcmlmeSB0aGF0IHRoZSBmb3JtYXQgcmV0dXJuZWQgYWZ0ZXIgdGhlIGlvY3RsIGlzIHRoZSBvbmUKCSAgd2UgcmVxdWVzdGVkLiBJdCBpcyB2YWxpZCBmb3IgdGhlIGlvY3RsIHRvIHN1Y2NlZWQgd2hpbGUKCSAgc3Vic3RpdHV0aW5nIGFuIGFsdGVybmF0ZSAnc3VwcG9ydGVkJyBzYW1wbGUgZm9ybWF0LgoKMjAwNy0xMi0wNyAyMDowNzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy9vc3MvOiBQb3N0IGRlY2VudCAoYW5kIHRyYW5zbGF0ZWQpIGVycm9yIG1lc3NhZ2Ugd2hlbiB3ZSBjYW4ndCBvcGVuIHRoZSBhdWRpbyBkZXZpY2UgZm9yIHNvbWUgcmVhc29uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdG9zc2F1ZGlvLmM6IChwbHVnaW5faW5pdCk6CgkgICogc3lzL29zcy9nc3Rvc3NzaW5rLmM6IChnc3Rfb3NzX3Npbmtfb3Blbik6CgkgICogc3lzL29zcy9nc3Rvc3NzcmMuYzogKGdzdF9vc3Nfc3JjX29wZW4pOgoJICBQb3N0IGRlY2VudCAoYW5kIHRyYW5zbGF0ZWQpIGVycm9yIG1lc3NhZ2Ugd2hlbiB3ZSBjYW4ndAoJICBvcGVuIHRoZSBhdWRpbyBkZXZpY2UgZm9yIHNvbWUgcmVhc29uLgoKMjAwNy0xMi0wNyAxOToyOTozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBzeXMvb3NzLzogQWxsb3cgdGhlIEFVRElPREVWIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHJlZGlyZWN0IHVzIHRvIGEgZGlmZmVyZW50IGRlZmF1bHQgT1NTIGRldmljZSwgbGlrZSBzdW5hdWRpb3NpbmsuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zcy9nc3Rvc3NzaW5rLmM6CgkgICogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSAgQWxsb3cgdGhlIEFVRElPREVWIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHJlZGlyZWN0IHVzCgkgIHRvIGEgZGlmZmVyZW50IGRlZmF1bHQgT1NTIGRldmljZSwgbGlrZSBzdW5hdWRpb3NpbmsgZG9lcwoJICBvbiBTb2xhcmlzIChtYWtlcyBhdWRpbyBwbGF5IGF1dG9tYXRpY2FsbHkgb24gU3VuUmF5cykuCgoyMDA3LTEyLTA2IDEyOjQ1OjUwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOiBGaXggY29tcGlsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl90cmFuc2Zvcm1faXApOgoJICBGaXggY29tcGlsYXRpb24uCgoyMDA3LTEyLTA2IDEyOjQyOjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOiBEb24ndCBwcm9jZXNzIGJ1ZmZlcnMgaW4gcGFzc3Rocm91Z2ggbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyX3RyYW5zZm9ybV9pcCk6CgkgIERvbid0IHByb2Nlc3MgYnVmZmVycyBpbiBwYXNzdGhyb3VnaCBtb2RlLgoKMjAwNy0xMi0wNiAxMjozNzo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci86IFRoZSB0cmFuc2Zvcm0oKSBtZXRob2RzIGFyZSBub3QgY2FsbGVkIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhlcmUncyBubyBuZWVkIGZvciBjaGVja2luZyBpZiB0aGUgZWxlbWVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5jOiAoYnB3c2luY190cmFuc2Zvcm0pOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAobHB3c2luY190cmFuc2Zvcm0pOgoJICBUaGUgdHJhbnNmb3JtKCkgbWV0aG9kcyBhcmUgbm90IGNhbGxlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIHNvCgkgIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgY2hlY2tpbmcgaWYgdGhlIGVsZW1lbnQgaXMgaW4gcGFzc3Rocm91Z2ggbW9kZS4KCjIwMDctMTItMDYgMTI6Mjk6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9maWx0ZXIvOiBTeW5jIHRoZSBHT2JqZWN0IHByb3BlcnRpZXMgd2l0aCB0aGUgY29udHJvbGxlciBldmVuIGluIHBhc3N0aHJvdWdoIG1vZGUgdG8gZ2V0IGNvbnNpc3RlbnQgcHJvcGVydHkgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYzogKGJwd3NpbmNfdHJhbnNmb3JtKToKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogKGxwd3NpbmNfdHJhbnNmb3JtKToKCSAgU3luYyB0aGUgR09iamVjdCBwcm9wZXJ0aWVzIHdpdGggdGhlIGNvbnRyb2xsZXIgZXZlbiBpbiBwYXNzdGhyb3VnaAoJICBtb2RlIHRvIGdldCBjb25zaXN0ZW50IHByb3BlcnR5IHZhbHVlcy4KCjIwMDctMTItMDYgMTI6MTE6MjkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4LzogVGhlIHRyYW5zZm9ybV9pcCgpIG1ldGhvZHMgc2hvdWxkIGRvIG5vdGhpbmcgaWYgaW4gcGFzc3Rocm91Z2ggbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9hbXBsaWZ5LmM6IChnc3RfYXVkaW9fYW1wbGlmeV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYnlzaGV2ZnJlcWJhbmQuYzoKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9iYW5kX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxbGltaXQuYzoKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOiAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOiAoZ3N0X2F1ZGlvX2ludmVydF90cmFuc2Zvcm1faXApOgoJICBUaGUgdHJhbnNmb3JtX2lwKCkgbWV0aG9kcyBzaG91bGQgZG8gbm90aGluZyBpZiBpbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJdCBtaWdodCBnZXQgbm9uLXdyaXRhYmxlIGJ1ZmZlcnMgaW4gdGhhdCBjYXNlIGJ1dCB0aGUgYnVmZmVyIG1pZ2h0CgkgIGFzIHdlbGwgYmUgd3JpdGFibGUuCgkgICogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOiAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybSk6CgkgIFRoZSB0cmFuc2Zvcm0oKSBtZXRob2RzIHdvbid0IGJlIGNhbGxlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGFuZAoJICBvdGhlcndpc2UgdGhlIGJ1ZmZlciBpcyBhbHdheXMgd3JpdGFibGUgc28gZG9uJ3QgY2hlY2sgaGVyZS4KCjIwMDctMTItMDYgMTE6NDY6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogRml4IHNlZWtpbmcgaW4gLndhdiBmaWxlcyBhZ2FpbiAoIzUwMTc3NSkuICBTb21lIHBlb3BsZSBzZWVtIHRvIHRoaW5rIHRoZXkgZG9uJ3QgbmVlZCB0byAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3JjcGFkX2V2ZW50KToKCSAgRml4IHNlZWtpbmcgaW4gLndhdiBmaWxlcyBhZ2FpbiAoIzUwMTc3NSkuICBTb21lIHBlb3BsZSBzZWVtIHRvIHRoaW5rCgkgIHRoZXkgZG9uJ3QgbmVlZCB0byB0ZXN0IHRoZWlyIGNoYW5nZXMgd2hlbiB0aGV5J3JlIGp1c3QgJ3JlZmxvd2luZycKCSAgc29tZSBjb2RlLgoKMjAwNy0xMi0wNSAxNjowNDo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuKjogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfYXV0b192aWRlb19zaW5rX2Rpc3Bvc2UpLAoJICAoZ3N0X2F1dG9fdmlkZW9fc2lua19pbml0KSwKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfY3JlYXRlX2VsZW1lbnRfd2l0aF9wcmV0dHlfbmFtZSksCgkgIChnc3RfYXV0b192aWRlb19zaW5rX2ZpbmRfYmVzdCksCgkgIChnc3RfYXV0b192aWRlb19zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYXV0b192aWRlb19zaW5rX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5oOgoJICBGaXggZG9jcy4KCSAgVXNlIHNhbWUgZXJyb3IgcmVwb3J0aW5nIGNvZGUgYXMgYXV0b2F1ZGlvc2luay4KCSAgQWRkIHByb3BlcnR5IHRvIGZpbHRlciBzaW5rcyBiYXNlZCBvbiBjYXBzLiBPbmx5IHNlbGVjdCByYXcgdmlkZW8gc2lua3MKCSAgYnkgZGVmYXVsdCBmb3IgYmFja3dhcmRzIGNvbXBhdC4KCSAgQVBJOiBHc3RBdXRvVmlkZW9TaW5rOjpmaWx0ZXItY2FwcwoKMjAwNy0xMi0wNSAxNjowMjoxNSArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuKjogQWRkIHByb3BlcnR5IHRvIGZpbHRlciBzaW5rcyBiYXNlZCBvbiBjYXBzLiBPbmx5IHNlbGVjdCByYXcgYXVkaW8gc2lua3MgYnkgZGVmYXVsdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19jbGFzc19pbml0KSwgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZGlzcG9zZSksCgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2luaXQpLCAoZ3N0X2F1dG9fYXVkaW9fc2lua19maW5kX2Jlc3QpLAoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuaDoKCSAgQWRkIHByb3BlcnR5IHRvIGZpbHRlciBzaW5rcyBiYXNlZCBvbiBjYXBzLiBPbmx5IHNlbGVjdCByYXcgYXVkaW8gc2lua3MKCSAgYnkgZGVmYXVsdCBmb3IgYmFja3dhcmRzIGNvbXBhdC4gIEZpeGVzICM0MTc0MjAuCgkgIEFQSTogR3N0QXV0b0F1ZGlvU2luazo6ZmlsdGVyLWNhcHMKCjIwMDctMTEtMjkgMTE6NDA6MTUgKzAwMDAgIEFyZWsgS29yYmlrIDxhcmthZGluaUBnbWFpbC5jb20+CgoJICBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogSW5pdGlhbGlzZSBsaWJvaWwgaW4gcGx1Z2luX2luaXQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFyZWsgS29yYmlrIDxhcmthZGluaUBnbWFpbC5jb20+CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IChwbHVnaW5faW5pdCk6CgkgIEluaXRpYWxpc2UgbGlib2lsIGluIHBsdWdpbl9pbml0KCkKCjIwMDctMTEtMjkgMTA6NDk6MTggKzAwMDAgIFdvdXRlciBDbG9ldGVucyA8d291dGVyQG1pbmQuYmU+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgbGlic291cCByZXF1aXJlbWVudCBhcyBsaWJzb3VwIGRvZXMgbm90IHN1cHBvcnQgYXN5bmMgY2xpZW50IG9wZXJhdGlvbiBwcmlvciB0byB2ZXJzaW9uIDIuMi4xMDQgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBXb3V0ZXIgQ2xvZXRlbnMgPHdvdXRlciBhdCBtaW5kIGRvdCBiZT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgbGlic291cCByZXF1aXJlbWVudCBhcyBsaWJzb3VwIGRvZXMgbm90IHN1cHBvcnQgYXN5bmMgY2xpZW50CgkgIG9wZXJhdGlvbiBwcmlvciB0byB2ZXJzaW9uIDIuMi4xMDQgYW5kIGl0IGhhcyBzb21lIGxlYWtzLgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmM6IChnc3Rfc291cGh0dHBfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19pbml0KSwgKGdzdF9zb3VwaHR0cF9zcmNfZGlzcG9zZSksCgkgIChnc3Rfc291cGh0dHBfc3JjX3NldF9wcm9wZXJ0eSksIChnc3Rfc291cGh0dHBfc3JjX2NyZWF0ZSksCgkgIChnc3Rfc291cGh0dHBfc3JjX3N0YXJ0KSwgKGdzdF9zb3VwaHR0cF9zcmNfc3RvcCksCgkgIChnc3Rfc291cGh0dHBfc3JjX3VubG9jayksIChnc3Rfc291cGh0dHBfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfZ2V0X3NpemUpLCAoc291cF9nb3RfaGVhZGVycyksIChzb3VwX2dvdF9ib2R5KSwKCSAgKHNvdXBfZmluaXNoZWQpLCAoc291cF9nb3RfY2h1bmspLCAoc291cF9yZXNwb25zZSksCgkgIChzb3VwX3Nlc3Npb25fY2xvc2UpOgoJICAqIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmg6CgkgIEltcGxlbWVudCB1bmxvY2soKS4KCSAgUGlja3MgdXAgdGhlIHNpemUgZnJvbSB0aGUgQ29udGVudC1MZW5ndGggaGVhZGVyIGFuZCBlbWl0IGEgZHVyYXRpb24KCSAgbWVzc2FnZS4KCSAgRG9uJ3QgbGVhayB0aGUgR01haW5Db250ZXh0IG9iamVjdC4KCSAgRml4ZXMgIzUwMDA5OS4KCjIwMDctMTEtMjkgMTA6MzQ6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiBQb3N0IGVycm9yIGJlZm9yZSBzZW5kaW5nIEVPUy4gRml4ZXMgIzQ5OTE3OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfdGFzayk6CgkgIFBvc3QgZXJyb3IgYmVmb3JlIHNlbmRpbmcgRU9TLiBGaXhlcyAjNDk5MTc4LgoKMjAwNy0xMS0yOCAyMTo1NDo1MCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM2LzogQWRkIGEgcHJvamVjdCBmaWxlIGZvciBsaWJnc3RwbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2dzdF9wbHVnaW5zX2dvb2QuZHN3OgoJICAqIHdpbjMyL3ZzNi9saWJnc3RwbmcuZHNwOgoJICBBZGQgYSBwcm9qZWN0IGZpbGUgZm9yIGxpYmdzdHBuZwoKMjAwNy0xMS0yOCAxNzo0ODo0NSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6IENvZGUgYmVhdXRpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6IChnc3RfcnRwX2gyNjNfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2gyNjNfZGVwYXlfcHJvY2Vzcyk6CgkgIENvZGUgYmVhdXRpZmljYXRpb24uCgkgIEFkZGVkIGRlYnVnIHN0YXRlbWVudHMuCgkgIERvbid0IGJpdC1zaGlmdCBldmVyeXRoaW5nLCBqdXN0IGRvIG9wZXJhdGlvbnMgb24gbGFzdC9maXJzdCBieXRlCgkgIGluc3RlYWQuCgoyMDA3LTExLTI3IDExOjExOjA4ICswMDAwICBKYXlhcmFtYSBTLiBTYW50YW5hIDxzdW5kYXJzYW50YW5hQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6IEZpeCB3cm9uZyBjb21wYXJpc29uIGluIG92ZXJydW4gY2hlY2suIEZpeGVzICM0OTkyMzkgc29tZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpheWFyYW1hIFMuIFNhbnRhbmEgPHN1bmRhcnNhbnRhbmEgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGFkZXBheS5jOiAoZ3N0X3J0cF9tcDRhX2RlcGF5X3Byb2Nlc3MpOgoJICBGaXggd3JvbmcgY29tcGFyaXNvbiBpbiBvdmVycnVuIGNoZWNrLiBGaXhlcyAjNDk5MjM5IHNvbWUgbW9yZS4KCjIwMDctMTEtMjcgMDA6MDE6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS4qOiBGaXggaDI2MyBkZXBheWxvYWRlciBzbyB0aGF0IEFOWSBoMjYzIGRlY29kZXIgY2FuIGhhbmRsZSB0aGUgb3V0Z29pbmcgc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOiAoZ3N0X3J0cF9oMjYzX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9oMjYzX2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5Lmg6CgkgIEZpeCBoMjYzIGRlcGF5bG9hZGVyIHNvIHRoYXQgQU5ZIGgyNjMgZGVjb2RlciBjYW4gaGFuZGxlIHRoZSBvdXRnb2luZwoJICBzdHJlYW0uCgoyMDA3LTExLTI2IDE5OjE3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuKjogRml4IGRlcGF5bG9hZGluZyB3aGVuIG11bHRpcGxlIGZyYW1lcyBhcmUgaW5zaWRlIG9uZSBSVFAgcGFja2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gUGF0aCBieTogSmF5YXJhbWEgUy4gU2FudGFuYSA8c3VuZGFyc2FudGFuYSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6IChnc3RfcnRwX21wNGFfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX21wNGFfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuaDoKCSAgRml4IGRlcGF5bG9hZGluZyB3aGVuIG11bHRpcGxlIGZyYW1lcyBhcmUgaW5zaWRlIG9uZSBSVFAgcGFja2V0LgoJICBGaXhlcyAjNDk5MjM5LgoKMjAwNy0xMS0yNiAxMjoyNjoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2xldmVsL2dzdGxldmVsLmM6IEFkZCBHQVAtZmxhZyBzdXBwb3J0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgQWRkIEdBUC1mbGFnIHN1cHBvcnQuCgoyMDA3LTExLTI2IDEyOjAxOjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjYzZGVwYXkuYzogUmVhZCB0aGUgSSBmbGFnIGZvciBNb2RlIEEgaDI2MyBydHAgc3RyZWFtIGFuZCBzZXQgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2RlcGF5LmM6IChnc3RfcnRwX2gyNjNfZGVwYXlfcHJvY2Vzcyk6CgkgIFJlYWQgdGhlIEkgZmxhZyBmb3IgTW9kZSBBIGgyNjMgcnRwIHN0cmVhbSBhbmQgc2V0IHRoZQoJICBHU1RfQlVGRkVSX0ZMQUdfREVMVEFfVU5JVCBhY2NvcmRpbmdseS4KCSAgRml4ZXMgIzQ5OTM4MwoKMjAwNy0xMS0yNiAxMDowODoyMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IFVzZSBkaXNwb3NlIGFuZCBmaW5hbGl6ZS4gRGlzcG9zZSBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgVXNlIGRpc3Bvc2UgYW5kIGZpbmFsaXplLiBEaXNwb3NlIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuCgoyMDA3LTExLTI2IDEwOjA0OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogUmVtb3ZlIHNvbWUgZGVhZCBjb2RlIGFuZCBkbyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkgIFJlbW92ZSBzb21lIGRlYWQgY29kZSBhbmQgZG8gY2xlYW51cHMuCgoyMDA3LTExLTI2IDA5OjEzOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBJbXByb3ZlIHRoZSB0ZXN0cyBieSBhbGxvd2luZyB0byBzZXQgYSB0YXJnZXQgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIEltcHJvdmUgdGhlIHRlc3RzIGJ5IGFsbG93aW5nIHRvIHNldCBhIHRhcmdldCBzdGF0ZS4KCjIwMDctMTEtMjYgMDk6MDQ6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tlbmMuYzogRG9uJ3QgY2hlY2sgdGhlIGNhcHMgb2YgdGhlIG91dHB1dCBidWZmZXIgaWYgdGhleSdyZSBlcXVhbCBzb21lIG90aGVyIGNhcHMuIFRoZSBjYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZW5jLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGNoZWNrIHRoZSBjYXBzIG9mIHRoZSBvdXRwdXQgYnVmZmVyIGlmIHRoZXkncmUgZXF1YWwgc29tZQoJICBvdGhlciBjYXBzLiBUaGUgY2FwcyBjYW4gY2hhbmdlIGluIGEgYmFja3dhcmQgY29tcGF0aWJsZSB3YXkKCSAgYW5kIGRpZCBhdCB0aGlzIHBvaW50LgoKMjAwNy0xMS0yNCAxNDo1NTowNCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEltcGxlbWVudCByZXZlcnNlIHBsYXliYWNrIHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTI0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZmluZF9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X21vdmVfc3RyZWFtKSwgKGdzdF9xdGRlbXV4X2RvX3NlZWspLAoJICAoZ3N0X3F0ZGVtdXhfc2Vla190b19wcmV2aW91c19rZXlmcmFtZSksCgkgIChnc3RfcXRkZW11eF9hY3RpdmF0ZV9zZWdtZW50KSwgKGdzdF9xdGRlbXV4X2FkdmFuY2Vfc2FtcGxlKSwKCSAgKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUpLCAoZ3N0X3F0ZGVtdXhfbG9vcCk6IEltcGxlbWVudAoJICByZXZlcnNlIHBsYXliYWNrIHN1cHBvcnQuCgoyMDA3LTExLTIxIDA5OjU2OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyLzogUG9zdCBhIEdTVF9NRVNTQUdFX0xBVEVOQ1kgaWYgdGhlIGxhdGVuY3kgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChicHdzaW5jX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChscHdzaW5jX3NldF9wcm9wZXJ0eSk6CgkgIFBvc3QgYSBHU1RfTUVTU0FHRV9MQVRFTkNZIGlmIHRoZSBsYXRlbmN5IGNoYW5nZXMuCgoyMDA3LTExLTIxIDA4OjIxOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZXF1YWxpemVyLzogUmVtb3ZlIHByZXNldCBpZmFjZSBhZ2Fpbi4gV2UnbGwgcmUtYWRkIHRoaXMgYWZ0ZXIgaXRzIGJlZW4gcmVsZWFzZWQgaW4gLWdvb2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkgIFJlbW92ZSBwcmVzZXQgaWZhY2UgYWdhaW4uIFdlJ2xsIHJlLWFkZCB0aGlzIGFmdGVyIGl0cyBiZWVuIHJlbGVhc2VkCgkgIGluIC1nb29kLgoKMjAwNy0xMS0yMCAxMzoxNDo0MCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2NvbW1vbi5jOiBBbHNvIHNldCB0aGUgY2hhbm5lbCBsYXlvdXQgb24gdGhlIFdhdnBhY2sgY2FwcyBpZiB3ZSdyZSBoYXZpbmcgYSBtb25vIGxheW91dC4gT2YgY291Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tjb21tb24uYzogKGdzdF93YXZwYWNrX3NldF9jaGFubmVsX2xheW91dCk6CgkgIEFsc28gc2V0IHRoZSBjaGFubmVsIGxheW91dCBvbiB0aGUgV2F2cGFjayBjYXBzIGlmIHdlJ3JlIGhhdmluZwoJICBhIG1vbm8gbGF5b3V0LiBPZiBjb3Vyc2Ugb25seSBkbyBpdCBmb3IgImF1ZGlvL3gtd2F2cGFjayIuCgoyMDA3LTExLTIwIDEzOjA4OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay86IEFkZCBzdXBwb3J0IGZvciBlbmNvZGluZywgcGFyc2luZyBhbmQgZGVjb2RpbmcgbXVsdGljaGFubmVsIGZpbGVzIHdpdGggdXAgdG8gOCBjaGFubmVscy4gVGhpcyBhbHNvIGltcHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2NvbW1vbi5jOgoJICAoZ3N0X3dhdnBhY2tfZ2V0X2RlZmF1bHRfY2hhbm5lbF9tYXNrKSwKCSAgKGdzdF93YXZwYWNrX3NldF9jaGFubmVsX2xheW91dCksCgkgIChnc3Rfd2F2cGFja19nZXRfZGVmYXVsdF9jaGFubmVsX3Bvc2l0aW9ucyksCgkgIChnc3Rfd2F2cGFja19nZXRfY2hhbm5lbF9tYXNrX2Zyb21fcG9zaXRpb25zKSwKCSAgKGdzdF93YXZwYWNrX3NldF9jaGFubmVsX21hcHBpbmcpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tjb21tb24uaDoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX3Npbmtfc2V0X2NhcHMpLCAoZ3N0X3dhdnBhY2tfZGVjX2NoYWluKToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX3Jlc2V0KSwKCSAgKGdzdF93YXZwYWNrX2VuY19pbml0KSwgKGdzdF93YXZwYWNrX2VuY19zaW5rX3NldF9jYXBzKSwKCSAgKGdzdF93YXZwYWNrX2VuY19zZXRfd3BfY29uZmlnKSwgKGdzdF93YXZwYWNrX2VuY19wdXNoX2Jsb2NrKSwKCSAgKGdzdF93YXZwYWNrX2VuY19maXhfY2hhbm5lbF9vcmRlciksIChnc3Rfd2F2cGFja19lbmNfY2hhaW4pLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3Jld3JpdGVfZmlyc3RfYmxvY2spLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3NpbmtfZXZlbnQpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2luZGV4X2FwcGVuZF9lbnRyeSksIChnc3Rfd2F2cGFja19wYXJzZV9yZXNldCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9zY2FuX3RvX2ZpbmRfc2FtcGxlKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NpbmtfZXZlbnQpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfY3JlYXRlX3NyY19wYWQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfcHVzaF9idWZmZXIpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfbG9vcCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBlbmNvZGluZywgcGFyc2luZyBhbmQgZGVjb2RpbmcgbXVsdGljaGFubmVsCgkgIGZpbGVzIHdpdGggdXAgdG8gOCBjaGFubmVscy4gVGhpcyBhbHNvIGltcHJvdmVzIHRoZSByb2J1c3RuZXNzCgkgIG9mIHBhcnNpbmcgcXVpdGUgYSBiaXQuCgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3N0cmVhbXJlYWRlci5jOgoJICAoZ3N0X3dhdnBhY2tfc3RyZWFtX3JlYWRlcl9yZWFkX2J5dGVzKSwKCSAgKGdzdF93YXZwYWNrX3N0cmVhbV9yZWFkZXJfZ2V0X3BvcyksCgkgIChnc3Rfd2F2cGFja19zdHJlYW1fcmVhZGVyX3NldF9wb3NfYWJzKSwKCSAgKGdzdF93YXZwYWNrX3N0cmVhbV9yZWFkZXJfc2V0X3Bvc19yZWwpLAoJICAoZ3N0X3dhdnBhY2tfc3RyZWFtX3JlYWRlcl9wdXNoX2JhY2tfYnl0ZSksCgkgIChnc3Rfd2F2cGFja19zdHJlYW1fcmVhZGVyX2dldF9sZW5ndGgpLAoJICAoZ3N0X3dhdnBhY2tfc3RyZWFtX3JlYWRlcl9jYW5fc2VlayksCgkgIChnc3Rfd2F2cGFja19zdHJlYW1fcmVhZGVyX3dyaXRlX2J5dGVzKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTExLTIwIDEyOjIwOjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy4qOiBEb24ndCByZWxlYXNlIHRoZSBwbmctbWVtb3J5IGZyb20gd2l0aGluIHRoZSBjYWxsYmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5oOgoJICBEb24ndCByZWxlYXNlIHRoZSBwbmctbWVtb3J5IGZyb20gd2l0aGluIHRoZSBjYWxsYmFjay4KCjIwMDctMTEtMjAgMTI6MTE6MTMgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOiBEb24ndCBsZWFrIGJ1ZmZlciBkYXRhIG1lbW9yeS4gRml4ZXMgIzQ5ODM5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJICBEb24ndCBsZWFrIGJ1ZmZlciBkYXRhIG1lbW9yeS4gRml4ZXMgIzQ5ODM5NS4KCjIwMDctMTEtMjAgMTE6NDY6MjggKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiBUZXN0cyBmb3IgIzQ5ODM5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBUZXN0cyBmb3IgIzQ5ODM5NS4KCjIwMDctMTEtMjAgMTE6NDE6MTMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgRml4IGJ1aWxkIG9uIE1hYyBPUyBYIDEwLjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMjAgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYm11eC5jOiAoZ3N0X3RhZ19saWJfbXV4X3JlbmRlcl90YWcpLAoJICAoZ3N0X3RhZ19saWJfbXV4X2FkanVzdF9ldmVudF9vZmZzZXRzKToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RoZW9yYV9leHRlbnNpb24pOgoJICAqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSAgKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cuaDoKCSAgKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubTogRml4IGJ1aWxkIG9uIE1hYyBPUyBYIDEwLjUKCjIwMDctMTEtMTkgMjA6MzA6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9lcXVhbGl6ZXIvOiBBY3RpdmF0ZSBwcmVzZXQgaWZhY2UgYW5kIHVwbG9hZCB0d28gcHJlc2V0cyBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuYzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5jOgoJICBBY3RpdmF0ZSBwcmVzZXQgaWZhY2UgYW5kIHVwbG9hZCB0d28gcHJlc2V0cyBoZXJlLgoKMjAwNy0xMS0xNiAwNTo1Mjo1NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzogQ2hhbmdlIHN0cmNhc2VjbXAoKSB0byBnX3N0cmNhc2VjbXAoKS4gIEZpeGVzICM0OTcyOTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJICBDaGFuZ2Ugc3RyY2FzZWNtcCgpIHRvIGdfc3RyY2FzZWNtcCgpLiAgRml4ZXMgIzQ5NzI5Mi4KCjIwMDctMTEtMTUgMTg6MTk6MTkgKzAwMDAgIEpvcmRpIEphZW4gUGFsbGFyZXMgPGpvcmRpanBAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcDJ0cGF5Lio6IEZpbGwgdGhlIE1UVSB3aXRoIGFzIG1hbnkgcGFja2V0cyBhcyBwb3NzaWJsZS4gRml4ZXMgIzQ5MTMyMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb3JkaSBKYWVuIFBhbGxhcmVzIDxqb3JkaWpwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6IChnc3RfcnRwX21wMnRfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9tcDJ0X3BheV9pbml0KSwgKGdzdF9ydHBfbXAydF9wYXlfZmluYWxpemUpLAoJICAoZ3N0X3J0cF9tcDJ0X3BheV9mbHVzaCksIChnc3RfcnRwX21wMnRfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydHBheS5oOgoJICBGaWxsIHRoZSBNVFUgd2l0aCBhcyBtYW55IHBhY2tldHMgYXMgcG9zc2libGUuIEZpeGVzICM0OTEzMjMuCgoyMDA3LTExLTE1IDE3OjQ3OjQzICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBGaXggc29tZSBtb3JlIGxlYWtzLiBGaXhlcyAjNDk3MDA3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2V0dXBfc3RyZWFtcyk6CgkgIEZpeCBzb21lIG1vcmUgbGVha3MuIEZpeGVzICM0OTcwMDcuCgoyMDA3LTExLTE1IDE3OjM1OjE4ICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBGaXggMyBwYWQgbGVha3MuIEZpeGVzICM0OTY5ODMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiAgPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19zdHJlYW1fZnJlZSksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RjcCk6CgkgIEZpeCAzIHBhZCBsZWFrcy4gRml4ZXMgIzQ5Njk4My4KCjIwMDctMTEtMTUgMTc6MjY6MjUgKzAwMDAgIFdvdXRlciBDbG9ldGVucyA8d291dGVyQG1pbmQuYmU+CgoJICBBZGRlZCBIVFRQIHNvdXJjZSBiYXNlZCBvbiBsaWJzb3VwLiBGaXhlcyAjNDk3MDIwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFdvdXRlciBDbG9ldGVucyA8d291dGVyIGF0IG1pbmQgZG90IGJlPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogZXh0L3NvdXAvTWFrZWZpbGUuYW06CgkgICogZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYzogKF9kb19pbml0KSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfYmFzZV9pbml0KSwgKGdzdF9zb3VwaHR0cF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3Rfc291cGh0dHBfc3JjX2luaXQpLCAoZ3N0X3NvdXBodHRwX3NyY19kaXNwb3NlKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9zb3VwaHR0cF9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfY3JlYXRlKSwgKGdzdF9zb3VwaHR0cF9zcmNfc3RhcnQpLAoJICAoZ3N0X3NvdXBodHRwX3NyY19zdG9wKSwgKGdzdF9zb3VwaHR0cF9zcmNfdW5sb2NrKSwKCSAgKGdzdF9zb3VwaHR0cF9zcmNfc2V0X2xvY2F0aW9uKSwgKHNvdXBfZ290X2NodW5rKSwgKHNvdXBfcmVzcG9uc2UpLAoJICAoc291cF9zZXNzaW9uX2Nsb3NlKSwgKHBsdWdpbl9pbml0KToKCSAgKiBleHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oOgoJICBBZGRlZCBIVFRQIHNvdXJjZSBiYXNlZCBvbiBsaWJzb3VwLiBGaXhlcyAjNDk3MDIwLgoKMjAwNy0xMS0xNSAxNzowMTozMiArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IEZpeCBzbWFsbCBsZWFrLiBGaXhlcyAjNDk3MDE3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzogKGdzdF9ydHBfaDI2NF9kZXBheV9zZXRjYXBzKToKCSAgRml4IHNtYWxsIGxlYWsuIEZpeGVzICM0OTcwMTcuCgoyMDA3LTExLTE1IDE2OjMxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvOiBBZGQgc3VwcHBvcnQgZm9yIHRoZW9yYSBpbiBxdWlja3RpbWUgYWNjb3JkaW5nIHRvIFhpcGhRVC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xdGRlbXV4X3ByZXBhcmVfY3VycmVudF9zYW1wbGUpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksIChxdGRlbXV4X3BhcnNlX3RoZW9yYV9leHRlbnNpb24pLAoJICAocXRkZW11eF9wYXJzZV9ub2RlKSwgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF90eXBlcy5jOgoJICBBZGQgc3VwcHBvcnQgZm9yIHRoZW9yYSBpbiBxdWlja3RpbWUgYWNjb3JkaW5nIHRvIFhpcGhRVC4KCjIwMDctMTEtMTUgMTI6MjI6MTAgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgQWx3YXlzIGNvcHkgYnVmZmVycyBieSBkZWZhdWx0IChoYW5kbGUgc2FmZXIgd2l0aCBidWdnZWQgZHJpdmVycykgYW5kIGFkZGVkIGEgcHJvcGVydHkgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBbHdheXMgY29weSBidWZmZXJzIGJ5IGRlZmF1bHQgKGhhbmRsZSBzYWZlciB3aXRoIGJ1Z2dlZCBkcml2ZXJzKSBhbmQgYWRkZWQgYSBwcm9wZXJ0eSB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBtbWFwIGVmZmVjdGl2ZWx5IChubyBjb3B5IGlmIHBvc3NpYmxlKSB3aGVuIGFwcGxpY2F0aW9uIHdhbnRzIHRvLiBGaXhlczogIzQ4MDU1Ny4KCjIwMDctMTEtMTQgMjE6Mzk6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvOiBXZSBkb24ndCB3YW50IHRoZSBzYW1lIHN0cmluZyBtdWx0aXBsZSB0aW1lcyBpbiBhIHRhZyBsaXN0IGZvciB0aGUgc2FtZSB0YWcgZXZlciwgZm9yIGFueSB0YWcsIG5vdCBqdXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5oOgoJICAqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiAoaWQzdjJfdGFnX3RvX3RhZ2xpc3QpOgoJICBXZSBkb24ndCB3YW50IHRoZSBzYW1lIHN0cmluZyBtdWx0aXBsZSB0aW1lcyBpbiBhIHRhZyBsaXN0IGZvciB0aGUKCSAgc2FtZSB0YWcgZXZlciwgZm9yIGFueSB0YWcsIG5vdCBqdXN0IGZvciBHU1RfVEFHX0dFTlJFLCBzbyBtYWtlIHN1cmUKCSAgdGhpcyBkb2Vzbid0IGhhcHBlbiBhbmQgcmVtb3ZlIHNwZWNpYWwtY2FzZSBjb2RlIGZvciBHU1RfVEFHX0dFTlJFLgoKMjAwNy0xMS0xNCAyMTowNDoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6IFdyaXRlIEdTVF9UQUdfTVVTSUNCUkFJTlpfRElTQ0lEIGFuZCBHU1RfVEFHX0NEREFfQ0REQl9ESVNDSUQgaW50byBJRDN2MiBUWFhYIGZyYW1lcyAoZml4ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOiAoYWRkX211c2ljYnJhaW56X3RhZyksIChhZGRfZnVuY3MpOgoJICBXcml0ZSBHU1RfVEFHX01VU0lDQlJBSU5aX0RJU0NJRCBhbmQgR1NUX1RBR19DRERBX0NEREJfRElTQ0lECgkgIGludG8gSUQzdjIgVFhYWCBmcmFtZXMgKGZpeGVzICMzNDc4NDgpLgoKMjAwNy0xMS0xNCAyMDozNDoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogRG9uJ3QgbGVhayBzZHAgbWVzc2FnZSBjb250ZW50cyAoZml4ZXMgIzQ5Njc3MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX29wZW4pOgoJICBEb24ndCBsZWFrIHNkcCBtZXNzYWdlIGNvbnRlbnRzIChmaXhlcyAjNDk2NzczKS4KCSAgKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzogKGdzdF91ZHBzaW5rX2ZpbmFsaXplKToKCSAgRG9uJ3QgbGVhayBVUkkgc3RyaW5nLgoKMjAwNy0xMS0xNCAxOToxMDozNyArMDAwMCAgSnVsaWVuIFB1eWR0IDxqdWxpZW4ucHV5ZHRAbGFwb3N0ZS5uZXQ+CgoJICBleHQvcmF3MTM5NC86IEltcGxlbWVudCBHc3RQcm9wZXJ0eVByb2JlIGludGVyZmFjZSBhbmQgYWRkICJkZXZpY2UtbmFtZSIgcHJvcGVydHksIHNvIGFwcGxpY2F0aW9ucyBjYW4gdXNlIHRoaXMgdG8gcHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKdWxpZW4gUHV5ZHQgPGp1bGllbiBkb3QgcHV5ZHQgYXQgbGFwb3N0ZSBuZXQ+CgkgICogZXh0L3JhdzEzOTQvTWFrZWZpbGUuYW06CgkgICogZXh0L3JhdzEzOTQvZ3N0MTM5NHByb2JlLmM6IChnc3RfMTM5NF9nZXRfZ3VpZF9hcnJheSksCgkgIChnc3RfMTM5NF9wcm9wZXJ0eV9wcm9iZV9nZXRfcHJvcGVydGllcyksCgkgIChnc3RfMTM5NF9wcm9wZXJ0eV9wcm9iZV9wcm9iZV9wcm9wZXJ0eSksCgkgIChnc3RfMTM5NF9wcm9wZXJ0eV9wcm9iZV9uZWVkc19wcm9iZSksCgkgIChnc3RfMTM5NF9wcm9wZXJ0eV9wcm9iZV9nZXRfdmFsdWVzKSwKCSAgKGdzdF8xMzk0X3Byb3BlcnR5X3Byb2JlX2ludGVyZmFjZV9pbml0KSwKCSAgKGdzdF8xMzk0X3R5cGVfYWRkX3Byb3BlcnR5X3Byb2JlX2ludGVyZmFjZSk6CgkgICogZXh0L3JhdzEzOTQvZ3N0MTM5NHByb2JlLmg6IChHU1RfMTM5NF9QUk9CRV9IKToKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogKF9kb19pbml0KSwgKGdzdF9kdjEzOTRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZHYxMzk0c3JjX2luaXQpLCAoZ3N0X2R2MTM5NHNyY19kaXNwb3NlKSwKCSAgKGdzdF9kdjEzOTRzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9kdjEzOTRzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9kdjEzOTRzcmNfZGlzY292ZXJfYXZjX25vZGUpLCAoZ3N0X2R2MTM5NHNyY19xdWVyeSksCgkgIChnc3RfZHYxMzk0c3JjX3VwZGF0ZV9kZXZpY2VfbmFtZSk6CgkgICogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmg6CgkgIEltcGxlbWVudCBHc3RQcm9wZXJ0eVByb2JlIGludGVyZmFjZSBhbmQgYWRkICJkZXZpY2UtbmFtZSIgcHJvcGVydHksCgkgIHNvIGFwcGxpY2F0aW9ucyBjYW4gdXNlIHRoaXMgdG8gcHJvYmUgZm9yIGF2YWlsYWJsZSBkZXZpY2VzIGluIHRoZQoJICBzYW1lIHdheSB0aGV5IGNhbiBhbHJlYWR5IHdpdGggdjRsc3JjIGFuZCB2NGwyc3JjIChob3dldmVyIGhvcnJpYmxlCgkgIHRoaXMgcHJvcGVydHkgcHJvYmUgaW50ZXJmYWNlIG1heSBiZSkuIEZpeGVzICMzNTg4NDEuCgoyMDA3LTExLTE0IDE3OjAzOjE4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9zcGVjdHJ1bS5jOiBGaXggc3BlY3RydW0gdW5pdCB0ZXN0IGZvciB0aGUgbGF0ZXN0IHNwZWN0cnVtIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBzcGVjdHJ1bSB1bml0IHRlc3QgZm9yIHRoZSBsYXRlc3Qgc3BlY3RydW0gY2hhbmdlcy4KCjIwMDctMTEtMTQgMTU6Mjk6MDUgKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IERvbid0IGxlYWsgZXZlbnQsIGRvbid0IGxlYWsgcmFuZ2UgKGZpeGVzICM0OTY3NTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9yYW5nZSk6CgkgIERvbid0IGxlYWsgZXZlbnQsIGRvbid0IGxlYWsgcmFuZ2UgKGZpeGVzICM0OTY3NTIpLgoKMjAwNy0xMS0xNCAxMDoyMjo0MSArMDAwMCAgQXJlayBLb3JiaWsgPGFya2FkaW5pQGdtYWlsLmNvbT4KCgkgIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6IERldGVjdCBSR0JBL0JHUkEgY29ycmVjdGx5IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBcmVrIEtvcmJpayA8YXJrYWRpbmlAZ21haWwuY29tPgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6IChnc3RfYWxwaGFfY29sb3Jfc2V0X2NhcHMpOgoJICBEZXRlY3QgUkdCQS9CR1JBIGNvcnJlY3RseSBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMuCgoyMDA3LTExLTEzIDE3OjE5OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBidXQgdGhlIGNvcnJlc3BvbmRpbmcgaW9jdGwoKSBjYWxsIGZhaWxzIGV2ZW4gdGhvdWdoIHRoZSBkcml2ZXIgY2xhaW1zIHRvIHN1cHBvcnQgdGhpcyBmb3JtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdCk6CgkgIElmIFZJRElPQ19FTlVNX0ZSQU1FU0laRVMgaXMgZGVmaW5lZCAoPSByZWNlbnQga2VybmVsKSwgYnV0IHRoZQoJICBjb3JyZXNwb25kaW5nIGlvY3RsKCkgY2FsbCBmYWlscyBldmVuIHRob3VnaCB0aGUgZHJpdmVyIGNsYWltcyB0bwoJICBzdXBwb3J0IHRoaXMgZm9ybWF0LCBqdXN0IGZhbGwgYmFjayB0byB0aGUgcHJlLTIuNi4xOSBrZXJuZWwKCSAgcm91dGluZSB0aGF0IGNyZWF0ZXMgY2FwcyB3aXRoIHN1aXRhYmxlIGhlaWdodCBhbmQgd2lkdGggcmFuZ2VzCgkgIChzZWUgIzQ0ODI3OCkuCgoyMDA3LTExLTEzIDE3OjAxOjA3ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L21hdHJvc2thLzogRXh0cmFjdCBwYWxldHRlIGRhdGEgZm9yIGR2ZCBzdWJwaWN0dXJlIHN0cmVhbXMgYW5kIHNlbmQgaXQgZG93bnN0cmVhbSBhcyBjdXN0b20gZ3N0cmVhbWVyIGR2ZCBldmVudCAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IHNreW5ldCBiZT4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wdXNoX2R2ZF9jbHV0X2NoYW5nZV9ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2Fwcyk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBFeHRyYWN0IHBhbGV0dGUgZGF0YSBmb3IgZHZkIHN1YnBpY3R1cmUgc3RyZWFtcyBhbmQgc2VuZCBpdAoJICBkb3duc3RyZWFtIGFzIGN1c3RvbSBnc3RyZWFtZXIgZHZkIGV2ZW50IChmaXhlcyAjNDUzNDE3KS4KCjIwMDctMTEtMTMgMTQ6NTE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzogSW1wbGVtZW50IG1pbmltYWwgcGFyc2luZyBvZiB0aGUgcGFzc2VkIHBhbmdvIGZvbnQgZGVzY3JpcHRpb24gc3RyaW5nLCBzbyBwYXNzaW5nIGEgZm9udCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2ZvbnRfaW5pdCk6CgkgIEltcGxlbWVudCBtaW5pbWFsIHBhcnNpbmcgb2YgdGhlIHBhc3NlZCBwYW5nbyBmb250IGRlc2NyaXB0aW9uCgkgIHN0cmluZywgc28gcGFzc2luZyBhIGZvbnQgc2l6ZSB3b3JrcyB0aGUgc2FtZSBhcyB3aXRoIHRoZQoJICBwYW5nbyB0ZXh0b3ZlcmxheSBwbHVnaW47IGZpeGVzICM0NTUwODYuCgkgIChNYXliZSB3ZSBjb3VsZCBqdXN0IHVzZSBwYW5nb2NhaXJvIGhlcmUgYXQgc29tZSBwb2ludCkuCgoyMDA3LTExLTEzIDA2OjU1OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBSZXR1cm4gdGhlIHJlc3VsdCBpbiBfYWN0aXZhdGVfcHVsbCgpLiBEb24ndCByZWYgZWxlbWVudCB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBSZXR1cm4gdGhlIHJlc3VsdCBpbiBfYWN0aXZhdGVfcHVsbCgpLiBEb24ndCByZWYgZWxlbWVudCB0aGVyZS4KCjIwMDctMTEtMTMgMDY6MjM6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBSZWYgdGhlIGVsZW1lbnQgd2hlbiB3ZSBzaG91bGQsIGJ1dCBub3Qgd2hlbiB3ZSBpdHMgbm90IG5lZWRlZC4gUmVmbG93IHRoZSBldmVudF9oYW5kbGluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksCgkgIChnc3Rfd2F2cGFyc2VfcGFkX2NvbnZlcnQpLCAoZ3N0X3dhdnBhcnNlX3BhZF9xdWVyeSksCgkgIChnc3Rfd2F2cGFyc2Vfc3JjcGFkX2V2ZW50KToKCSAgUmVmIHRoZSBlbGVtZW50IHdoZW4gd2Ugc2hvdWxkLCBidXQgbm90IHdoZW4gd2UgaXRzIG5vdCBuZWVkZWQuIFJlZmxvdwoJICB0aGUgZXZlbnRfaGFuZGxpbmcgdG8gbm90IGxlYWsgdGhlIGV2ZW50LgoKMjAwNy0xMS0xMiAyMTowNzozMSArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9yZXBsYXlnYWluL3JnYW5hbHlzaXMuYzogQXZvaWQgc2xvd2Rvd24gZnJvbSBkZW5vcm1hbHMgd2hlbiBwcm9jZXNzaW5nIG5lYXItc2lsZW5jZSBpbnB1dCBkYXRhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9yZXBsYXlnYWluL3JnYW5hbHlzaXMuYzogKHl1bGVfZmlsdGVyKToKCSAgQXZvaWQgc2xvd2Rvd24gZnJvbSBkZW5vcm1hbHMgd2hlbiBwcm9jZXNzaW5nIG5lYXItc2lsZW5jZSBpbnB1dCBkYXRhLgoJICBTcG90dGVkIGJ5IEdhYnJpZWwgQm91dmlnbmUuIEZpeGVzICM0OTQ0OTkuCgoyMDA3LTExLTEyIDE3OjU5OjQwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBQcm9wZXJseSBmcmVlIFFURGVtdXhTYW1wbGVzIGFycmF5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpLAoJICAocXRkZW11eF9wYXJzZV9zYW1wbGVzKToKCSAgUHJvcGVybHkgZnJlZSBRVERlbXV4U2FtcGxlcyBhcnJheS4KCSAgUHJvdGVjdCB0YWJsZSB3cml0ZSB3aXRoIGEgc2Vuc2libGUgY2hlY2ssIHNvbWUgZmlsZXMgYXBwYXJlbnRseSBETyBjb250YWluCgkgIHN0dHMgdmFsdWVzIHN0YXJ0aW5nIHdpdGggMCA6KAoKMjAwNy0xMS0xMiAxNzoyMTo1OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRHJvcCBFT1MgaW4gX2hhbmRsZV9zcmNfZXZlbnQoKS4gRml4IHRoZSByZWZjb3VudCBpbiBxdGRlbXV4IHRoYXQgcHJldmlvdXMgY29tbWl0IG1lc3NlZCB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgRHJvcCBFT1MgaW4gX2hhbmRsZV9zcmNfZXZlbnQoKS4gRml4IHRoZSByZWZjb3VudCBpbiBxdGRlbXV4IHRoYXQKCSAgcHJldmlvdXMgY29tbWl0IG1lc3NlZCB1cC4KCjIwMDctMTEtMTIgMTc6MDY6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFN5bmMgX2hhbmRsZV9zcmNfZXZlbnQoKSB3aXRoIG9nZ2RlbXV4LiBJbiBhdmlkZW11eCBhbHNvIHJlZiB0aGUgZWxlbWVudCB3aGVuIHdlIHNob3VsZCwgYnV0IG5vdCB3aGVuIHdlIGl0cyBuby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBTeW5jIF9oYW5kbGVfc3JjX2V2ZW50KCkgd2l0aCBvZ2dkZW11eC4gSW4gYXZpZGVtdXggYWxzbyByZWYgdGhlCgkgIGVsZW1lbnQgd2hlbiB3ZSBzaG91bGQsIGJ1dCBub3Qgd2hlbiB3ZSBpdHMgbm90IG5lZWRlZC4KCjIwMDctMTEtMTEgMjE6MTI6MTAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC86IENoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGUgbWFnbml0dWRlIHZhbHVlcyBnaXZlbiBpbiB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9kZW1vLmM6IChkcmF3X3NwZWN0cnVtKToKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzogKGRyYXdfc3BlY3RydW0pOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOiAoZHJhd19zcGVjdHJ1bSk6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fY2xhc3NfaW5pdCk6CgkgIENoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGUgbWFnbml0dWRlIHZhbHVlcyBnaXZlbiBpbiB0aGUKCSAgR3N0TWVzc2FnZXMgYnkgc3BlY3RydW0gdG8gZGVjaWJlbCBpbnN0ZWFkIG9mCgkgIGRlY2liZWwrdGhyZXNob2xkLgoKMjAwNy0xMS0xMSAxMzo1NToyNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci86IEFuZCBjb250aW51ZSB0byB1cGRhdGUgZG9jcy4gQWxzbyBpbmNsdWRlIHNvbWUgc2FtcGxlIGNvZGUgZm9yIHRoZSBuLWJhbmQgZXF1YWxpemVyIGluIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuYzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVybmJhbmRzLmM6CgkgIEFuZCBjb250aW51ZSB0byB1cGRhdGUgZG9jcy4gQWxzbyBpbmNsdWRlIHNvbWUgc2FtcGxlIGNvZGUKCSAgZm9yIHRoZSBuLWJhbmQgZXF1YWxpemVyIGluIHRoZSBkb2NzLgoKMjAwNy0xMS0xMSAxMjo1NDozMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci86IFVwZGF0ZSBkb2NzIGFuZCBwcm9wZXJ0eSByYW5nZXMgdG8gdGhlIHJlYWwgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyXzEwYmFuZHNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIzYmFuZHMuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyXzNiYW5kc19jbGFzc19pbml0KToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcm5iYW5kcy5jOgoJICBVcGRhdGUgZG9jcyBhbmQgcHJvcGVydHkgcmFuZ2VzIHRvIHRoZSByZWFsIHZhbHVlcy4KCjIwMDctMTEtMDkgMTc6Mjc6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiBOb3cgZG8gdGhlIHNjYWxpbmcgcmlnaHQgZm9yIHJlYWwuIEFsc28gaW5pdGlhbGl6ZSBhIHByZXZpb3VzbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIE5vdyBkbyB0aGUgc2NhbGluZyByaWdodCBmb3IgcmVhbC4gQWxzbyBpbml0aWFsaXplIGEgcHJldmlvdXNseQoJICB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgoKMjAwNy0xMS0wOCAxNTo1Njo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2VxdWFsaXplci9kZW1vLmM6IE1ha2UgZGVmYXVsdCB2b2x1bWUgYSBiaXQgbGVzcy4gSW1wcm92ZSBsYXlvdXQgYnkgZ2l2aW5nIG1vcmUgc3BhY2UgdG8gdGhlIHNsaWRlciB3aXRoIGJpZy1udW1iLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZGVtby5jOgoJICBNYWtlIGRlZmF1bHQgdm9sdW1lIGEgYml0IGxlc3MuIEltcHJvdmUgbGF5b3V0IGJ5IGdpdmluZyBtb3JlIHNwYWNlIHRvCgkgIHRoZSBzbGlkZXIgd2l0aCBiaWctbnVtYmVycyBhbmQgZW5hYmxlIGZpbGwuCgoyMDA3LTExLTA4IDE1OjAwOjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogUmV0dXJuIEZBTFNFIGlmIHdlIGNhbid0IGhhbmRsZSBhIHF1ZXJ5IGluc3RlYWQgb2YgY2hhbmdpbmcgdGhlIGZvcm1hdC4gSWdub3JlIGZhY3Qgd2hlbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIFJldHVybiBGQUxTRSBpZiB3ZSBjYW4ndCBoYW5kbGUgYSBxdWVyeSBpbnN0ZWFkIG9mIGNoYW5naW5nIHRoZQoJICBmb3JtYXQuIElnbm9yZSBmYWN0IHdoZW4gZGVhbGluZyB3aXRoIG1wZWcgYXVkaW8uCgoyMDA3LTExLTA2IDEyOjIzOjM1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzogVXNlIGF1dG9hdWRpb3NpbmsgaW5zdGVhZCBvZiBhbHNhc2luayBhbmQgdXNlIGEgc2luZSB3YXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzogKG1haW4pOgoJICBVc2UgYXV0b2F1ZGlvc2luayBpbnN0ZWFkIG9mIGFsc2FzaW5rIGFuZCB1c2UgYSBzaW5lIHdhdmUuCgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6CgkgIEZpeCB0aGUgbWFnbml0dWRlIGNhbGN1bGF0aW9uLgoKMjAwNy0xMS0wMyAxOTo1MDoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci86IEFsbG93IHNldHRpbmcgMCBhcyBiYW5kd2lkdGggYW5kIGhhbmRsZSB0aGlzIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9kZW1vLmM6IChtYWluKToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9jbGFzc19pbml0KSwgKHNldHVwX2ZpbHRlcik6CgkgIEFsbG93IHNldHRpbmcgMCBhcyBiYW5kd2lkdGggYW5kIGhhbmRsZSB0aGlzIGNvcnJlY3RseS4KCSAgQWxzbyBoYW5kbGUgYSBiYW5kd2lkdGggb2YgcmF0ZS8yIHByb3Blcmx5LgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVybmJhbmRzLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl9uYmFuZHNfY2xhc3NfaW5pdCk6CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gZ2VuZXJhdGUgYSBOLWJhbmQgZXF1YWxpemVyIHdpdGggMSBiYW5kcy4gVGhlCgkgIHByZXZpb3VzIGxpbWl0IG9mIDIgd2FzIGNhdXNlZCBieSBhIG5vd2FkYXlzIHJlcGxhY2VkIGNhbGN1bGF0aW9uCgkgIGRvaW5nIGEgZGl2aXNpb24gYnkgemVybyBpZiBudW1iZXIgb2YgYmFuZHMgd2FzIDEuCgoyMDA3LTExLTAyIDIxOjE2OjA5ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgRml4IGluY2x1ZGVzIGZvciBNU1ZDIGFuZCBHTGliLTIuMTQuMCAoIzQ5MjM4OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5oOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSAgKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSAgKiBnc3QvdWRwL2dzdHVkcHNpbmsuaDoKCSAgRml4IGluY2x1ZGVzIGZvciBNU1ZDIGFuZCBHTGliLTIuMTQuMCAoIzQ5MjM4OCkuCgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfc3RhcnQpOgoJICBObyBtb3JlIHBpcGUgZGVmaW5lIHNpbmNlIEdMaWItMi4xNC4wLCBuZWVkIHRvIHVzZSBfcGlwZSgpIGRpcmVjdGx5LgoKMjAwNy0xMS0wMiAxNzoyMzo0MyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9sYXcvbXVsYXctZGVjb2RlLio6IENhbGN1bGF0ZSBvdXRnb2luZyBidWZmZXIgZHVyYXRpb24gaWYgaW5jb21pbmcgYnVmZmVyIGRpZG4ndCBoYXZlIGEgdmFsaWQgZHVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6IChtdWxhd2RlY19zaW5rX3NldGNhcHMpLAoJICAoZ3N0X211bGF3ZGVjX2NoYWluKToKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5oOgoJICBDYWxjdWxhdGUgb3V0Z29pbmcgYnVmZmVyIGR1cmF0aW9uIGlmIGluY29taW5nIGJ1ZmZlciBkaWRuJ3QgaGF2ZSBhCgkgIHZhbGlkIGR1cmF0aW9uLgoKMjAwNy0xMC0zMCAyMTozNzo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci86IEFkZCBzbWFsbCBkZW1vIGFwcGxpY2F0aW9uIGJhc2VkIG9uIHRoZSBzcGVjdHJ1bSBkZW1vIGFwcGxpY2F0aW9ucyB0aGF0IGdldHMgd2hpdGUgbm9pc2UgYXMgaW5wdXQsIHB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VxdWFsaXplci9kZW1vLmM6IChvbl93aW5kb3dfZGVzdHJveSksIChvbl9jb25maWd1cmVfZXZlbnQpLAoJICAob25fZ2Fpbl9jaGFuZ2VkKSwgKG9uX2JhbmR3aWR0aF9jaGFuZ2VkKSwgKG9uX2ZyZXFfY2hhbmdlZCksCgkgIChkcmF3X3NwZWN0cnVtKSwgKG1lc3NhZ2VfaGFuZGxlciksIChtYWluKToKCSAgQWRkIHNtYWxsIGRlbW8gYXBwbGljYXRpb24gYmFzZWQgb24gdGhlIHNwZWN0cnVtIGRlbW8gYXBwbGljYXRpb25zCgkgIHRoYXQgZ2V0cyB3aGl0ZSBub2lzZSBhcyBpbnB1dCwgcHVzaGVzIGl0IHRocm91Z2ggYW4gZXF1YWxpemVyIGFuZAoJICBwYWludHMgdGhlIHNwZWN0cnVtLiBGb3IgZXZlcnkgZXF1YWxpemVyIGJhbmQgaXQncyBwb3NzaWJsZSB0byBzZXQKCSAgZ2FpbiwgYmFuZHdpZHRoIGFuZCBmcmVxdWVuY3kuCgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogKHNldHVwX2ZpbHRlcik6CgkgIEFkZCBzb21lIGd1YXJkaW5nIGFnYWluc3QgdG9vIGxhcmdlIG9yIHRvbyBzbWFsbCBmcmVxdWVuY2llcyBhbmQKCSAgYmFuZHdpZHRocy4gQWxzbyBpbXByb3ZlIGRlYnVnZ2luZyBhIGJpdC4KCjIwMDctMTAtMzAgMjE6MTg6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6IFJlcGxhY2UgZmlsdGVycyB3aXRoIGEgYml0IGJldHRlciBmaWx0ZXJzIGZvciB3aGljaCB3ZSBjYW4gYWN0dWFsbHkgZmluZCBkb2N1bWVudGF0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9jbGFzc19pbml0KSwgKGFyZ190b19zY2FsZSksCgkgIChzZXR1cF9maWx0ZXIpLCAoZ3N0X2lpcl9lcXVhbGl6ZXJfY29tcHV0ZV9mcmVxdWVuY2llcyk6CgkgIFJlcGxhY2UgZmlsdGVycyB3aXRoIGEgYml0IGJldHRlciBmaWx0ZXJzIGZvciB3aGljaCB3ZSBjYW4gYWN0dWFsbHkKCSAgZmluZCBkb2N1bWVudGF0aW9uLCB3aGljaCBkb24ndCBjaGFuZ2UgYW55dGhpbmcgb24gemVybyBnYWluLCBldGMuCgkgIE1ha2UgdGhlIGZyZXF1ZW5jeSBwcm9wZXJ0eSBvZiB0aGUgYmFuZHMgd3JpdGFibGUsIHJlbmFtZSB0aGUKCSAgYmFuZC13aWR0aCBwcm9wZXJ0eSB0byBiYW5kd2lkdGggYW5kIGNoYW5nZSB0aGUJbWVhbmluZyB0byB0aGUKCSAgZnJlcXVlbmN5IGRpZmZlcmVuY2UgYmV0d2VlbiBiYW5kZWRnZXMsIGNoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGUKCSAgZ2FpbiBwcm9wZXJ0eSB0byBkQiBpbnN0ZWFkIG9mIGEgd2VpcmQgc2NhbGUgYmV0d2VlbiAtMQlhbmQgMSB0aGF0CgkgIGhhcyBubyByZWFsIG1lYW5pbmcuCgoyMDA3LTEwLTMwIDEyOjI5OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBTbWFydGVyIGNvbWJpbmVfZmxvdyBjb2RlIHRoYXQgYWxzbyBkZWFscyB3aXRoIGRvd25zdHJlYW0gZWxlbWVudHMgcmV0dXJuaW5nIFVORVhQRUNURUQgd2hlbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2FjdGl2YXRlX3NlZ21lbnQpLAoJICAoZ3N0X3F0ZGVtdXhfY29tYmluZV9mbG93cyksIChnc3RfcXRkZW11eF9sb29wX3N0YXRlX21vdmllKToKCSAgU21hcnRlciBjb21iaW5lX2Zsb3cgY29kZSB0aGF0IGFsc28gZGVhbHMgd2l0aCBkb3duc3RyZWFtIGVsZW1lbnRzCgkgIHJldHVybmluZyBVTkVYUEVDVEVEIHdoZW4gdGhleSByZWNlaXZlIGRhdGEgb3V0IG9mIHRoZSBzZWdtZW50CgkgIGJvdW5kYXJpZXMuIEZpeGVzICM0OTEzMDUuCgoyMDA3LTEwLTI3IDE2OjA0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOiBMZXQncyBub3QgY2FsbCBldmVyeSByZXF1ZXN0IHBhZCB3ZSBjcmVhdGUgInNpbmslZCIsIHRoYXQnbGwgY3JlYXRlIHByb2JsZW1zIGlmIHRoZXJlJ3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzogKGdzdF9pbnRlcmxlYXZlX3JlcXVlc3RfbmV3X3BhZCk6CgkgIExldCdzIG5vdCBjYWxsIGV2ZXJ5IHJlcXVlc3QgcGFkIHdlIGNyZWF0ZSAic2luayVkIiwgdGhhdCdsbAoJICBjcmVhdGUgcHJvYmxlbXMgaWYgdGhlcmUncyB0byBiZSBtb3JlIHRoYW4gb25lIHBhZC4gRml4ZXMgIzQ5MDY4Mi4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ludGVybGVhdmUuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNy0xMC0yNiAxNTowMzowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogRml4ICd1bnVzZWQgdmFyaWFibGUnIGNvbXBpbGVyIHdhcm5pbmcgd2hlbiBjb21waWxpbmcgYWdhaW5zdCBvbGRlciBrZXJuZWwgaGVhZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBGaXggJ3VudXNlZCB2YXJpYWJsZScgY29tcGlsZXIgd2FybmluZyB3aGVuIGNvbXBpbGluZyBhZ2FpbnN0CgkgIG9sZGVyIGtlcm5lbCBoZWFkZXJzLgoKMjAwNy0xMC0yNiAxMjoxMDo0MyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA3LTEwLTI1IDIzOjQyOjUyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIEltcHJvdmUgZG9jdW1lbnRhdGlvbiwgd3JpdGUgc29tZSB0ZXN0cyBmb3IgbXVsdGlmaWxlc3JjL3NpbmsgZm9yIHVwY29taW5nIC0+Z29vZCByZXZpZXcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aWZpbGUvTWFrZWZpbGUuYW06CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aWZpbGUuYzoKCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uLCB3cml0ZSBzb21lIHRlc3RzIGZvciBtdWx0aWZpbGVzcmMvc2luawoJICBmb3IgdXBjb21pbmcgLT5nb29kIHJldmlldy4KCjIwMDctMTAtMjUgMTU6MDA6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjIChhZGRfZnVuY3MpOiBNYXAgbmV3IFNPUlROQU1FIHRhZ3MgdG8gSUQzdjIgVFNPUCwgVFNPQSBhbmQgVFNPVCBmcmFtZXMgKCM0MTQ1MzkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjIChhZGRfZnVuY3MpOgoJICBNYXAgbmV3IFNPUlROQU1FIHRhZ3MgdG8gSUQzdjIgVFNPUCwgVFNPQSBhbmQgVFNPVCBmcmFtZXMgKCM0MTQ1MzkpLgoKMjAwNy0xMC0yNCAwNzowMTo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogSW1wcm92ZSB0aGUgdGVzdHMgYSBsaXR0bGUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgSW1wcm92ZSB0aGUgdGVzdHMgYSBsaXR0bGUgbW9yZS4KCjIwMDctMTAtMjMgMDg6Mzg6NTAgKzAwMDAgIFl1biBaaGVuZyBIdSA8eXVuemhlbmcuaHVAZ21haWwuY29tPgoKCSAgc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6IFVzZSBkZWZhdWx0IGlucHV0IGRldmljZSBpbnN0ZWFkIG9mIGRlZmF1bHQgb3V0cHV0IGRldmljZSBhbmQgb25seSBtZW1jcHkgYWN0dWFsIGF2YWlsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogWXVuIFpoZW5nIEh1CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6CgkgIFVzZSBkZWZhdWx0IGlucHV0IGRldmljZSBpbnN0ZWFkIG9mIGRlZmF1bHQgb3V0cHV0IGRldmljZSBhbmQKCSAgb25seSBtZW1jcHkgYWN0dWFsIGF2YWlsYWJsZSBieXRlcy4KCjIwMDctMTAtMjIgMTk6MTQ6MDggKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkgIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogRml4ZXMgInY0bDJzcmMgISBxdWV1ZSAhIHh2aW1hZ2VzaW5rIi4gVGhlIHF1ZXVlIGFzayBmb3IgYnVmZmVyIHRvbyBlYXJseS4gSXQgaXMgdGVtcG9yYXJ5IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19ncmFiX2ZyYW1lKToKCSAgRml4ZXMgInY0bDJzcmMgISBxdWV1ZSAhIHh2aW1hZ2VzaW5rIi4gVGhlIHF1ZXVlIGFzayBmb3IgYnVmZmVyIHRvbwoJICBlYXJseS4gSXQgaXMgdGVtcG9yYXJ5IHVudGlsIHdlIGZpbmQgc29tZXRoaW5nIGJldHRlci4KCjIwMDctMTAtMjIgMTY6NDQ6NDggKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IEZpeCByYWNlIHdoZW4gcGF1c2luZyBhIFJUU1Agc3RyZWFtIGluIGludGVybGVhdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCk6CgkgIEZpeCByYWNlIHdoZW4gcGF1c2luZyBhIFJUU1Agc3RyZWFtIGluIGludGVybGVhdmVkLgoJICBGaXhlcyAjNDc1Nzg0LgoKMjAwNy0xMC0yMiAwOTo1MzoxNiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzogVXNlIGNvcnJlY3QgdW5yZWYgZnVuY3Rpb24gZm9yIGJ1ZmZlcnMuICM0ODg4NDQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IChnc3RfcnRwX21wNHZfcGF5X2ZpbmFsaXplKToKCSAgVXNlIGNvcnJlY3QgdW5yZWYgZnVuY3Rpb24gZm9yIGJ1ZmZlcnMuICM0ODg4NDQuCgoyMDA3LTEwLTE5IDE5OjMzOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgc29tZSBkZWJ1ZyBhbmQgc3luYyB0ZXN0cyB3aXRoIHRoZSBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpbXV4LmM6CgkgIEFkZCBzb21lIGRlYnVnIGFuZCBzeW5jIHRlc3RzIHdpdGggdGhlIGZpeC4KCjIwMDctMTAtMTggMTc6MDQ6MTQgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IFdoZW4gdGhlIHNvY2tldCBpcyB1c2VkIGJ5IHRoZSBhcHAgZm9yIG90aGVyIHB1cnBvc2VzLCBkb24ndCBnZW5lcmF0ZSBhbiBlcnJvciBpZiB0aGVyZSBpcyBhY3Rpdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IExhdXJlbnQgR2xheWFsICA8c3BnbGVnbGUgeWFob28gZnI+CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY3JlYXRlKToKCSAgV2hlbiB0aGUgc29ja2V0IGlzIHVzZWQgYnkgdGhlIGFwcCBmb3Igb3RoZXIgcHVycG9zZXMsIGRvbid0IGdlbmVyYXRlIGFuCgkgIGVycm9yIGlmIHRoZXJlIGlzIGFjdGl2YXR5IG9uIHRoZSBzb2NrZXQgdGhhdCBpcyBub3QgZGF0YSByZWxhdGVkLgoJICBGaXhlcyAjNDg3NDg4LgoKMjAwNy0xMC0xOCAxNDo1NTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLiBHZW5lcmF0ZSBhbiBlcnJvciB3aGVuIHdlIHJ1biBvdXQgb2YgYnVmZmVycyBmb3Igc29tZSByZWFzb24uIFNlZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMl9idWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3Y0bDJzcmNfZ3JhYl9mcmFtZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4gR2VuZXJhdGUgYW4gZXJyb3Igd2hlbiB3ZSBydW4gb3V0IG9mIGJ1ZmZlcnMKCSAgZm9yIHNvbWUgcmVhc29uLiBTZWUgIzQ4MDU1Ny4KCjIwMDctMTAtMTggMDg6Mjc6NTYgKzAwMDAgIEFuZGVycyBTa2FyZ3JlbiA8YW5kZXJzLnNrYXJncmVuQGF4aXMuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjY0cGF5LmM6IFNldCBtYXJrZXIgYml0IGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbmRlcnMgU2thcmdyZW4gPGFuZGVycyBkb3Qgc2thcmdyZW4gYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5jOiAoZ3N0X3J0cF9oMjY0X3BheV9oYW5kbGVfYnVmZmVyKToKCSAgU2V0IG1hcmtlciBiaXQgY29ycmVjdGx5LgoKMjAwNy0xMC0xOCAwNjoyMDoyMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogQWRkIGEgbWlzc2luZyBicmVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyX2JhbmRfc2V0X3Byb3BlcnR5KToKCSAgQWRkIGEgbWlzc2luZyBicmVhay4KCjIwMDctMTAtMTggMDY6MTQ6NDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLio6IE1vdmUgYmFuZHdpZHRoIHByb3BlcnR5IHRvIHRoZSBzZXBhcmF0ZSBiYW5kcyBhbmQgYWRkIGZsb2F0NjQgc3VwcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyX2JhbmRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2JhbmRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2JhbmRfY2xhc3NfaW5pdCksIChnc3RfaWlyX2VxdWFsaXplcl9iYW5kX2luaXQpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9nZXRfdHlwZSksIChnc3RfaWlyX2VxdWFsaXplcl9jbGFzc19pbml0KSwKCSAgKHNldHVwX2ZpbHRlciksIChnc3RfaWlyX2VxdWFsaXplcl9zZXR1cCk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuaDoKCSAgTW92ZSBiYW5kd2lkdGggcHJvcGVydHkgdG8gdGhlIHNlcGFyYXRlIGJhbmRzIGFuZCBhZGQgZmxvYXQ2NCBzdXBwb3J0LgoKMjAwNy0xMC0xNyAxNTowODowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogVXNlIGFsbG93ZWQgbmFtZSBmb3IgdGhlIEdzdFN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfb3Blbik6CgkgIFVzZSBhbGxvd2VkIG5hbWUgZm9yIHRoZSBHc3RTdHJ1Y3R1cmUuCgoyMDA3LTEwLTE3IDExOjQ3OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVXNlIG5ldyBnc3RfYnVzX3BvcF9maWx0ZXJlZCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5jOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSAgVXNlIG5ldyBnc3RfYnVzX3BvcF9maWx0ZXJlZCgpLgoKMjAwNy0xMC0xMyAxMjowMzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy92NGwyLzogV2hlbiBwcm9iaW5nIHRoZSBmb3JtYXRzIGFuZCBzaXplcyBhIGNhbWVyYSBzdXBwb3J0cywgbWFrZSBzdXJlIHRoZSBiZXN0IG9uZXMgKGhpZ2hlc3QgcmVzb2x1dGlvbiwgcHJlZmVyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBXaGVuIHByb2JpbmcgdGhlIGZvcm1hdHMgYW5kIHNpemVzIGEgY2FtZXJhIHN1cHBvcnRzLCBtYWtlCgkgIHN1cmUgdGhlIGJlc3Qgb25lcyAoaGlnaGVzdCByZXNvbHV0aW9uLCBwcmVmZXJlZCBmb3JtYXQpCgkgIGVuZCB1cCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9iZWQgY2FwcyBhbmQgdGhlIGxlc3MKCSAgZGVzaXJhYmxlIG9uZXMgYXQgdGhlIGVuZC4gIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlCgkgIG9yZGVyIHdpdGhpbiB0aGUgY2FwcyBtYXR0ZXJzIGZvciB0aGluZ3MgbGlrZSBmaXhhdGlvbiBhbmQKCSAgbmVnb3RpYXRpb24sIGllLiB3aGF0IGZvcm1hdCBpcyBjaG9zZW4gaW4gdGhlIGVuZC4KCSAgV2l0aCByZWNlbnQga2VybmVscywgdGhlIGN1cnJlbnQgcHJvYmluZyBjb2RlIHdpbGwgZW5kIHVwCgkgIHF1ZXJ5aW5nIHRoZSBzdXBwb3J0ZWQgc2l6ZXMgZnJvbSBsb3dlc3QgcmVzb2x1dGlvbiB0bwoJICBoaWdoZXN0IHJlc29sdXRpb24sIGFkZGluZyB0aGVtIHRvIHRoZSBwcm9iZWQgY2FwcyBpbiB0aGF0CgkgIG9yZGVyLCByZXN1bHRpbmcgdG8gdjRsMnNyYyBmaXhhdGluZyB0byB0aGUgbG93ZXN0IHBvc3NpYmxlCgkgIHJlc29sdXRpb24gaWYgZG93bnN0cmVhbSBkb2VzIG5vdCBleHByZXNzIGEgc2l6ZSBwcmVmZXJlbmNlLgoJICBBbHNvIG1ha2UgdXAgYSBzb21ld2hhdCByYW5kb20gcmFua2luZyBvZiBwcmVmZXJlZCBvdXRwdXQKCSAgZm9ybWF0cyBmb3IgdGhlIHNhbWUgcmVhc29uLiBGaXhlcyAjNDg1ODI4LgoKMjAwNy0xMC0xMSAxNzo1NToyOSArMDAwMCAgSmFzb24gS2l2bGlnaG4gPGpraXZsaWdobkBnbWFpbC5jb20+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogRXh0cmFjdCBsaWNlbnNlL2NvcHlyaWdodCBVUklzIGZyb20gSUQzdjIgV0NPUCBmcmFtZXMgKEZpeGVzICM0NDcwMDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEphc29uIEtpdmxpZ2huICA8amtpdmxpZ2huIGdtYWlsIGNvbT4KCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzoKCSAgRXh0cmFjdCBsaWNlbnNlL2NvcHlyaWdodCBVUklzIGZyb20gSUQzdjIgV0NPUCBmcmFtZXMKCSAgKEZpeGVzICM0NDcwMDApLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM2RlbXV4LmM6CgkgICogdGVzdHMvZmlsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZmlsZXMvaWQzLTQ0NzAwMC13Y29wLnRhZzoKCSAgQWRkIHNpbXBsZSB1bml0IHRlc3QuCgoyMDA3LTEwLTExIDE2OjQxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzogQWRkIHN1cHBvcnQgZm9yIGxpY2Vuc2UvY29weXJpZ2h0IFVSSSB0YWdzIChJRDN2MiBXQ09QIGZyYW1lKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgQWRkIHN1cHBvcnQgZm9yIGxpY2Vuc2UvY29weXJpZ2h0IFVSSSB0YWdzIChJRDN2MiBXQ09QIGZyYW1lKS4KCSAgUHJlcmVxdWlzaXRlIGZvciAjNDQ3MDAwLgoKMjAwNy0xMC0wOCAxNzo0NDo0MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IEZpeCBjb21waWxlciB3YXJuaW5nIGJ5IHVzaW5nIEdTVF9DTE9DS19USU1FX05PTkUgdG8gaW5pdGlhbGlzZSBhIEdzdENsb2NrVGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZmx1c2gpOgoJICBGaXggY29tcGlsZXIgd2FybmluZyBieSB1c2luZyBHU1RfQ0xPQ0tfVElNRV9OT05FIHRvIGluaXRpYWxpc2UKCSAgYSBHc3RDbG9ja1RpbWUuCgoyMDA3LTEwLTA4IDExOjU4OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBNb3JlIHNlZWtpbmcgZml4ZXMsIG1vc3RseSBwYXNzaW5nIGFyb3VuZCB0aGUgbmV3IHBsYXliYWNrIHNlZ21lbnQgaW4gb3JkZXIgdG8gY29uZmlndXJlIGl0IHByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2ZsdXNoKSwKCSAgKGdzdF9ydHNwc3JjX2RvX3NlZWspLCAoZ3N0X3J0c3BzcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9ydHNwc3JjX2NvbmZpZ3VyZV9jYXBzKSwgKGdzdF9ydHNwc3JjX2xvb3BfdWRwKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3JhbmdlKSwgKGdzdF9ydHNwc3JjX29wZW4pLCAoZ3N0X3J0c3BzcmNfcGxheSksCgkgIChnc3RfcnRzcHNyY19jaGFuZ2Vfc3RhdGUpOgoJICBNb3JlIHNlZWtpbmcgZml4ZXMsIG1vc3RseSBwYXNzaW5nIGFyb3VuZCB0aGUgbmV3IHBsYXliYWNrIHNlZ21lbnQgaW4KCSAgb3JkZXIgdG8gY29uZmlndXJlIGl0IHByb3Blcmx5LgoJICBBbHNvIHJlc2V0IGJhc2VfdGltZSBvZiB1ZHAgc291cmNlcyB3aGVuIHNldHRpbmcgdGhlbSBiYWNrIHRvIFBMQVlJTkcgYXMKCSAgYSB0ZW1wb3JhcnkgaGFjayB1bnRpbCBjb3JlIHN1cHBvcnRzIHNlZWsgaW4gbGl2ZSBzb3VyY2VzIHByb3Blcmx5LgoKMjAwNy0xMC0wOCAxMDozNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6IEZpeCBjYXBzIGFzIHRvIG5vdCBjb25mdXNlIGF1dG9wbHVnZ2Vycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzoKCSAgRml4IGNhcHMgYXMgdG8gbm90IGNvbmZ1c2UgYXV0b3BsdWdnZXJzLgoKMjAwNy0xMC0wNiAxNjoxMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC86IFBvcnQgSUQzIHRhZyBkZW11eGVyIG92ZXIgdG8gdGhlIG5ldyBHc3RUYWdEZW11eCBpbiAtYmFzZSAobm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHRlc3QgcmUtaW1wb3J0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguaDoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmg6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6CgkgIFBvcnQgSUQzIHRhZyBkZW11eGVyIG92ZXIgdG8gdGhlIG5ldyBHc3RUYWdEZW11eCBpbiAtYmFzZQoJICAobm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHRlc3QgcmUtaW1wb3J0aW5nIHlvdXIgbXVzaWMKCSAgY29sbGVjdGlvbikuCgoyMDA3LTEwLTA2IDE1OjEzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2FwZXRhZy86IFBvcnQgQVBFIHRhZyBkZW11eGVyIG92ZXIgdG8gdGhlIG5ldyBHc3RUYWdEZW11eCBpbiAtYmFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FwZXRhZy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4LmM6CgkgICogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5oOgoJICAqIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4Lmg6CgkgIFBvcnQgQVBFIHRhZyBkZW11eGVyIG92ZXIgdG8gdGhlIG5ldyBHc3RUYWdEZW11eCBpbiAtYmFzZS4KCjIwMDctMTAtMDUgMTM6MTg6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IEltcHJvdmUgZmx1c2hpbmcgYmVoYXZpb3VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19mbHVzaCksCgkgIChnc3RfcnRzcHNyY19wZXJmb3JtX3NlZWspLCAoZ3N0X3J0c3BzcmNfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcnRzcHNyY19oYW5kbGVfaW50ZXJuYWxfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9zcmNfcXVlcnkpLCAobmV3X3Nlc3Npb25fcGFkKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdGNwKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwKCSAgKGdzdF9ydHNwc3JjX2xvb3Bfc2VuZF9jbWQpOgoJICBJbXByb3ZlIGZsdXNoaW5nIGJlaGF2aW91ci4KCSAgU2V0IHN0YXRlIG9mIHRoZSB1ZHAgc291cmNlcyB0byBQQVVTRS9QTEFZSU5HIGNvcnJlY3RseS4KCSAgSGFuZGxlIGV2ZW50cyBhbmQgcXVlcmllcyBmb3IgVURQIGFuZCBUQ1AgdHJhbnNwb3J0IG5vdy4KCjIwMDctMTAtMDQgMDc6Mjk6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9ydHAvOiBBZGQgbG9nIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSAgQWRkIGxvZyBjYXRlZ29yeS4KCjIwMDctMTAtMDQgMDc6MjQ6MDIgKzAwMDAgIFRpbW8gSG90dGkgPFRpbW8uSG90dGlAc3lzb3BlbmRpZ2lhLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHVuaXQgdGVzdHMgZm9yIHBheWxvYWRlcnMvZGVwYXlsb2FkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRpbW8gSG90dGkgPFRpbW8uSG90dGlAc3lzb3BlbmRpZ2lhLmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgcGF5bG9hZGVycy9kZXBheWxvYWRlcnMuCgoyMDA3LTEwLTAyIDEwOjQ5OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aW11eC4qOiBBbHNvIHNhdmUgY29kZWMgZGF0YSBmb3IgYXVkaW8gc3RyZWFtcy4gRml4ZXMgIzQ4MjQ5NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICBBbHNvIHNhdmUgY29kZWMgZGF0YSBmb3IgYXVkaW8gc3RyZWFtcy4gRml4ZXMgIzQ4MjQ5NS4KCjIwMDctMTAtMDIgMTA6MjM6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IEZpeCAiSW5kZXggZW50cnkgaGFzIGludmFsaWQgc3RyZWFtIG5yIDEiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBGaXggIkluZGV4IGVudHJ5IGhhcyBpbnZhbGlkIHN0cmVhbSBuciAxIi4KCSAgQWRkIHN1cHBvcnQgZm9yIG11eGluZyBhYWMgLSB3b3JrIGluIHByb2dyZXNzIChzZWUgIzQ4MjQ5NSkuCgoyMDA3LTEwLTAxIDE2OjM0OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBQYXJzZSBiYW5kd2lkdGggbW9kaWZpZXJzLCB0aGV5IGFyZSBub3QgeWV0IGNvbmZpZ3VyZWQgaW4gdGhlIHNlc3Npb24gbWFuYWdlciBiZWNhdXNlIHdlIGRvbid0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2dldF9iYW5kd2lkdGgpLAoJICAoZ3N0X3J0c3BzcmNfY29sbGVjdF9iYW5kd2lkdGgpLCAoZ3N0X3J0c3BzcmNfY3JlYXRlX3N0cmVhbSksCgkgIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgUGFyc2UgYmFuZHdpZHRoIG1vZGlmaWVycywgdGhleSBhcmUgbm90IHlldCBjb25maWd1cmVkIGluIHRoZSBzZXNzaW9uCgkgIG1hbmFnZXIgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGFuIEFQSSBmb3IgdGhhdCB5ZXQuCgoyMDA3LTEwLTAxIDEzOjU3OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBVc2Ugc2hpbnkgbmV3IGZ1bmN0aW9uIGluIC1iYXNlIHRvIGdldCB0aGUgZGVmYXVsdCBjbG9jay1yYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19wYXJzZV9ydHBtYXApLAoJICAoZ3N0X3J0c3BzcmNfbWVkaWFfdG9fY2FwcyksIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKToKCSAgVXNlIHNoaW55IG5ldyBmdW5jdGlvbiBpbiAtYmFzZSB0byBnZXQgdGhlIGRlZmF1bHQgY2xvY2stcmF0ZS4KCSAgVXBkYXRlIHNvbWUgZG9jcy4KCjIwMDctMDktMjkgMTI6NTA6MzYgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBBZGQgZmlsZXMgdG8gd2luMzIgbWFuaWZlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBBZGQgZmlsZXMgdG8gd2luMzIgbWFuaWZlc3QuCgkgICogd2luMzIvdnM2L2xpYmdzdGF1ZGlvZnguZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RxdGRlbXV4LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cnRwLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cnRzcC5kc3A6CgkgIFVwZGF0ZSBwcm9qZWN0IGZpbGVzLgoKMjAwNy0wOS0yOCAxNDo1NjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogSW4gVENQIG1vZGUsIG9ubHkgdGltZXN0YW1wIHRoZSBmaXJzdCBidWZmZXIuIFRDUCBpcyBub3QgcmVhbCB0aW1lIGFuZCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwKCSAgKGdzdF9ydHNwc3JjX3BsYXkpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgSW4gVENQIG1vZGUsIG9ubHkgdGltZXN0YW1wIHRoZSBmaXJzdCBidWZmZXIuIFRDUCBpcyBub3QgcmVhbCB0aW1lIGFuZAoJICBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHRyeSB0byBza2V3IGNvbXBlbnNhdGUsIGFsc28gc29tZSBzZXJ2ZXJzIHNlbmQKCSAgdGhlIGZpcnN0IGJhdGNoIG9mIGRhdGEgaW4gYSBidXJzdC4KCjIwMDctMDktMjcgMTU6MDA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogRml4IHNldHRpbmcgdGhlIGRpc2NvbnQgZmxhZyBvbiB0aGUgZmlyc3QgYnVmZmVyIHB1c2hlZCBkb3duc3RyZWFtIGZvciBmb3JtYXRzIHdpdGggcHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIEZpeCBzZXR0aW5nIHRoZSBkaXNjb250IGZsYWcgb24gdGhlIGZpcnN0IGJ1ZmZlcgoJICBwdXNoZWQgZG93bnN0cmVhbSBmb3IgZm9ybWF0cyB3aXRoIHByaXZhdGUgY29kZWMKCSAgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIGRlc2VyaWFsaXNlZCBpbnRvIGJ1ZmZlcnMKCSAgKHN1Y2ggYXMgdm9yYmlzIGFuZCBGTEFDIHdoZW4gaW4gYSBtYXRyb3NrYSBjb250YWluZXIpLgoKMjAwNy0wOS0yNyAxMToxMDoxMiArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS4qOiBGcmVlIHRoZSBjb25maWcgc3RyaW5nLiBGaXhlcyAjNDgwNzA3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOiAoZ3N0X3J0cF9tcDR2X3BheV9pbml0KSwKCSAgKGdzdF9ydHBfbXA0dl9wYXlfZmluYWxpemUpLCAoZ3N0X3J0cF9tcDR2X3BheV9mbHVzaCksCgkgIChnc3RfcnRwX21wNHZfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJICBGcmVlIHRoZSBjb25maWcgc3RyaW5nLiBGaXhlcyAjNDgwNzA3LgoJICBDbGVhbiB1cCB0aGUgdGltZXN0YW1wIGNvZGUgYSBsaXR0bGUuCgoyMDA3LTA5LTI2IDIwOjEyOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBTZXQgdGltZXN0YW1wcyBvbiBSVFAgYnVmZmVycyBpbiBpbnRlcmxlYXZlZCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCksCgkgIChnc3RfcnRzcHNyY19sb29wX3VkcCksIChnc3RfcnRzcHNyY19jbG9zZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBTZXQgdGltZXN0YW1wcyBvbiBSVFAgYnVmZmVycyBpbiBpbnRlcmxlYXZlZCBtb2RlLgoJICBNYXJrIGZpcnN0IGJ1ZmZlcnMgd2l0aCBhIERJU0NPTlQuCgkgIFJlbW92ZSBmbHVzaCBoYWNrIG5vdyB0aGF0IHN5bmMgZm9yIGxpdmUgc291cmNlcyBoYXMgYmVlbiBmaWd1cmVkIG91dC4KCjIwMDctMDktMjYgMTQ6Mjg6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY3JlYXRlKToKCSAgVXBkYXRlIGRvY3VtZW50YXRpb24uCgoyMDA3LTA5LTI2IDE0OjI2OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvZ3N0cnRweHF0ZGVwYXkuKjogRmFpbCBpZiB3ZSBkb24ndCBrbm93IHRoZSBxdWlja3RpbWUgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9nc3RydHB4cXRkZXBheS5jOiAoZ3N0X3J0cF94cXRfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX3hxdF9kZXBheV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5Lmg6CgkgIEZhaWwgaWYgd2UgZG9uJ3Qga25vdyB0aGUgcXVpY2t0aW1lIGZvcm1hdC4KCjIwMDctMDktMjYgMTM6MTk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZW5jLio6IFNhdmUgdGhlIGZsb3cgcmV0dXJuIGZyb20gdGhlIGxhc3QgZ3N0X3BhZF9wdXNoKCkgYW5kIG1ha2Ugc3VyZSB3ZSBwYXNzIHRoZSByaWdodCBmbG93IHJldHVybiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgU2F2ZSB0aGUgZmxvdyByZXR1cm4gZnJvbSB0aGUgbGFzdCBnc3RfcGFkX3B1c2goKSBhbmQKCSAgbWFrZSBzdXJlIHdlIHBhc3MgdGhlIHJpZ2h0IGZsb3cgcmV0dXJuIHZhbHVlIHVwc3RyZWFtCgkgIGluIHRoZSBjYXNlIG9mIGZhaWx1cmU7IG1pbm9yIGNsZWFuLXVwcy4KCjIwMDctMDktMjUgMTk6MDk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBHU1RfVEFHX0NPTVBPU0VSICgjNDU5ODA5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RhcGV2Mm11eC5jYzoKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICAqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcgR1NUX1RBR19DT01QT1NFUiAoIzQ1OTgwOSkuCgoyMDA3LTA5LTI1IDE3OjE4OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2xhdy86IENvbXB1bHNpdmUgY2xlYW4tdXBzOiB1c2UgYm9pbGVycGxhdGUgbWFjcm9zLCBhZGQgZGVidWcgY2F0ZWdvcmllcywgZml4IHVwIHRoaW5ncyB0byBjb25mb3JtIHRvIHN5bWJvbCBub21lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzoKCSAgKiBnc3QvbGF3L2FsYXctZGVjb2RlLmg6CgkgICogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOgoJICAqIGdzdC9sYXcvYWxhdy1lbmNvZGUuaDoKCSAgKiBnc3QvbGF3L2FsYXcuYzoKCSAgKiBnc3QvbGF3L211bGF3LWNvbnZlcnNpb24uaDoKCSAgQ29tcHVsc2l2ZSBjbGVhbi11cHM6IHVzZSBib2lsZXJwbGF0ZSBtYWNyb3MsIGFkZCBkZWJ1ZwoJICBjYXRlZ29yaWVzLCBmaXggdXAgdGhpbmdzIHRvIGNvbmZvcm0gdG8gc3ltYm9sIG5vbWVua2xhdHVyYSwKCSAgZXRjLgoKMjAwNy0wOS0yNSAxNjowNToyOSArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgZ3N0L2xhdy86IFVzZSBzdGF0aWMgdGFibGVzIGZvciBBLUxhdyBkZWNvZGluZyBhbmQgZW5jb2Rpbmc7IHRoaXMgbWFrZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCAgPHNwZ2xlZ2xlIHlhaG9vIGZyPgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzoKCSAgKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkgIFVzZSBzdGF0aWMgdGFibGVzIGZvciBBLUxhdyBkZWNvZGluZyBhbmQgZW5jb2Rpbmc7IHRoaXMgbWFrZXMKCSAgQS1MYXcgZGVjb2RpbmcgYW5kIGVuY29kaW5nIGxlc3MgQ1BVLWludGVuc2l2ZSwgYnV0IGluY3JlYXNlcwoJICB0aGUgYmluYXJ5IHNpemUgYSBiaXQuIExlYXZpbmcgb2xkIGNvZGUgYXJvdW5kIGZvciBub3csCgkgIHNlbGVjdGFibGUgYnkgYSBkZWZpbmUgaW4gdGhlIGNvZGUuIEZpeGVzICM0MzU0MzUuCgoyMDA3LTA5LTI1IDA4OjUxOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBR19HU1RfQVJHX1dJVEhfUExVR0lOUywgQUdfR1NUX0FSR19FTkFCTEVfRVhURVJOQUwgYW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFHX0dTVF9BUkdfV0lUSF9QTFVHSU5TLCBBR19HU1RfQVJHX0VOQUJMRV9FWFRFUk5BTCBhbmQKCSAgQUdfR1NUX0FSR19FTkFCTEVfRVhQRVJJTUVOVEFMIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhvc2UgbWFjcm9zCgkgIGluIGNvbmZpZ3VyZS5hYy4KCjIwMDctMDktMjUgMDU6MDM6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIGZvdXJjY3MgZm9yIE1QRUcyIEhEViBzdHJlYW1zLiBGaXhlcyAjNDc5OTYwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IDxqIGF0IGJvb3RsYWIgZG90IG9yZz4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICBBZGQgZm91cmNjcyBmb3IgTVBFRzIgSERWIHN0cmVhbXMuIEZpeGVzICM0Nzk5NjAuCgoyMDA3LTA5LTI0IDEwOjUzOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYXNzaXZlIGxlYWsgZml4aW5nLCBwbHVzIGNvZGUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKiBleHQveDI2NC9nc3R4MjY0ZW5jLmM6CgkgICogZ3N0L2R2ZHNwdS9nc3RkdmRzcHUuYzoKCSAgKiBnc3QvZHZkc3B1L2dzdGR2ZHNwdS5oOgoJICAqIGdzdC9mZXN0aXZhbC9nc3RmZXN0aXZhbC5jOgoJICAqIGdzdC9oMjY0cGFyc2UvZ3N0aDI2NHBhcnNlLmM6CgkgICogZ3N0L21wZWd0c3BhcnNlL21wZWd0c3BhY2tldGl6ZXIuYzoKCSAgKiBnc3QvbXBlZ3RzcGFyc2UvbXBlZ3RzcGFyc2UuYzoKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOgoJICAqIGdzdC9udXZkZW11eC9nc3RudXZkZW11eC5jOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvZ3N0ZHNob3dhdWRpb3NyYy5jOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvZ3N0ZHNob3d2aWRlb3NyYy5jOgoJICAqIHN5cy92Y2QvdmNkc3JjLmM6CgkgIE1hc3NpdmUgbGVhayBmaXhpbmcsIHBsdXMgY29kZSBjbGVhbnVwcy4KCjIwMDctMDktMjMgMTg6NTc6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmM6IFVzZSBHU1RfV0FSTklORyBpbnN0ZWFkIG9mIGEgZ19jcml0aWNhbC4gVGhpcyBzaXR1YXRpb24gaXMgbm90IGNhdXNlZCBieSB0aGUgYXBwbGljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmM6CgkgIFVzZSBHU1RfV0FSTklORyBpbnN0ZWFkIG9mIGEgZ19jcml0aWNhbC4gVGhpcyBzaXR1YXRpb24gaXMgbm90IGNhdXNlZAoJICBieSB0aGUgYXBwbGljYXRpb24uCgoyMDA3LTA5LTIyIDE4OjE1OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vbmwucG86CgkgIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoKMjAwNy0wOS0yMiAxODoxMzo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby9ldS5wbzogQWRkZWQgQmFzcXVlIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogTWlrZWwgT2xhc2FnYXN0aSA8aGV5X25la2VuQG11bmR1cmF0Lm5ldD4KCSAgKiBwby9ldS5wbzoKCSAgQWRkZWQgQmFzcXVlIHRyYW5zbGF0aW9uLgoKMjAwNy0wOS0yMiAxODoxMzoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IEFkZGVkIENoaW5lc2UgKHRyYWRpdGlvbmFsIGFuZCBIb25nIEtvbmcpIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogQWJlbCBDaGV1bmcgPGFiZWxjaGV1bmdAZ21haWwuY29tPgoJICAqIHBvL3poX0hLLnBvOgoJICAqIHBvL3poX1RXLnBvOgoJICBBZGRlZCBDaGluZXNlICh0cmFkaXRpb25hbCBhbmQgSG9uZyBLb25nKSB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjIgMTg6MTA6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vcGwucG86IEFkZGVkIFBvbGlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC1saW51eC5vcmc+CgkgICogcG8vcGwucG86CgkgIEFkZGVkIFBvbGlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjIgMTg6MDk6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vZmkucG86IEFkZGVkIEZpbm5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBJbGtrYSBUdW9oZWxhIDxoaWxlQGlraS5maT4KCSAgKiBwby9maS5wbzoKCSAgQWRkZWQgRmlubmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjIgMTg6MDk6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vZXMucG86IEFkZGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBKb3JnZSBHb256w6FsZXogR29uesOhbGV6IDxhbG9yaWVsQGdtYWlsLmNvbT4KCSAgKiBwby9lcy5wbzoKCSAgQWRkZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjIgMTg6MDg6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vZGEucG86IEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyYW5zbGF0ZWQgYnk6IE1vZ2VucyBKYWVnZXIgPG1vZ2Vuc0BqYWVnZXIudGY+CgkgICogcG8vZGEucG86CgkgIEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjIgMTg6MDY6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vemhfQ04ucG86IEFkZGVkIENoaW5lc2UgKHNpbXBsaWZpZWQpIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogRnVuZGEgV2FuZyA8ZnVuZGF3YW5nQGxpbnV4Lm5ldC5jbj4KCSAgKiBwby96aF9DTi5wbzoKCSAgQWRkZWQgQ2hpbmVzZSAoc2ltcGxpZmllZCkgdHJhbnNsYXRpb24uCgoyMDA3LTA5LTIyIDE4OjA1OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvL2JnLnBvOiBBZGRlZCBCdWxnYXJpYW4gdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBBbGV4YW5kZXIgU2hvcG92IDxhc2hAY29udGFjdC5iZz4KCSAgKiBwby9iZy5wbzoKCSAgQWRkZWQgQnVsZ2FyaWFuIHRyYW5zbGF0aW9uLgoKMjAwNy0wOS0yMiAwODoxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmg6CgkgIGZpeCBoZWFkZXIgYW5kIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggaGVhZGVyIGFuZCBjb21tZW50cwoKMjAwNy0wOS0yMSAxMTozNDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogU2V0IG91dGdvaW5nIHBhY2tldCBkdXJhdGlvbiBiZWNhdXNlIHdlIGNhbi4gRml4ZXMgIzQ3ODI0NCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogKGdzdF9ydHBfYW1yX2RlcGF5X3Byb2Nlc3MpOgoJICBTZXQgb3V0Z29pbmcgcGFja2V0IGR1cmF0aW9uIGJlY2F1c2Ugd2UgY2FuLiBGaXhlcyAjNDc4MjQ0IHNvbWUgbW9yZS4KCjIwMDctMDktMjAgMTM6MzU6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiBBZGQgaW5mbyBhYm91dCBzdGF0aWMgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6CgkgIEFkZCBpbmZvIGFib3V0IHN0YXRpYyBsZWFrLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIEltcHJvdmVkIHN0YXRlIGNoYW5nZSB1bml0IHRlc3QuCgoyMDA3LTA5LTE5IDE4OjE5OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJZ25vcmUgcmVnaXN0cmllcyBpbiBhbnkgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOgoJICBJZ25vcmUgcmVnaXN0cmllcyBpbiBhbnkgZm9ybWF0LgoKMjAwNy0wOS0xOSAxNjoyNDowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6IFJlbW92ZWQgc29tZSB1bnVzZWQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzogKGdzdF9ydHBfTDE2X3BheV9oYW5kbGVfYnVmZmVyKToKCSAgUmVtb3ZlZCBzb21lIHVudXNlZCBjb2RlLgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6IChnc3RfcnRwX2Ftcl9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzogKGdzdF9ydHBfZ3NtX3BheV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wMnRwYXkuYzogKGdzdF9ydHBfbXAydF9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOiAoZ3N0X3J0cF9zcGVleF9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzogKGdzdF9ydHBfdGhlb3JhX3BheV9pbml0X3BhY2tldCksCgkgIChnc3RfcnRwX3RoZW9yYV9wYXlfZmx1c2hfcGFja2V0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZ3N0X3J0cF92b3JiaXNfcGF5X2ZsdXNoX3BhY2tldCk6CgkgIFRyeSB0byBwcmVzZXJ2ZSB0aGUgaW5jb21taW5nIGJ1ZmZlciBkdXJhdGlvbiBvbiB0aGUgb3V0Z29pbmcKCSAgcGFja2V0cy4gRml4ZXMgIzQ3ODI0NC4KCjIwMDctMDktMTkgMTA6MjI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliLzogV29yayBhcm91bmQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnKystNC4yIHdoZW4gYXNzaWduaW5nIGEgc3RyaW5nIGNvbnN0YW50IHRvIGEgZ2NoYXIgKiAocGFydGlhbGx5IGZpeGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RhcGV2Mm11eC5jYzoKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICBXb3JrIGFyb3VuZCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGcrKy00LjIgd2hlbiBhc3NpZ25pbmcgYQoJICBzdHJpbmcgY29uc3RhbnQgdG8gYSBnY2hhciAqIChwYXJ0aWFsbHkgZml4ZXMgIzQ3ODA5MikuCgoyMDA3LTA5LTE4IDE2OjQ0OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBXZSByZXF1aXJlIGNvcmUgQ1ZTIG5vdyBmb3IgZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXAoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBXZSByZXF1aXJlIGNvcmUgQ1ZTIG5vdyBmb3IgZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXAoKS4KCjIwMDctMDktMTggMTM6NTU6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9zcGVjdHJ1bS86IEhhbmRsaW5nIHdpbmRvdyByZXNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLWF1ZGlvdGVzdC5jOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJICBIYW5kbGluZyB3aW5kb3cgcmVzaXplLgoKMjAwNy0wOS0xOCAxMTo0NTowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBBZGQgbWlzc2luZyBuZXdsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIEFkZCBtaXNzaW5nIG5ld2xpbmUuCgkgICogZ3N0L2xpYnJmYi9yZmJkZWNvZGVyLmM6CgkgIEZpeCB0aGUgYnVpbGQgKG1pc3Npbmcgc3RkbGliLmgpLgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5oOgoJICBVc2UgYmFzZXRyYW5zZm9ybSBzZWdtZW50IHNvIHRoYXQgaXQgaXMgY29ycmVjdGx5IG1hbmFnZWQgb24gZmx1c2hlcwoJICBhbmQgc3RhcnQvc3RvcC4gUmVwb3J0IG1lc3NhZ2UgdGltZXN0YW1wIGFzIHN0cmVhbSB0aW1lLCB3aGljaCBpcyB3aGF0CgkgIGFuIGFwcGxpY2F0aW9uIGNhbiB1bmRlcnN0YW5kLiAoWWVzIHRoZXNlIGFyZSBhZGFwdGVkIGZyb20gd2ltIHJlY2VudAoJICBsZXZlbCBlbGVtZW50IGNoYW5nZXMpCgoyMDA3LTA5LTE3IDE3OjM1OjEzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IEZpeCBjb21waWxlciB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuYzogKGdzdF9hdWRpb19keW5hbWljX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NyZWF0ZV9zdHJlYW0pLAoJICAobmV3X3Nlc3Npb25fcGFkKSwgKHJlcXVlc3RfcHRfbWFwKSwgKGdzdF9ydHNwc3JjX2RvX3N0cmVhbV9lb3MpLAoJICAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCksIChnc3RfcnRzcHNyY19wYXJzZV9ydHBpbmZvKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKToKCSAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgoyMDA3LTA5LTE3IDAyOjA1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBHaXZlIG1lYW5pbmdmdWxsIGVycm9yIHdoZW4gYWxsIHN0cmVhbXMgZmFpbGVkIHRvIGNvbmZpZ3VyZSBmb3Igc29tZSByZWFzb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3NldHVwX3N0cmVhbXMpLAoJICAoZ3N0X3J0c3BzcmNfZHVwX3ByaW50Zik6CgkgIEdpdmUgbWVhbmluZ2Z1bGwgZXJyb3Igd2hlbiBhbGwgc3RyZWFtcyBmYWlsZWQgdG8gY29uZmlndXJlIGZvciBzb21lCgkgIHJlYXNvbi4KCjIwMDctMDktMTYgMTk6MTM6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL1JFQURNRTogVXBkYXRlIFJFQURNRSB3aXRoIHRoZSBkZXNpZ24gZm9yIHN5bmNocm9uaXNhdGlvbiBydWxlcyBvZiBSVFAgb24gc2VuZGVyIGFuZCByZWNlaXZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9SRUFETUU6CgkgIFVwZGF0ZSBSRUFETUUgd2l0aCB0aGUgZGVzaWduIGZvciBzeW5jaHJvbmlzYXRpb24gcnVsZXMgb2YgUlRQIG9uCgkgIHNlbmRlciBhbmQgcmVjZWl2ZXIuCgoyMDA3LTA5LTE0IDA5OjQwOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogRG9uJ3QgcHVzaCBFT1MgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb24sIHRoZSBlbGVtZW50IGRyaXZpbmcgdGhlIHBpcGVsaW5lIGlzIHJlc3BvbnNpYmxlIGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfbG9vcCksCgkgIChnc3Rfd2F2cGFyc2VfY2hhaW4pOgoJICBEb24ndCBwdXNoIEVPUyBmcm9tIHRoZSBjaGFpbiBmdW5jdGlvbiwgdGhlIGVsZW1lbnQKCSAgZHJpdmluZyB0aGUgcGlwZWxpbmUgaXMgcmVzcG9uc2libGUgZm9yIHRoaXMuIFRoZSBidWcKCSAgdGhpcyB3YXMgbWVhbnQgdG8gZml4IHNlZW1zIHRvIGJlIHF1ZXVlIG5vdCBmb3J3YXJkaW5nCgkgIEVPUyBpbiBhbGwgY2FzZXMgKHNlZSAjNDc2NTE0KS4KCjIwMDctMDktMTMgMTc6MzE6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbGV2ZWwvZ3N0bGV2ZWwuKjogVXNlIGJhc2V0cmFuc2Zvcm0gc2VnbWVudCBzbyB0aGF0IGl0IGlzIGNvcnJlY3RseSBtYW5hZ2VkIG9uIGZsdXNoZXMgYW5kIHN0YXJ0L3N0b3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiAoZ3N0X2xldmVsX2NsYXNzX2luaXQpLCAoZ3N0X2xldmVsX3N0YXJ0KSwKCSAgKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5oOgoJICBVc2UgYmFzZXRyYW5zZm9ybSBzZWdtZW50IHNvIHRoYXQgaXQgaXMgY29ycmVjdGx5IG1hbmFnZWQgb24gZmx1c2hlcyBhbmQKCSAgc3RhcnQvc3RvcC4KCSAgUmVwb3J0IG1lc3NhZ2UgdGltZXN0YW1wIGFzIHN0cmVhbSB0aW1lLCB3aGljaCBpcyB3aGF0IGFuIGFwcGxpY2F0aW9uCgkgIGNhbiB1bmRlcnN0YW5kLgoKMjAwNy0wOS0xMyAxNTowNDoxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgVXBkYXRlIG15IG1haWwgYWRkcmVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RhcGV2Mm11eC5jYzoKCSAgKiBleHQvdGFnbGliL2dzdGFwZXYybXV4Lmg6CgkgICogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hcGV2Mm11eC5jOgoJICBVcGRhdGUgbXkgbWFpbCBhZGRyZXNzLgoKMjAwNy0wOS0xMyAxMjozNzo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEFkZCBFT1MgbG9naWMgZm9yIHRoZSBwdXNoLWJhc2VkIG1vZGUgdG9vLiBGaXhlcyAjNDc2NTE0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9wZXJmb3JtX2VvcyksCgkgIChnc3Rfd2F2cGFyc2VfbG9vcCksIChnc3Rfd2F2cGFyc2VfY2hhaW4pOgoJICBBZGQgRU9TIGxvZ2ljIGZvciB0aGUgcHVzaC1iYXNlZCBtb2RlIHRvby4gRml4ZXMgIzQ3NjUxNC4KCjIwMDctMDktMTIgMjI6MDE6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbGF3LzogRml4IGxhdyBlbmNvZGVyIHRpbWVzdGFtcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzogKGdzdF9hbGF3ZW5jX2luaXQpLCAoZ3N0X2FsYXdlbmNfY2hhaW4pOgoJICAqIGdzdC9sYXcvYWxhdy1lbmNvZGUuaDoKCSAgKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOiAoZ3N0X211bGF3ZW5jX2luaXQpLAoJICAoZ3N0X211bGF3ZW5jX2NoYWluKToKCSAgKiBnc3QvbGF3L211bGF3LWVuY29kZS5oOgoJICBGaXggbGF3IGVuY29kZXIgdGltZXN0YW1wcy4KCjIwMDctMDktMTIgMDk6MTM6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOiBGaXggd2FybmluZyB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOgoJICBGaXggd2FybmluZyB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgZGVidWcuCgkgICogc3lzL29zcy9nc3Rvc3NtaXhlcnRyYWNrLmM6CgkgIFVzZSBjb25zdCBsaWtlIGluIGFsc2FtaXhlcnRyYWNrLmMgKGZpeGVzIHdhcm5pbmdzKS4KCjIwMDctMDktMTIgMDg6Mzg6MjEgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ3NjEyOCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC1saWJzL2dzdC9hcHAvZ3N0YXBwc2luay5jOgoJICAqIGdzdC9mbHYvZ3N0Zmx2ZGVtdXguYzoKCSAgKiBnc3QvZmx2L2dzdGZsdnBhcnNlLmM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guYzoKCSAgUHJpbnRmIGZvcm1hdCBmaXhlcyAoIzQ3NjEyOCkuCgoyMDA3LTA5LTExIDE1OjM3OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBGaXggZnJhbWVyYXRlIGRldGVjdGlvbiBjb2RlIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICAoZ3N0X3Y0bDJzcmNfcHJvYmVfY2Fwc19mb3JfZm9ybWF0X2FuZF9zaXplKToKCSAgRml4IGZyYW1lcmF0ZSBkZXRlY3Rpb24gY29kZSBzb21lIG1vcmUuCgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGVyZSBpcyBhIHdlaXJkIHN0ZXAgaW4gdGhlIHN0ZXB3aXNlIGZyYW1lcmF0ZXMuCgkgIERvbid0IG92ZXJ3cml0ZSB0aGUgbWluIGludGVydmFsIHdpdGggdGhlIGZyYW1lcmF0ZSwgdXNlIGEgdGVtcCB2YXJpYWJsZQoJICBpbnN0ZWFkLgoJICBVc2UgbWF4IGluIHRoZSBDb250aW51b3VzIGZyYW1lcmF0ZSBpbnRlcnZhbHMgaW5zdGVhZCBvZiBzdGVwLCB3aGljaCBpcwoJICAxIGFjY29yZGluZyB0byB0aGUgZG9jcy4gRml4ZXMgIzQ3NTQyNC4KCjIwMDctMDktMTAgMTk6NTM6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBNYWtlIHVkcHNyYyB0aW1lc3RhbXAgb3V0Z29pbmcgYnVmZmVycyBiYXNlZCBvbiB3aGVuIHRoZXkgd2VyZSByZWNlaXZlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfaW5pdCksIChnc3RfdWRwc3JjX2NyZWF0ZSk6CgkgIE1ha2UgdWRwc3JjIHRpbWVzdGFtcCBvdXRnb2luZyBidWZmZXJzIGJhc2VkIG9uIHdoZW4gdGhleSB3ZXJlIHJlY2VpdmVkLgoJICBBbHNvIG1ha2UgaXQgb3V0cHV0IGEgc2VnbWVudCBpbiB0aW1lLgoKMjAwNy0wOS0xMCAwNjo0OTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBQbHVnIGEgbGl0dGxlIGxlYWsuIExpdHRsZSBjb2RlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIFBsdWcgYSBsaXR0bGUgbGVhay4gTGl0dGxlIGNvZGUgY2xlYW51cHMuCgoyMDA3LTA5LTA5IDE4OjA4OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQUNfVFJZX0NPTVBJTEUgaW5zdGVhZCBvZiBBQ19UUllfUlVOIHRvIGNoZWNrIGZvciBvbGQgZmxhYyB2ZXJzaW9ucywgJ3MgZ29vZCBmb3IgY3Jvc3MtY29tcGlsYXRpb24gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFDX1RSWV9DT01QSUxFIGluc3RlYWQgb2YgQUNfVFJZX1JVTiB0byBjaGVjayBmb3Igb2xkCgkgIGZsYWMgdmVyc2lvbnMsICdzIGdvb2QgZm9yIGNyb3NzLWNvbXBpbGF0aW9uIGthcm1hLgoKMjAwNy0wOS0wNyAxODowNDo0MSArMDAwMCAgSGFha29uIFNwb3JzaGVpbSA8aGFha29uLnNwb3JzaGVpbUB0YW5kYmVyZy5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzogRml4IHVwIGhlYWRlciBzdHJ1Y3R1cmUgc28gdGhhdCBjb21waWxlcnMgZG9uJ3QgYWRkIHBhZGRpbmcgYmV0d2VlbiB0aGUgc3RydWN0dXJlIGZpZWxkcywgc2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBIYWFrb24gU3BvcnNoZWltICA8aGFha29uLnNwb3JzaGVpbSBhdCB0YW5kYmVyZyBjb20+CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkgIEZpeCB1cCBoZWFkZXIgc3RydWN0dXJlIHNvIHRoYXQgY29tcGlsZXJzIGRvbid0IGFkZCBwYWRkaW5nCgkgIGJldHdlZW4gdGhlIHN0cnVjdHVyZSBmaWVsZHMsIHNpbmNlIHRoYXQgd291bGQgbGVhZCB0byB1cwoJICBzZW5kaW5nIFJUUCBwYWNrZXRzIHdpdGggYnJva2VuIGhlYWRlcnMgKGFzIGlzIGN1cnJlbnRseSB0aGUKCSAgY2FzZSB3aGVuIGNvbXBpbGluZyB3aXRoIE1TVkMpLiBBbHNvIHNlZSBzaW1pbGFyIGZpeGVzIGluCgkgIGxpYmdzdHJ0cCBpbiBnc3QtcGx1Z2lucy1iYXNlLiAoIzQ3NDYxNjsgIzQ3MTE5NCkKCjIwMDctMDktMDcgMTY6MDQ6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IERvbid0IG92ZXJ3cml0ZSBvdXIgR1ZhbHVlIHdpdGggMCBidXQgaW5zdGVhZCB1c2UgdGhlIHByZXZpb3VzbHkgY29tcHV0ZWQgdmFsdWUuIEZpeGVzICM0NzEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICAoZ3N0X3Y0bDJzcmNfcHJvYmVfY2Fwc19mb3JfZm9ybWF0X2FuZF9zaXplKToKCSAgRG9uJ3Qgb3ZlcndyaXRlIG91ciBHVmFsdWUgd2l0aCAwIGJ1dCBpbnN0ZWFkIHVzZSB0aGUgcHJldmlvdXNseQoJICBjb21wdXRlZCB2YWx1ZS4gRml4ZXMgIzQ3MTgyMyBzb21lIG1vcmUuCgoyMDA3LTA5LTA3IDE1OjU0OjM4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogVXNlIHRoZSBjb3JyZWN0IHBhcmFtZXRlciBvcmRlciBmb3IgdGhlIG1lbXNldCBjYWxscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fc3RhcnQpLAoJICAoZ3N0X3NwZWN0cnVtX3RyYW5zZm9ybV9pcCk6CgkgIFVzZSB0aGUgY29ycmVjdCBwYXJhbWV0ZXIgb3JkZXIgZm9yIHRoZSBtZW1zZXQgY2FsbHMuCgkgIFRoYW5rcyB0byBDaHJpc3RpYW4gU2NoYWxsZXIgZm9yIG5vdGljaW5nLgoKMjAwNy0wOS0wNiAxMjowMDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OiBObyB0YWJzIGluIHRoaXMgZmlsZSBwbGVhc2UsIG9yIGd0ay1kb2Mgd2lsbCBlbmQgdXAgZG9jdW1lbnRpbmcgcmF0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgTm8gdGFicyBpbiB0aGlzIGZpbGUgcGxlYXNlLCBvciBndGstZG9jIHdpbGwgZW5kIHVwIGRvY3VtZW50aW5nCgkgIHJhdGhlciBhYnN1cmQgY2xhc3MgaGllcmFyY2hpZXMuCgoyMDA3LTA5LTA2IDEwOjQ4OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuYzogSWYgdGhlIG5ldyBraWQgZWxlbWVudCBmYWlscyB0byBjaGFuZ2Ugc3RhdGUgZm9yIHNvbWUgcmVhc29uIGZvcndhcmQgdGhlIGVycm9yIG1lc3NhZ2UgaXQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6CgkgIElmIHRoZSBuZXcga2lkIGVsZW1lbnQgZmFpbHMgdG8gY2hhbmdlIHN0YXRlIGZvciBzb21lIHJlYXNvbgoJICAoZS5nLiBlc2RzaW5rIG5vdCBiZWluZyBhYmxlIHRvIGNvbm5lY3QgdG8gdGhlIHNvdW5kIHNlcnZlciksCgkgIGZvcndhcmQgdGhlIGVycm9yIG1lc3NhZ2UgaXQgcG9zdGVkIG9uIHRoZSBidXMgaW5zdGVhZCBvZiBqdXN0CgkgIHBvc3RpbmcgYSBnZW5lcmljICdJbnRlcm5hbCBzdGF0ZSBjaGFuZ2UgZXJyb3I6IHBsZWFzZSBmaWxlIGEKCSAgYnVnJyBlcnJvciBtZXNzYWdlLiBGaXhlcyAjNDcxMzY0LgoKMjAwNy0wOS0wNiAwNzoyMToyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgUG9ydCBHc3RTcGVjdHJ1bSB0byBHc3RBdWRpb0ZpbHRlciBhbmQgbGliZ3N0ZmZ0LCBhZGQgc3VwcG9ydCBmb3IgaW50MzIsIGZsb2F0IGFuZCBkb3VibGUsIHVzZSBmbG9hdHMgZm9yIHRoZSBtZXNzYWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3Qvc3BlY3RydW0vTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6IChkcmF3X3NwZWN0cnVtKSwKCSAgKG1lc3NhZ2VfaGFuZGxlciksIChtYWluKToKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogKGRyYXdfc3BlY3RydW0pLCAobWVzc2FnZV9oYW5kbGVyKToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9iYXNlX2luaXQpLAoJICAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpLCAoZ3N0X3NwZWN0cnVtX2luaXQpLAoJICAoZ3N0X3NwZWN0cnVtX2Rpc3Bvc2UpLCAoZ3N0X3NwZWN0cnVtX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3BlY3RydW1fZ2V0X3Byb3BlcnR5KSwgKGdzdF9zcGVjdHJ1bV9zdGFydCksCgkgIChnc3Rfc3BlY3RydW1fc2V0dXApLCAoZ3N0X3NwZWN0cnVtX21lc3NhZ2VfbmV3KSwKCSAgKGdzdF9zcGVjdHJ1bV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5oOgoJICBQb3J0IEdzdFNwZWN0cnVtIHRvIEdzdEF1ZGlvRmlsdGVyIGFuZCBsaWJnc3RmZnQsIGFkZCBzdXBwb3J0CgkgIGZvciBpbnQzMiwgZmxvYXQgYW5kIGRvdWJsZSwgdXNlIGZsb2F0cyBmb3IgdGhlIG1lc3NhZ2UgY29udGVudHMsCgkgIGF2ZXJhZ2UgYWxsIEZGVHMgZG9uZSBpbiBvbmUgaW50ZXJ2YWwgZm9yIGJldHRlciByZXN1bHRzLCB1c2UKCSAgYSBiZXR0ZXIgd2luZG93aW5nIGZ1bmN0aW9uLCBhbGxvdyBwb3N0aW5nIHRoZSBwaGFzZSBpbiB0aGUgbWVzc2FnZQoJICBhbmQgYWN0dWFsbHkgZG8gYW4gRkZUIHdpdGggdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgYmFuZHMgaW5zdGVhZAoJICBvZiBpbnRlcnBvbGF0aW5nLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NwZWN0cnVtLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChzcGVjdHJ1bV9zdWl0ZSk6CgkgIEltcHJvdmUgdGhlIHVuaXRzIHRlc3RzIGJ5IGNoZWNraW5nIGZvciBhIDExMDI1SHogc2luZSB3YXZlCgkgIGFuZCBhZGQgdW5pdCB0ZXN0cyBmb3IgYWxsIDQgc3VwcG9ydGVkIHNhbXBsZSB0eXBlcy4KCjIwMDctMDktMDUgMTY6MjM6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC86IERvbid0IGFzc3VtZSB0YWdzIGFyZSBlbmNvZGVkIGFzIFVURi04ICgjNDczNjcwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBEb24ndCBhc3N1bWUgdGFncyBhcmUgZW5jb2RlZCBhcyBVVEYtOCAoIzQ3MzY3MCkuCgoyMDA3LTA5LTA1IDE0OjQzOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3Y0bDIvOiBJbXBsZW1lbnQgTEFURU5DWSBxdWVyaWVzIGluIHRoZSBjcnVkZXN0IHdheSBwb3NzaWJsZSBzbyBJIGRvbid0IGhhdmUgdG8gdXNlIHN5bmM9ZmFsc2UgYW55IGxvbmdlciB3aGVuIHRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBJbXBsZW1lbnQgTEFURU5DWSBxdWVyaWVzIGluIHRoZSBjcnVkZXN0IHdheSBwb3NzaWJsZSBzbyBJIGRvbid0CgkgIGhhdmUgdG8gdXNlIHN5bmM9ZmFsc2UgYW55IGxvbmdlciB3aGVuIHRlc3Rpbmcgd2l0aCB2aWRlb3NpbmtzLgoKMjAwNy0wOS0wNSAwOToyNToyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRml4IGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCBidWlsZC4KCjIwMDctMDktMDUgMDA6MTI6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIGluIHRoZSBmcmFtZXJhdGUgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdF9hbmRfc2l6ZSk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIGluIHRoZSBmcmFtZXJhdGUgZnVuY3Rpb24uCgkgIEl0ZXJhdGUgc3RlcHdpc2UgZnJhbWVyYXRlIHVwIHRvIGFuZCBfaW5jbHVkaW5nXyB0aGUgbWF4IGFuZCBpZiBub3RoaW5nCgkgIHdhcyBhZGRlZCB0byB0aGUgbGlzdCwgYWRkIGEgZHVtbXkgMC8xIHRvIDEwMC8xIGZyYW1lcmF0ZSBzbyB0aGF0IHdlCgkgIGRvbid0IGVuZCB1cCB3aXRoIGFuIGVtcHR5IGxpc3QuCgoyMDA3LTA5LTA0IDIyOjQyOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogQWRkIHByb3BlcnR5IGRvIGNvbmZpZ3VyZSBkZXN0aW5hdGlvbiBhZGRyZXNzL3BvcnQgcGFpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX3NldF9jbGllbnRzX3N0cmluZyksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2dldF9jbGllbnRzX3N0cmluZyksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfbXVsdGl1ZHBzaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2luaXRfc2VuZCksIChnc3RfbXVsdGl1ZHBzaW5rX2FkZF9pbnRlcm5hbCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2FkZCksIChnc3RfbXVsdGl1ZHBzaW5rX2NsZWFyX2ludGVybmFsKSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfY2xlYXIpOgoJICBBZGQgcHJvcGVydHkgZG8gY29uZmlndXJlIGRlc3RpbmF0aW9uIGFkZHJlc3MvcG9ydCBwYWlycwoJICBBUEk6R3N0TXVsdGlVRFBTaW5rOjpjbGllbnRzCgoyMDA3LTA5LTA0IDE4OjMwOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvOiBBZGRlZCBzb21lIFJUUCBleGFtcGxlIHNjcmlwdHMgZm9yIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBSVFAgc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtQU1SLnNoOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2M3AtUENNQS5zZHA6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL2NsaWVudC1IMjYzcC1QQ01BLnNoOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtSDI2NC1QQ01BLnNkcDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LUgyNjQtUENNQS5zaDoKCSAgKiB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LVBDTUEuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1WVFMtSDI2M3AtQVRTLVBDTUEuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1hbHNhc3JjLVBDTUEuc2g6CgkgICogdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci12NGwyLUgyNjNwLWFsc2FzcmMtQU1SLnNoOgoJICAqIHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItdjRsMi1IMjY0LWFsc2FzcmMtUENNQS5zaDoKCSAgQWRkZWQgc29tZSBSVFAgZXhhbXBsZSBzY3JpcHRzIGZvciBzZW5kaW5nIGFuZCByZWNlaXZpbmcgUlRQIHN0cmVhbXMuCgoyMDA3LTA5LTA0IDE2OjQwOjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiBSZXN0cnVjdHVyZSB0aGUgc2V0Y2FwcyBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBhbHNvIGNvbXB1dGUgdGhlIGV4cGVjdGVkIEdTdHJlYW1lciBvdXRwdXQgc2l6Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyX2dldF9jYXBzX2luZm8pLAoJICAoZ3N0X3Y0bDJzcmNfc2V0X2NhcHMpLCAoZ3N0X3Y0bDJzcmNfZ2V0X21tYXApOgoJICBSZXN0cnVjdHVyZSB0aGUgc2V0Y2FwcyBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBhbHNvIGNvbXB1dGUgdGhlCgkgIGV4cGVjdGVkIEdTdHJlYW1lciBvdXRwdXQgc2l6ZSBvZiB0aGUgdmlkZW8gZnJhbWVzLgoJICBTZXQgZnJhbWVfYnl0ZV9zaXplIGNvcnJlY3RseSBzbyB0aGF0IHJlYWQtYmFzZWQgZGV2aWNlcyBoYXZlIGEgY2hhbmNlCgkgIG9mIHdvcmtpbmcgY29ycmVjdGx5LgoJICBXaGVuIGdyYWJiaW5nIGEgZnJhbWUsIGRpc2NhcmQgZnJhbWVzIHRoYXQgYXJlIG5vdCBvZiB0aGUgZXhwZWN0ZWQgc2l6ZS4KCSAgU29tZSBjYW1lcmFzIGRvbid0IG91dHB1dCB0aGUgcmlnaHQgZnJhbWVzaXplIGZvciB0aGUgZmlyc3QgYnVmZmVyLgoJICBUcnkgb25seSBhIGNvdXBsZSBvZiB0aW1lcyB0byBnZXQgYSB2YWxpZCBmcmFtZSwgZWxzZSBlcnJvciBvdXQuCgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZ2V0X2NhcGFiaWxpdGllcyksCgkgIChnc3RfdjRsMl9maWxsX2xpc3RzKSwgKGdzdF92NGwyX2dldF9pbnB1dCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyB3aGVuIHNjYW5uaW5nIHRoZSBkZXZpY2UuCgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJfYnVmZmVyX25ldyksCgkgIChnc3RfdjRsMl9idWZmZXJfcG9vbF9uZXcpLCAoZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfYWN0aXZhdGUpLAoJICAoZ3N0X3Y0bDJzcmNfZmlsbF9mb3JtYXRfbGlzdCksIChnc3RfdjRsMnNyY19ncmFiX2ZyYW1lKSwKCSAgKGdzdF92NGwyc3JjX3NldF9jYXB0dXJlKSwgKGdzdF92NGwyc3JjX2NhcHR1cmVfaW5pdCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyB3aGVuIGRlcXVlaW5nIGEgZnJhbWUuCgoyMDA3LTA5LTA0IDE0OjM3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogTW9yZSBjb2RlIGNsZWFudXBzLiBBZGQgc29tZSBtb3JlIGNvbW1lbnQgYW5kIGltcHJvdmUgZGVidWdzIGxvZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBNb3JlIGNvZGUgY2xlYW51cHMuIEFkZCBzb21lIG1vcmUgY29tbWVudCBhbmQgaW1wcm92ZSBkZWJ1Z3MgbG9ncy4KCjIwMDctMDktMDQgMDc6NTg6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS4qOiBJbXBsZW1lbnQgc2Vlay1xdWVyeS4gUmVmYWN0b3IgZHVyYXRpb24gY2FsY3VsYXRpb25zLiBBcHByb3ByaWF0ZSB1c2Ugb2YgdWludDY0X3NjYWxlX2ludC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuaDoKCSAgSW1wbGVtZW50IHNlZWstcXVlcnkuIFJlZmFjdG9yIGR1cmF0aW9uIGNhbGN1bGF0aW9ucy4gQXBwcm9wcmlhdGUgdXNlCgkgIG9mIHVpbnQ2NF9zY2FsZV9pbnQgYW5kIHVpbnQ2NF9zY2FsZS4gTW92ZSByZXBlYWRlZGx5IGNhbGN1bGF0ZWQgc3R1ZmYKCSAgb3V0IG9mIGxvb3BzLgoKMjAwNy0wOS0wMyAwNzo0NDozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBJbXBsZW1lbnQgc2Vlay1xdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJICBJbXBsZW1lbnQgc2Vlay1xdWVyeS4KCjIwMDctMDgtMjkgMjE6NDM6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IFVzZSBuZXcgYmFzZXNpbmsgYXN5bmMgcHJvcGVydHkgdG8gbWFrZSBzcGFyc2UgUlRDUCBwYWNrZXQgbm90IHdhaXQgZm9yIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdWRwX3NpbmspLAoJICAoZ3N0X3J0c3BzcmNfZHVwX3ByaW50Zik6CgkgIFVzZSBuZXcgYmFzZXNpbmsgYXN5bmMgcHJvcGVydHkgdG8gbWFrZSBzcGFyc2UgUlRDUCBwYWNrZXQgbm90IHdhaXQgZm9yCgkgIHByZXJvbGwuCgoyMDA3LTA4LTI3IDE0OjQ0OjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOiBEaXN0IHRoZSByaWdodCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgRGlzdCB0aGUgcmlnaHQgZmlsZS4KCjIwMDctMDgtMjMgMTY6Mjc6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IE1ha2Ugc3VyZSB3ZSBnZW5lcmF0ZSBhbmQgcGFyc2UgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGluIHRoZSBQT1NJWCBsb2NhbGUgaW5zdGVhZCBvZiB0aGUgY3VycmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZHVwX3ByaW50ZiksCgkgIChnc3RfcnRzcHNyY19nZXRfZmxvYXQpLCAoZ3N0X3J0c3BzcmNfcGxheSk6CgkgIE1ha2Ugc3VyZSB3ZSBnZW5lcmF0ZSBhbmQgcGFyc2UgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGluIHRoZSBQT1NJWAoJICBsb2NhbGUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBsb2NhbGUuCgoyMDA3LTA4LTIyIDE1OjAxOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBGaXggbWV0aG9kIGRldGVjdGlvbiBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZG9fc2VlayksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9tZXRob2RzKSwgKGdzdF9ydHNwc3JjX29wZW4pLAoJICAoZ3N0X3J0c3BzcmNfcGxheSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBGaXggbWV0aG9kIGRldGVjdGlvbiBhZ2Fpbi4KCSAgS2VlcCB0cmFjayBvZiB3aGVuIHdlIG11c3Qgc2VuZCBhIFJhbmdlIGhlYWRlci4KCSAgVXNlIHNlZ21lbnQgdmFsdWVzIGZvciBSYW5nZSwgU3BlZWQgYW5kIFNjYWxlIGhlYWRlcnMuCgkgIFBhcnNlIFNwZWVkIGFuZCBTY2FsZSBoZWFkZXJzIHRvIHVwZGF0ZSB0aGUgc2VnbWVudCB2YWx1ZXMuCgoyMDA3LTA4LTIyIDA4OjIyOjUwICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBIYW5kbGUgb3B0aW9uYWwgdjRsMiBpb2N0bHMgZ3JhY2VmdWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgSGFuZGxlIG9wdGlvbmFsIHY0bDIgaW9jdGxzIGdyYWNlZnVsbHkuCgoyMDA3LTA4LTIwIDE2OjUyOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEFkZGVkIGFuIEgyNjMgZGVwYXlsb2FkZXIuIEZpeGVzICMzNjkzOTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5jOiAoZ3N0X3J0cF9oMjYzX2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX2gyNjNfZGVwYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2gyNjNfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX2gyNjNfZGVwYXlfZmluYWxpemUpLCAoZ3N0X3J0cF9oMjYzX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9oMjYzX2RlcGF5X3Byb2Nlc3MpLCAoZ3N0X3J0cF9oMjYzX2RlcGF5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2gyNjNfZGVwYXlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfaDI2M19kZXBheV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3J0cF9oMjYzX2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNkZXBheS5oOgoJICBBZGRlZCBhbiBIMjYzIGRlcGF5bG9hZGVyLiBGaXhlcyAjMzY5MzkyLgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOiAoZ3N0X3J0cF9oMjYzcF9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfaDI2M3BfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOiAoZ3N0X2ZyYWdtZW50YXRpb25fbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfcnRwX2gyNjNwX3BheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfaDI2M3BfcGF5X2ZsdXNoKToKCSAgTWFrZSB0aGUgSDI2MysgcGF5L2RlcGF5bG9hZGVyIHN1cHBvcnQgSDI2My0xOTk4IGFuZCBIMjYzLTIwMDAKCSAgcGF5bG9hZHMuCgkgIEFsc28gYWxvdyBwbGFpbiBIMjYzIG9uIHRoZSBoMjYzcCBwYXlsb2FkZXJzLiBGaXhlcyAjNDY1MDQwLgoKMjAwNy0wOC0xOSAxOToxNjozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci86IEFkZCBzbWFsbCBjb21wYXJpc2lvbiB3aXRoIHRoZSBjaGVieXNoZXYgZmlsdGVycyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6CgkgIEFkZCBzbWFsbCBjb21wYXJpc2lvbiB3aXRoIHRoZSBjaGVieXNoZXYgZmlsdGVycyBpbiB0aGUgZG9jcy4KCjIwMDctMDgtMTkgMTk6MTE6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4LzogQWRkIHNtYWxsIGNvbXBhcmlzaW9uIHdpdGggdGhlIHdpbmRvd2VkIHNpbmMgZmlsdGVycyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxYmFuZC5jOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0LmM6CgkgIEFkZCBzbWFsbCBjb21wYXJpc2lvbiB3aXRoIHRoZSB3aW5kb3dlZCBzaW5jIGZpbHRlcnMgaW4gdGhlIGRvY3MuCgoyMDA3LTA4LTE5IDE5OjAxOjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IEFsc28gdGVzdCBldmVyeXRoaW5nIGluIDMyIGJpdCBmbG9hdCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9icHdzaW5jLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChicHdzaW5jX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9scHdzaW5jLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChscHdzaW5jX3N1aXRlKToKCSAgQWxzbyB0ZXN0IGV2ZXJ5dGhpbmcgaW4gMzIgYml0IGZsb2F0IG1vZGUuCgoyMDA3LTA4LTE5IDE4OjQ3OjE5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IEFsc28gdGVzdCAzMiBiaXQgZmxvYXQgbW9kZSBhbmQgdGhlIHR5cGUgMiB2YXJpYW50cyBvZiB0aGUgZmlsdGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGVieXNoZXZmcmVxYmFuZC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYXVkaW9jaGVieXNoZXZmcmVxYmFuZF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9jaGVieXNoZXZmcmVxbGltaXQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGF1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0X3N1aXRlKToKCSAgQWxzbyB0ZXN0IDMyIGJpdCBmbG9hdCBtb2RlIGFuZCB0aGUgdHlwZSAyIHZhcmlhbnRzIG9mIHRoZSBmaWx0ZXJzLgoKMjAwNy0wOC0xOCAxOTo0NDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogUmVmYWN0b3IgdGhlIHVkcCBhbmQgaW50ZXJsZWF2ZWQgbG9vcCBmdW5jdGlvbiBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCksCgkgIChnc3RfcnRzcHNyY19sb29wX3VkcCksIChnc3RfcnRzcHNyY19sb29wX3NlbmRfY21kKSwKCSAgKGdzdF9ydHNwc3JjX2xvb3ApOgoJICBSZWZhY3RvciB0aGUgdWRwIGFuZCBpbnRlcmxlYXZlZCBsb29wIGZ1bmN0aW9uIGEgYml0LgoKMjAwNy0wOC0xNyAxNzowODoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogUHJvdGVjdCBjb25uZWN0aW9uIGFjdGl2aXR5IHdpdGggYSBuZXcgbG9jaywgYXZvaWRzIGRlYWRsb2NrcyB3aGVuIGdvaW5nIHRvIFBBVVNFRC4gRml4ZXMgIzQ1NS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19pbml0KSwKCSAgKGdzdF9ydHNwc3JjX2ZpbmFsaXplKSwgKGdzdF9ydHNwc3JjX2Nvbm5lY3Rpb25fc2VuZCksCgkgIChnc3RfcnRzcHNyY19jb25uZWN0aW9uX3JlY2VpdmUpLCAoZ3N0X3J0c3BzcmNfc2lua19jaGFpbiksCgkgIChnc3RfcnRzcHNyY19oYW5kbGVfcmVxdWVzdCksIChnc3RfcnRzcHNyY19zZW5kX2tlZXBfYWxpdmUpLAoJICAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCksIChnc3RfcnRzcHNyY19sb29wX3VkcCksCgkgIChnc3RfcnRzcHNyY190cnlfc2VuZCksIChnc3RfcnRzcHNyY19wYXVzZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBQcm90ZWN0IGNvbm5lY3Rpb24gYWN0aXZpdHkgd2l0aCBhIG5ldyBsb2NrLCBhdm9pZHMgZGVhZGxvY2tzIHdoZW4gZ29pbmcKCSAgdG8gUEFVU0VELiBGaXhlcyAjNDU1ODA4LgoKMjAwNy0wOC0xNyAxNTozMDozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9kZWJ1Zy9ybmRidWZmZXJzaXplLmM6IEZpeCBkZWJ1ZyBzdGF0ZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9ybmRidWZmZXJzaXplLmM6IChnc3Rfcm5kX2J1ZmZlcl9zaXplX2xvb3ApOgoJICBGaXggZGVidWcgc3RhdGVtZW50LgoKMjAwNy0wOC0xNyAxNToyODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogRml4IHN0cmF5ICV1IGluIGRlYnVnIGxpbmUgYXMgc3BvdHRlZCBieSBTYXVyIG9uIElSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZG9fc3RyZWFtX2Vvcyk6CgkgIEZpeCBzdHJheSAldSBpbiBkZWJ1ZyBsaW5lIGFzIHNwb3R0ZWQgYnkgU2F1ciBvbiBJUkMuCgoyMDA3LTA4LTE3IDE1OjA1OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBVc2UgZ2VuZXJhdG9yIG1hY3JvcyBmb3IgdGhlIHByb2Nlc3MgZnVuY3Rpb25zIGZvciB0aGUgZGlmZmVyZW50IHNhbXBsZSB0eXBlcywgYWRkIGxvd2VyIHVwcGVyIGJvdW5kYXJpZXMgZm9yIHRoZSBHT2IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChnc3RfYnB3c2luY19jbGFzc19pbml0KSwKCSAgKGJwd3NpbmNfc2V0X3Byb3BlcnR5KSwgKGJwd3NpbmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuaDoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogKGdzdF9scHdzaW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2xwd3NpbmNfaW5pdCksIChscHdzaW5jX2J1aWxkX2tlcm5lbCksIChscHdzaW5jX3NldF9wcm9wZXJ0eSksCgkgIChscHdzaW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmg6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbHB3c2luYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVc2UgZ2VuZXJhdG9yIG1hY3JvcyBmb3IgdGhlIHByb2Nlc3MgZnVuY3Rpb25zIGZvciB0aGUgZGlmZmVyZW50CgkgIHNhbXBsZSB0eXBlcywgYWRkIGxvd2VyIHVwcGVyIGJvdW5kYXJpZXMgZm9yIHRoZSBHT2JqZWN0IHByb3BlcnRpZXMKCSAgc28gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgVUlzIGNhbiB1c2Ugc2xpZGVycyBhbmQgY2hhbmdlIGZyZXF1ZW5jeQoJICBwcm9wZXJ0aWVzIHRvIGZsb2F0cyB0byBzYXZlIGEgYml0IG9mIG1lbW9yeSwgZXZlbiBpbnRzIHdvdWxkIGluCgkgIHRoZW9yeSBiZSBlbm91Z2guIEFsc28gcmVuYW1lIGZyZXF1ZW5jeSB0byBjdXRvZmYgZm9yIGNvbnNpc3RlbmN5CgkgIHJlYXNvbnMuCgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdzdHJ0cG1hbmFnZXIueG1sOgoJICBSZWdlbmVyYXRlZCBmb3IgdGhlIGFib3ZlIGNoYW5nZXMuCgoyMDA3LTA4LTE3IDE0OjQzOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC86IFVzZSBnZW5lcmF0b3IgbWFjcm9zIGZvciB0aGUgcHJvY2VzcyBmdW5jdGlvbnMgZm9yIHRoZSBkaWZmZXJlbnQgc2FtcGxlIHR5cGVzLCBhZGQgbG93ZXIgdXBwZXIgYm91bmRhcmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxYmFuZC5jOgoJICAoZ3N0X2F1ZGlvX2NoZWJ5c2hldl9mcmVxX2JhbmRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxbGltaXQuYzoKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF9jbGFzc19pbml0KToKCSAgVXNlIGdlbmVyYXRvciBtYWNyb3MgZm9yIHRoZSBwcm9jZXNzIGZ1bmN0aW9ucyBmb3IgdGhlIGRpZmZlcmVudAoJICBzYW1wbGUgdHlwZXMsIGFkZCBsb3dlciB1cHBlciBib3VuZGFyaWVzIGZvciB0aGUgR09iamVjdCBwcm9wZXJ0aWVzCgkgIHNvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIFVJcyBjYW4gdXNlIHNsaWRlcnMgYW5kIGFkZCBhIG5vdGUgYWJvdXQKCSAgdGhlIG51bWJlciBvZiBwb2xlcyBhcyBhIHRvbyBoaWdoIG51bWJlciBvZiBwb2xlcyBjb21iaW5lZCB3aXRoCgkgIHZlcnkgbG93IG9yIHZlcnkgaGlnaCBmcmVxdWVuY2llcyB3aWxsIHByb2R1Y2Ugb25seSBub2lzZS4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgIFJlZ2VuZXJhdGVkIGZvciB0aGUgcHJvcGVydHkgY2hhbmdlcy4KCjIwMDctMDgtMTcgMTQ6MTU6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLio6IEltcHJvdmUgdGltZW91dCBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHNwc3JjX2ZsdXNoKSwgKGdzdF9ydHNwc3JjX3NpbmtfY2hhaW4pLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHBfc2luayksCgkgIChnc3RfcnRzcHNyY19zZW5kX2tlZXBfYWxpdmUpLCAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCksCgkgIChnc3RfcnRzcHNyY19sb29wX3VkcCksIChnc3RfcnRzcHNyY19sb29wX3NlbmRfY21kKSwKCSAgKGdzdF9ydHNwc3JjX3RyeV9zZW5kKSwgKGdzdF9ydHNwc3JjX3NlbmQpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfbWV0aG9kcyksIChnc3RfcnRzcHNyY19wYXJzZV9yYW5nZSksCgkgIChnc3RfcnRzcHNyY19vcGVuKSwgKGdzdF9ydHNwc3JjX2Nsb3NlKSwgKGdzdF9ydHNwc3JjX3BhdXNlKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBJbXByb3ZlIHRpbWVvdXQgaGFuZGxpbmcuCgkgIFVzZSB0aGUgc2FtZSBzb2NrZXQgZm9yIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBSVENQIHBhY2tldHMgc28gdGhhdCBzb21lCgkgIHNlcnZlcnMgY2FuIHRyYWNrIGNsaWVudHMgYmV0dGVyLgoJICBJbXByb3ZlIGNvbm5lY3Rpb24gY2xvc2VkIGhhbmRsaW5nLiBUcnkgdG8gcmVjb25uZWN0LgoJICBEb24ndCBvdmVyd3JpdGUgb3VyIGNvbnRlbnQgYmFzZSB3aXRoIE5VTEwuCgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICBJbXByb3ZlIHJhbmdlIHBhcnNpbmcgYW5kIGhhbmRsaW5nLgoJICBSZW1vdmUgZmx1c2hpbmcgaGFjayBub3cgdGhhdCBjb3JlIGRvZXMgdGhlIHJpZ2h0IHRoaW5nLgoKMjAwNy0wOC0xNyAxMzo1OToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLio6IEFkZCBzdXBwb3J0IGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIHRoZSBzb2NrZXQgdG8gdXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfaW5pdCksIChnc3RfbXVsdGl1ZHBzaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfbXVsdGl1ZHBzaW5rX2luaXRfc2VuZCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2Nsb3NlKSwgKGdzdF9tdWx0aXVkcHNpbmtfYWRkKToKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5oOgoJICBBZGQgc3VwcG9ydCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgc29ja2V0IHRvIHVzZS4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jbGFzc19pbml0KSwgKGdzdF91ZHBzcmNfaW5pdCksCgkgIChnc3RfdWRwc3JjX2NyZWF0ZSksIChnc3RfdWRwc3JjX2dldF9wcm9wZXJ0eSk6CgkgIEFkZCBzdXBwb3J0IGZvciBnZXR0aW5nIHRoZSBjdXJyZW50bHkgdXNlZCBzb2NrZXQuCgoyMDA3LTA4LTE2IDE5OjIyOjQ4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuKjogSW1wbGVtZW50IGxhdGVuY3kgcXVlcnkgYW5kIG9ubHkgZm9yd2FyZCB0aG9zZSBzYW1wbGVzIGRvd25zdHJlYW0gdGhhdCBhY3R1YWxseSBjb250YWluIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChnc3RfYnB3c2luY19jbGFzc19pbml0KSwKCSAgKGdzdF9icHdzaW5jX2luaXQpLCAocHJvY2Vzc18zMiksIChwcm9jZXNzXzY0KSwKCSAgKGJwd3NpbmNfYnVpbGRfa2VybmVsKSwgKGJwd3NpbmNfcHVzaF9yZXNpZHVlKSwKCSAgKGJwd3NpbmNfdHJhbnNmb3JtKSwgKGJwd3NpbmNfc3RhcnQpLCAoYnB3c2luY19xdWVyeSksCgkgIChicHdzaW5jX3F1ZXJ5X3R5cGUpLCAoYnB3c2luY19ldmVudCksIChicHdzaW5jX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmg6CgkgIEltcGxlbWVudCBsYXRlbmN5IHF1ZXJ5IGFuZCBvbmx5IGZvcndhcmQgdGhvc2Ugc2FtcGxlcyBkb3duc3RyZWFtCgkgIHRoYXQgYWN0dWFsbHkgY29udGFpbiB0aGUgZGF0YSB3ZSB3YW50LCBpLmUuIGRyb3Aga2VybmVsX2xlbmd0aC8yCgkgIGluIHRoZSBiZWdpbm5pbmcgYW5kIGFwcGVuZCBrZXJuZWxfbGVuZ3RoLzIgKGNyZWF0ZWQgYnkgY29udm9sdmluZwoJICB0aGUgZmlsdGVyIGtlcm5lbCB3aXRoIHplcm9lcykgdG8gdGhlIGVuZC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9icHdzaW5jLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkanVzdCB0aGUgdW5pdCB0ZXN0IGZvciB0aGlzIHNsaWdodGx5IGNoYW5nZWQgYmVoYXZpb3VyLgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAobHB3c2luY19idWlsZF9rZXJuZWwpOgoJICBSZXNldCByZXNpZHVlIGxlbmd0aCBvbmx5IHdoZW4gYWN0dWFsbHkgY3JlYXRpbmcgYSByZXNpZHVlLgoKMjAwNy0wOC0xNiAxNzowMjowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2F1ZGlvZngvOiBBZGQgQ2hlYnlzaGV2IGxvd3Bhc3MvaGlnaHBhc3MgYW5kIGJhbmRwYXNzL2JhbmRyZWplY3QgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBnc3QvYXVkaW9meC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2NoZWJ5c2hldmZyZXFiYW5kLmM6CgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfYmFuZF9tb2RlX2dldF90eXBlKSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9iYW5kX2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfYmFuZF9kaXNwb3NlKSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9iYW5kX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2NoZWJ5c2hldl9mcmVxX2JhbmRfaW5pdCksCgkgIChnZW5lcmF0ZV9iaXF1YWRfY29lZmZpY2llbnRzKSwgKGNhbGN1bGF0ZV9nYWluKSwKCSAgKGdlbmVyYXRlX2NvZWZmaWNpZW50cyksCgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfYmFuZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX2NoZWJ5c2hldl9mcmVxX2JhbmRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9iYW5kX3NldHVwKSwgKHByb2Nlc3MpLCAocHJvY2Vzc182NCksCgkgIChwcm9jZXNzXzMyKSwgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9iYW5kX3RyYW5zZm9ybV9pcCksCgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfYmFuZF9zdGFydCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9jaGVieXNoZXZmcmVxYmFuZC5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0LmM6CgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfbGltaXRfbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfbGltaXRfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF9kaXNwb3NlKSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF9jbGFzc19pbml0KSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF9pbml0KSwKCSAgKGdlbmVyYXRlX2JpcXVhZF9jb2VmZmljaWVudHMpLCAoY2FsY3VsYXRlX2dhaW4pLAoJICAoZ2VuZXJhdGVfY29lZmZpY2llbnRzKSwKCSAgKGdzdF9hdWRpb19jaGVieXNoZXZfZnJlcV9saW1pdF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX2NoZWJ5c2hldl9mcmVxX2xpbWl0X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfbGltaXRfc2V0dXApLCAocHJvY2VzcyksIChwcm9jZXNzXzY0KSwKCSAgKHByb2Nlc3NfMzIpLCAoZ3N0X2F1ZGlvX2NoZWJ5c2hldl9mcmVxX2xpbWl0X3RyYW5zZm9ybV9pcCksCgkgIChnc3RfYXVkaW9fY2hlYnlzaGV2X2ZyZXFfbGltaXRfc3RhcnQpOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0Lmg6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meC5jOiAocGx1Z2luX2luaXQpOgoJICBBZGQgQ2hlYnlzaGV2IGxvd3Bhc3MvaGlnaHBhc3MgYW5kIGJhbmRwYXNzL2JhbmRyZWplY3QgZWxlbWVudHMuCgkgIEZpeGVzICM0NjQ4MDAuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2NoZWJ5c2hldmZyZXFiYW5kLmM6CgkgIChzZXR1cF9hdWRpb2NoZWJ5c2hldmZyZXFiYW5kKSwgKGNsZWFudXBfYXVkaW9jaGVieXNoZXZmcmVxYmFuZCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChhdWRpb2NoZWJ5c2hldmZyZXFiYW5kX3N1aXRlKSwgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0LmM6CgkgIChzZXR1cF9hdWRpb2NoZWJ5c2hldmZyZXFsaW1pdCksIChjbGVhbnVwX2F1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0KSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGF1ZGlvY2hlYnlzaGV2ZnJlcWxpbWl0X3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgdGhlIGNoZWJ5c2hldiBmaWx0ZXJzLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSAgQW5kIGFkZCBkb2NzIGZvciB0aGUgY2hlYnlzaGV2IGZpbHRlcnMuIFdoaWxlIGRvaW5nCgkgIHRoYXQgYWxzbyBydW4gbWFrZSB1cGRhdGUgaW4gZG9jcy9wbHVnaW5zLgoKMjAwNy0wOC0xNiAxMjoxNTowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgTWFrZSBybyBtZW1vcnkgdG8gc2hhcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWx0YWcuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJICBNYWtlIHJvIG1lbW9yeSB0byBzaGFyZS4KCjIwMDctMDgtMTYgMTE6NDk6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBJbXByb3ZlIFVEUCBwZXJmb3JtYW5jZSBieSBhdm9pZGluZyBhIHNlbGVjdCgpIHdoZW4gd2UgaGF2ZSBkYXRhIGF2YWlsYWJsZSBpbW1lZGlhdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jcmVhdGUpOgoJICBJbXByb3ZlIFVEUCBwZXJmb3JtYW5jZSBieSBhdm9pZGluZyBhIHNlbGVjdCgpIHdoZW4gd2UgaGF2ZSBkYXRhCgkgIGF2YWlsYWJsZSBpbW1lZGlhdGx5LgoKMjAwNy0wOC0xNiAxMTo0NzoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0cGRlYy4qOiBBZGQgKGR1bW15KSBTU1JDIG1hbmFnZW1lbnQgc2lnbmFscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IChnc3RfcnRwX2RlY19tYXJzaGFsX1ZPSURfX1VJTlRfVUlOVCksCgkgIChnc3RfcnRwX2RlY19jbGFzc19pbml0KToKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuaDoKCSAgQWRkIChkdW1teSkgU1NSQyBtYW5hZ2VtZW50IHNpZ25hbHMuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRzcHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3J0c3BzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGZpbmRfc3RyZWFtKSwgKGdzdF9ydHNwc3JjX2NyZWF0ZV9zdHJlYW0pLCAobmV3X3Nlc3Npb25fcGFkKSwKCSAgKHJlcXVlc3RfcHRfbWFwKSwgKGdzdF9ydHNwc3JjX2RvX3N0cmVhbV9lb3MpLCAob25fYnllX3NzcmMpLAoJICAob25fdGltZW91dCksIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX21hbmFnZXIpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX3B1c2hfZXZlbnQpLCAoZ3N0X3J0c3BzcmNfcHVzaF9ldmVudCksCgkgIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cGluZm8pLAoJICAoZ3N0X3J0c3BzcmNfaGFuZGxlX21lc3NhZ2UpLCAoZ3N0X3J0c3BzcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIEFkZCBjb25uZWN0aW9uLXNwZWVkIHByb3BlcnR5LgoJICBBZGQgZmluZF9zdHJlYW0gaGVscGVyIGZ1bmN0aW9ucy4KCSAgSGFuZGxlIHN0cmVhbSBFT1MgYmFzZWQgb24gQllFIG1lc3NhZ2VzIG9yIFNTUkMgdGltZW91dC4KCSAgUmV0dXJucyBTVUNDRVNTIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhcyB3ZSBoaWRlIG91ciBhc3luYwoJICBlbGVtZW50cyBmcm9tIHRoZSBwYXJlbnQuCgoyMDA3LTA4LTE2IDA5OjQ4OjI3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuKjogSW1wbGVtZW50IGxhdGVuY3kgcXVlcnkgYW5kIG9ubHkgZm9yd2FyZCB0aG9zZSBzYW1wbGVzIGRvd25zdHJlYW0gdGhhdCBhY3R1YWxseSBjb250YWluIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChnc3RfbHB3c2luY19jbGFzc19pbml0KSwKCSAgKGdzdF9scHdzaW5jX2luaXQpLCAocHJvY2Vzc18zMiksIChwcm9jZXNzXzY0KSwKCSAgKGxwd3NpbmNfYnVpbGRfa2VybmVsKSwgKGxwd3NpbmNfcHVzaF9yZXNpZHVlKSwKCSAgKGxwd3NpbmNfdHJhbnNmb3JtKSwgKGxwd3NpbmNfc3RhcnQpLCAobHB3c2luY19xdWVyeSksCgkgIChscHdzaW5jX3F1ZXJ5X3R5cGUpLCAobHB3c2luY19ldmVudCksIChscHdzaW5jX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmg6CgkgIEltcGxlbWVudCBsYXRlbmN5IHF1ZXJ5IGFuZCBvbmx5IGZvcndhcmQgdGhvc2Ugc2FtcGxlcyBkb3duc3RyZWFtCgkgIHRoYXQgYWN0dWFsbHkgY29udGFpbiB0aGUgZGF0YSB3ZSB3YW50LCBpLmUuIGRyb3Aga2VybmVsX2xlbmd0aC8yCgkgIGluIHRoZSBiZWdpbm5pbmcgYW5kIGFwcGVuZCBrZXJuZWxfbGVuZ3RoLzIgKGNyZWF0ZWQgYnkgY29udm9sdmluZwoJICB0aGUgZmlsdGVyIGtlcm5lbCB3aXRoIHplcm9lcykgdG8gdGhlIGVuZC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9scHdzaW5jLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkanVzdCB0aGUgdW5pdCB0ZXN0IGZvciB0aGlzIHNsaWdodGx5IGNoYW5nZWQgYmVoYXZpb3VyLgoKMjAwNy0wOC0xNiAwNzo0MDo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2RlYnVnL3JuZGJ1ZmZlcnNpemUuYzogRml4IGRhIGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9ybmRidWZmZXJzaXplLmM6CgkgIEZpeCBkYSBsZWFrLgoKMjAwNy0wOC0xNCAxMzo1MDo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2RlYnVnLzogQWRkIG5ldyB0ZXN0IGVsZW1lbnQgYW5kIGNsZWFuLXVwIHRoZSBvdGhlcnMgYSBsaXR0bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVidWcvYnJlYWtteWRhdGEuYzoKCSAgKiBnc3QvZGVidWcvZ3N0ZGVidWcuYzoKCSAgKiBnc3QvZGVidWcvbmVnb3RpYXRpb24uYzoKCSAgKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuYzoKCSAgKiBnc3QvZGVidWcvcm5kYnVmZmVyc2l6ZS5jOgoJICAqIGdzdC9kZWJ1Zy90ZXN0cGx1Z2luLmM6CgkgIEFkZCBuZXcgdGVzdCBlbGVtZW50IGFuZCBjbGVhbi11cCB0aGUgb3RoZXJzIGEgbGl0dGxlLgoKMjAwNy0wOC0xMyAxMzo1MDozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWRkIGRvY3MgZm9yIGxwd3NpbmMgYW5kIGJwd3NpbmMgYW5kIGludGVncmF0ZSB0aGVtIGludG8gdGhlIGJ1aWxkIHN5c3RlbS4gV2hpbGUgZG9pbmcgdGhhdCBhbHNvIHVwZGF0ZSBhbGwgb3RoZXIgZG9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWJ6Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkeGFwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR0c2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZhYWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mYWFkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmlsdGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZnJlZXplLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3NtLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ3N0cnRwbWFuYWdlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWgyNjRwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1vZHBsdWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tcGVnMmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11c2VwYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVzaWNicmFpbnoueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uc2ZkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1yZXBsYXlnYWluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc291bmR0b3VjaC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwY2RlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWN0cnVtLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZWQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10dGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3NpZ25hbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbmdoZWFkZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmlkLnhtbDoKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYzoKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuaDoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuaDoKCSAgQWRkIGRvY3MgZm9yIGxwd3NpbmMgYW5kIGJwd3NpbmMgYW5kIGludGVncmF0ZSB0aGVtCgkgIGludG8gdGhlIGJ1aWxkIHN5c3RlbS4gV2hpbGUgZG9pbmcgdGhhdCBhbHNvIHVwZGF0ZQoJICBhbGwgb3RoZXIgZG9jcyB2aWEgbWFrZSB1cGRhdGUgaW4gZG9jcy9wbHVnaW5zLgoKMjAwNy0wOC0xMiAyMDo1NTowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvYnB3c2luYy5jOiBNYWtlIG9uZSB0ZXN0IGNvbnN0cmFpbnQgYSBiaXQgc3RyaWN0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Jwd3NpbmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBvbmUgdGVzdCBjb25zdHJhaW50IGEgYml0IHN0cmljdGVyLgoKMjAwNy0wOC0xMiAyMDo1MzoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgdW5pdCB0ZXN0cyBmb3IgYnB3c2luYywgdGVzdGluZyBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsaXR5IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Jwd3NpbmMuYzogKHNldHVwX2Jwd3NpbmMpLAoJICAoY2xlYW51cF9icHdzaW5jKSwgKEdTVF9TVEFSVF9URVNUKSwgKGJwd3NpbmNfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB1bml0IHRlc3RzIGZvciBicHdzaW5jLCB0ZXN0aW5nIGZ1bmRhbWVudGFsIGZ1bmN0aW9uYWxpdHkgYWdhaW4uCgoyMDA3LTA4LTEyIDIwOjE5OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay86IEFkZCB1bml0IHRlc3RzIGZvciBscHdzaW5jLCB0ZXN0aW5nIGZ1bmRhbWVudGFsIGZ1bmN0aW9uYWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbHB3c2luYy5jOiAoc2V0dXBfbHB3c2luYyksCgkgIChjbGVhbnVwX2xwd3NpbmMpLCAoR1NUX1NUQVJUX1RFU1QpLCAobHB3c2luY19zdWl0ZSksIChtYWluKToKCSAgQWRkIHVuaXQgdGVzdHMgZm9yIGxwd3NpbmMsIHRlc3RpbmcgZnVuZGFtZW50YWwgZnVuY3Rpb25hbGl0eS4KCjIwMDctMDgtMTIgMTU6NDE6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9maWx0ZXIvOiBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChicHdzaW5jX2J1aWxkX2tlcm5lbCk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChscHdzaW5jX2J1aWxkX2tlcm5lbCk6CgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0LgoKMjAwNy0wOC0xMiAxNDozNTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IHBhcnNpbmcgb2YgbXA0YSB2ZXJzaW9uIDAgYXRvbXMuIEZpeGVzICM0NjU3NzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2Vfbm9kZSk6CgkgIEZpeCBwYXJzaW5nIG9mIG1wNGEgdmVyc2lvbiAwIGF0b21zLiBGaXhlcyAjNDY1Nzc0LgoKMjAwNy0wOC0xMiAxMjo0NjoyMCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci86IFJlc2V0IHRoZSByZXNpZHVlIGluIEJhc2VUcmFuc2Zvcm06OnN0YXJ0IHRvIGdldCBhIGNsZWFuIHJlc2lkdWUgb24gc3RyZWFtIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5jOiAoZ3N0X2Jwd3NpbmNfY2xhc3NfaW5pdCksCgkgIChicHdzaW5jX3N0YXJ0KToKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogKGdzdF9scHdzaW5jX2NsYXNzX2luaXQpLAoJICAobHB3c2luY19zdGFydCk6CgkgIFJlc2V0IHRoZSByZXNpZHVlIGluIEJhc2VUcmFuc2Zvcm06OnN0YXJ0IHRvIGdldCBhIGNsZWFuIHJlc2lkdWUKCSAgb24gc3RyZWFtIGNoYW5nZXMuCgoyMDA3LTA4LTExIDE1OjU4OjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyLzogRml4IHByb2Nlc3Npbmcgd2l0aCBidWZmZXIgc2l6ZXMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gdGhlIGZpbHRlciBrZXJuZWwgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChwcm9jZXNzXzMyKSwgKHByb2Nlc3NfNjQpOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAocHJvY2Vzc18zMiksIChwcm9jZXNzXzY0KToKCSAgRml4IHByb2Nlc3Npbmcgd2l0aCBidWZmZXIgc2l6ZXMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gdGhlIGZpbHRlcgoJICBrZXJuZWwgc2l6ZS4KCjIwMDctMDgtMTAgMTc6MDg6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6IEluY2x1ZGUgc3RkbGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJICBJbmNsdWRlIHN0ZGxpYi4KCjIwMDctMDgtMTAgMTY6MTA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6IFNldCB0aGUgbXBlZ3ZlcnNpb24gaW4gdGhlIGNhcHMgc28gdGhhdCBhdXRvcGx1Z2dpbmcgZG9lcyBub3QgZ2V0IGNvbmZ1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6CgkgIFNldCB0aGUgbXBlZ3ZlcnNpb24gaW4gdGhlIGNhcHMgc28gdGhhdCBhdXRvcGx1Z2dpbmcgZG9lcyBub3QgZ2V0CgkgIGNvbmZ1c2VkLgoKMjAwNy0wOC0xMCAwNTo1MTo0MCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IEZpeCBhIHNlZ2ZhdWx0IHdpdGggbW9yZSB0aGFuIG9uZSBjaGFubmVsIGFuZCBkb24ndCByZWJ1aWxkIHRoZSBrZXJuZWwgJiByZXNpZHVlIHdpdGggZXZlcnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5jOiAoYnB3c2luY19idWlsZF9rZXJuZWwpOgoJICBGaXggYSBzZWdmYXVsdCB3aXRoIG1vcmUgdGhhbiBvbmUgY2hhbm5lbCBhbmQgZG9uJ3QgcmVidWlsZAoJICB0aGUga2VybmVsICYgcmVzaWR1ZSB3aXRoIGV2ZXJ5IGJ1ZmZlci4KCjIwMDctMDgtMTAgMDU6MzU6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy4qOiBBZGQgc3VwcG9ydCBmb3IgYSBiYW5kcmVqZWN0IG1vZGUgYW5kIGFsbG93IHNwZWNpZnlpbmcgdGhlIHdpbmRvdyBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYzogKGdzdF9icHdzaW5jX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X2Jwd3NpbmNfd2luZG93X2dldF90eXBlKSwgKGdzdF9icHdzaW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jwd3NpbmNfaW5pdCksIChicHdzaW5jX2J1aWxkX2tlcm5lbCksIChicHdzaW5jX3NldF9wcm9wZXJ0eSksCgkgIChicHdzaW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBhIGJhbmRyZWplY3QgbW9kZSBhbmQgYWxsb3cgc3BlY2lmeWluZyB0aGUgd2luZG93CgkgIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIHVzZWQuCgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6CgkgIEFuZCBhbm90aGVyIHNtYWxsIGZvcm1hdHRpbmcgZml4LgoKMjAwNy0wOC0xMCAwNToyMDowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci9nc3RicHdzaW5jLio6IEFwcGx5IHRoZSBzYW1lIGNoYW5nZXMgdG8gdGhlIGJhbmRwYXNzIGZpbHRlcjoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChnc3RfYnB3c2luY19jbGFzc19pbml0KSwKCSAgKGdzdF9icHdzaW5jX2luaXQpLCAocHJvY2Vzc18zMiksIChwcm9jZXNzXzY0KSwKCSAgKGJwd3NpbmNfYnVpbGRfa2VybmVsKSwgKGJwd3NpbmNfc2V0dXApLCAoYnB3c2luY19nZXRfdW5pdF9zaXplKSwKCSAgKGJwd3NpbmNfdHJhbnNmb3JtKSwgKGJwd3NpbmNfc2V0X3Byb3BlcnR5KSwKCSAgKGJwd3NpbmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuaDoKCSAgQXBwbHkgdGhlIHNhbWUgY2hhbmdlcyB0byB0aGUgYmFuZHBhc3MgZmlsdGVyOgoJICAtIFN1cHBvcnQgZG91YmxlIGlucHV0CgkgIC0gRml4IHByb2Nlc3NpbmcgZm9yIGlucHV0IHdpdGggPjEgY2hhbm5lbHMKCSAgLSBTcGVjaWZ5IGZyZXF1ZW5jeSBpbiBIegoJICAtIFNwZWNpZnkgYWN0dWFsIGZpbHRlciBrZXJuZWwgbGVuZ3RoCgkgIC0gVXNlIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHRyYW5zZm9ybV9pcCBhcyB3ZSdyZSB3b3JraW5nCgkgIG91dCBvZiBwbGFjZSBhbnl3YXkKCSAgLSBGYWN0b3Igb3V0IGZpbHRlciBrZXJuZWwgZ2VuZXJhdGlvbiBhbmQgdXBkYXRlIHRoZSBmaWx0ZXIKCSAga2VybmVsIHdoZW4gdGhlIHByb3BlcnRpZXMgYXJlIHNldAoJICBGaXggYmFuZHBhc3MgZmlsdGVyIGtlcm5lbCBnZW5lcmF0aW9uIHRvIGFjdHVhbGx5IGdlbmVyYXRlCgkgIGEgYmFuZHBhc3MgZmlsdGVyIGJ5IGNyZWF0aW5nIGEgaGlnaHBhc3MgaW5zdGVhZCBvZiBhIHNlY29uZAoJICBsb3dwYXNzLgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAoZ3N0X2xwd3NpbmNfY2xhc3NfaW5pdCk6CgkgIFNtYWxsIGZvcm1hdHRpbmcgZml4LgoKMjAwNy0wOC0xMCAwNDo0NDo0MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci9nc3RscHdzaW5jLio6IFNwZWNpZnkgdGhlIGFjdHVhbCBmaWx0ZXIgbGVuZ3RoIGluc3RlYWQgb2YgYSB3ZWlyZCAyTisxLiBTZXR0aW5nIHRoZSBwcm9wZXJ0eSB3aWxsIHJvdW5kIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAoZ3N0X2xwd3NpbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfbHB3c2luY19pbml0KSwgKHByb2Nlc3NfMzIpLCAocHJvY2Vzc182NCksCgkgIChscHdzaW5jX2J1aWxkX2tlcm5lbCksIChscHdzaW5jX3NldF9wcm9wZXJ0eSksCgkgIChscHdzaW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmg6CgkgIFNwZWNpZnkgdGhlIGFjdHVhbCBmaWx0ZXIgbGVuZ3RoIGluc3RlYWQgb2YgYSB3ZWlyZAoJICAyTisxLiBTZXR0aW5nIHRoZSBwcm9wZXJ0eSB3aWxsIHJvdW5kIHRvIHRoZSBuZXh0IG9kZCBudW1iZXIuCgkgIEFsc28gcmVtb3ZlIG5vdyBvYnNvbGV0ZSBGSVhNRXMuCgoyMDA3LTA4LTEwIDA0OjMyOjQ3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuKjogQWxsb3cgY2hvb3NpbmcgYmV0d2VlbiBoYW1taW5nIGFuZCBibGFja21hbiB3aW5kb3cuIFRoZSBibGFja21hbiB3aW5kb3cgcHJvdmlkZXMgYSBiZXR0ZXIgc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChnc3RfbHB3c2luY193aW5kb3dfZ2V0X3R5cGUpLAoJICAoZ3N0X2xwd3NpbmNfY2xhc3NfaW5pdCksIChnc3RfbHB3c2luY19pbml0KSwKCSAgKGxwd3NpbmNfYnVpbGRfa2VybmVsKSwgKGxwd3NpbmNfc2V0X3Byb3BlcnR5KSwKCSAgKGxwd3NpbmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuaDoKCSAgQWxsb3cgY2hvb3NpbmcgYmV0d2VlbiBoYW1taW5nIGFuZCBibGFja21hbiB3aW5kb3cuIFRoZSBibGFja21hbgoJICB3aW5kb3cgcHJvdmlkZXMgYSBiZXR0ZXIgc3RvcGJhbmQgYXR0ZW51YXRpb24gYnV0IGEgYml0IHNsb3dlcgoJICByb2xsb2ZmLgoKMjAwNy0wOC0xMCAwNDoyMTozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2ZpbHRlci9nc3RscHdzaW5jLio6IEFkZCBhIGhpZ2hwYXNzIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAoZ3N0X2xwd3NpbmNfbW9kZV9nZXRfdHlwZSksCgkgIChnc3RfbHB3c2luY19jbGFzc19pbml0KSwgKHByb2Nlc3NfMzIpLCAocHJvY2Vzc182NCksCgkgIChscHdzaW5jX2J1aWxkX2tlcm5lbCksIChscHdzaW5jX3NldF9wcm9wZXJ0eSksCgkgIChscHdzaW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmg6CgkgIEFkZCBhIGhpZ2hwYXNzIG1vZGUuCgoyMDA3LTA4LTEwIDA0OjA2OjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogRml4IHByb2Nlc3NpbmcgaWYgdGhlIGlucHV0IGhhcyBtb3JlIHRoYW4gb25lIGNoYW5uZWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAocHJvY2Vzc18zMiksIChwcm9jZXNzXzY0KSwKCSAgKGxwd3NpbmNfYnVpbGRfa2VybmVsKToKCSAgRml4IHByb2Nlc3NpbmcgaWYgdGhlIGlucHV0IGhhcyBtb3JlIHRoYW4gb25lIGNoYW5uZWwuCgoyMDA3LTA4LTA5IDE5OjIzOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYzogInRoaXMiIGlzIGEgQysrIGtleXdvcmQsIHVzZSAic2VsZiIgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6IChnc3RfYnB3c2luY19kaXNwb3NlKSwKCSAgKGdzdF9icHdzaW5jX2luaXQpLCAoYnB3c2luY19zZXR1cCksIChicHdzaW5jX3RyYW5zZm9ybV9pcCksCgkgIChicHdzaW5jX3NldF9wcm9wZXJ0eSksIChicHdzaW5jX2dldF9wcm9wZXJ0eSk6CgkgICJ0aGlzIiBpcyBhIEMrKyBrZXl3b3JkLCB1c2UgInNlbGYiIGluc3RlYWQuCgkgIEFkZCBUT0RPcyBhbmQgRklYTUVzIGFuZCByZW1vdmUgdHdvIHdyb25nIEZJWE1Fcy4KCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzoKCSAgQWRkIEZJWE1FcyBhbmQgYSBuZXcgVE9ETy4KCjIwMDctMDgtMDkgMTg6MDg6MDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy4qOiBBZGQgZG91YmxlIHN1cHBvcnQsIHJlcGxhY2UgInRoaXMiIHdpdGggInNlbGYiIGFzIHRoZSBmb3JtZXIgaXMgYSBDKysga2V5d29yZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChnc3RfbHB3c2luY19kaXNwb3NlKSwKCSAgKGdzdF9scHdzaW5jX2NsYXNzX2luaXQpLCAoZ3N0X2xwd3NpbmNfaW5pdCksIChwcm9jZXNzXzMyKSwKCSAgKHByb2Nlc3NfNjQpLCAobHB3c2luY19idWlsZF9rZXJuZWwpLCAobHB3c2luY19zZXR1cCksCgkgIChscHdzaW5jX2dldF91bml0X3NpemUpLCAobHB3c2luY190cmFuc2Zvcm0pLAoJICAobHB3c2luY19zZXRfcHJvcGVydHkpLCAobHB3c2luY19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5oOgoJICBBZGQgZG91YmxlIHN1cHBvcnQsIHJlcGxhY2UgInRoaXMiIHdpdGggInNlbGYiIGFzIHRoZSBmb3JtZXIKCSAgaXMgYSBDKysga2V5d29yZC4KCSAgSW1wbGVtZW50IHRoZSBmcmVxdWVuY3kgcHJvcGVydHkgaW4gSHogaW5zdGVhZCBvZiBmcmFjdGlvbgoJICBvZiBzYW1wbGluZyBmcmVxdWVuY3kuCgkgIFJlbW92ZSBzb21lIHVuZWNlc3NhcnkgRklYTUVzIGFuZCBhZGQgc29tZSBUT0RPcywgYWRkIHNvbWUKCSAgcmVxdWlyZWQgbG9ja2luZyBhbmQgcmVmYWN0b3IgdGhlIGtlcm5lbCBnZW5lcmF0aW9uIGludG8gYQoJICBzZXBhcmF0ZSBmdW5jdGlvbiB0aGF0IGlzIGFsc28gY2FsbGVkIHdoZW4gdGhlIHByb3BlcnRpZXMKCSAgY2hhbmdlIG5vdy4KCSAgQW5kIHVzZSBCYXNlVHJhbnNmb3JtOjp0cmFuc2Zvcm0gaW5zdGVhZCBvZiB0cmFuc2Zvcm1faXAKCSAgYXMgdGhlIGNvbnZvbHV0aW9uIGlzIGRvbmUgb3V0IG9mIHBsYWNlIGFueXdheS4gU2hvdWxkCgkgIGJlIGRvbmUgaW4gcGxhY2UgbGF0ZXIuCgoyMDA3LTA4LTA5IDEwOjU0OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2h1LnBvOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCjIwMDctMDgtMDggMjA6NDc6MzMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9maWx0ZXIvOiBVc2UgR3N0QXVkaW9GaWx0ZXIgYXMgYmFzZSBjbGFzcyBhbmQgZG9uJ3QgbGVhayB0aGUgbWVtb3J5IG9mIHRoZSBmaWx0ZXIga2VybmVsIGFuZCByZXNpZHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmlsdGVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5jOiAoZ3N0X2Jwd3NpbmNfZGlzcG9zZSksCgkgIChnc3RfYnB3c2luY19iYXNlX2luaXQpLCAoZ3N0X2Jwd3NpbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYnB3c2luY19pbml0KSwgKGJwd3NpbmNfc2V0dXApOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5oOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5jOiAoZ3N0X2xwd3NpbmNfZGlzcG9zZSksCgkgIChnc3RfbHB3c2luY19iYXNlX2luaXQpLCAoZ3N0X2xwd3NpbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfbHB3c2luY19pbml0KSwgKGxwd3NpbmNfc2V0dXApOgoJICAqIGdzdC9maWx0ZXIvZ3N0bHB3c2luYy5oOgoJICBVc2UgR3N0QXVkaW9GaWx0ZXIgYXMgYmFzZSBjbGFzcyBhbmQgZG9uJ3QgbGVhayB0aGUgbWVtb3J5CgkgIG9mIHRoZSBmaWx0ZXIga2VybmVsIGFuZCByZXNpZHVlLgoKMjAwNy0wOC0wOCAxNzo0NzowNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IFJlbmRlciByaWdodCBib3JkZXIgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9heXV2X2k0MjApOgoJICBSZW5kZXIgcmlnaHQgYm9yZGVyIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uLgoKMjAwNy0wOC0wOCAxMDo1NDo1MCArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9ydHAvOiBNYWtlIG1vZGUgcHJvcGVydHkgYSBzdHJpbmcuIEZpeGVzICM0NjQ0NzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzogKGdzdF9ydHBfaWxiY19kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNwYXkuYzogKGdzdF9ydHBpbGJjcGF5X3NldGNhcHMpOgoJICBNYWtlIG1vZGUgcHJvcGVydHkgYSBzdHJpbmcuIEZpeGVzICM0NjQ0NzUuCgoyMDA3LTA4LTA1IDE0OjU4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IFdpZGVuIGNhcHMgdG8gbWF0Y2ggZGVjb2RlciBhIGJpdCBhbmQgYWRkIG1vcmUgRklYTUVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIFdpZGVuIGNhcHMgdG8gbWF0Y2ggZGVjb2RlciBhIGJpdCBhbmQgYWRkIG1vcmUgRklYTUVzLgoKMjAwNy0wOC0wNSAxNDo1MzozNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IEZpeCBPRE1MIGluZGV4IHRhZyBudW1iZXJpbmcuIEZpeGVzICM0NjM2MjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBGaXggT0RNTCBpbmRleCB0YWcgbnVtYmVyaW5nLiBGaXhlcyAjNDYzNjI0LgoKMjAwNy0wOC0wMyAxNjowODo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogRml4IGRlZmF1bHQgY2xvY2stcmF0ZSBmb3IgcmVhbG1lZGlhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnZXRfZGVmYXVsdF9yYXRlX2Zvcl9wdCksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9ydHBtYXApLCAoZ3N0X3J0c3BzcmNfbWVkaWFfdG9fY2FwcyksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RjcCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3VkcF9zaW5rKToKCSAgRml4IGRlZmF1bHQgY2xvY2stcmF0ZSBmb3IgcmVhbG1lZGlhLgoJICBGaXggcGFyc2luZyBvZiB0cmFuc3BvcnQuCgkgIERvbid0IHRyeSB0byBsaW5rIE5VTEwgcGFkcy4KCjIwMDctMDctMzAgMTc6MTc6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwby9QT1RGSUxFUy5za2lwOiBBZGQgUE9URklMRVMuc2tpcCB3aXRoIGxpc3Qgb2Ygc291cmNlIGZpbGVzIHRoYXQgYXJlbid0IGRpc3RlZCBhdCB0aGUgbW9tZW50IGJ1dCBjb250YWluIHRyYW5zbGF0YWIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuc2tpcDoKCSAgQWRkIFBPVEZJTEVTLnNraXAgd2l0aCBsaXN0IG9mIHNvdXJjZSBmaWxlcyB0aGF0IGFyZW4ndCBkaXN0ZWQgYXQgdGhlCgkgIG1vbWVudCBidXQgY29udGFpbiB0cmFuc2xhdGFibGUgc3RyaW5ncy4gU2hvdWxkIGhvcGVmdWxseSBwYWNpZnkKCSAgYnJva2VuIHRvb2xzIGFuZCBtYWtlIGl0IGNsZWFyZXIgdGhhdCB0aGVzZSBmaWxlcyBhcmUgbGVmdCBvdXQKCSAgaW50ZW50aW9uYWxseSAoIzQ2MTYwMCkuCgoyMDA3LTA3LTMwIDEyOjQxOjU4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBJZiB0aGUgYnVmZmVyIHdhcyBlbnRpcmVseSBjbGlwcGVkIC4uLiBkb24ndCB0cnkgc2VuZGluZyBpdCA6KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9sb29wX3N0YXRlX21vdmllKToKCSAgSWYgdGhlIGJ1ZmZlciB3YXMgZW50aXJlbHkgY2xpcHBlZCAuLi4gZG9uJ3QgdHJ5IHNlbmRpbmcgaXQgOikKCjIwMDctMDctMjcgMTY6NTY6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IElmIHdlIGRvbid0IGhhdiBhIHNlc3Npb24gbWFuYWdlciwgc2V0IHRoZSBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMgb3Vyc2VsdmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19hY3RpdmF0ZV9zdHJlYW1zKSwKCSAgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpLCAoZ3N0X3J0c3BzcmNfcGFyc2VfbWV0aG9kcyksCgkgIChnc3RfcnRzcHNyY19jcmVhdGVfdHJhbnNwb3J0c19zdHJpbmcpLAoJICAoZ3N0X3J0c3BzcmNfcHJlcGFyZV90cmFuc3BvcnRzKToKCSAgSWYgd2UgZG9uJ3QgaGF2IGEgc2Vzc2lvbiBtYW5hZ2VyLCBzZXQgdGhlIGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycwoJICBvdXJzZWx2ZXMuCgkgIEZvcmNlIFBBVVNFL1BMQVkgbWV0aG9kcyBmb3Igbm93IHVudGlsIHRoZSBleHRlbnNpb25zIGNhbiBvdmVyd3JpdGUuCgkgIEFwcGVuZCBmaW5hbCBiaXQgb2YgdGhlIHRyYW5zcG9ydCBzdHJpbmcgZXZlbiB3aGVuIGl0IGRvZXMgbm90IGNvbnRhaW4gYQoJICBwbGFjZWhvbGRlci4KCjIwMDctMDctMjcgMTE6MjE6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC86IENsZWFuIHVwIHRoZSBpbnRlcmZhY2UgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcGV4dC5jOiAoZ3N0X3J0c3BfZXh0X2xpc3RfZnJlZSksCgkgIChnc3RfcnRzcF9leHRfbGlzdF9jb25uZWN0KToKCSAgKiBnc3QvcnRzcC9nc3RydHNwZXh0Lmg6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19maW5hbGl6ZSksIChnc3RfcnRzcHNyY19zZW5kX2NiKToKCSAgQ2xlYW4gdXAgdGhlIGludGVyZmFjZSBsaXN0LgoJICBBbGxvdyBjb25uZWN0aW5nIHRvIGludGVyZmFjZSBzaWduYWxzIGZvciB0aGUgZXh0ZW5zaW9ucy4KCSAgUmVtb3ZlIG9sZCBleHRlbnNpb24gY29kZS4KCSAgRnJlZSBsaXN0IG9uIGNsZWFudXAuCgkgIEFsbG93IGV4dGVuc2lvbnMgdG8gc2VuZCBhZGRpdGlvbmFsIFJUU1AgbWVzc2FnZXMuCgoyMDA3LTA3LTI3IDEwOjM4OjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9nY29uZi9nY29uZi5jOiBIYW5kbGUgYSBOVUxMIGdjb25mIGtleSBncmFjZWZ1bGx5IGJ5IHJlbmRlcmluZyB0aGUgZGVmYXVsdCBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvZ2NvbmYuYzogKGdzdF9nY29uZl9yZW5kZXJfYmluX3dpdGhfZGVmYXVsdCk6CgkgIEhhbmRsZSBhIE5VTEwgZ2NvbmYga2V5IGdyYWNlZnVsbHkgYnkgcmVuZGVyaW5nIHRoZSBkZWZhdWx0IGVsZW1lbnQuCgoyMDA3LTA3LTI3IDEwOjExOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcGV4dC5oOiBGaXggaW5jbHVkZSBwYXRoIGZvciBleHRlbnNpb24gaW50ZXJmYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwZXh0Lmg6CgkgIEZpeCBpbmNsdWRlIHBhdGggZm9yIGV4dGVuc2lvbiBpbnRlcmZhY2UuCgoyMDA3LTA3LTI2IDE5OjQ1OjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuaDogQWxzbyByZW1vdmUgYSBub3cgdW5lY2Vzc2FyeSB2YXJpYWJsZSBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuaDoKCSAgQWxzbyByZW1vdmUgYSBub3cgdW5lY2Vzc2FyeSB2YXJpYWJsZSBoZXJlLgoKMjAwNy0wNy0yNiAxOTo0MTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2F1ZGlvZngvOiBEb24ndCBzYXZlIGZvcm1hdCBpbmZvcm1hdGlvbiBvdXJzZWx2ZXMsIHRoaXMgaXMgYWxyZWFkeSBzYXZlZCBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzogKGdzdF9hdWRpb19hbXBsaWZ5X2luaXQpLAoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfc2V0dXApLCAoZ3N0X2F1ZGlvX2FtcGxpZnlfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuYzoKCSAgKGdzdF9hdWRpb19keW5hbWljX3NldF9wcm9jZXNzX2Z1bmN0aW9uKSwgKGdzdF9hdWRpb19keW5hbWljX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfc2V0dXApLCAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2R5bmFtaWMuaDoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5jOiAoZ3N0X2F1ZGlvX2ludmVydF9pbml0KSwKCSAgKGdzdF9hdWRpb19pbnZlcnRfc2V0dXApLCAoZ3N0X2F1ZGlvX2ludmVydF90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0Lmg6CgkgIERvbid0IHNhdmUgZm9ybWF0IGluZm9ybWF0aW9uIG91cnNlbHZlcywgdGhpcyBpcyBhbHJlYWR5IHNhdmVkIGluCgkgIEdzdEF1ZGlvRmlsdGVyLgoKMjAwNy0wNy0yNiAxNTo0ODo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwLzogVXNlIHJhbmsgdG8gZmlsdGVyIG91dCBleHRlbnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwZXh0LmM6IChnc3RfcnRzcF9leHRfbGlzdF9maWx0ZXIpLAoJICAoZ3N0X3J0c3BfZXh0X2xpc3Rfc3RyZWFtX3NlbGVjdCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcGV4dC5oOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3NldHVwX3N0cmVhbXMpOgoJICBVc2UgcmFuayB0byBmaWx0ZXIgb3V0IGV4dGVuc2lvbnMuCgkgIEFkZCB1cmwgdG8gc3RyZWFtX3NlbGVjdCBpbnRlcmZhY2UgY2FsbC4KCjIwMDctMDctMjUgMTg6NTA6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC86IFVzZSBzaGlueSBuZXcgUlRTUCBhbmQgU0RQIGxpYnJhcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHNwL2Jhc2U2NC5jOgoJICAqIGdzdC9ydHNwL2Jhc2U2NC5oOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BleHQuYzogKGdzdF9ydHNwX2V4dF9saXN0X2ZpbHRlciksCgkgIChnc3RfcnRzcF9leHRfbGlzdF9pbml0KSwgKGdzdF9ydHNwX2V4dF9saXN0X2dldCksCgkgIChnc3RfcnRzcF9leHRfbGlzdF9kZXRlY3Rfc2VydmVyKSwgKGdzdF9ydHNwX2V4dF9saXN0X2JlZm9yZV9zZW5kKSwKCSAgKGdzdF9ydHNwX2V4dF9saXN0X2FmdGVyX3NlbmQpLCAoZ3N0X3J0c3BfZXh0X2xpc3RfcGFyc2Vfc2RwKSwKCSAgKGdzdF9ydHNwX2V4dF9saXN0X3NldHVwX21lZGlhKSwKCSAgKGdzdF9ydHNwX2V4dF9saXN0X2NvbmZpZ3VyZV9zdHJlYW0pLAoJICAoZ3N0X3J0c3BfZXh0X2xpc3RfZ2V0X3RyYW5zcG9ydHMpLAoJICAoZ3N0X3J0c3BfZXh0X2xpc3Rfc3RyZWFtX3NlbGVjdCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcGV4dC5oOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwX2xvd2VyX3RyYW5zX2dldF90eXBlKSwKCSAgKGdzdF9ydHNwc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19maW5hbGl6ZSksIChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cG1hcCksIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX2ZsdXNoKSwgKGdzdF9ydHNwc3JjX2RvX3NlZWspLAoJICAoZ3N0X3J0c3BzcmNfc2lua19jaGFpbiksIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX21hbmFnZXIpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90Y3ApLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV9tY2FzdCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3VkcCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3VkcF9zaW5rKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9yZXF1ZXN0KSwgKGdzdF9ydHNwc3JjX3NlbmRfa2VlcF9hbGl2ZSksCgkgIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwgKGdzdF9ydHNwc3JjX2xvb3BfdWRwKSwKCSAgKGdzdF9ydHNwc3JjX2xvb3Bfc2VuZF9jbWQpLCAoZ3N0X3J0c3BfYXV0aF9tZXRob2RfdG9fc3RyaW5nKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX2F1dGhfaGRyKSwgKGdzdF9ydHNwc3JjX3NldHVwX2F1dGgpLAoJICAoZ3N0X3J0c3BzcmNfdHJ5X3NlbmQpLCAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9tZXRob2RzKSwKCSAgKGdzdF9ydHNwc3JjX2NyZWF0ZV90cmFuc3BvcnRzX3N0cmluZyksCgkgIChnc3RfcnRzcHNyY19wcmVwYXJlX3RyYW5zcG9ydHMpLCAoZ3N0X3J0c3BzcmNfc2V0dXBfc3RyZWFtcyksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9yYW5nZSksIChnc3RfcnRzcHNyY19vcGVuKSwgKGdzdF9ydHNwc3JjX2Nsb3NlKSwKCSAgKGdzdF9ydHNwc3JjX3BsYXkpLCAoZ3N0X3J0c3BzcmNfcGF1c2UpLAoJICAoZ3N0X3J0c3BzcmNfY2hhbmdlX3N0YXRlKSwgKGdzdF9ydHNwc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgICogZ3N0L3J0c3AvcnRzcC5oOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uaDoKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5jOgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmg6CgkgICogZ3N0L3J0c3AvcnRzcGV4dC5oOgoJICAqIGdzdC9ydHNwL3J0c3BleHR3bXMuYzoKCSAgKiBnc3QvcnRzcC9ydHNwZXh0d21zLmg6CgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzoKCSAgKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5oOgoJICAqIGdzdC9ydHNwL3J0c3ByYW5nZS5jOgoJICAqIGdzdC9ydHNwL3J0c3ByYW5nZS5oOgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzoKCSAgKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0Lmg6CgkgICogZ3N0L3J0c3AvcnRzcHVybC5jOgoJICAqIGdzdC9ydHNwL3J0c3B1cmwuaDoKCSAgKiBnc3QvcnRzcC9zZHAuaDoKCSAgKiBnc3QvcnRzcC9zZHBtZXNzYWdlLmM6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5oOgoJICAqIGdzdC9ydHNwL3Rlc3QuYzoKCSAgVXNlIHNoaW55IG5ldyBSVFNQIGFuZCBTRFAgbGlicmFyeS4KCSAgSW1wbGVtZW50IFJUU1AgZXh0ZW5zaW9ucyB1c2luZyB0aGUgbmV3IGludGVyZmFjZS4KCSAgUmVtb3ZlIGEgbG90IG9mIG9sZCBjb2RlLgoKMjAwNy0wNy0yNCAxNDozMTo1NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIGNvZGVjIG1hcHBpbmcgZm9yICcydnV5JyAoUmF3IFlVViBwcm9kdWNlZCBieSBGQ1ApIGFuZCAnZGl2eCcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfdmlkZW9fY2Fwcyk6CgkgIEFkZCBjb2RlYyBtYXBwaW5nIGZvciAnMnZ1eScgKFJhdyBZVVYgcHJvZHVjZWQgYnkgRkNQKSBhbmQgJ2RpdngnLgoKMjAwNy0wNy0yNCAwNTowNzo1OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiBEb24ndCB1bnJlZiB0aGUgb3V0Z29pbmcgYnVmZmVyIHR3aWNlIHdoZW4gZHJvcHBpbmcgaXQgYmVjYXVzZSBpdCdzIG91dHNpZGUgb2YgdGhlIHNlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogKGdzdF93YXZwYWNrX2RlY19jaGFpbik6CgkgIERvbid0IHVucmVmIHRoZSBvdXRnb2luZyBidWZmZXIgdHdpY2Ugd2hlbiBkcm9wcGluZyBpdCBiZWNhdXNlIGl0J3MKCSAgb3V0c2lkZSBvZiB0aGUgc2VnbWVudC4KCjIwMDctMDctMjQgMDQ6NTc6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFVzZSB0aGUgbmV3IGJ1ZmZlciBjbGlwcGluZyBmdW5jdGlvbiBmcm9tIGdzdGF1ZGlvIGhlcmUgYW5kIHJlcXVpcmUgZ3N0LXBsdWdpbnMtYmFzZSBDVlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX2NoYWluKSwgKGdzdF93YXZwYWNrX2RlY19zaW5rX2V2ZW50KToKCSAgVXNlIHRoZSBuZXcgYnVmZmVyIGNsaXBwaW5nIGZ1bmN0aW9uIGZyb20gZ3N0YXVkaW8gaGVyZSBhbmQKCSAgcmVxdWlyZSBnc3QtcGx1Z2lucy1iYXNlIENWUy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZGVjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZvciBmcmFtZWQgV2F2cGFjayBidWZmZXJzIHdlIHJlcXVpcmUgYSB2YWxpZCB0aW1lc3RhbXAuCgoyMDA3LTA3LTIzIDE4OjAzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBDbGlwIHJhdyBhdWRpbyBhbmQgdmlkZW8gd2hlbiB3ZSBjYW4sIGtlZXAgdHJhY2sgb2YgY3VycmVudCBvdXRwdXQgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCksCgkgIChnc3RfcXRkZW11eF9jbGlwX2J1ZmZlciksIChnc3RfcXRkZW11eF9sb29wX3N0YXRlX21vdmllKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X3ZpZGVvX2NhcHMpLCAocXRkZW11eF9hdWRpb19jYXBzKToKCSAgQ2xpcCByYXcgYXVkaW8gYW5kIHZpZGVvIHdoZW4gd2UgY2FuLCBrZWVwIHRyYWNrIG9mIGN1cnJlbnQgb3V0cHV0CgkgIHNlZ21lbnQuCgkgIERvbid0IGxlYWsgYnVmZmVycyBhbmQgZXZlbnRzIHdoZW4gdGhlcmUgaXMgbm8gb3V0cHV0IHBhZC4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgaGVyZSBhbmQgdGhlcmUuCgoyMDA3LTA3LTIzIDA5OjAyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFN5bmMgbGlib2lsIGNoZWNrIHdpdGggcGx1Z2lucy1iYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFN5bmMgbGlib2lsIGNoZWNrIHdpdGggcGx1Z2lucy1iYXNlLgoKMjAwNy0wNy0yMCAxMTozNzozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2VxdWFsaXplci86IEJldHRlciBhbGdvcml0aCBmb3IgdGhlIGNlbnRlciBmcmVxdWVuY2llcy4gU3VidHJhY3QgYmFuZCBmaWx0ZXJzIGZyb20gaW5wdXQgZm9yIG5lZ2F0aXZlIGdhaW5zLiBSZXdvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl9iYW5kX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2NoaWxkX3Byb3h5X2ludGVyZmFjZV9pbml0KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2NsYXNzX2luaXQpLCAoYXJnX3RvX3NjYWxlKSwgKHNldHVwX2ZpbHRlciksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jb21wdXRlX2ZyZXF1ZW5jaWVzKToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyXzEwYmFuZHNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIzYmFuZHMuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyXzNiYW5kc19jbGFzc19pbml0KToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcm5iYW5kcy5jOgoJICBCZXR0ZXIgYWxnb3JpdGggZm9yIHRoZSBjZW50ZXIgZnJlcXVlbmNpZXMuIFN1YnRyYWN0IGJhbmQgZmlsdGVycyBmcm9tCgkgIGlucHV0IGZvciBuZWdhdGl2ZSBnYWlucy4gUmV3b3JrIHRoZSBnYWluIG1hcHBpbmcuCgoyMDA3LTA3LTIwIDA3OjQxOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvYW5ub2RleC9NYWtlZmlsZS5hbTogRml4IENGTEFHUy9MSUJTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYW5ub2RleC9NYWtlZmlsZS5hbToKCSAgRml4IENGTEFHUy9MSUJTLgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfdGFzayk6CgkgIEluY2x1ZGUgc3RkbGliCgkgICogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2ZpbHRlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sZXZlbC9NYWtlZmlsZS5hbToKCSAgVXNlICQoTElCTSkgaW5zdGVhZCBvZiAtbG0KCjIwMDctMDctMTggMTE6NTU6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogQWRkIGFub3RoZXIgZXhhbXBsZSBwaXBlbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBBZGQgYW5vdGhlciBleGFtcGxlIHBpcGVsaW5lLgoKMjAwNy0wNy0xOCAxMTo0MjozMyArMDAwMCAgQWxleGFuZGVyIEVpY2huZXIgPGFsZXhlaWNoaUB5YWhvby5kZT4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogVXNlIGRlZmluZSBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXhhbmRlciBFaWNobmVyIDxhbGV4ZWljaGlAeWFob28uZGU+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfaW5pdCk6CgkgIFVzZSBkZWZpbmUgaGVyZS4KCSAgKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzoKCSAgKGdzdF92NGwyX3R1bmVyX3NldF9mcmVxdWVuY3lfYW5kX25vdGlmeSk6CgkgIERvbid0IHRvdWNoIHRoZSBwcm9wZXJ0eSAtIGl0cyBzdGlsbCBkaXNhYmxlZC4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXQpLAoJICAoZ3N0X3Y0bDJzcmNfZ3JhYl9mcmFtZSksIChnc3RfdjRsMnNyY19nZXRfc2l6ZV9saW1pdHMpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgSW1wcm92ZSBmYWxsYmFjayBmb3JtYXQgbmVnb3Rpb25hdGlvbi4gRml4ZXMgIzQ1MTM4OAoKMjAwNy0wNy0xOCAxMDozMzozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6IEZpeCB0aGUgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0aGUgdGVzdC4KCjIwMDctMDctMTggMDk6MjE6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgZG9jcy4gTW9yZSBsb2dzIGluIHBuZ2RlYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfdGFzayksCgkgIChnc3RfcG5nZGVjX3Npbmtfc2V0Y2Fwcyk6CgkgIE1vcmUgZG9jcy4gTW9yZSBsb2dzIGluIHBuZ2RlYy4KCjIwMDctMDctMTggMDc6NTE6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6IEFkZCBleGFtcGxlIHRvIHRoZSBkb2NzLiBGaXggYnVmZmVyLW9mZnNldC1lbmQgYW5kIGFkZCBzb21lIGRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5jOiAoZ3N0X211bHRpX2ZpbGVfc3JjX2NyZWF0ZSk6CgkgIEFkZCBleGFtcGxlIHRvIHRoZSBkb2NzLiBGaXggYnVmZmVyLW9mZnNldC1lbmQgYW5kIGFkZCBzb21lIGRlYnVnLgoKMjAwNy0wNy0xOCAwNzozNTozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIHN0ZGxpYiBpbmNsdWRlIChmcmVlLCBhdG9pLCBleGl0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvYXBwL2FwcHNyY19leC5jOgoJICAqIGV4YW1wbGVzL3N3aXRjaC9zd2l0Y2hlci5jOgoJICAqIGV4dC9uZW9uL2dzdG5lb25odHRwc3JjLmM6CgkgICogZXh0L3RpbWlkaXR5L2dzdHdpbGRtaWRpLmM6CgkgICogZXh0L3gyNjQvZ3N0eDI2NGVuYy5jOgoJICAqIGdzdC9tdmUvbXZlYXVkaW9lbmMuYzogKG12ZV9jb21wcmVzc19hdWRpbyk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwY2xpZW50LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgICogZ3N0L3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6CgkgICogZ3N0L3NwZWN0cnVtL2RlbW8tb3Nzc3JjLmM6CgkgICogc3lzL2R2Yi9nc3RkdmJzcmMuYzoKCSAgQWRkIHN0ZGxpYiBpbmNsdWRlIChmcmVlLCBhdG9pLCBleGl0KS4KCjIwMDctMDctMTcgMTE6MzU6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogSW5pdGlhbGl6ZSBudW1fYnVmZmVycyB3aXRoIG1pbmltdW0gdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2luaXQpOgoJICBJbml0aWFsaXplIG51bV9idWZmZXJzIHdpdGggbWluaW11bSB2YWx1ZS4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19maWxsX2Zvcm1hdF9saXN0KSwKCSAgKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdCksIChnc3RfdjRsMnNyY19ncmFiX2ZyYW1lKToKCSAgSGFuZGxlIGZyYW1lLXNpemUgcXVlcnkgZmFpbHVyZSBncmFjZWZ1bGx5LgoKMjAwNy0wNy0xNiAxMjoxMTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IHBhcnNpbmcgb2YgZXNkcyBhdG9tcyBpbnNpZGUgbXA0YSBhdG9tcyBzbyB0aGF0IHdlIGNhbiBzZXQgY29ycmVjdCBjb2RlY19pbmZvIGZvciBBQUMgYXVkaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX25vZGUpOgoJICBGaXggcGFyc2luZyBvZiBlc2RzIGF0b21zIGluc2lkZSBtcDRhIGF0b21zIHNvIHRoYXQgd2UgY2FuIHNldCBjb3JyZWN0CgkgIGNvZGVjX2luZm8gZm9yIEFBQyBhdWRpby4gRml4ZXMgIzQ1NzA5NyBhbG9uZyB3aXRoIGEgd2hvbGUgb3RoZXIgYnVuY2gKCSAgb2YgcXQvYWFjIGZpbGVzLgoKMjAwNy0wNy0xNiAwOToxNjowMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiBGaXggYnVmZmVyIGNsaXBwaW5nIHRvIGNvcnJlY3RseSBjbGlwIHRvIHRoZSBzZWdtZW50IHN0b3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSAgKGdzdF93YXZwYWNrX2RlY19jbGlwX291dGdvaW5nX2J1ZmZlcik6CgkgIEZpeCBidWZmZXIgY2xpcHBpbmcgdG8gY29ycmVjdGx5IGNsaXAgdG8gdGhlIHNlZ21lbnQgc3RvcC4KCjIwMDctMDctMTMgMTY6MzE6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVtb3ZlIGJvZ3VzIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2Ugd2UgY2hlY2sgZm9yIGdzdHJlYW1lci1jaGVjayBhbmQgaXQgcHVsbHMgaW4gdGhlIHJlcXVpcmVkIGluZm8gZnJvbSB0aGVyZSwgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIGJvZ3VzIGNoZWNrIGZvciBsaWJjaGVjaywgc2luY2Ugd2UgY2hlY2sgZm9yCgkgIGdzdHJlYW1lci1jaGVjayBhbmQgaXQgcHVsbHMgaW4gdGhlIHJlcXVpcmVkIGluZm8gZnJvbSB0aGVyZSwKCSAgYW5kIHdlIHdlcmVuJ3QgYWN0dWFsbHkgX3VzaW5nXyB0aGUgaW5mb3JtYXRpb24gZm9yIGxpYmNoZWNrCgkgIG91cnNlbHZlcyBhbnl3YXkuCgoyMDA3LTA3LTEyIDExOjIxOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBwa2ctY29uZmlnIHRvIGxvY2F0ZSBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgcGtnLWNvbmZpZyB0byBsb2NhdGUgY2hlY2suCgoyMDA3LTA3LTExIDIzOjQzOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogRml4IGJ1aWxkIGFnYWluc3QgY29yZSBDVlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOiAoZ3N0X2RlaW50ZXJsZWF2ZV9wcm9jZXNzKToKCSAgKiBnc3Qvdm1uYy92bW5jZGVjLmM6ICh2bW5jX21ha2VfYnVmZmVyKToKCSAgRml4IGJ1aWxkIGFnYWluc3QgY29yZSBDVlMuCgoyMDA3LTA3LTExIDIyOjMxOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IGJ1aWxkIGFnYWluc3QgY29yZSBDVlMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOiAoZ3N0X2NhaXJvX3RpbWVfb3ZlcmxheV90cmFuc2Zvcm0pOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzogKGdzdF9qcGVnZW5jX2NoYWluKToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOiAoZ3N0X3BuZ2VuY19jaGFpbik6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2NoYWluKToKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzogKGdzdF9uYXZpZ2F0aW9udGVzdF90cmFuc2Zvcm0pOgoJICAqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6IChnc3RfYWdpbmd0dl90cmFuc2Zvcm0pOgoJICAqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzogKGdzdF9kaWNldHZfdHJhbnNmb3JtKToKCSAgKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6IChnc3RfZWRnZXR2X3RyYW5zZm9ybSk6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzogKGdzdF9xdWFya3R2X3RyYW5zZm9ybSk6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6IChnc3RfcmV2dHZfdHJhbnNmb3JtKToKCSAgKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6IChnc3Rfc2hhZ2FkZWxpY3R2X3RyYW5zZm9ybSk6CgkgICogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOiAoZ3N0X3ZlcnRpZ290dl90cmFuc2Zvcm0pOgoJICAqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzogKGdzdF93YXJwdHZfdHJhbnNmb3JtKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfd3Zwa19oZWFkZXIpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2NoZWNrX3N1YnRpdGxlX2J1ZmZlciksCgkgIChnc3RfbWF0cm9za2FfZGVjb2RlX2J1ZmZlcik6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOiAoZ3N0X3ZpZGVvX2ZsaXBfdHJhbnNmb3JtKToKCSAgRml4IGJ1aWxkIGFnYWluc3QgY29yZSBDVlMuCgoyMDA3LTA3LTEwIDEwOjE2OjM4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IERvbid0IHJldHVybiBHU1RfRkxPV19FUlJPUiB3aGVuIHB1c2hpbmcgYW4gZXZlbnQgcmV0dXJucyBGQUxTRS4gV2UgZG9uJ3QgaGF2ZSBlbm91Z2ggZ3JhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X2NoYWluKToKCSAgRG9uJ3QgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIHdoZW4gcHVzaGluZyBhbiBldmVudCByZXR1cm5zIEZBTFNFLiBXZQoJICBkb24ndCBoYXZlIGVub3VnaCBncmFudWxhcml0eSB0byBjb252ZXJ0IHRoYXQgYm9vbGVhbiBpbnRvIGEKCSAgR3N0Rmxvd1JldHVybi4KCjIwMDctMDctMDYgMTU6MDA6NDcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9sYXcvOiBGaXggY2Fwc25lZ28gYm9nb3NpdHkgaW4gKmxhdyBkZWNvZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOiAoYWxhd2RlY19zaW5rX3NldGNhcHMpLAoJICAoZ3N0X2FsYXdkZWNfY2xhc3NfaW5pdCksIChnc3RfYWxhd2RlY19pbml0KSwgKGdzdF9hbGF3ZGVjX2NoYWluKSwKCSAgKGdzdF9hbGF3ZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2xhdy9hbGF3LWRlY29kZS5oOgoJICAqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6IChtdWxhd2RlY19zaW5rX3NldGNhcHMpLAoJICAoZ3N0X211bGF3ZGVjX2NsYXNzX2luaXQpLCAoZ3N0X211bGF3ZGVjX2luaXQpLAoJICAoZ3N0X211bGF3ZGVjX2NoYWluKSwgKGdzdF9tdWxhd2RlY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmg6CgkgIEZpeCBjYXBzbmVnbyBib2dvc2l0eSBpbiAqbGF3IGRlY29kZXJzLgoKMjAwNy0wNy0wNiAxNDozNTo1OSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZXh0L2pwZWcvZ3N0c21va2VlbmMuKjogUmVtb3ZlIHN0dXBpZGl0eSBpbiBnZXQvc2V0IGNhcHMgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvanBlZy9nc3RzbW9rZWVuYy5jOiAoZ3N0X3Ntb2tlZW5jX2luaXQpLAoJICAoZ3N0X3Ntb2tlZW5jX3NldGNhcHMpLCAoZ3N0X3Ntb2tlZW5jX2NoYWluKSwKCSAgKGdzdF9zbW9rZWVuY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmg6CgkgIFJlbW92ZSBzdHVwaWRpdHkgaW4gZ2V0L3NldCBjYXBzIGZ1bmN0aW9ucy4KCSAgRml4IHNvbWUgcmVmY291bnRpbmcgcHJvYmxlbXMuCgoyMDA3LTA3LTA2IDExOjQyOjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IFJlbW92ZSBlbmRpYW5uZXNzLWZsaXBwaW5nIGhhY2sgdGhhdCBzZWVtcyB0byBoYXZlIGJlZW4gcmVxdWlyZWQgb25seSBiZWNhdXNlIG9mIGEgYnVnIGluIGZmbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiAoZ3N0X3BuZ2RlY19jYXBzX2NyZWF0ZV9hbmRfc2V0KToKCSAgUmVtb3ZlIGVuZGlhbm5lc3MtZmxpcHBpbmcgaGFjayB0aGF0IHNlZW1zIHRvIGhhdmUgYmVlbiByZXF1aXJlZAoJICBvbmx5IGJlY2F1c2Ugb2YgYSBidWcgaW4gZmZtcGVnY29sb3JzcGFjZS4KCSAgUGFydGlhbGx5IEZpeGVzOiAjNDUxOTA4CgoyMDA3LTA3LTA1IDA4OjQ0OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06IFNpbXBsaWZ5IC0tZXh0cmEtZGlyIGFzIGd0a2RvYyBzY2FucyByZWN1cnNpdmVseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBTaW1wbGlmeSAtLWV4dHJhLWRpciBhcyBndGtkb2Mgc2NhbnMgcmVjdXJzaXZlbHkuCgoyMDA3LTA3LTAzIDA5OjU5OjQ2ICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6IFNldCB0aGUgZW5jb2RpbmctbmFtZSBpbiB0aGUgcnRwIGNhcHMgdG8gYWxsIHVwcGVyY2FzZSwgYXMgcmVxdWlyZWQgYnkgdGhlIGNhcHMgc3BlYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb21taSBNecO2aMOkbmVuICA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOiAoZ3N0X3J0cGlsYmNwYXlfc2V0Y2Fwcyk6CgkgIFNldCB0aGUgZW5jb2RpbmctbmFtZSBpbiB0aGUgcnRwIGNhcHMgdG8gYWxsIHVwcGVyY2FzZSwgYXMgcmVxdWlyZWQgYnkKCSAgdGhlIGNhcHMgc3BlYy4KCSAgU29tZSBzbWFsbCBjbGVhbnVwcyBpbiB0aGUgZXJyb3IgcGF0aHMuIEZpeGVzICM0NTMwMzcuCgoyMDA3LTA3LTAzIDA4OjAxOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvbXVsdGlmaWxlLzogQWRkIC5oIGZpbGVzIHRvIGJlIGFibGUgdG8gYWRkIGl0IHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlmaWxlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlLmM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmg6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzcmMuYzoKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNyYy5oOgoJICBBZGQgLmggZmlsZXMgdG8gYmUgYWJsZSB0byBhZGQgaXQgdG8gdGhlIGRvY3MuCgoyMDA3LTA3LTAzIDA3OjE2OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5oOiBGaXggR09iamVjdCBtYWNyb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9yZXBsYXlnYWluL2dzdHJndm9sdW1lLmg6CgkgIEZpeCBHT2JqZWN0IG1hY3Jvcy4KCjIwMDctMDYtMjggMTk6MDA6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS4qOiBVc2UgYSBHU0xpc3QgZm9yIHRoZSBHQXJyYXkgdGhhdCBpcyB1c2VkIGxpa2UgYSBsaXN0IGFueXdheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9nZXRfbGFzdF9lbnRyeSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9nZXRfZW50cnlfZnJvbV9zYW1wbGUpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfaW5kZXhfYXBwZW5kX2VudHJ5KSwgKGdzdF93YXZwYWNrX3BhcnNlX3Jlc2V0KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NjYW5fdG9fZmluZF9zYW1wbGUpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICBVc2UgYSBHU0xpc3QgZm9yIHRoZSBHQXJyYXkgdGhhdCBpcyB1c2VkIGxpa2UgYSBsaXN0IGFueXdheS4KCjIwMDctMDYtMjggMTM6MjU6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogQWRkIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB3aGVyZSB3ZSBzZXQgMC8xIGFzIGRlZmF1bHQgZnJhbWVyYXRlIGluIGNhc2Ugb3VyIHNldGNhcHMgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6IChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X2dka19waXhidWZfY2xhc3NfaW5pdCksIChnc3RfZ2RrX3BpeGJ1Zl9mbHVzaCksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX2V2ZW50KSwgKGdzdF9nZGtfcGl4YnVmX2NoYW5nZV9zdGF0ZSk6CgkgIEFkZCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gd2hlcmUgd2Ugc2V0IDAvMSBhcyBkZWZhdWx0IGZyYW1lcmF0ZSBpbgoJICBjYXNlIG91ciBzZXRjYXBzIGZ1bmN0aW9uIGlzbid0IGNhbGxlZCwgbGlrZSBpdCBtaWdodCBub3QgaW4gYQoJICBmaWxlc3JjICEgZ2RrcGl4YnVmZGVjIHNjZW5hcmlvLiBGaXhlcyBhc3NlcnRpb24gdHJpZ2dlcmVkIGJ5CgkgIGdka3BpeGJ1ZmRlYyB0cnlpbmcgdG8gY3JlYXRlIGNhcHMgd2l0aCBhIDAvMCBmcmFtZXJhdGUuCgkgIEFsc28gcG9zdCBhbiBlcnJvciBtZXNzYWdlIG9uIHRoZSBidXMgaWYgZ3N0X3BhZF9wdXNoKCkgZmFpbHMgd2hlbgoJICBjYWxsZWQgZnJvbSBvdXIgc2luayBldmVudCBoYW5kbGVyICgrMSBmb3IgZmxvdyByZXR1cm5zIGZvciBldmVudAoJICBmdW5jdGlvbnMgaW4gMC4xMSkgaW5zdGVhZCBvZiBmYWlsaW5nIHNpbGVudGx5LgoKMjAwNy0wNi0yNyAxMTozNjoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogQ2FzdCBzdGFjayBhcmdzIHRvIHRoZSBwcm9wZXIgdHlwZXMuIEZpeGVzICM0NTEyNDkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NvbmZpZ3VyZV9jYXBzKToKCSAgQ2FzdCBzdGFjayBhcmdzIHRvIHRoZSBwcm9wZXIgdHlwZXMuIEZpeGVzICM0NTEyNDkuCgoyMDA3LTA2LTI3IDExOjA0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBGb3IgY29udGFpbmVyIGZvcm1hdHMgd2Ugb25seSBuZWVkIHRvIGFjdGl2YXRlIG9uZSBvZiB0aGUgc3RyZWFtcyBzbyB0aGF0IHdlIGNvcnJlY3RseSBzaWduYWwgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NyZWF0ZV9zdHJlYW0pLAoJICAobmV3X3Nlc3Npb25fcGFkKSwgKGdzdF9ydHNwc3JjX3NldHVwX3N0cmVhbXMpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgRm9yIGNvbnRhaW5lciBmb3JtYXRzIHdlIG9ubHkgbmVlZCB0byBhY3RpdmF0ZSBvbmUgb2YgdGhlIHN0cmVhbXMgc28KCSAgdGhhdCB3ZSBjb3JyZWN0bHkgc2lnbmFsIG5vLW1vcmUtcGFkcy4gRml4ZXMgIzQ1MTAxNS4KCjIwMDctMDYtMjUgMTI6NDY6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBkb2NzIHdpdGggY2FwcyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxhZHNwYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdWlja3RpbWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSAgVXBkYXRlIGRvY3Mgd2l0aCBjYXBzIGluZm8uCgoyMDA3LTA2LTI1IDEyOjEzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcG8vUE9URklMRVMuaW46IEFkZCBtb3JlIGZpbGVzIHdpdGggdHJhbnNsYXRhYmxlIHN0cmluZ3MgKCM0NTA4NzgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgQWRkIG1vcmUgZmlsZXMgd2l0aCB0cmFuc2xhdGFibGUgc3RyaW5ncyAoIzQ1MDg3OCkuCgoyMDA3LTA2LTIyIDIwOjIzOjE4ICswMDAwICBKZW5zIEdyYW5zZXVlciA8amVuc2dyQGdteC5uZXQ+CgoJICBnc3QvOiBCdWlsZCBmaXhlcyBmb3IgZ2NjLTIuOXggKG5vIG1pZC1ibG9jayB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgZXRjLikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVucyBHcmFuc2V1ZXIgIDxqZW5zZ3IgYXQgZ214IG5ldD4KCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXJuYmFuZHMuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9hc3luY19qaXR0ZXJfcXVldWUuYzoKCSAgKGFzeW5jX2ppdHRlcl9xdWV1ZV9wdXNoX3NvcnRlZCk6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwaml0dGVyYnVmZmVyLmM6CgkgIChnc3RfcnRwX2ppdHRlcl9idWZmZXJfY2hhaW4pOgoJICAqIGdzdC9zd2l0Y2gvZ3N0c3dpdGNoLmM6IChnc3Rfc3dpdGNoX2NoYWluKToKCSAgQnVpbGQgZml4ZXMgZm9yIGdjYy0yLjl4IChubyBtaWQtYmxvY2sgdmFyaWFibGUgZGVjbGFyYXRpb25zIGV0Yy4pLgoJICBGaXhlcyAjNDUwMTg1LgoKMjAwNy0wNi0yMiAxNDoyNjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNQUlOVEFJTkVSUzogVXBkYXRpbmcgYWxsIHRoZSBtYWludGFpbmVycyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNQUlOVEFJTkVSUzoKCSAgVXBkYXRpbmcgYWxsIHRoZSBtYWludGFpbmVycyBmaWxlcwoKMjAwNy0wNi0yMiAxMDoxMjoxNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEZpeCBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzogKGdzdF9mbGFjX3RhZ19pbml0KToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGRlaW50ZXJsZWF2ZV9pbml0KSwKCSAgKGRlaW50ZXJsZWF2ZV9zaW5rX2xpbmspOgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYzogKGludGVybGVhdmVfaW5pdCk6CgkgICogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzogKGdzdF9tZWRpYW5faW5pdCk6CgkgICogZ3N0L29sZGNvcmUvZ3N0bXVsdGlmaWxlc3JjLmM6IChnc3RfbXVsdGlmaWxlc3JjX2luaXQpOgoJICBGaXggbWVtb3J5IGxlYWtzLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM2RlbXV4LmM6IChwYWRfYWRkZWRfY2IpOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwNy0wNi0yMSAxMDo0ODoxMCArMDAwMCAgRGFtaWVuIENhcmJlcnkgPGRhbWllbi5jYXJiZXJ5QHN1bi5jb20+CgoJICBleHQvZ2NvbmYvZ2NvbmYuaDogTWFrZSB0aGUgcHJvdG90eXBlIG9mIGdzdF9nY29uZl9nZXRfa2V5X2Zvcl9zaW5rX3Byb2ZpbGUgbWF0Y2ggdGhlIGltcGxlbWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvZ2NvbmYuaDoKCSAgTWFrZSB0aGUgcHJvdG90eXBlIG9mIGdzdF9nY29uZl9nZXRfa2V5X2Zvcl9zaW5rX3Byb2ZpbGUKCSAgbWF0Y2ggdGhlIGltcGxlbWVudGF0aW9uLgoJICBQYXRjaCBieTogRGFtaWVuIENhcmJlcnkgPGRhbWllbiBkb3QgY2FyYmVyeSBhdCBzdW4gZG90IGNvbT4KCSAgRml4ZXM6ICM0NDk3NDcKCjIwMDctMDYtMjAgMTI6NTY6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9ydHAvZ3N0cnRwZGVwYXkuYzogRml4IGRlc2NyaXB0aW9uIC0gcnRwZGVwYXkgaXMgbm90IGEgcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkgIEZpeCBkZXNjcmlwdGlvbiAtIHJ0cGRlcGF5IGlzIG5vdCBhIHBheWxvYWRlci4KCjIwMDctMDYtMjAgMTA6MTU6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6IERvY3VtZW50IHBhcmFtZXRlciBtYXBwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJICBEb2N1bWVudCBwYXJhbWV0ZXIgbWFwcGluZy4KCjIwMDctMDYtMjAgMDg6NTY6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiBGaXggbGVha2luZyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9ldmVudCksCgkgIChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgRml4IGxlYWtpbmcgYnVmZmVycy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zcGVjdHJ1bS5jOiAoc2V0dXBfc3BlY3RydW0pLAoJICAoY2xlYW51cF9zcGVjdHJ1bSksIChHU1RfU1RBUlRfVEVTVCksIChzcGVjdHJ1bV9zdWl0ZSksIChtYWluKToKCSAgQWRkIHNpbXBsZSB0ZXN0IGZvciBzcGVjdHJ1bSBlbGVtZW50LgoKMjAwNy0wNi0yMCAwODoyNjoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvOiBBZGQgTUpQRyB0byB0aGUgdmFyaWFudHMgb2YgbW90aW9uIGpwZWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2Vfc2FtcGxlcyksCgkgIChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZm91cmNjLmg6CgkgIEFkZCBNSlBHIHRvIHRoZSB2YXJpYW50cyBvZiBtb3Rpb24ganBlZy4KCjIwMDctMDYtMTkgMTY6NDA6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBHU1RfT1BUSU9OX0NGTEFHUyB0byBDRkxBR1Mgd2hlbiBidWlsZGluZyB1bml0IHRlc3RzLCBzbyB0aGUgZXJyb3IgZmxhZ3MgYXJlIGluY2x1ZGVkIGFuZCBpdCBlcnJvcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9wYW5vcmFtYS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja2RlYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2twYXJzZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgR1NUX09QVElPTl9DRkxBR1MgdG8gQ0ZMQUdTIHdoZW4gYnVpbGRpbmcgdW5pdCB0ZXN0cywgc28gdGhlCgkgIGVycm9yIGZsYWdzIGFyZSBpbmNsdWRlZCBhbmQgaXQgZXJyb3JzIG91dCBvbiBjb21waWxlciB3YXJuaW5ncwoJICBmb3IgQ1ZTIGJ1aWxkczsgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgaW4gdmFyaW91cyB1bml0IHRlc3RzLgoKMjAwNy0wNi0xOSAxNDo0ODowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IFVzZSB0aHJlYWRzYWZlIGluZXRfbnRvcCB0byBjb252ZXJ0IGFuIGlwIG51bWJlciB0byBhIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKHJ0c3BfY29ubmVjdGlvbl9jb25uZWN0KSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9jbG9zZSksIChydHNwX2Nvbm5lY3Rpb25fZnJlZSk6CgkgIFVzZSB0aHJlYWRzYWZlIGluZXRfbnRvcCB0byBjb252ZXJ0IGFuIGlwIG51bWJlciB0byBhIHN0cmluZy4KCSAgRml4ZXMgIzQ0Nzk2MS4KCSAgRG9uJ3QgbGVhayBmZCAoYW5kIGlwKSB3aGVuIGZyZWVpbmcgYSBjb25uZWN0aW9uIHdpdGhvdXQgZmlyc3QgY2xvc2luZwoJICBpdC4KCjIwMDctMDYtMTkgMTQ6MTE6NDkgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC9xdGRlbXV4L0xFR0FMOgoJICBhZGQgJ0xFR0FMJyBmaWxlIGRlc2NyaWJpbmcgd2h5IHRoaXMgaXMgaW4gLWdvb2QgYW5kIHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyBpdCBtaWdodCBuZWVkIHRvIG1vdmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgJ0xFR0FMJyBmaWxlIGRlc2NyaWJpbmcgd2h5IHRoaXMgaXMgaW4gLWdvb2QgYW5kIHVuZGVyIHdoYXQKCSAgY2lyY3Vtc3RhbmNlcyBpdCBtaWdodCBuZWVkIHRvIG1vdmUuCgoyMDA3LTA2LTE5IDEwOjQxOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoJICAqIGdzdC1wbHVnaW5zLWdvb2QuZG9hcDoKCSAgQWRkIDAuMTAuNiB0byB0aGUgZG9hcCBmaWxlLgoKPT09IHJlbGVhc2UgMC4xMC42ID09PQoKMjAwNy0wNi0xOSAxMDoyNDo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1aWNrdGltZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvY3JvcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC42CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuNgoKMjAwNy0wNi0xOCAxNzo1MzoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NzLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTA2LTE3IDEyOjM1OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCBhZ2Fpbiwgc2luY2Ugd2UgYXJlIGZyb3plbiAoc29ycnkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2Nvbm5lY3QpLAoJICAocnRzcF9jb25uZWN0aW9uX2ZyZWUpOgoJICBSZXZlcnQgcHJldmlvdXMgY29tbWl0IGFnYWluLCBzaW5jZSB3ZSBhcmUgZnJvemVuIChzb3JyeSkuCgoyMDA3LTA2LTE3IDEyOjI0OjU4ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IGluZXRfbnRvYSgpIHVzZXMgYSBzdGF0aWMgYnVmZmVyIGludGVybmFsbHksIHNvIHdlIG5lZWQgdG8gY29weSB0aGUgcmV0dXJuZWQgc3RyaW5nIGlmIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChydHNwX2Nvbm5lY3Rpb25fY29ubmVjdCksCgkgIChydHNwX2Nvbm5lY3Rpb25fZnJlZSk6CgkgIGluZXRfbnRvYSgpIHVzZXMgYSBzdGF0aWMgYnVmZmVyIGludGVybmFsbHksIHNvIHdlIG5lZWQgdG8gY29weSB0aGUKCSAgcmV0dXJuZWQgc3RyaW5nIGlmIHdlIHdhbnQgdG8gc3RvcmUgaXQgZm9yIGxhdGVyICgjNDQ3OTYxKS4KCjIwMDctMDYtMTUgMDk6MTM6NTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvdnM2LzogTWFyayAqLmRzcCAmICouZHN3IGFzIGJpbmFyeSBmaWxlcyBhbmQgY29udmVydCB0byBET1MgbGluZSBlbmRpbmdzLCBhcyB0aGV5IGRvbid0IGxvYWQgaW50byBWUzYgY29ycmVjdGx5Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9hdXRvZ2VuLmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X3BsdWdpbnNfZ29vZC5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGFsYXcuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhbHBoYS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGFscGhhY29sb3IuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhcGV0YWcuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhdWRpb2Z4LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YXVwYXJzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGF1dG9kZXRlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhdmkuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RjdXR0ZXIuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RkaXJlY3RkcmF3LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZGlyZWN0c291bmQuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlZmZlY3R2LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Zmx4LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Z29vbS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGljeWRlbXV4LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0aWQzZGVtdXguZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RpbnRlcmxlYXZlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0anBlZy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGxldmVsLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0bWF0cm9za2EuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RtZWRpYW4uZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rtb25vc2NvcGUuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RtdWxhdy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdG11bHRpcGFydC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHF0ZGVtdXguZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RydHAuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RydHNwLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0c21wdGUuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RzcGVleC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHVkcC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHZpZGVvYmFsYW5jZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHZpZGVvYm94LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0dmlkZW9jcm9wLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0dmlkZW9mbGlwLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0dmlkZW9taXhlci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHdhdmVmb3JtLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0d2F2ZW5jLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0d2F2cGFyc2UuZHNwOgoJICBNYXJrICouZHNwICYgKi5kc3cgYXMgYmluYXJ5IGZpbGVzIGFuZCBjb252ZXJ0IHRvIERPUyBsaW5lCgkgIGVuZGluZ3MsIGFzIHRoZXkgZG9uJ3QgbG9hZCBpbnRvIFZTNiBjb3JyZWN0bHkgb3RoZXJ3aXNlLgoKMjAwNy0wNi0xNSAwODozMjo1MiArMDAwMCAgVmluY2VudCBUb3JyaSA8dnRvcnJpQHVuaXYtZXZyeS5mcj4KCgkgIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IEZpeCB0aGUgTWluZ1cgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChydHNwX2Nvbm5lY3Rpb25fY3JlYXRlKSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9jb25uZWN0KToKCSAgRml4IHRoZSBNaW5nVyBidWlsZC4KCSAgUGF0Y2ggQnk6IFZpbmNlbnQgVG9ycmkgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZG90IGZyPgoJICBGaXhlczogIzQ0Njk4MQoKMjAwNy0wNi0xNCAxNDowMzo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy86IEh1c2ggdGhlIGJ1aWxkYm90cyB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2ljbGVzLy5jdnNpZ25vcmU6CgkgIEh1c2ggdGhlIGJ1aWxkYm90cyB1cAoKMjAwNy0wNi0xNCAxMjoxNDoyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNYWtlIHN1cmUgdG8gZGlzdCBldmVyeXRoaW5nIG5lZWRlZCBmb3Igd2luMzIgYnVpbGRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogc3lzL01ha2VmaWxlLmFtOgoJICAqIHN5cy9kaXJlY3RkcmF3L01ha2VmaWxlLmFtOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9NYWtlZmlsZS5hbToKCSAgKiBzeXMvd2F2ZWZvcm0vTWFrZWZpbGUuYW06CgkgIE1ha2Ugc3VyZSB0byBkaXN0IGV2ZXJ5dGhpbmcgbmVlZGVkIGZvciB3aW4zMiBidWlsZHMuCgoyMDA3LTA2LTE0IDEwOjIzOjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBGb3IgQU1SLU5CIHN0cmVhbXMsIGV4cG9ydCB0aGUgQU1SU3BlY2lmaWNCb3ggYXMgY29kZWNfZGF0YSBvbiB0aGUgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRm9yIEFNUi1OQiBzdHJlYW1zLCBleHBvcnQgdGhlIEFNUlNwZWNpZmljQm94IGFzIGNvZGVjX2RhdGEgb24gdGhlCgkgIGNhcHMuCgkgIEZpeGVzICM0NDc0NTgKCjIwMDctMDYtMTMgMTc6MTE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiBNYWtlIHN1cmUgd2UgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgdGhlIGNvZGVjX2RhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0Y2Fwcyk6CgkgIE1ha2Ugc3VyZSB3ZSBhbGxvY2F0ZSBlbm91Z2ggbWVtb3J5IGZvciB0aGUgY29kZWNfZGF0YS4KCSAgRml4ZXMgIzQ0NzIxMC4KCjIwMDctMDYtMTIgMjE6MDU6MjIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiBBZGQgdmlkZW9jcm9wIHByb2plY3QgZmlsZSB0byB0aGUgd2luMzIgbWFuaWZlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBBZGQgdmlkZW9jcm9wIHByb2plY3QgZmlsZSB0byB0aGUgd2luMzIgbWFuaWZlc3QuCgkgICogd2luMzIvdnM2L2dzdF9wbHVnaW5zX2dvb2QuZHN3OgoJICBBZGQgcXRkZW11eCx2aWRlb2Nyb3AgYW5kIHdhdmVmb3JtIHByb2plY3RzIHRvIHRoZSB3b3Jrc3BhY2UuCgkgICogd2luMzIvdnM2L2xpYmdzdHF0ZGVtdXguZHNwOgoJICBBZGQgemxpYiB0byB0aGUgbGluayBsaXN0IG9mIHF0ZGVtdXguCgkgICogd2luMzIvdnM2L2xpYmdzdHZpZGVvY3JvcC5kc3A6CgkgIEFkZCBhIHByb2plY3QgZmlsZSBmb3IgdmlkZW9jcm9wLgoKMjAwNy0wNi0xMiAyMDoyMjoyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwby9QT1RGSUxFUy5pbjogQWRkIHF0ZGVtdXggZm9yIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL1BPVEZJTEVTLmluOgoJICBBZGQgcXRkZW11eCBmb3IgdHJhbnNsYXRpb24KCjIwMDctMDYtMTIgMjA6MTU6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTW92ZSB2aWRlb2Nyb3AgYW5kIG9zeHZpZGVvIGZyb20gLWJhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgICogc3lzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2ljbGVzL3ZpZGVvY3JvcC10ZXN0LmM6CgkgIE1vdmUgdmlkZW9jcm9wIGFuZCBvc3h2aWRlbyBmcm9tIC1iYWQuCgoyMDA3LTA2LTEyIDE5OjM1OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE1vdmUgcXRkZW11eCBmcm9tIC1iYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdGRlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXVpY2t0aW1lLnhtbDoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgTW92ZSBxdGRlbXV4IGZyb20gLWJhZC4KCSAgKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUgdG8gcmVmbGVjdCBtb3Zpbmcgb2YgcXRkZW11eCBhbmQgd2F2cGFjawoKMjAwNy0wNi0xMiAxOTowMTo0MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL01BTklGRVNUOgoJICBGaXggdHlwbyBpbiB0aGUgY2hhbmdlbG9nIGFuZCBjb21taXQgdGhlIG1hbmlmZXN0IHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHR5cG8gaW4gdGhlIGNoYW5nZWxvZyBhbmQgY29tbWl0IHRoZSBtYW5pZmVzdCB0b28KCjIwMDctMDYtMTIgMTg6NTI6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvTUFOSUZFU1QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1QKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRpcmVjdGRyYXcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kaXJlY3Rzb3VuZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVmb3JtLnhtbDoKCSAgTW92ZSB0aGUgd2F2ZWZvcm0gcGx1Z2luIGZyb20gLWJhZCB0b28uIFVwZGF0ZSB0aGUgaW5zcGVjdCB4bWwKCSAgZmlsZXMgdG8gbWVudGlvbiBQbHVnaW5zIEdvb2QgaW5zdGVhZCBvZiBQbHVnaW5zIEJhZC4KCjIwMDctMDYtMTIgMTM6MzM6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBwb29sIGJ1ZmZlciBpZiBhbGwgbW1hcCBidWZmZXJzIGhhdmUgYmVlbiBkZXF1ZXVlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIChnc3RfdjRsMnNyY19ncmFiX2ZyYW1lKTogUmV0dXJuIGEgY29weSBvZiB0aGUgcG9vbCBidWZmZXIgaWYgYWxsCgkgIG1tYXAgYnVmZmVycyBoYXZlIGJlZW4gZGVxdWV1ZWQuCgoyMDA3LTA2LTEyIDExOjIzOjAxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmMgKGdzdF92NGwyX2J1ZmZlcl9maW5hbGl6ZSkgKGdzdF92NGwyX2J1ZmZlcl9jbGFzc19pbml0LCBnc3RfdjRsMl9idWZmZXJfZ2V0X3R5cGUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYyAoZ3N0X3Y0bDJfYnVmZmVyX2ZpbmFsaXplKQoJICAoZ3N0X3Y0bDJfYnVmZmVyX2NsYXNzX2luaXQsIGdzdF92NGwyX2J1ZmZlcl9nZXRfdHlwZSkKCSAgKGdzdF92NGwyX2J1ZmZlcl9uZXcpOiBCZWhhdmUgbW9yZSBsaWtlIHhpbWFnZXNpbmsncyBidWZmZXJzLCB3aXRoCgkgIGZpbmFsaXphdGlvbiBhbmQgcmVzdXNjaXRhdGlvbi4gTm8gbG9uZ2VyIHB1YmxpYy4KCSAgKGdzdF92NGwyX2J1ZmZlcl9wb29sX2ZpbmFsaXplLCBnc3RfdjRsMl9idWZmZXJfcG9vbF9pbml0KQoJICAoZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfY2xhc3NfaW5pdCwgZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfZ2V0X3R5cGUpCgkgIChnc3RfdjRsMl9idWZmZXJfcG9vbF9uZXcsIGdzdF92NGwyX2J1ZmZlcl9wb29sX2FjdGl2YXRlKQoJICAoZ3N0X3Y0bDJfYnVmZmVyX3Bvb2xfZGVzdHJveSk6IE1ha2UgdGhlIHBvb2wgZm9sbG93IGNvbW1vbgoJICBtaW5pb2JqZWN0IHNlbWFudGljcywgYW5kIGJlIHRocmVhZHNhZmUuCgkgIChnc3RfdjRsMnNyY19xdWV1ZV9mcmFtZSk6IFJlbW92ZSB0aGlzIGZ1bmN0aW9uLCBhcyB3ZSBqdXN0IGNhbGwKCSAgdGhlIGlvY3RscyBkaXJlY3RseSBpbiB0aGUgdHdvIHBsYWNlcyB3aGVyZSB3ZSBxdWV1ZSBidWZmZXJzLgoJICAoZ3N0X3Y0bDJzcmNfZ3JhYl9mcmFtZSk6IFJldHVybiBhIGZsb3dyZXR1cm4gYW5kIGZpbGwgdGhlIGJ1ZmZlcgoJICBkaXJlY3RseS4KCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfaW5pdCk6IFVzZSB0aGUgbmV3IGJ1ZmZlcl9wb29sX25ldyBmdW5jdGlvbgoJICB0byBhbGxvY2F0ZSB0aGUgcG9vbCwgd2hpY2ggYWxzbyBwcmVhbGxvY2F0ZXMgdGhlIEdzdEJ1ZmZlcnMuCgkgIChnc3RfdjRsMnNyY19jYXB0dXJlX3N0YXJ0KTogQ2FsbCBidWZmZXJfcG9vbF9hY3RpdmF0ZSBpbnN0ZWFkIG9mCgkgIHF1ZXVlaW5nIHRoZSBmcmFtZXMgZGlyZWN0bHkuCgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oIChzdHJ1Y3QgX0dzdFY0bDJCdWZmZXJQb29sKTogTWFrZSB0aGlzIGEKCSAgcmVhbCBNaW5pT2JqZWN0IGluc3RlYWQgb2Ygcm9sbGluZyBvdXIgb3duIHJlZmNvdW50aW5nIGFuZAoJICBmaW5hbGl6aW5nLiBHaXZlIGl0IGEgbG9jay4KCSAgKHN0cnVjdCBfR3N0VjRsMkJ1ZmZlcik6IFJlbW92ZSBvbmUgaW50ZXJtZWRpYXJ5IG9iamVjdCwgaGF2aW5nCgkgIHRoZSBidWZmZXJzIGhvbGQgdGhlIHN0cnVjdCB2NGwyX2J1ZmZlciBkaXJlY3RseS4KCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmMgKGdzdF92NGwyc3JjX3NldF9jYXBzKTogUGFzcyB0aGUgY2FwcyB0bwoJICBjYXB0dXJlX2luaXQgc28gdGhhdCBpdCBjYW4gc2V0IHRoZW0gb24gdGhlIGJ1ZmZlcnMgdGhhdCBpdCB3aWxsCgkgIGNyZWF0ZS4KCSAgKGdzdF92NGwyc3JjX2dldF9yZWFkKTogRm9yIGJldHRlciBvciBmb3Igd29yc2UsIGluY2x1ZGUgdGhlCgkgIHRpbWVzdGFtcGluZyBhbmQgb2Zmc2V0dGluZyBjb2RlIGhlcmU7IHJlYWxseSB3ZSBzaG91bGQgYmUgdXNpbmcKCSAgYnVmZmVyYWxsb2MgdGhvdWdoLgoJICAoZ3N0X3Y0bDJzcmNfZ2V0X21tYXApOiBKdXN0IG1ha2UgZ3JhYl9mcmFtZSByZXR1cm4gb25lIG9mIG91cgoJICBwcmVhbGxvY2F0ZWQsIG1tYXAnZCBidWZmZXJzLgoKMjAwNy0wNi0xMSAxMTo0MTo1NiArMDAwMCAgZGFuaWVsIGZpc2NoZXIgPGRhbkBmM2MuY29tPgoKCSAgc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogQWN0dWFsbHkgdXNlIHRoZSBkaXNwbGF5X25hbWUgcHJvcGVydHkgc28gdGhhdCB3ZSBjYW4gZHVtcCBhbnkgYXZhaWxhYmxlIFggZGlzcGxheS4gRml4ZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogZGFuaWVsIGZpc2NoZXIgPGRhbiBhdCBmM2MgZG90IGNvbT4KCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfc3RhcnQpLAoJICAoZ3N0X3hpbWFnZV9zcmNfZ2V0X2NhcHMpOgoJICBBY3R1YWxseSB1c2UgdGhlIGRpc3BsYXlfbmFtZSBwcm9wZXJ0eSBzbyB0aGF0IHdlIGNhbiBkdW1wIGFueQoJICBhdmFpbGFibGUgWCBkaXNwbGF5LiBGaXhlcyAjNDQ1OTA1LgoKMjAwNy0wNi0xMSAxMDoyMToxMyArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIGdzdC9ydHAvOiBBZGQgbWlzc2luZyByYXRlIGZpZWxkcyB0byBjYXBzLiBGaXhlcyAjNDQxMTE4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvbW1pIE15w7Zow6RuZW4gIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzogKGdzdF9ydHBfcGNtYV9kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOiAoZ3N0X3J0cF9wY211X2RlcGF5X3NldGNhcHMpOgoJICBBZGQgbWlzc2luZyByYXRlIGZpZWxkcyB0byBjYXBzLiBGaXhlcyAjNDQxMTE4LgoKMjAwNy0wNi0xMCAyMToxNDoxMSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvOiBBZGQgRGlyZWN0U291bmQgYW5kIERpcmVjdERyYXcgc2lua3MgcHJvamVjdCBmaWxlcyB0byB3b3Jrc3BhY2UgYW5kIHNvbHV0aW9uIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvZ3N0X3BsdWdpbnNfZ29vZC5kc3c6CgkgICogd2luMzIvdnM4L2dzdC1wbHVnaW5zLWdvb2Quc2xuOgoJICBBZGQgRGlyZWN0U291bmQgYW5kIERpcmVjdERyYXcgc2lua3MgcHJvamVjdCBmaWxlcyB0bwoJICB3b3Jrc3BhY2UgYW5kIHNvbHV0aW9uIGZpbGVzLgoKMjAwNy0wNi0xMCAxMDo1MzoyNiArMDAwMCAgSm9zaCBDb2Fsc29uIDx4ZmxhY0B5YWhvby5jb20+CgoJICBBZGQgc3VwcG9ydCBmb3IgZmxhYyA+PSAxLjEuMyB3aGljaCBjaGFuZ2VkIHRoZSBBUEkuIEZpeGVzIGJ1ZyAjMzg1ODg3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvc2ggQ29hbHNvbiA8eGZsYWMgYXQgeWFob28gZG90IGNvbT4sCgkgIHVwZGF0ZWQgYnkgQWxleGlzIEJhbGxpZXIgPGFiYWxsaWVyIGF0IGdlbnRvbyBkb3Qgb3JnPjoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX3Jlc2V0X2RlY29kZXJzKSwKCSAgKGdzdF9mbGFjX2RlY19zZXR1cF9zZWVrYWJsZV9kZWNvZGVyKSwKCSAgKGdzdF9mbGFjX2RlY19zZXR1cF9zdHJlYW1fZGVjb2RlciksIChnc3RfZmxhY19kZWNfc2VlayksCgkgIChnc3RfZmxhY19kZWNfdGVsbCksIChnc3RfZmxhY19kZWNfbGVuZ3RoKSwgKGdzdF9mbGFjX2RlY19lb2YpLAoJICAoZ3N0X2ZsYWNfZGVjX3JlYWRfc2Vla2FibGUpLCAoZ3N0X2ZsYWNfZGVjX3JlYWRfc3RyZWFtKToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiAoZ3N0X2ZsYWNfZW5jX2luaXQpLAoJICAoZ3N0X2ZsYWNfZW5jX2ZpbmFsaXplKSwgKGdzdF9mbGFjX2VuY19zZXRfbWV0YWRhdGEpLAoJICAoZ3N0X2ZsYWNfZW5jX3Npbmtfc2V0Y2FwcyksIChnc3RfZmxhY19lbmNfdXBkYXRlX3F1YWxpdHkpLAoJICAoZ3N0X2ZsYWNfZW5jX3NlZWtfY2FsbGJhY2spLCAoZ3N0X2ZsYWNfZW5jX3dyaXRlX2NhbGxiYWNrKSwKCSAgKGdzdF9mbGFjX2VuY190ZWxsX2NhbGxiYWNrKSwgKGdzdF9mbGFjX2VuY19zaW5rX2V2ZW50KSwKCSAgKGdzdF9mbGFjX2VuY19jaGFpbiksIChnc3RfZmxhY19lbmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mbGFjX2VuY19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZsYWNfZW5jX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5oOgoJICBBZGQgc3VwcG9ydCBmb3IgZmxhYyA+PSAxLjEuMyB3aGljaCBjaGFuZ2VkIHRoZSBBUEkuIEZpeGVzIGJ1ZyAjMzg1ODg3LgoKMjAwNy0wNi0wOSAxNTo0MTo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgYnVnICM0MjE1NDMuIFRoaXMgaXMgZml4ZWQgaW4gY29yZSAwLjEwLjEzIGFuZCBub3QgbmVjZXNzYXJ5IGFueW1vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19zaW5rX3NldF9jYXBzKToKCSAgUmVtb3ZlIHdvcmthcm91bmQgZm9yIGJ1ZyAjNDIxNTQzLiBUaGlzIGlzIGZpeGVkIGluIGNvcmUgMC4xMC4xMyBhbmQKCSAgbm90IG5lY2Vzc2FyeSBhbnltb3JlIGFzIHdlIG5lZWQgYXQgbGVhc3QgdGhhdCBjb3JlIHZlcnNpb24uCgoyMDA3LTA2LTA5IDE1OjMzOjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay86IEltcHJvdmUgZGlzY29udCBoYW5kbGluZyBieSBjaGVja2luZyBpZiB0aGUgbmV4dCBXYXZwYWNrIGJsb2NrIGhhcyB0aGUgZXhwZWN0ZWQsIGZvbGxvd2luZyBibG9jayBpbmRleC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX3Jlc2V0KSwKCSAgKGdzdF93YXZwYWNrX2RlY19jaGFpbik6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfcHVzaF9idWZmZXIpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICBJbXByb3ZlIGRpc2NvbnQgaGFuZGxpbmcgYnkgY2hlY2tpbmcgaWYgdGhlIG5leHQgV2F2cGFjayBibG9jayBoYXMKCSAgdGhlIGV4cGVjdGVkLCBmb2xsb3dpbmcgYmxvY2sgaW5kZXguCgoyMDA3LTA2LTA4IDIwOjIzOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNy0wNi0wOCAyMDoyMDo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYyAoZ3N0X3J0cF9tcDR2cGF5X2RldGFpbHMpOiBGaXggZWxlbWVudCBkZXNjcmlwdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmMgKGdzdF9ydHBfbXA0dnBheV9kZXRhaWxzKToKCSAgRml4IGVsZW1lbnQgZGVzY3JpcHRpb24uCgoyMDA3LTA2LTA4IDIwOjE5OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgd2F2cGFjayBwbHVnaW4uICBTZWUgIzM1MjYwNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxhZHNwYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhY2sueG1sOgoJICAqIGV4dC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgbW92ZSB3YXZwYWNrIHBsdWdpbi4gIFNlZSAjMzUyNjA1LgoKMjAwNy0wNi0wOCAxOTo0NTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIHRoZSBhbHBoYWJldCB0cmlwcGluZyB1cCBwZW9wbGUgc2luY2UgMTA5MjlCQwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlIGFscGhhYmV0CgkgIHRyaXBwaW5nIHVwIHBlb3BsZSBzaW5jZSAxMDkyOUJDCgoyMDA3LTA2LTA4IDE3OjM3OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFkZCBEaXJlY3REcmF3ICYgRGlyZWN0U291bmQgcGx1Z2lucyB0byB0aGUgYnVpbGQgYW5kIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIHN5cy9NYWtlZmlsZS5hbToKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgQWRkIERpcmVjdERyYXcgJiBEaXJlY3RTb3VuZCBwbHVnaW5zIHRvIHRoZSBidWlsZCBhbmQgZG9jcy4KCjIwMDctMDYtMDggMTY6MzE6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVuYW1lIHRoZSBrZWVwLWFzcGVjdC1yYXRpbyBwcm9wZXJ0eSB0byBmb3JjZS1hc3BlY3QtcmF0aW8gdG8gbWFrZSBpdCBjb25zaXN0ZW50IHdpdGggeHZpbWFnZXNpbmsgYW5kIHhpbWFnZXNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgIChnc3RfZGlyZWN0ZHJhd19zaW5rX2NsYXNzX2luaXQpOgoJICBSZW5hbWUgdGhlIGtlZXAtYXNwZWN0LXJhdGlvIHByb3BlcnR5IHRvIGZvcmNlLWFzcGVjdC1yYXRpbyB0byBtYWtlCgkgIGl0IGNvbnNpc3RlbnQgd2l0aCB4dmltYWdlc2luayBhbmQgeGltYWdlc2luay4KCjIwMDctMDYtMDggMTA6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvOiBXaGVuIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUsIGVycm9yIG91dCBjb3JyZWN0IG9uIG5vdC1saW5rZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9sb29wKToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiAodXNlcl9yZWFkX2RhdGEpLCAoZ3N0X3BuZ2RlY190YXNrKToKCSAgV2hlbiBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLCBlcnJvciBvdXQgY29ycmVjdCBvbiBub3QtbGlua2VkLgoKMjAwNy0wNi0wOCAwODoxMjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2ljbGVzL3ZpZGVvY3JvcC10ZXN0LmM6IERlZmF1bHQgdG8geHZpbWFnZXNpbmsgaW5zdGVhZCBvZiBhdXRvdmlkZW9zaW5rIHdoaWxlIGF1dG92aWRlb3NpbmsvZ2hvc3RwYWRzL3doYXRldmVyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOiAobWFpbik6CgkgIERlZmF1bHQgdG8geHZpbWFnZXNpbmsgaW5zdGVhZCBvZiBhdXRvdmlkZW9zaW5rIHdoaWxlCgkgIGF1dG92aWRlb3NpbmsvZ2hvc3RwYWRzL3doYXRldmVyIGRvbid0IGhhbmRsZSB0aGUgd2F5IHdlIHVzZSBpdCBpbgoJICB0aGUgd2F5IHdlIGV4cGVjdCBpdCB0by4KCjIwMDctMDYtMDYgMTA6MTk6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmMgKGdzdF92NGwyc3JjX3Byb2JlX2NhcHNfZm9yX2Zvcm1hdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDYtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXQpCgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXRfYW5kX3NpemUpOiBPbmx5IHByb2JlIGZvcgoJICBmb3JtYXQgYW5kIHNpemUgaWYgdGhlIGlvY3RscyBhcmUgZGVmaW5lZDsgc2hvdWxkIGZpeCBjb21waWxhdGlvbgoJICBvbiBMaW51eCA8IDIuMTYuMTkuCgoyMDA3LTA2LTA2IDA4OjUzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IFByaW50ZiBmaXhlcyBpbiBkZWJ1ZyBzdGF0ZW1lbnRzOyB1c2UgTE9HIGxldmVsIGZvciBkZWJ1ZyBzdGF0ZW1lbnRzIHRoYXQgYXJlIHByaW50ZWQgZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9heXV2X2k0MjApOgoJICBQcmludGYgZml4ZXMgaW4gZGVidWcgc3RhdGVtZW50czsgdXNlIExPRyBsZXZlbCBmb3IgZGVidWcgc3RhdGVtZW50cwoJICB0aGF0IGFyZSBwcmludGVkIGZvciBlYWNoIGFuZCBldmVyeSBmcmFtZTsgY29udmVydCBjKysgY29tbWVudHMgdG8KCSAgQy1zdHlsZSBjb21tZW50czsgbm90IG11Y2ggcG9pbnQgdXNpbmcgZ190cnlfbWFsbG9jKCkgaWYgd2UgdGhlbiBub3QKCSAgZXZlbiBjaGVjayB0aGUgcmV0dXJuIHZhbHVlLgoKMjAwNy0wNi0wNSAxNjozMjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCByZXF1aXJlbWVudHMgdG8gcmVsZWFzZWQgdmVyc2lvbnMgKGNvcmUgYW5kIGJhc2UgMC4xMC4xMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCByZXF1aXJlbWVudHMgdG8gcmVsZWFzZWQgdmVyc2lvbnMgKGNvcmUgYW5kIGJhc2UgMC4xMC4xMykuCgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6IChnc3RfaWN5ZGVtdXhfdW5pY29kaWZ5KToKCSAgVXNlIGdzdF90YWdfdXRmOF9mcm9tX2ZyZWVmb3JtX3N0cmluZygpIGZyb20gbGliZ3N0dGFnIGluc3RlYWQgb2YKCSAgb3duIGltcGxlbWVudGF0aW9uLgoKMjAwNy0wNi0wNSAxNDoxNzoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMnNyYy5jIChnc3RfdjRsMnNyY19zdGFydCwgZ3N0X3Y0bDJzcmNfc3RvcCk6IEFkZCBzb21lIHVzZWxlc3MgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA2LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYyAoZ3N0X3Y0bDJzcmNfc3RhcnQsIGdzdF92NGwyc3JjX3N0b3ApOiBBZGQKCSAgc29tZSB1c2VsZXNzIGNvbW1lbnRzLgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYyAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9pbml0KTogRG9uJ3QgcXVldWUKCSAgZnJhbWVzIGJlZm9yZSBjYWxsaW5nIFNUUkVBTU9OLCB0aGF0IG1pZ2h0IGxlYXZlIHRoZW0gaW4gYSBzdGF0ZQoJICB3aGVyZSB0aGV5IGNhbid0IGJlIGRlcXVldWVkIGlmIHdlIGdvIGJhY2sgdG8gTlVMTCB3aXRob3V0IGNhbGxpbmcKCSAgU1RSRUFNT04sIGFjY29yZGluZyB0byB0aGUgZG9jcy4KCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfc3RhcnQpOiBFbnF1ZXVlIGJ1ZmZlcnMgaGVyZSBpbnN0ZWFkLCByaWdodAoJICBiZWZvcmUgd2UgY2FsbCBTVFJFQU1PTi4KCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfZGVpbml0KTogUmVtb3ZlIGNyYWNrIHRvIHdvcmsgYXJvdW5kIGRlcXVldWUKCSAgZmFpbHVyZXMuIChGb3IgbWUgdGhpcyBjb2RlIGh1bmcuKSBUaGUgcG9vbCByZWZjb3VudGluZyBpcyBzdGlsbAoJICBjcmFjazsgYWRkZWQgYSBub3RlIHRvIHRoYXQgZWZmZWN0LgoKMjAwNy0wNi0wNSAwOToxMTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IEFkZCBzdXBwb3J0IGZvciBtYXBwaW5nIGdzdCBzdHJ1Y3R1cmUgbmFtZXMgdG8gdGhlIE1JTUUgdHlwZSBlcXVpdmFsZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOiAoZ3N0X211bHRpcGFydF9tdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfbXVsdGlwYXJ0X211eF9nZXRfbWltZSksIChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICBBZGQgc3VwcG9ydCBmb3IgbWFwcGluZyBnc3Qgc3RydWN0dXJlIG5hbWVzIHRvIHRoZSBNSU1FIHR5cGUgZXF1aXZhbGVudC4KCSAgSW1wbGVtZW50ZWQgZm9yIGF1ZGlvL3gtbXVsYXctPmF1ZGlvL2Jhc2ljLiBGaXhlcyAjNDQyODc0LgoKMjAwNy0wNi0wMyAxMToyMTo0NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3dhdmVuYy9nc3R3YXZlbmMuKjogUHJvcGVybHkgd3JpdGUgd2F2IGZpbGVzIHdpdGggd2lkdGghPWRlcHRoIGJ5IGhhdmluZyB0aGUgZGVwdGggbW9zdCBzaWduaWZpY2FudCBieXRlcyBzZXQgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6IChnc3Rfd2F2ZW5jX2NyZWF0ZV9oZWFkZXJfYnVmKSwKCSAgKGdzdF93YXZlbmNfc2lua19zZXRjYXBzKSwgKGdzdF93YXZlbmNfZm9ybWF0X3NhbXBsZXMpLAoJICAoZ3N0X3dhdmVuY19jaGFpbiksIChnc3Rfd2F2ZW5jX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuaDoKCSAgUHJvcGVybHkgd3JpdGUgd2F2IGZpbGVzIHdpdGggd2lkdGghPWRlcHRoIGJ5IGhhdmluZyB0aGUgZGVwdGggbW9zdAoJICBzaWduaWZpY2FudCBieXRlcyBzZXQgYW5kIGFsbCBvdGhlcnMgemVyby4gRml4ZXMgIzQ0MjUzNS4KCjIwMDctMDYtMDEgMTM6NTI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiBBZGQgaW5jbHVkZSB0byBtYWtlIGJ1aWxkYm90IGhhcHB5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOgoJICBBZGQgaW5jbHVkZSB0byBtYWtlIGJ1aWxkYm90IGhhcHB5LgoKMjAwNy0wNi0wMSAxMzowNzoxMSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRzcC86IEltcHJvdmVzIHZlcnNpb24gY2hlY2tpbmcsIGFsbG93aW5nIGFuIFJUU1Agc2VydmVyIHRvIHJlcGx5IHdpdGggIjUwNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCAgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2NyZWF0ZSksCgkgIChydHNwX2Nvbm5lY3Rpb25fY29ubmVjdCksIChhZGRfZGF0ZV9oZWFkZXIpLAoJICAocnRzcF9jb25uZWN0aW9uX3NlbmQpLCAocGFyc2VfcmVzcG9uc2Vfc3RhdHVzKSwKCSAgKHBhcnNlX3JlcXVlc3RfbGluZSksIChwYXJzZV9saW5lKSwgKHJ0c3BfY29ubmVjdGlvbl9yZWNlaXZlKToKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5jOiAocnRzcF92ZXJzaW9uX2FzX3RleHQpOgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmg6CgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzogKGtleV92YWx1ZV9mb3JlYWNoKSwKCSAgKHJ0c3BfbWVzc2FnZV9pbml0X3JlcXVlc3QpLCAocnRzcF9tZXNzYWdlX2luaXRfcmVzcG9uc2UpLAoJICAocnRzcF9tZXNzYWdlX3JlbW92ZV9oZWFkZXIpLCAocnRzcF9tZXNzYWdlX2FwcGVuZF9oZWFkZXJzKSwKCSAgKHJ0c3BfbWVzc2FnZV9kdW1wKToKCSAgKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5oOgoJICBJbXByb3ZlcyB2ZXJzaW9uIGNoZWNraW5nLCBhbGxvd2luZyBhbiBSVFNQIHNlcnZlciB0byByZXBseSB3aXRoICI1MDUKCSAgUlRTUCBWZXJzaW9uIG5vdCBzdXBwb3J0ZWQuCgkgIEFkZHMgYSBEYXRlIGhlYWRlciB0byBhbGwgbWVzc2FnZXMuCgkgIFJlcGxpZXMgd2l0aCBSVFNQX0VQQVJTRSByYXRoZXIgdGhhbiBSVFNQX0VJTlZBTElEIGluIGNhc2VzIHdoZXJlIHdlCgkgIHdhbnQgdG8gYmUgYWJsZSB0byBzZW5kIGEgcmVzcG9uc2UgZXZlbiBpZiBzb21ldGhpbmcgaW4gdGhlIHJlcXVlc3Qgd2FzCgkgIGludmFsaWQuIEVJTlZBTCBpcyBvbmx5IHVzZWQgd2hlbiBwYXNzaW5nIHdyb25nIGFyZ3VtZW50cyB0byBmdW5jdGlvbnMuCgkgIERvIG5vdCBoYW5kbGUgYW4gaW52YWxpZCBtZXRob2QgaW4gcGFyc2VfcmVxdWVzdF9saW5lKCkuIERlZmVyIHRoaXMgdG8KCSAgdGhlIGNhbGxlciBzbyBpdCBjYW4gcmVzcG9uZCB3aXRoICI0MDUgTWV0aG9kIE5vdCBBbGxvd2VkIi4KCSAgSW1wcm92ZXMgcGFyc2luZyBvZiB0aGUgdGltZW91dCBwYXJhbWV0ZXIgdG8gdGhlIFNlc3Npb24gaGVhZGVyLAoJICBhbGxvd2luZyB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBzZW1pY29sb24uCgkgIEF2b2lkcyBhIGNvbXBpbGVyIHdhcm5pbmcgZHVlIHRvIHZhcmlhYmxlcyBzaGFkb3dpbmcgYSBmdW5jdGlvbiBhcmd1bWVudC4KCjIwMDctMDYtMDEgMTE6MTY6MTcgKzAwMDAgIERhbmllbCBDaGFybGVzIDxkY2hhcmxlc0B0aS5jb20+CgoJICBnc3QvcnRwLzogQWRkIHN1cHBvcnQgZm9yIEFNUi1XQi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIFBhdGNoIGJ5OiBEYW5pZWwgQ2hhcmxlcyA8ZGNoYXJsZXMgYXQgdGkgZG90IGNvbT4KCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6IChnc3RfcnRwX2Ftcl9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfYW1yX2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOiAoZ3N0X3J0cF9hbXJfcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX2Ftcl9wYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2Ftcl9wYXlfaW5pdCksCgkgIChnc3RfcnRwX2Ftcl9wYXlfc2V0Y2FwcyksIChnc3RfcnRwX2Ftcl9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSAgQWRkIHN1cHBvcnQgZm9yIEFNUi1XQi4KCSAgU21hbGwgY2xlYW51cHMgc3VjaCBhcyB1c2luZyBCT0lMRVJQTEFURS4KCjIwMDctMDUtMzEgMTU6NTc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9ydHNwZXh0d21zLmM6IEZpeCBjb21waWxlIHdhcm5pbmcgd2hlbiBkZWJ1ZyBpcyBkaXNhYmxlZCBhcyBzcG90dGVkIGJ1IFNhdXIgb24gSVJDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9ydHNwZXh0d21zLmM6IChydHNwX2V4dF93bXNfY29uZmlndXJlX3N0cmVhbSk6CgkgIEZpeCBjb21waWxlIHdhcm5pbmcgd2hlbiBkZWJ1ZyBpcyBkaXNhYmxlZCBhcyBzcG90dGVkIGJ1IFNhdXIgb24gSVJDLgoKMjAwNy0wNS0zMCAxNDo1Nzo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC4qOiBSZXZlcnQgc29tZSB1bmludGVuZGVkIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA1LTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmMgKGdzdF92NGwyX29iamVjdF9uZXcpOiBSZXZlcnQgc29tZQoJICB1bmludGVuZGVkIGNoYW5nZXMuCgoyMDA3LTA1LTMwIDE0OjQwOjUzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLio6IFN0b3JlIHRoZSBmb3JtYXQgbGlzdCBpbiB0aGUgb3JkZXIgdGhhdCB0aGUgZHJpdmVyIGdpdmVzIGl0IHRvIHVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wNS0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmg6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jIChnc3RfdjRsMnNyY19maWxsX2Zvcm1hdF9saXN0KTogU3RvcmUKCSAgdGhlIGZvcm1hdCBsaXN0IGluIHRoZSBvcmRlciB0aGF0IHRoZSBkcml2ZXIgZ2l2ZXMgaXQgdG8gdXMuCgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXRfYW5kX3NpemUpCgkgIChnc3RfdjRsMnNyY19wcm9iZV9jYXBzX2Zvcl9mb3JtYXQpOiBOZXcgZnVuY3Rpb25zLCBmaWxsIEdzdENhcHMKCSAgYmFzZWQgb24gdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgZGV2aWNlLgoJICAoZ3N0X3Y0bDJzcmNfZ3JhYl9mcmFtZSk6IFVwZGF0ZSBmb3Igb2JqZWN0IHZhcmlhYmxlIHJlbmFtaW5nLgoJICAoZ3N0X3Y0bDJzcmNfc2V0X2NhcHR1cmUpOiBVcGRhdGUgdG8gYmUgc3RyaWN0IGluIGl0cyBwYXJhbWV0ZXJzLAoJICBhcyBpbiB0aGUgc2V0X2NhcHMgYmVsb3cuCgkgIChnc3RfdjRsMnNyY19jYXB0dXJlX2luaXQpOiBVcGRhdGUgZm9yIG9iamVjdCB2YXJpYWJsZSByZW5hbWluZywKCSAgYW5kIHJlZmxvdy4KCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfc3RhcnQsIGdzdF92NGwyc3JjX2NhcHR1cmVfc3RvcCkKCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfZGVpbml0KTogVXBkYXRlIGZvciBvYmplY3QgdmFyaWFibGUgcmVuYW1pbmcuCgkgIChnc3RfdjRsMnNyY191cGRhdGVfZnBzLCBnc3RfdjRsMnNyY19zZXRfZnBzKQoJICAoZ3N0X3Y0bDJzcmNfZ2V0X2Zwcyk6IFJlbW92ZTsgdGhlc2UgZnVuY3Rpb25zIGRvbid0IGhhdmUgbXVjaAoJICBtZWFuaW5nIG91dHNpZGUgb2YgYW4gYXRvbWljIHNldF9jYXBzIG1ldGhvZC4KCSAgKGdzdF92NGwyc3JjX2J1ZmZlcl9uZXcpOiBEb24ndCBzZXQgYnVmZmVyIGR1cmF0aW9uLCBpdCBpcyBub3QKCSAga25vd24uCgkgICogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmMgKGdzdF92NGwyX3R1bmVyX3NldF9jaGFubmVsKTogUmVtb3ZlCgkgIGNhbGwgdG8gdXBkYXRlX2Zwczsgbm90IHN1cmUgYWJvdXQgdGhpcyBjaGFuZ2UuCgkgIChnc3RfdjRsMl90dW5lcl9zZXRfbm9ybSk6IFdvcmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQgZm9yIHRoZQoJICBtb21lbnQgd2UgZG9uJ3QgaGF2ZSBhbiB1cGRhdGVfZnBzX2Z1bmMuCgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oIChzdHJ1Y3QgX0dzdFY0bDJTcmMpOiBEb24ndCBwdXQgdjRsMgoJICBzdHJ1Y3R1cmVzIGluIHRoZSBvYmplY3QsIGp1c3Qgc3RvcmUgd2hhdCB3ZSBuZWVkLiBEbyBzdG9yZSB0aGUKCSAgcHJvYmVkIGNhcHMgb2YgdGhlIGRldmljZS4gRG9uJ3Qgc3RvcmUgdGhlIGN1cnJlbnQgZnJhbWUgcmF0ZS4KCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmMgKGdzdF92NGwyc3JjX2luaXQpOiBSZW1vdmUgdGhlCgkgIHVwZGF0ZV9mcHNfZnVuY3Rpb24sIGZvciBub3cuIFVwZGF0ZSBmb3IgbmV3IG9iamVjdCB2YXJpYWJsZQoJICBuYW1pbmcuCgkgIChnc3RfdjRsMnNyY19zZXRfcHJvcGVydHksIGdzdF92NGwyc3JjX2dldF9wcm9wZXJ0eSk6IFVwZGF0ZSBmb3IKCSAgbmV3IG9iamVjdCB2YXJpYWJsZSBuYW1pbmcuCgkgIChnc3RfdjRsMnNyY192NGwyZm91cmNjX3RvX3N0cnVjdHVyZSk6IFJlbmFtZSBmcm9tIC4uLl90b19jYXBzLgoJICAoZ3N0X3Y0bDJfc3RydWN0dXJlX3RvX3Y0bDJmb3VyY2MpOiBSZW5hbWUgZnJvbSAuLi5jYXBzX3RvXy4uLi4KCSAgKGdzdF92NGwyc3JjX2dldF9jYXBzKTogUmV3b3JrIHRvIHByb2JlIHRoZSBkZXZpY2UgZm9yIHN1cHBvcnRlZAoJICBmcmFtZSBzaXplcyBhbmQgZnJhbWUgcmF0ZXMuCgkgIChnc3RfdjRsMnNyY19zZXRfY2Fwcyk6IFJld29yayB0byBiZSBzdHJpY3QgaW4gdGhlIGdpdmVuCgkgIHBhcmFtZXRlcnM6IGlmIHNvbWVvbmUgYXNrcyB1cyB0byBoYXZlIGEgY2VydGFpbiBzaXplIGFuZCByYXRlLAoJICB0aGF0IGlzIHdoYXQgd2UgY29uZmlndXJlLgoJICAoZ3N0X3Y0bDJzcmNfZ2V0X3JlYWQpOiBVcGRhdGUgZm9yIG9iamVjdCB2YXJpYWJsZSBuYW1pbmcuIERvbid0CgkgIGxlYWsgYnVmZmVycyBvbiBzaG9ydCByZWFkcy4KCSAgKGdzdF92NGwyc3JjX2dldF9tbWFwKTogVXBkYXRlIGZvciBvYmplY3QgdmFyaWFibGUgbmFtaW5nLCBhbmQgYWRkCgkgIGNvbW1lbnRzLgoJICAoZ3N0X3Y0bDJzcmNfY3JlYXRlKTogVXBkYXRlIGZvciBvYmplY3QgdmFyaWFibGUgbmFtaW5nLgoKMjAwNy0wNS0zMCAxNDozODo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogUGFyc2Ugc3VidGl0bGUgdGV4dCBzdHJlYW1zIGluc3RlYWQgb2YgZXJyb3Jpbmcgb3V0ICgjNDQyMDM0KS4gU3RpbGwgbmVlZHMgYSBwYXJzZXIgZm9yIHRoZSBzdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2Jhc2VfaW5pdCksCgkgIChnc3RfYXZpX2RlbXV4X3Jlc2V0KSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIFBhcnNlIHN1YnRpdGxlIHRleHQgc3RyZWFtcyBpbnN0ZWFkIG9mIGVycm9yaW5nIG91dCAoIzQ0MjAzNCkuIFN0aWxsCgkgIG5lZWRzIGEgcGFyc2VyIGZvciB0aGUgc3VidGl0bGVzIHRvIGFjdHVhbGx5IHNob3cgdXAuCgoyMDA3LTA1LTMwIDEyOjQ2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBNYWtlIF9wdXNoX2V2ZW50KCkgcmV0dXJuIFRSVUUgaWYgdGhlIGV2ZW50IGNvdWxkIGJlIHB1c2hlZCBvbiBhdCBsZWFzdCBvbmUgcGFkIGFuZCBub3Qgb25seSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcHVzaF9ldmVudCksCgkgIChnc3RfYXZpX2RlbXV4X2xvb3ApOgoJICBNYWtlIF9wdXNoX2V2ZW50KCkgcmV0dXJuIFRSVUUgaWYgdGhlIGV2ZW50IGNvdWxkIGJlIHB1c2hlZCBvbiBhdAoJICBsZWFzdCBvbmUgcGFkIGFuZCBub3Qgb25seSBpZiBpdCBjb3VsZCBiZSBwdXNoZWQgb24gYWxsIHBhZHMsCgkgIG90aGVyd2lzZSB3ZSdsbCBlbmQgdXAgcG9zdGluZyBhbiBlcnJvciBtZXNzYWdlIG9uIEVPUyBpZiBvbmUgb3IKCSAgbW9yZSBzb3VyY2UgcGFkcyBhcmUgbm90IGNvbm5lY3RlZC4KCjIwMDctMDUtMjggMTY6Mzk6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0LmM6IFVzZSByZW5hbWVkIFJUUCBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzoKCSAgVXNlIHJlbmFtZWQgUlRQIGJpbi4KCjIwMDctMDUtMjggMTU6MDE6MzMgKzAwMDAgIERlamFuIFNha2VsxaFhayA8c2FrZGVhbkBnbWFpbC5jb20+CgoJICBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogQWRkIEFZVVYtPkFZVVYgYW5kIEFZVVYtPkk0MjAgZm9ybWF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBEZWphbiBTYWtlbMWhYWsgPHNha2RlYW4gYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogKGdzdF92aWRlb19ib3hfY2xhc3NfaW5pdCksCgkgIChnc3RfdmlkZW9fYm94X3NldF9wcm9wZXJ0eSksIChnc3RfdmlkZW9fYm94X3RyYW5zZm9ybV9jYXBzKSwKCSAgKHZpZGVvX2JveF9yZWNhbGNfdHJhbnNmb3JtKSwgKGdzdF92aWRlb19ib3hfc2V0X2NhcHMpLAoJICAoZ3N0X3ZpZGVvX2JveF9nZXRfdW5pdF9zaXplKSwgKGdzdF92aWRlb19ib3hfYXBwbHlfYWxwaGEpLAoJICAoZ3N0X3ZpZGVvX2JveF9heXV2X2F5dXYpLCAoZ3N0X3ZpZGVvX2JveF9jbGVhciksIChVVmZsb29yKSwKCSAgKFVWY2VpbCksIChnc3RfdmlkZW9fYm94X2F5dXZfaTQyMCksIChnc3RfdmlkZW9fYm94X2k0MjBfYXl1diksCgkgIChnc3RfdmlkZW9fYm94X2k0MjBfaTQyMCksIChnc3RfdmlkZW9fYm94X3RyYW5zZm9ybSksCgkgIChwbHVnaW5faW5pdCk6CgkgIEFkZCBBWVVWLT5BWVVWIGFuZCBBWVVWLT5JNDIwIGZvcm1hdHMuCgkgIEZpeCBuZWdvdGlhdGlvbiBhbmQgSTQyMC0+QVlVViBjb252ZXJzaW9uLgoJICBGaXhlcyAjNDI5MzI5LgoKMjAwNy0wNS0yNiAxNToyNToxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiBVc2UgZGlmZmVyZW50IHZhcmlhYmxlcyBmb3IgbmVzdGVkIGZvciBsb29wcyBzbyB0aGF0IHRoZSBvdXRlciBsb29wIGZ1bmN0aW9ucyBwcm9wZXJseSBhbmQgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzogKHNwZWV4X2RlY19jaGFpbl9wYXJzZV9kYXRhKToKCSAgVXNlIGRpZmZlcmVudCB2YXJpYWJsZXMgZm9yIG5lc3RlZCBmb3IgbG9vcHMgc28gdGhhdCB0aGUgb3V0ZXIgbG9vcAoJICBmdW5jdGlvbnMgcHJvcGVybHkgYW5kIHNwZWV4IGZpbGVzIHdpdGggbXVsdGlwbGUgZnJhbWVzIHBlciBidWZmZXIgd29yawoJICBwcm9wZXJseS4KCSAgRml4ZXMgIzQ0MTQwOC4KCjIwMDctMDUtMjUgMjA6NTE6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogRG9uJ3QgbGVhayBuZXdzZWdtZW50IGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfc2lua19ldmVudCk6CgkgIERvbid0IGxlYWsgbmV3c2VnbWVudCBldmVudHMuCgoyMDA3LTA1LTI1IDIwOjMzOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL01ha2VmaWxlLmFtOiBBZGQgJy1sbScgdG8gTElCUyBmb3IgY2VpbCgpLCBkb24ndCBhc3N1bWUgb25lIG9mIG91ciBkZXBlbmRlbmNpZXMgZHJhZ3MgaXQgaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9NYWtlZmlsZS5hbToKCSAgQWRkICctbG0nIHRvIExJQlMgZm9yIGNlaWwoKSwgZG9uJ3QgYXNzdW1lIG9uZSBvZiBvdXIgZGVwZW5kZW5jaWVzCgkgIGRyYWdzIGl0IGluLgoKMjAwNy0wNS0yNSAxNjowMjo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9mbGFjL2dzdGZsYWNlbmMuKjogQ29sbGVjdCBoZWFkZXJzLCBhZGQgInN0cmVhbWhlYWRlciIgZmllbGQgdG8gb3V0cHV0IGNhcHMgYW5kIHNldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IChnc3RfZmxhY19lbmNfaW5pdCksCgkgIChub3Rnc3RfdmFsdWVfYXJyYXlfYXBwZW5kX2J1ZmZlciksCgkgIChnc3RfZmxhY19lbmNfcHJvY2Vzc19zdHJlYW1faGVhZGVycyksCgkgIChnc3RfZmxhY19lbmNfd3JpdGVfY2FsbGJhY2spLCAoZ3N0X2ZsYWNfZW5jX2NoYWluKSwKCSAgKGdzdF9mbGFjX2VuY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgQ29sbGVjdCBoZWFkZXJzLCBhZGQgInN0cmVhbWhlYWRlciIgZmllbGQgdG8gb3V0cHV0IGNhcHMgYW5kIHNldAoJICBCVUZGRVJfSU5fQ0FQUyBmbGFnIG9uIHB1c2hlZCBoZWFkZXIgYnVmZmVycy4gVGhhdCB3YXkgb2dnbXV4CgkgIHByb2R1Y2VzIG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG9mZmljaWFsIEZMQUMtdG8tT2dnIG1hcHBpbmcKCSAgaW5zdGVhZCBvZiBjb21wbGV0ZWx5IGJyb2tlbiBmaWxlcy4gRml4ZXMgIzQyNjA0NC4KCjIwMDctMDUtMjUgMTA6NDQ6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogSGFuZGxlIGFuZCBhZGp1c3QgbmV3LXNlZ21lbnQgZXZlbnRzIHNvIHRoYXQgZG93bnN0cmVhbSByZWFsbHkgc2VlcyBhIHN0cmVhbSB3aXRoIHRoZSB0YWcgcGllY2VzIHN0cmlwcGVkIG9mZiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9pZDNkZW11eF9zZW5kX25ld19zZWdtZW50KSwgKGdzdF9pZDNkZW11eF9jaGFpbiksCgkgIChnc3RfaWQzZGVtdXhfc2lua19ldmVudCk6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4Lmg6CgkgICogZ3N0L2FwZXRhZy9nc3R0YWdkZW11eC5jOiAoZ3N0X3RhZ19kZW11eF9yZXNldCksCgkgIChnc3RfdGFnX2RlbXV4X2NoYWluKSwgKGdzdF90YWdfZGVtdXhfc2lua19ldmVudCksCgkgIChnc3RfdGFnX2RlbXV4X3NlbmRfbmV3X3NlZ21lbnQpOgoJICBIYW5kbGUgYW5kIGFkanVzdCBuZXctc2VnbWVudCBldmVudHMgc28gdGhhdCBkb3duc3RyZWFtIHJlYWxseQoJICBzZWVzIGEgc3RyZWFtIHdpdGggdGhlIHRhZyBwaWVjZXMgc3RyaXBwZWQgb2ZmIHRoZSBmcm9udCBhbmQgYmFjay4KCSAgRml4ZXMgc3RyYW5nZW5lc3MgaW4gc2Vla2luZyB3aGVuIG1wMyBkZWNvZGVycyB1c2UgdGhlIG5ldy1zZWdtZW50CgkgIGJ5dGUgcG9zaXRpb24gdG8gZXN0aW1hdGUgdGhlaXIgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiB0aW1lc3RhbXAKCSAgYW5kIHRoZW4gdGhlIGFycml2aW5nIGJ1ZmZlcnMgZG9uJ3QgbWF0Y2ggdXAuCgoyMDA3LTA1LTI1IDEwOjIzOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzogRG9uJ3QgdW5uZWNlc3NhcmlseSBwZXJmb3JtIGEgUkVBRFktPk5VTEwtPlJFQURZIHRyYW5zaXRpb24gb24gdGhlIGRldGVjdGVkIGF1ZGlvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6IChnc3RfYXV0b19hdWRpb19zaW5rX2RldGVjdCk6CgkgIERvbid0IHVubmVjZXNzYXJpbHkgcGVyZm9ybSBhIFJFQURZLT5OVUxMLT5SRUFEWSB0cmFuc2l0aW9uIG9uIHRoZQoJICBkZXRlY3RlZCBhdWRpbyBzaW5rIHdoZW4gc3RhcnRpbmcgdXAuIEZpeGVzOiAjNDQwMTI3CgoyMDA3LTA1LTI0IDE3OjAwOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiBEb24ndCBjcmFzaCBpbiBjaGFpbiBmdW5jdGlvbiBpZiBzZXRjYXBzIGhhc24ndCBiZWVuIGNhbGxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiAoZ3N0X2ZsYWNfZW5jX3Npbmtfc2V0Y2FwcyksCgkgIChnc3RfZmxhY19lbmNfY2hhaW4pOgoJICBEb24ndCBjcmFzaCBpbiBjaGFpbiBmdW5jdGlvbiBpZiBzZXRjYXBzIGhhc24ndCBiZWVuIGNhbGxlZC4KCjIwMDctMDUtMjQgMDg6MzU6MjMgKzAwMDAgIFZpbmNlbnQgVG9ycmkgPHZ0b3JyaUB1bml2LWV2cnkuZnI+CgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay4qOiBGaXggbW9yZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyB3aXRoIE1pbmdXICgjNDM5OTE0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBWaW5jZW50IFRvcnJpICA8dnRvcnJpIGF0IHVuaXYtZXZyeSBmcj4KCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2RpcmVjdGRyYXdfc2lua19zaG93X2ZyYW1lKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfY2hlY2tfcHJpbWFyeV9zdXJmYWNlKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfY2hlY2tfb2Zmc2NyZWVuX3N1cmZhY2UpLAoJICAoRW51bU1vZGVzQ2FsbGJhY2syKSwgKGdzdF9kaXJlY3RkcmF3X3NpbmtfZ2V0X2RkcmF3Y2FwcyksCgkgIChnc3RfZGlyZWN0ZHJhd19zaW5rX3N1cmZhY2VfY3JlYXRlKToKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5oOgoJICBGaXggbW9yZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyB3aXRoIE1pbmdXICgjNDM5OTE0KS4KCjIwMDctMDUtMjQgMDg6MTQ6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IEluaXQgdmFsdWUgdG8gYXZvaWQgaW5maW50ZSBsb29wcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfcGFyc2VfbWV0aG9kcyk6CgkgIEluaXQgdmFsdWUgdG8gYXZvaWQgaW5maW50ZSBsb29wcy4KCjIwMDctMDUtMjQgMDg6MTA6NDIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L3J0c3AvOiBGaXggZm9yIG5ldyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3NldHVwX2F1dGgpLAoJICAoZ3N0X3J0c3BzcmNfdHJ5X3NlbmQpLCAoZ3N0X3J0c3BzcmNfcGFyc2VfbWV0aG9kcyksCgkgIChnc3RfcnRzcHNyY19zZXR1cF9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX29wZW4pLAoJICAoZ3N0X3J0c3BzcmNfcGxheSk6CgkgIChydHNwX2Nvbm5lY3Rpb25fc2VuZCksIChydHNwX2Nvbm5lY3Rpb25fcmVjZWl2ZSk6CgkgICogZ3N0L3J0c3AvcnRzcGV4dHdtcy5jOiAocnRzcF9leHRfd21zX2FmdGVyX3NlbmQpOgoJICBGaXggZm9yIG5ldyBBUEkuCgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKGFkZF9hdXRoX2hlYWRlciksCgkgIE9ubHkgYWRkIGF1dGhvcmlzYXRpb24gYW5kIHNlc3Npb24gaGVhZGVycyB3aGVuIHNlbmRpbmcgbWVzc2FnZXMuCgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzogKGtleV92YWx1ZV9mb3JlYWNoKSwgKHJ0c3BfbWVzc2FnZV9pbml0KSwKCSAgKHJ0c3BfbWVzc2FnZV9pbml0X3JlcXVlc3QpLCAocnRzcF9tZXNzYWdlX2luaXRfcmVzcG9uc2UpLAoJICAocnRzcF9tZXNzYWdlX3Vuc2V0KSwgKHJ0c3BfbWVzc2FnZV9hZGRfaGVhZGVyKSwKCSAgKHJ0c3BfbWVzc2FnZV9yZW1vdmVfaGVhZGVyKSwgKHJ0c3BfbWVzc2FnZV9nZXRfaGVhZGVyKSwKCSAgKHJ0c3BfbWVzc2FnZV9hcHBlbmRfaGVhZGVycyksIChkdW1wX2tleV92YWx1ZSksCgkgIChydHNwX21lc3NhZ2VfZHVtcCk6CgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuaDoKCSAgQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIGhlYWRlcnMgb2YgdGhlIHNhbWUgdHlwZSBieSBzdG9yaW5nIHRoZSBwYXJzZWQKCSAgaGVhZGVycyBpbiBhIEdBcnJheSBpbnN0YWVkIG9mIGEgaGFzaHRhYmxlLgoKMjAwNy0wNS0yMyAyMjo0NDoxMiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6IFJlbW92ZSBkaXJlY3Rzb3VuZHNpbmsgcHJvcGVydHkgZG9jIGFzIHRoaXMgc2luayB1c2UgdGhlIG1peGVyIGludGVyZmFjZSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICBSZW1vdmUgZGlyZWN0c291bmRzaW5rIHByb3BlcnR5IGRvYyBhcyB0aGlzIHNpbmsgdXNlIHRoZSBtaXhlcgoJICBpbnRlcmZhY2Ugbm93LgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICBBZGQgaW50ZXJmYWNlcyBpbXBsZW1lbnRlZCBieSBXaW5kb3dzIHNpbmtzLgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmg6CgkgIFJlbW92ZSBkaXJlY3Rzb3VuZHNpbmsgcHJvcGVydHkgIGFuZCBpbXBsZW1lbnQgdGhlIG1peGVyIGludGVyZmFjZS4KCSAgKiB3aW4zMi92czYvZ3N0X3BsdWdpbnNfYmFkLmRzdzoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZGlyZWN0c291bmQuZHNwOgoJICBVcGRhdGUgcHJvamVjdCBmaWxlcy4KCSAgKiBnc3QtbGlicy9nc3QvZHNob3cvZ3N0ZHNob3cuY3BwOgoJICAqIGdzdC1saWJzL2dzdC9kc2hvdy9nc3Rkc2hvdy5oOgoJICAqIGdzdC1saWJzL2dzdC9kc2hvdy9nc3Rkc2hvd2Zha2VzaW5rLmNwcDoKCSAgKiBnc3QtbGlicy9nc3QvZHNob3cvZ3N0ZHNob3dmYWtlc2luay5oOgoJICAqIGdzdC1saWJzL2dzdC9kc2hvdy9nc3Rkc2hvd2Zha2VzcmMuY3BwOgoJICAqIGdzdC1saWJzL2dzdC9kc2hvdy9nc3Rkc2hvd2Zha2VzcmMuaDoKCSAgKiBnc3QtbGlicy9nc3QvZHNob3cvZ3N0ZHNob3dpbnRlcmZhY2UuY3BwOgoJICAqIGdzdC1saWJzL2dzdC9kc2hvdy9nc3Rkc2hvd2ludGVyZmFjZS5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rkc2hvdy5kZWY6CgkgICogd2luMzIvdnM2L2xpYmdzdGRzaG93LmRzcDoKCSAgQWRkIGEgbmV3IGdzdCBsaWJyYXJ5IHdoaWNoIGFsbG93IHRvIGNyZWF0ZSBpbnRlcm5hbCBEaXJlY3QgU2hvdwoJICBncmFwaCAocGlwZWxpbmVzKSB0byB3cmFwIFdpbmRvd3Mgc291cmNlcywgZGVjb2RlcnMgb3IgZW5jb2RlcnMuCgkgIEl0IGluY2x1ZGVzIGEgRGlyZWN0U2hvdyBmYWtlIHNvdXJjZSBhbmQgc2luayBhbmQgdXRpbGl0eSBmdW5jdGlvbnMuCgkgICogc3lzL2RzaG93c3Jjd3JhcHBlci9nc3Rkc2hvd2F1ZGlvc3JjLmM6CgkgICogc3lzL2RzaG93c3Jjd3JhcHBlci9nc3Rkc2hvd2F1ZGlvc3JjLmg6CgkgICogc3lzL2RzaG93c3Jjd3JhcHBlci9nc3Rkc2hvd3NyY3dyYXBwZXIuYzoKCSAgKiBzeXMvZHNob3dzcmN3cmFwcGVyL2dzdGRzaG93c3Jjd3JhcHBlci5oOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvZ3N0ZHNob3d2aWRlb3NyYy5jOgoJICAqIHN5cy9kc2hvd3NyY3dyYXBwZXIvZ3N0ZHNob3d2aWRlb3NyYy5oOgoJICAqIHdpbjMyL3ZzNi9saWJkc2hvd3NyY3dyYXBwZXIuZHNwOgoJICBBZGQgYSBuZXcgcGx1Z2luIHRvIHdyYXAgRGlyZWN0U2hvdyBzb3VyY2VzIG9uIFdpbmRvd3MuCgkgIEl0IGdldHMgZGF0YSBmcm9tIGFueSB3ZWJjYW0sIGR2IGNhbSwgbWljcm8uIFdlIGNvdWxkIGFkZAoJICB0diB0dW5uZXIgY2FyZCBsYXRlci4KCjIwMDctMDUtMjIgMTE6MTQ6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRGVwZW5kIG9uIGdzdHJlYW1lci0wLjEwLjEyLjEuIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmMgKEFSR19CQU5EX1dJRFRILCBfZG9faW5pdCwgQVJHX0dBSU4sIF9Hcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERlcGVuZCBvbiBnc3RyZWFtZXItMC4xMC4xMi4xLgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmMgKEFSR19CQU5EX1dJRFRILCBfZG9faW5pdCwgQVJHX0dBSU4sCgkgIF9Hc3RJaXJFcXVhbGl6ZXJCYW5kLCBvYmplY3QsIF9Hc3RJaXJFcXVhbGl6ZXJCYW5kQ2xhc3MsCgkgIHBhcmVudF9jbGFzcywgZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9zZXRfcHJvcGVydHksCgkgIGdzdF9paXJfZXF1YWxpemVyX2JhbmRfY2xhc3NfaW5pdCwgZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9nZXRfdHlwZSwKCSAgZ3N0X2lpcl9lcXVhbGl6ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4LAoJICBnc3RfaWlyX2VxdWFsaXplcl9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQsCgkgIGdzdF9paXJfZXF1YWxpemVyX2NoaWxkX3Byb3h5X2ludGVyZmFjZV9pbml0LCBzZXR1cF9maWx0ZXIsCgkgIGdzdF9paXJfZXF1YWxpemVyX2NvbXB1dGVfZnJlcXVlbmNpZXMsCgkgIGdzdF9paXJfZXF1YWxpemVyX3NldF9wcm9wZXJ0eSwgZ3N0X2lpcl9lcXVhbGl6ZXJfZ2V0X3Byb3BlcnR5LAoJICBwbHVnaW5faW5pdCk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuaCAoYXVkaW9maWx0ZXIpOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVybmJhbmRzLmMgKEFSR19OVU1fQkFORFMsCgkgIGdzdF9paXJfZXF1YWxpemVyX25iYW5kc19iYXNlX2luaXQsIGdzdF9paXJfZXF1YWxpemVyX25iYW5kc19pbml0LAoJICBnc3RfaWlyX2VxdWFsaXplcl9uYmFuZHNfc2V0X3Byb3BlcnR5KToKCSAgVXNlIG5ldyBsb2NraW5nIG1hY3Jvcy4KCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYyAoYnB3c2luY19zZXRfY2Fwcyk6CgkgIEFkZCBmaXhtZS4KCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYyAoU1BFQ1RSVU1fV0lORE9XX0JBU0UsCgkgIFNQRUNUUlVNX1dJTkRPV19MRU4sIGdzdF9zcGVjdHJ1bV9pbml0LCBnc3Rfc3BlY3RydW1fc2V0X3Byb3BlcnR5LAoJICBnc3Rfc3BlY3RydW1fZXZlbnQsIGdzdF9zcGVjdHJ1bV90cmFuc2Zvcm1faXApOgoJICBVc2UgbmV3IGxvY2tpbmcgbWFjcm9zLiBUdXJuIHR3byBmaXhlZCB2YWx1ZXMgaW50byAjZGVmaW5lcy4KCjIwMDctMDUtMjIgMTE6MDM6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06IEFsc28gbG9vayBmb3IgLm0gKG9iamVjdGl2ZWMpIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIEFsc28gbG9vayBmb3IgLm0gKG9iamVjdGl2ZWMpIGZpbGVzLgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgZWxlbWVudCBhbmQgcHJvcGVydGllcy4KCjIwMDctMDUtMjEgMTQ6MDE6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIENoYW5nZUxvZzogQ2hhbmdlTG9nIHN1cmdlcnkuIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmMgKEFSR19CQU5EX1dJRFRILCBfZG9faW5pdCwgQVJHX0dBSU4sIF9Hc3RJaXJFcXVhbGl6ZXJCYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5LgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmMgKEFSR19CQU5EX1dJRFRILCBfZG9faW5pdCwgQVJHX0dBSU4sCgkgIF9Hc3RJaXJFcXVhbGl6ZXJCYW5kLCBvYmplY3QsIF9Hc3RJaXJFcXVhbGl6ZXJCYW5kQ2xhc3MsCgkgIHBhcmVudF9jbGFzcywgZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9zZXRfcHJvcGVydHksCgkgIGdzdF9paXJfZXF1YWxpemVyX2JhbmRfY2xhc3NfaW5pdCwgZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9nZXRfdHlwZSwKCSAgZ3N0X2lpcl9lcXVhbGl6ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4LAoJICBnc3RfaWlyX2VxdWFsaXplcl9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQsCgkgIGdzdF9paXJfZXF1YWxpemVyX2NoaWxkX3Byb3h5X2ludGVyZmFjZV9pbml0LCBzZXR1cF9maWx0ZXIsCgkgIGdzdF9paXJfZXF1YWxpemVyX2NvbXB1dGVfZnJlcXVlbmNpZXMsIHBsdWdpbl9pbml0KToKCSAgKiB0ZXN0cy9pY2xlcy9lcXVhbGl6ZXItdGVzdC5jOgoJICBBZGQgZml4bWUgYW5kIGNvbW1lbnQgZm9yIGV4YW1wbGUuCgoyMDA3LTA1LTIxIDEyOjQzOjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzoKCSAgZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmMgKGdzdF9zcGVjdHJ1bV9zZXRfcHJvcGVydHksIGdzdF9zcGVjdHJ1bV9ldmVudCwgZ3N0X3NwZWN0cnVtX3RyYW5zZm9ybV9pcCk6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jIChnc3Rfc3BlY3RydW1fc2V0X3Byb3BlcnR5LAoJICBnc3Rfc3BlY3RydW1fZXZlbnQsIGdzdF9zcGVjdHJ1bV90cmFuc2Zvcm1faXApOgoJICBVc2UgbG9jayB0byBwcm90ZWN0IGZyb20gY29uY3VycmVudCBhY2Nlc3MuCgoyMDA3LTA1LTIxIDExOjM3OjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IFNwZWNpZnkgYW5kIHVzZSBwcm9wZXJ0aWVzIGFzIHVuc2lnbmVkIGludCB0aGF0IGFyZSBhbiB1bnNpZ25lZCBpbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19jbGFzc19pbml0KSwKCSAgKGdzdF93YXZwYWNrX2VuY19zZXRfcHJvcGVydHkpLCAoZ3N0X3dhdnBhY2tfZW5jX2dldF9wcm9wZXJ0eSk6CgkgIFNwZWNpZnkgYW5kIHVzZSBwcm9wZXJ0aWVzIGFzIHVuc2lnbmVkIGludCB0aGF0IGFyZSBhbiB1bnNpZ25lZCBpbnQuCgoyMDA3LTA1LTIxIDExOjE3OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLio6IEZpeHVwIGRvY3MsIG1ha2UgdGhlIGJpdHJhdGUgcHJvcGVydHkgYW4gaW50IGFzIGl0IHNob3VsZCBiZSBhbmQgYWxsb3cgdG8gc2V0IHRoZSBkaWZmZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2luaXQpLCAoZ3N0X3dhdnBhY2tfZW5jX3NldF93cF9jb25maWcpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3NldF9wcm9wZXJ0eSksIChnc3Rfd2F2cGFja19lbmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmg6CgkgIEZpeHVwIGRvY3MsIG1ha2UgdGhlIGJpdHJhdGUgcHJvcGVydHkgYW4gaW50IGFzIGl0IHNob3VsZCBiZSBhbmQKCSAgYWxsb3cgdG8gc2V0IHRoZSBkaWZmZXJlbnQgZXh0cmEgcHJvY2Vzc2luZyBtb2RlcyBpbnN0ZWFkIG9mIG9ubHkKCSAgYWxsb3dpbmcgbm9uZSBhbmQgdGhlIGRlZmF1bHQgb25lLgoKMjAwNy0wNS0yMSAxMDowNzowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IFNpbmNlIHdlIGRlcGVuZCBvbiAwLjEwLjEzIC1jb3JlLCBvdmVycmlkZSB0aGUgdW5sb2NrX3N0b3Agdm1ldGhvZCBmb3Igc2FmZXIgc2h1dGRvd24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3VkcHNyY19jcmVhdGUpLCAoZ3N0X3VkcHNyY191bmxvY2spLCAoZ3N0X3VkcHNyY191bmxvY2tfc3RvcCk6CgkgIFNpbmNlIHdlIGRlcGVuZCBvbiAwLjEwLjEzIC1jb3JlLCBvdmVycmlkZSB0aGUgdW5sb2NrX3N0b3Agdm1ldGhvZCBmb3IKCSAgc2FmZXIgc2h1dGRvd24uCgoyMDA3LTA1LTIxIDEwOjAzOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRwZGVjLio6IEFkZGVkIHNpZ25hbCBmb3IgYmFja3dhcmRzIGNvbXBhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IChnc3RfcnRwX2RlY19jbGFzc19pbml0KToKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuaDoKCSAgQWRkZWQgc2lnbmFsIGZvciBiYWNrd2FyZHMgY29tcGF0LgoKMjAwNy0wNS0yMSAwOTozMjoyNiArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIFVzZSBhdWRpb2NvbnZlcnQgZm9yIGNvbnZlcnRpbmcgZnJvbSBub24tbmF0aXZlIGVuZGlhbm5lc3MgZmxvYXRzIGluIGF1cGFyc2UgaW5zdGVhZCBvZiBkb2luZyBpdCBvdXJzZWxmLiBGaXhlcyAjNDI0NTI3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X2F1X3BhcnNlX3BhcnNlX2hlYWRlciksIChnc3RfYXVfcGFyc2VfY2hhaW4pOgoJICAqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuaDoKCSAgVXNlIGF1ZGlvY29udmVydCBmb3IgY29udmVydGluZyBmcm9tIG5vbi1uYXRpdmUgZW5kaWFubmVzcyBmbG9hdHMKCSAgaW4gYXVwYXJzZSBpbnN0ZWFkIG9mIGRvaW5nIGl0IG91cnNlbGYuIEZpeGVzICM0MjQ1MjcuCgkgIFRoaXMgbmVlZHMgdGhlIGF1ZGlvY29udmVydCBmcm9tIHBsdWdpbnMtYmFzZSBDVlMuCgoyMDA3LTA1LTIxIDA5OjI5OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOiBGaXggZW51bSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzogKGdzdF9mcmFnbWVudGF0aW9uX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0cF9oMjYzcF9wYXlfZmx1c2gpOgoJICBGaXggZW51bSByZWdpc3RyYXRpb24uCgoyMDA3LTA1LTIxIDA4OjU3OjE4ICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBoMjYzcHBheS4qOiBBZGQgbmV3IGZyYWdtZW50YXRpb24gbW9kZSBiYXNlIG9uIEdPQiBoZWFkZXJzLiBGaXhlcyAjNDM4OTQwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzogKGdzdF9mcmFnbWVudGF0aW9uX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0cF9oMjYzcF9wYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2gyNjNwX3BheV9pbml0KSwKCSAgKGdzdF9ydHBfaDI2M3BfcGF5X3NldF9wcm9wZXJ0eSksIChnc3RfcnRwX2gyNjNwX3BheV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9oMjYzcF9wYXlfZmx1c2gpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSAgQWRkIG5ldyBmcmFnbWVudGF0aW9uIG1vZGUgYmFzZSBvbiBHT0IgaGVhZGVycy4gRml4ZXMgIzQzODk0MC4KCjIwMDctMDUtMjAgMjE6MzE6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogQWRkIG1pc3NpbmcgYXVkaW9jb252ZXJ0cyBpbiB0aGUgZXhhbXBsZSBwaXBlbGluZXMgb2Ygd2F2cGFja2VuYy4gQXMgdGhlIHdhdnBhY2sgc3R1ZmYgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6CgkgIEFkZCBtaXNzaW5nIGF1ZGlvY29udmVydHMgaW4gdGhlIGV4YW1wbGUgcGlwZWxpbmVzIG9mIHdhdnBhY2tlbmMuIEFzCgkgIHRoZSB3YXZwYWNrIHN0dWZmIG5vdyBuZWVkcyBpbnB1dCB3aXRoIDMyIGJpdCB3aWR0aCAoYW5kIHJhbmRvbSBkZXB0aCkKCSAgdGhpcyBpcyBuZWVkZWQgbm93LiBUaGUgZXhhbXBsZSBwaXBlbGluZXMgZm9yIHRoZSBwYXJzZXIgYW5kIGRlY29kZXIKCSAgYXJlIHN0aWxsIGZpbmUuCgoyMDA3LTA1LTIwIDE0OjU5OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYzogQnVuY2ggb2Ygc21hbGwgZml4ZXM6IHJlbW92ZSBzdGF0aWMgZnVuY3Rpb24gdGhhdCBkb2Vzbid0IGV4aXN0OyBkZWNsYXJlIGFub3RoZXIgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6IChnc3RfZGRyYXdzdXJmYWNlX2ZpbmFsaXplKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9kaXJlY3RkcmF3X3NpbmtfZ2V0X2RkcmF3Y2FwcyksCgkgIChnc3RfZGlyZWN0ZHJhd19zaW5rX3N1cmZhY2VfY3JlYXRlKToKCSAgQnVuY2ggb2Ygc21hbGwgZml4ZXM6IHJlbW92ZSBzdGF0aWMgZnVuY3Rpb24gdGhhdCBkb2Vzbid0IGV4aXN0OwoJICBkZWNsYXJlIGFub3RoZXIgb25lIHRoYXQgZG9lczsgcHJpbnRmIGZvcm1hdCBmaXg7IHVzZSByaWdodCBtYWNybwoJICB3aGVuIHNwZWNpZnlpbmcgZGVidWcgY2F0ZWdvcnk7IHJlbW92ZSBhIGJ1bmNoIG9mIHVudXNlZCB2YXJpYWJsZXM7CgkgICNpZiAwIG91dCBhbiB1bnVzZWQgY2h1bmsgb2YgY29kZSAocGFydGlhbGx5IGZpeGVzICM0Mzk5MTQpLgoKMjAwNy0wNS0yMCAxNDoxNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0Mzk5MTAsICM0Mzk5MTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9wcmVwYXJlX2N1cnJlbnRfc2FtcGxlKToKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5jOiAoZ3N0X3N3aXRjaF9jaGFpbik6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0Mzk5MTAsICM0Mzk5MTEpLgoKMjAwNy0wNS0yMCAxNDowNTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogUHJpbnRmIGZvcm1hdCBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2xvb3BfdWRwKToKCSAgUHJpbnRmIGZvcm1hdCBmaXguCgoyMDA3LTA1LTE5IDEwOjAxOjQ1ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgQWRkIHJlcGxheWdhaW4gcGxheWJhY2sgZWxlbWVudHMgKCM0MTI3MTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkgICogZ3N0L3JlcGxheWdhaW4vTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOiAoZ3N0X3JnX2FuYWx5c2lzX2NsYXNzX2luaXQpLAoJICAoZ3N0X3JnX2FuYWx5c2lzX3N0YXJ0KSwgKGdzdF9yZ19hbmFseXNpc19zZXRfY2FwcyksCgkgIChnc3RfcmdfYW5hbHlzaXNfdHJhbnNmb3JtX2lwKSwgKGdzdF9yZ19hbmFseXNpc19ldmVudCksCgkgIChnc3RfcmdfYW5hbHlzaXNfc3RvcCksIChnc3RfcmdfYW5hbHlzaXNfaGFuZGxlX3RhZ3MpLAoJICAoZ3N0X3JnX2FuYWx5c2lzX2hhbmRsZV9lb3MpLCAoZ3N0X3JnX2FuYWx5c2lzX3RyYWNrX3Jlc3VsdCksCgkgIChnc3RfcmdfYW5hbHlzaXNfYWxidW1fcmVzdWx0KToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmg6CgkgICogZ3N0L3JlcGxheWdhaW4vZ3N0cmdsaW1pdGVyLmM6IChnc3RfcmdfbGltaXRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X3JnX2xpbWl0ZXJfY2xhc3NfaW5pdCksIChnc3RfcmdfbGltaXRlcl9pbml0KSwKCSAgKGdzdF9yZ19saW1pdGVyX3NldF9wcm9wZXJ0eSksIChnc3RfcmdfbGltaXRlcl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3JnX2xpbWl0ZXJfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2xpbWl0ZXIuaDoKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5jOiAoZ3N0X3JnX3ZvbHVtZV9iYXNlX2luaXQpLAoJICAoZ3N0X3JnX3ZvbHVtZV9jbGFzc19pbml0KSwgKGdzdF9yZ192b2x1bWVfaW5pdCksCgkgIChnc3Rfcmdfdm9sdW1lX3NldF9wcm9wZXJ0eSksIChnc3Rfcmdfdm9sdW1lX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfcmdfdm9sdW1lX2Rpc3Bvc2UpLCAoZ3N0X3JnX3ZvbHVtZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3JnX3ZvbHVtZV9zaW5rX2V2ZW50KSwgKGdzdF9yZ192b2x1bWVfdGFnX2V2ZW50KSwKCSAgKGdzdF9yZ192b2x1bWVfcmVzZXQpLCAoZ3N0X3JnX3ZvbHVtZV91cGRhdGVfZ2FpbiksCgkgIChnc3Rfcmdfdm9sdW1lX2RldGVybWluZV9nYWluKToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ3ZvbHVtZS5oOgoJICAqIGdzdC9yZXBsYXlnYWluL3JlcGxheWdhaW4uYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9yZXBsYXlnYWluLmg6CgkgICogZ3N0L3JlcGxheWdhaW4vcmdhbmFseXNpcy5oOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOiAoc2VuZF9lb3NfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnbGltaXRlci5jOiAoc2V0dXBfcmdsaW1pdGVyKSwKCSAgKGNsZWFudXBfcmdsaW1pdGVyKSwgKHNldF9wbGF5aW5nX3N0YXRlKSwgKGNyZWF0ZV90ZXN0X2J1ZmZlciksCgkgICh2ZXJpZnlfdGVzdF9idWZmZXIpLCAoR1NUX1NUQVJUX1RFU1QpLCAocmdsaW1pdGVyX3N1aXRlKSwgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3Jndm9sdW1lLmM6IChldmVudF9mdW5jKSwgKHNldHVwX3Jndm9sdW1lKSwKCSAgKGNsZWFudXBfcmd2b2x1bWUpLCAoc2V0X3BsYXlpbmdfc3RhdGUpLCAoc2V0X251bGxfc3RhdGUpLAoJICAoc2VuZF9lb3NfZXZlbnQpLCAoc2VuZF90YWdfZXZlbnQpLCAodGVzdF9idWZmZXJfbmV3KSwKCSAgKGZhaWxfdW5sZXNzX3RhcmdldF9nYWluKSwgKGZhaWxfdW5sZXNzX3Jlc3VsdF9nYWluKSwKCSAgKGZhaWxfdW5sZXNzX2dhaW4pLCAoR1NUX1NUQVJUX1RFU1QpLCAocmd2b2x1bWVfc3VpdGUpLCAobWFpbik6CgkgIEFkZCByZXBsYXlnYWluIHBsYXliYWNrIGVsZW1lbnRzICgjNDEyNzEwKS4KCjIwMDctMDUtMTggMTM6Mjc6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IERvbid0IGNyYXNoIHdoZW4gYW4gdW5zdXBwb3J0ZWQgdHJhbnNwb3J0IGVycm9yIHdhcyByZXR1cm5lZCBieSB0aGUgc2VydmVyLCBqdXN0IHRyeSB0byBjb25maWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2V0dXBfc3RyZWFtcyk6CgkgIERvbid0IGNyYXNoIHdoZW4gYW4gdW5zdXBwb3J0ZWQgdHJhbnNwb3J0IGVycm9yIHdhcyByZXR1cm5lZCBieSB0aGUKCSAgc2VydmVyLCBqdXN0IHRyeSB0byBjb25maWd1cmUgdGhlIG5leHQgc3RyZWFtLiBGaXhlcyAjNDM5MjU1LgoKMjAwNy0wNS0xOCAxMTozOToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogQWRkIFRDUCB0aW1lb3V0IHByb3BlcnR5IGFuZCB1c2UgaXQgZm9yIGFsbCBUQ1AgY29ubmVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRzcHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3J0c3BzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdWRwKSwgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpLAoJICAoZ3N0X3J0c3BzcmNfbG9vcF91ZHApLCAoZ3N0X3J0c3BzcmNfdHJ5X3NlbmQpLCAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19zZXR1cF9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX29wZW4pOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgQWRkIFRDUCB0aW1lb3V0IHByb3BlcnR5IGFuZCB1c2UgaXQgZm9yIGFsbCBUQ1AgY29ubmVjdGlvbi4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2Nvbm5lY3QpLAoJICAocnRzcF9jb25uZWN0aW9uX3dyaXRlKSwgKHJ0c3BfY29ubmVjdGlvbl9uZXh0X3RpbWVvdXQpLAoJICAocnRzcF9jb25uZWN0aW9uX3Jlc2V0X3RpbWVvdXQpOgoJICBNYWtlIGNvbm5lY3QgYW5kIHdyaXRlcyBjYW5jZWxhYmxlIGFuZCBtYWtlIHRoZW0gdXNlIHRoZSB0aW1lb3V0LgoKMjAwNy0wNS0xOCAxMDozNjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogUmVmYWN0b3IgdGltZW91dCBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2VuZF9rZWVwX2FsaXZlKSwKCSAgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpLCAoZ3N0X3J0c3BzcmNfbG9vcF91ZHApLAoJICAoZ3N0X3J0c3BzcmNfdHJ5X3NlbmQpLCAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19zZXR1cF9zdHJlYW1zKToKCSAgUmVmYWN0b3IgdGltZW91dCBoYW5kbGluZy4KCSAgQWxzbyBzZW5kIGtlZXAtYWxpdmUgd2hlbiBkZWFsaW5nIHdpdGggVENQIHRyYW5zcG9ydC4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2NyZWF0ZSksCgkgIChydHNwX2Nvbm5lY3Rpb25fZnJlZSksIChydHNwX2Nvbm5lY3Rpb25fbmV4dF90aW1lb3V0KSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9yZXNldF90aW1lb3V0KToKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5oOgoJICBVc2UgYSB0aW1lciB0byBoYW5kbGUgdGhlIHNlc3Npb24gdGltZW91dHMsIGFkZCBzb21lIG1ldGhvZHMgdG8gZGVhbAoJICB3aXRoIHRpbWVvdXRzLgoKMjAwNy0wNS0xNyAxNDo1NjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogSWdub3JlIHN0cmVhbXMgdGhhdCBmYWlsIHRoZSBzZXR1cCBjb21tYW5kLCB3ZSB3aWxsIHJldHJ5IHdpdGggYSBkaWZmZXJlbnQgdHJhbnNwb3J0IGxhdGVyIG9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19zZW5kKSwKCSAgKGdzdF9ydHNwc3JjX3NldHVwX3N0cmVhbXMpOgoJICBJZ25vcmUgc3RyZWFtcyB0aGF0IGZhaWwgdGhlIHNldHVwIGNvbW1hbmQsIHdlIHdpbGwgcmV0cnkgd2l0aCBhCgkgIGRpZmZlcmVudCB0cmFuc3BvcnQgbGF0ZXIgb24uCgkgICogZ3N0L3J0c3AvcnRzcGV4dHdtcy5jOiAocnRzcF9leHRfd21zX3BhcnNlX3NkcCksCgkgIChydHNwX2V4dF93bXNfY29uZmlndXJlX3N0cmVhbSk6CgkgIEZpeCBlbmNvZGluZyBuYW1lIGNhc2UuCgoyMDA3LTA1LTE3IDEwOjU5OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay4qOiBSZW1vdmUgdGhlIGV2ZW50LWxvb3AtaW4tc2VwYXJhdGUtdGhyZWFkIG1vZGlmaWNhdGlvbnMsIGJlY2F1c2UgTWFjT1NYIGlzICQjQCgqJSQjICEgRm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIFJlbW92ZSB0aGUgZXZlbnQtbG9vcC1pbi1zZXBhcmF0ZS10aHJlYWQgbW9kaWZpY2F0aW9ucywgYmVjYXVzZSBNYWNPU1gKCSAgaXMgJCNAKColJCMgISBGb3IgdGhvc2Ugd29uZGVyaW5nLCB0aGUgZXZlbnQgaGFuZGxpbmcgbmVlZHMgdG8gYmUgZG9uZQoJICBpbiB0aGUgbWFpbiB0aHJlYWQgYWZ0ZXIgYWxsLi4KCjIwMDctMDUtMTcgMDk6NDE6NDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLio6IEZpeCBhIHN0dXBpZCAjaWYgdnMgI2lmZGVmIGJ1Zy4gU2hvdWxkIHVzZSB0aGUgcHJvcGVyIGNvbG9yc3BhY2Ugbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBGaXggYSBzdHVwaWQgI2lmIHZzICNpZmRlZiBidWcuIFNob3VsZCB1c2UgdGhlIHByb3BlciBjb2xvcnNwYWNlIG5vdy4KCSAgVXNlIGEgc2VwYXJhdGUgdGhyZWFkL3Rhc2sgZm9yIHRoZSBjb2NvYSBldmVudF9sb29wLCBlbHNlIGl0IHdvdWxkbid0CgkgIHN0b3AuCgoyMDA3LTA1LTE2IDE2OjUwOjIzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogRml4IGJ1aWxkIG9uIG1hY29zeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKHVzZXJfZW5kcm93X2NhbGxiYWNrKSwgKHVzZXJfcmVhZF9kYXRhKToKCSAgRml4IGJ1aWxkIG9uIG1hY29zeC4KCjIwMDctMDUtMTYgMTY6MzA6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOiBSZXBsYWNlIGRpcmVjdCBjb21wYXJpc29uIG9mIGEgc3RyaW5nIHdpdGggdGhlIHN0cmluZyBsaXRlcmFsICIiIHdpdGggYSBjb21wYXJpc29uIG9mIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogKGdzdF9kdjEzOTRzcmNfdXJpX3NldF91cmkpOgoJICBSZXBsYWNlIGRpcmVjdCBjb21wYXJpc29uIG9mIGEgc3RyaW5nIHdpdGggdGhlIHN0cmluZyBsaXRlcmFsICIiIHdpdGgKCSAgYSBjb21wYXJpc29uIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgd2l0aCAnXDAnLiBGaXhlcyAjNDM4OTI2LgoKMjAwNy0wNS0xNSAxNzoyMjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBESVJFQ1REUkFXX0NGTEFHUyBhbmQgRElSRUNUU09VTkRfQ0ZMQUdTIHRvIE1ha2VmaWxlLmFtOyBzYXZlIGFuZCByZXN0b3JlIHRoZSB2YXJpb3VzIGZsYWdzIGluIHRoZSBkaXJlY3RkcmF3L2Rpci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogc3lzL2RpcmVjdGRyYXcvTWFrZWZpbGUuYW06CgkgICogc3lzL2RpcmVjdHNvdW5kL01ha2VmaWxlLmFtOgoJICBBZGQgRElSRUNURFJBV19DRkxBR1MgYW5kIERJUkVDVFNPVU5EX0NGTEFHUyB0byBNYWtlZmlsZS5hbTsgc2F2ZQoJICBhbmQgcmVzdG9yZSB0aGUgdmFyaW91cyBmbGFncyBpbiB0aGUgZGlyZWN0ZHJhdy9kaXJlY3Rzb3VuZAoJICBkZXRlY3Rpb24gc2VjdGlvbi4gQXBwYXJlbnRseSBpbXByb3ZlcyBjcm9zcy1jb21waWxpbmcgZm9yIHdpbjMyCgkgIHdpdGggbWluZ3czMiB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMgKCM0Mzc1MzkpLgoKMjAwNy0wNS0xNSAxMToxODozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2RlYnVnL2JyZWFrbXlkYXRhLmMgKGdzdF9icmVha19teV9kYXRhX2luaXQpOiBPbmUgbW9yZSB0cnkuIFRoaXMgc2hvdWxkIGJlIHRoZSBwcm9wZXIgZml4IG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2JyZWFrbXlkYXRhLmMgKGdzdF9icmVha19teV9kYXRhX2luaXQpOgoJICBPbmUgbW9yZSB0cnkuIFRoaXMgc2hvdWxkIGJlIHRoZSBwcm9wZXIgZml4IG5vdy4KCjIwMDctMDUtMTUgMDY6NDE6NTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9kZWJ1Zy9icmVha215ZGF0YS5jOiBPb29wcywgbm8gLy8gY29tbWVudHMgcGxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvYnJlYWtteWRhdGEuYzoKCSAgT29vcHMsIG5vIC8vIGNvbW1lbnRzIHBsZWFzZS4KCjIwMDctMDUtMTUgMDY6MzQ6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9kZWJ1Zy9icmVha215ZGF0YS5jOiBGaXggZ3N0X2J1ZmZlcl9pc193cml0YWJsZSgpIGFzc2VydGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2JyZWFrbXlkYXRhLmM6IChnc3RfYnJlYWtfbXlfZGF0YV9jbGFzc19pbml0KSwKCSAgKGdzdF9icmVha19teV9kYXRhX2luaXQpOgoJICBGaXggZ3N0X2J1ZmZlcl9pc193cml0YWJsZSgpIGFzc2VydGlvbi4KCjIwMDctMDUtMTUgMDI6NTY6MjMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiBBZGQgc3VwcG9ydCBmb3IgQmF5ZXIgaW1hZ2VzIGFzIHZpZGVvL3gtcmF3LWJheWVyLiAgRml4ZXMgIzMxNDE2MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiBBZGQgc3VwcG9ydCBmb3IgQmF5ZXIgaW1hZ2VzIGFzCgkgIHZpZGVvL3gtcmF3LWJheWVyLiAgRml4ZXMgIzMxNDE2MC4KCjIwMDctMDUtMTQgMTc6MTA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogVXBkYXRlIHRoZW9yYSBwYXkvZGVwYXlsb2FkZXIgaW4gYSBzaW1pbGFyIHRvIHZvcmJpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOiAoZGVjb2RlX2Jhc2U2NCksCgkgIChnc3RfcnRwX3RoZW9yYV9kZXBheV9wYXJzZV9jb25maWd1cmF0aW9uKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOiAoZW5jb2RlX2Jhc2U2NCksCgkgIChnc3RfcnRwX3RoZW9yYV9wYXlfZmluaXNoX2hlYWRlcnMpLAoJICAoZ3N0X3J0cF90aGVvcmFfcGF5X2hhbmRsZV9idWZmZXIpOgoJICBVcGRhdGUgdGhlb3JhIHBheS9kZXBheWxvYWRlciBpbiBhIHNpbWlsYXIgdG8gdm9yYmlzLgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSAgKGdzdF9ydHBfdm9yYmlzX2RlcGF5X3BhcnNlX2NvbmZpZ3VyYXRpb24pOgoJICBVcGRhdGUgZG9jcy4KCjIwMDctMDUtMTQgMTY6MTk6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IFdoZW4gd2UgdHJ5IHRvIGV4ZWN1dGUgYSBtZXRob2QgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIsIGRvbid0IGVycm9yIG91dCBidXQgcmVtb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2VuZCk6CgkgIFdoZW4gd2UgdHJ5IHRvIGV4ZWN1dGUgYSBtZXRob2QgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIsCgkgIGRvbid0IGVycm9yIG91dCBidXQgcmVtb3ZlIHRoZSBtZXRob2QgZnJvbSB0aGUgYWNjZXB0ZWQgbWV0aG9kcyBzbyB0aGF0CgkgIHdlIG5ldmVyIHRyeSB0byBwZXJmb3JtIHRoaXMgbWV0aG9kIGFnYWluLgoKMjAwNy0wNS0xNCAxNDo0NzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzogUmVtb3ZlIGFubm95aW5nIF9kdW1wX21lbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOiAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfcHJvY2Vzcyk6CgkgIFJlbW92ZSBhbm5veWluZyBfZHVtcF9tZW0uCgoyMDA3LTA1LTE0IDExOjExOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBQYXJzZSByYW5nZSBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3BhcnNlX3JhbmdlKToKCSAgUGFyc2UgcmFuZ2UgY29ycmVjdGx5LgoJICAqIGdzdC9ydHNwL3J0c3B1cmwuYzogKHJ0c3BfdXJsX2dldF9yZXF1ZXN0X3VyaSk6CgkgIFRoZSBiYXNldXJsIG5vdyBhbHdheXMgaGFzIGEgJy8nIGF0IHRoZSBzdGFydC4KCjIwMDctMDUtMTQgMDk6MDE6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IEZhY3RvciBvdXQgY2FwcyBjb25maWd1cmF0aW9uIGFuZCBjb25maWd1cmUgbW9yZSBzdHVmZiBzdWNoIGFzIHRoZSB0aW1lIHJhbmdlcyBhbmQgc3BlZWQvc2NhbGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfcmFuZ2UpLCAoZ3N0X3J0c3BzcmNfb3BlbiksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9ydHBpbmZvKSwgKGdzdF9ydHNwc3JjX3BsYXkpOgoJICBGYWN0b3Igb3V0IGNhcHMgY29uZmlndXJhdGlvbiBhbmQgY29uZmlndXJlIG1vcmUgc3R1ZmYgc3VjaCBhcyB0aGUgdGltZQoJICByYW5nZXMgYW5kIHNwZWVkL3NjYWxlIHZhbHVlcy4KCSAgKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0LmM6CgkgIEFkZCBDb3B5cmlnaHQgYWZ0ZXIgbm9uLXRyaXZhbCBmaXhlcy4KCjIwMDctMDUtMTMgMTk6NTc6NDUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3JlcGxheWdhaW4vcmdhbmFseXNpcy5jOiBGaXggd3JvbmcgaWZkZWYgZm9yIHZpc3VhbCBDKysuICBGaXhlczogIzQzNzQwMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlcGxheWdhaW4vcmdhbmFseXNpcy5jOgoJICBGaXggd3JvbmcgaWZkZWYgZm9yIHZpc3VhbCBDKysuICBGaXhlczogIzQzNzQwMy4KCSAgQnkgQWxpIFNhYmlsIDxhbGkuc2FiaWxAZ21haWwuY29tPi4KCjIwMDctMDUtMTMgMTU6NDc6MTMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiBVc2UgZ3VpbnQ4ICogaW5zdGVhZCBvZiBncG9pbnRlciB0aGVuIHZzNiBjYW4gYnVpbGQgaW5fZGF0YSArPSAoZmlsdGVyLT53aWR0aCAvIDgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICBVc2UgZ3VpbnQ4ICogaW5zdGVhZCBvZiBncG9pbnRlciB0aGVuIHZzNiBjYW4gYnVpbGQKCSAgaW5fZGF0YSArPSAoZmlsdGVyLT53aWR0aCAvIDgpLgoKMjAwNy0wNS0xMiAxNjozNzo1MCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRzcC86IE1ha2UgY2hhbm5lbCBndWludDggd2hlcmUgcG9zc2libGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpOgoJICAqIGdzdC9ydHNwL3J0c3BtZXNzYWdlLmM6IChydHNwX21lc3NhZ2VfaW5pdF9kYXRhKSwKCSAgKHJ0c3BfbWVzc2FnZV9nZXRfaGVhZGVyKToKCSAgKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5oOgoJICBNYWtlIGNoYW5uZWwgZ3VpbnQ4IHdoZXJlIHBvc3NpYmxlLgoJICBNYWtlIHJ0c3BfbWVzc2FnZV9pbml0X2RhdGEoKSB0YWtlIHRoZSBjaGFubmVsIGFzIGEgZ3VpbnQ4LgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmM6CgkgIEZpeGVkIGEgdHlwbzogVGltb3V0IC0+IFRpbWVvdXQKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICBNYWtlIFJUU1BfQ0hFQ0soKSBiZWhhdmUgYXMgYSBzdGF0ZW1lbnQuCgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5jOgoJICBBdm9pZCBhIGNvbXBpbGVyIHdhcm5pbmcgaW4gSU5JVF9BUlJBWSgpLgoJICBGaXhlcyAjNDM3NjkyLgoKMjAwNy0wNS0xMiAxNjoyNzo1MSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRzcC9ydHNwdXJsLio6IEFkZCBzdXBwb3J0IGZvciBxdWVyeSBwYXJhbWV0ZXJzIHRvIFJUU1AgVVJMcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgIDxwa2ogYXQgYXhpcyBjb20+CgkgICogZ3N0L3J0c3AvcnRzcHVybC5jOiAocnRzcF91cmxfcGFyc2UpLCAocnRzcF91cmxfZnJlZSksCgkgIChydHNwX3VybF9nZXRfcmVxdWVzdF91cmkpOgoJICAqIGdzdC9ydHNwL3J0c3B1cmwuaDoKCSAgQWRkIHN1cHBvcnQgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gUlRTUCBVUkxzLgoKMjAwNy0wNS0xMiAxNjoyNjowNiArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0Lio6IEFkZCB2YWxpZGF0aW9uIHRvIHJ0c3BfdHJhbnNwb3J0X3BhcnNlKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzogKHJ0c3BfdHJhbnNwb3J0X2luaXQpLCAocGFyc2VfbW9kZSksCgkgIChwYXJzZV9yYW5nZSksIChyYW5nZV9hc190ZXh0KSwgKHJ0c3BfdHJhbnNwb3J0X21vZGVfYXNfdGV4dCksCgkgIChydHNwX3RyYW5zcG9ydF9wcm9maWxlX2FzX3RleHQpLCAocnRzcF90cmFuc3BvcnRfbHRyYW5zX2FzX3RleHQpLAoJICAocnRzcF90cmFuc3BvcnRfcGFyc2UpLCAocnRzcF90cmFuc3BvcnRfYXNfdGV4dCk6CgkgICogZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5oOgoJICBBZGQgdmFsaWRhdGlvbiB0byBydHNwX3RyYW5zcG9ydF9wYXJzZSgpLgoJICBBZGQgcnRzcF90cmFuc3BvcnRfYXNfdGV4dCgpIHRvIGdlbmVyYXRlIGFuIFJUU1AgaGVhZGVyIGZyb20gYW4KCSAgUlRTUFRyYW5zcG9ydC4KCSAgQ2hhbmdlIHNzcmMgdG8gZ3VpbnQgKHdhcyBhIHN0cmluZykgc2luY2UgdGhhdCBpcyB3aGF0IGl0IGlzLCBldmVuCgkgIHRob3VnaCBpdCBpcyBzZW50IGFzIGEgaGV4IHN0cmluZy4KCSAgQ29ycmVjdGx5IGlkZW50aWZ5IFBMQVl8UkVDT1JEIG1vZGUgcGFyYW1ldGVycyAodGhlIHN5bnRheCBpbiB0aGUgUkZDIGlzCgkgIGluY29ycmVjdCwgd2hpY2ggY2FuIGJlIHNlZW4gd2hlbiBsb29raW5nIGF0IHRoZSBleGFtcGxlcyBpbiB0aGUgUkZDKS4KCSAgRml4ZXMgIzQzNzY3MC4KCjIwMDctMDUtMTEgMTY6MTE6MDQgKzAwMDAgIEVyaWMgQW5ob2x0IDxhbmhvbHRAZnJlZWJzZC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmMgKGdzdF94aW1hZ2Vfc3JjX29wZW5fZGlzcGxheSwgZ3N0X3hpbWFnZV9zcmNfeGltYWdlX2dldCk6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRXJpYyBBbmhvbHQKCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jIChnc3RfeGltYWdlX3NyY19vcGVuX2Rpc3BsYXksCgkgIGdzdF94aW1hZ2Vfc3JjX3hpbWFnZV9nZXQpOgoJICBVc2UgdW5pb24gb2YgYWxsIGRhbWFnZSBiZXR3ZWVuIGZyYW1lcyB0byBtYWtlIGl0IGZhc3Rlci4KCSAgRml4ZXMgYnVnICMzNDI0NjMuCgkgIEFsc28gZml4IGNyYXNoZXIgd2hlbiBjdXJzb3IgaXMgYXQgYm90dG9tIHJpZ2h0IG9mIHdpbmRvdy4KCjIwMDctMDUtMTEgMTY6MDE6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogU2tpcCBMSVNUIGNodW5rcyBiZWZvcmUgdGhlIGZtdCBjaHVuayAoZml4ZXMgIzQzNzQ5OSkuIEFsc28gZml4IHN0cmVhbWluZyBtb2RlIHJlZ3Jlc3Npb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpOgoJICBTa2lwIExJU1QgY2h1bmtzIGJlZm9yZSB0aGUgZm10IGNodW5rIChmaXhlcyAjNDM3NDk5KS4gQWxzbyBmaXgKCSAgc3RyZWFtaW5nIG1vZGUgcmVncmVzc2lvbiBmb3IgZmlsZSBmcm9tICMzNDM4Mzcgd2l0aCAnYmV4dCcgY2h1bmsKCSAgYmVmb3JlIHRoZSAnZm10JyBjaHVuay4KCjIwMDctMDUtMTEgMTU6MDk6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC86IFByZWxpbWluYXJ5IHNlZWsgc3VwcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZmx1c2gpLAoJICAoZ3N0X3J0c3BzcmNfZG9fc2VlayksIChnc3RfcnRzcHNyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X3J0c3BzcmNfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX21hbmFnZXIpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90Y3ApLCAoZ3N0X3J0c3BzcmNfbG9vcF9pbnRlcmxlYXZlZCksCgkgIChnc3RfcnRzcHNyY19zZW5kX2tlZXBfYWxpdmUpLCAoZ3N0X3J0c3BzcmNfb3BlbiksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9ydHBpbmZvKSwgKGdzdF9ydHNwc3JjX3BsYXkpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICBQcmVsaW1pbmFyeSBzZWVrIHN1cHBvcnQuCgkgIEFjdGl2YXRlIGludGVybmFsIHBhZHMgc28gdGhhdCB3ZSBjYW4gcmVjZWl2ZSBldmVudHMgb24gdGhlbS4KCSAgRG9uJ3QgdHJ5IHRvIHBhcnNlIGEgcmFuZ2Ugc3RyaW5nIHdoZW4gaXQncyBOVUxMLgoKMjAwNy0wNS0xMSAxNTowNDozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvUkVBRE1FOiBVcGRhdGUgUkVBRE1FIHdpdGggbmV3IFJUUCB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHN5bmNocm9uaXNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9SRUFETUU6CgkgIFVwZGF0ZSBSRUFETUUgd2l0aCBuZXcgUlRQIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IKCSAgc3luY2hyb25pc2F0aW9uLgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzogKGRlY29kZV9iYXNlNjQpLAoJICAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfcGFyc2VfY29uZmlndXJhdGlvbiksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZW5jb2RlX2Jhc2U2NCksCgkgIChnc3RfcnRwX3ZvcmJpc19wYXlfZmluaXNoX2hlYWRlcnMpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2hhbmRsZV9idWZmZXIpOgoJICBVcGRhdGUgdm9yYmlzIHBheSBhbmQgZGVwYXlsb2FkZXIgdG8gZHJhZnQtMDQuCgoyMDA3LTA1LTExIDExOjI0OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5jOiBVRFAgTUNBU1QgaXMgYWN0dWFsbHkgdGhlIGRlZmF1bHQgZm9yIFJUUC9BVlAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzoKCSAgVURQIE1DQVNUIGlzIGFjdHVhbGx5IHRoZSBkZWZhdWx0IGZvciBSVFAvQVZQLgoKMjAwNy0wNS0xMSAxMDozMToyNyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmMgKGdzdF94aW1hZ2Vfc3JjX3N0YXJ0LCBnc3RfeGltYWdlX3NyY194aW1hZ2VfZ2V0KToKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYyAoZ3N0X3hpbWFnZV9zcmNfc3RhcnQsCgkgIGdzdF94aW1hZ2Vfc3JjX3hpbWFnZV9nZXQpOgoJICAqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmggKGxhc3RfeGltYWdlKToKCSAgV2hlbiB1c2luZyBEYW1hZ2UgYWN0dWFsbHkga2VlcCB0aGUgbGFzdCBmcmFtZSwgYW5kIG5vdCBhc3N1bWUKCSAgdGhhdCB0aGUgYnVmZmVyIHdlIGdldCBhbHJlYWR5IGhhcyB0aGUgbGFzdCBmcmFtZSBvbiBpdC4KCSAgQ29weSB0aGUgY3Vyc29yIG92ZXIgaWYgd2Ugc3BlY2lmeSBhIG5vbi16ZXJvIHN0YXJ0IHggYW5kCgkgIHN0YXJ0IHkuCgoyMDA3LTA1LTExIDA5OjEyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5jOiBNYWtlIFVEUCB0aGUgZGVmYXVsdCB0cmFuc3BvcnQgd2hlbiBub3Qgc3BlY2lmaWVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0LmM6CgkgIE1ha2UgVURQIHRoZSBkZWZhdWx0IHRyYW5zcG9ydCB3aGVuIG5vdCBzcGVjaWZpZWQuCgoyMDA3LTA1LTEwIDE0OjAyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmMgKGdzdF9xdGRlbXV4X21vdmVfc3RyZWFtLCBnc3RfcXRkZW11eF9sb29wX3N0YXRlX2hlYWRlciwgZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCwgZ3N0X3F0ZGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jIChnc3RfcXRkZW11eF9tb3ZlX3N0cmVhbSwKCSAgZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIsIGdzdF9xdGRlbXV4X2FjdGl2YXRlX3NlZ21lbnQsCgkgIGdzdF9xdGRlbXV4X3ByZXBhcmVfY3VycmVudF9zYW1wbGUsIGdzdF9xdGRlbXV4X2NvbWJpbmVfZmxvd3MsCgkgIGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUsIGdzdF9xdGRlbXV4X2xvb3AsCgkgIHF0ZGVtdXhfcGFyc2Vfc2VnbWVudHMsIHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgICogZ3N0L3J0cG1hbmFnZXIvcnRwc2Vzc2lvbi5jIChydHBfc2Vzc2lvbl9nZXRfYmFuZHdpZHRoLAoJICBydHBfc2Vzc2lvbl9nZXRfcnRjcF9iYW5kd2lkdGgsIHJ0cF9zZXNzaW9uX2dldF9jbmFtZSwKCSAgcnRwX3Nlc3Npb25fZ2V0X25hbWUsIHJ0cF9zZXNzaW9uX2dldF9lbWFpbCwgcnRwX3Nlc3Npb25fZ2V0X3Bob25lLAoJICBydHBfc2Vzc2lvbl9nZXRfbG9jYXRpb24sIHJ0cF9zZXNzaW9uX2dldF90b29sLAoJICBydHBfc2Vzc2lvbl9wcm9jZXNzX2J5ZSwgc2Vzc2lvbl9yZXBvcnRfYmxvY2tzKToKCSAgKiBnc3QvcnRwbWFuYWdlci9ydHBzb3VyY2UuYyAocnRwX3NvdXJjZV9wcm9jZXNzX3J0cCwKCSAgcnRwX3NvdXJjZV9zZW5kX3J0cCwgcnRwX3NvdXJjZV9wcm9jZXNzX3NyLCBydHBfc291cmNlX3Byb2Nlc3NfcmIpOgoJICBNb3JlIGZvcm1hdCBhcmcgZml4aW5nIChzcG90dGVkIGJ5IEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4pLgoJICAqIGdzdC9zd2l0Y2gvTWFrZWZpbGUuYW06CgkgIEFkZCByZXF1aXJlIGxpYnJhcmllcyhzcG90dGVkIGJ5IEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4pLgoKMjAwNy0wNS0xMCAwMToyMToxOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgUmV2ZXJ0IGxhc3QgY2hhbmdlLgoKMjAwNy0wNS0wOSAyMTozMDo1MyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2xldmVsL2dzdGxldmVsLmM6IFVzZSBndWludDggKiBpbnN0ZWFkIG9mIGdwb2ludGVyIHRoZW4gdnM2IGtub3cgdGhlIHNpemUgb2YgZGF0YSBwb2ludGVkIHdoZW4gbW92aW5nIHRoZSBwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9jYWxjdWxhdGVfIyNUWVBFKSwKCSAgKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICBVc2UgZ3VpbnQ4ICogaW5zdGVhZCBvZiBncG9pbnRlciB0aGVuIHZzNiBrbm93IHRoZSBzaXplIG9mIGRhdGEKCSAgcG9pbnRlZCB3aGVuIG1vdmluZyB0aGUgcG9pbnRlci4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzogKGdzdF9ydHBfaDI2NF9wYXlfaGFuZGxlX2J1ZmZlcik6CgkgIE1vdmUgaW5zdHJ1Y3Rpb25zIGFmdGVyIHZhcmlhYmxlcyBkZWNsYXJhdGlvbi4KCSAgKiB3aW4zMi92czYvYXV0b2dlbi5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJ0cC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJ0c3AuZHNwOgoJICBVcGRhdGUgdnM2IHByb2plY3QgZmlsZXMuCgoyMDA3LTA1LTA5IDExOjIzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvOiBBZGQgY29kZSB0byBwYXJzZSB0aW1lIHJhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcnRzcHNyY19zZW5kX2tlZXBfYWxpdmUpLCAoZ3N0X3J0c3BzcmNfb3Blbik6CgkgICogZ3N0L3J0c3AvcnRzcHJhbmdlLmM6IChwYXJzZV9ucHRfdGltZSksIChwYXJzZV9ucHRfcmFuZ2UpLAoJICAocGFyc2VfY2xvY2tfcmFuZ2UpLCAocGFyc2Vfc21wdGVfcmFuZ2UpLCAocnRzcF9yYW5nZV9wYXJzZSksCgkgIChydHNwX3JhbmdlX2ZyZWUpOgoJICAqIGdzdC9ydHNwL3J0c3ByYW5nZS5oOgoJICBBZGQgY29kZSB0byBwYXJzZSB0aW1lIHJhbmdlcy4KCSAgUmVwb3J0IERVUkFUSU9OIG9uIHRoZSBzdHJlYW0gd2hlbiBwb3NzaWJsZS4KCjIwMDctMDUtMDggMTU6NDk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IEZpeCBzdHJpZGVzIGNhbGN1bGF0aW9uIGZvciBBWVVWIChpdCdzIGp1c3Qgd2lkdGgqNCkgKCM0MzY5MTApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9ibGVuZF9heXV2X2F5dXYpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9jaGVja2VyKSwgKGdzdF92aWRlb21peGVyX2ZpbGxfY29sb3IpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfY29sbGVjdGVkKToKCSAgRml4IHN0cmlkZXMgY2FsY3VsYXRpb24gZm9yIEFZVVYgKGl0J3MganVzdCB3aWR0aCo0KSAoIzQzNjkxMCkuCgoyMDA3LTA1LTA2IDIxOjMyOjQwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC86IFN5bmMgdGhlIEdPYmplY3QgcHJvcGVydGllcyBiZWZvcmUgZWFjaCBwcm9jZXNzaW5nIHN0ZXAgdG8gcHJvcGVybHkgd29yayB3aXRoIHRoZSBjb250cm9sbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzogKGdzdF9hdWRpb19hbXBsaWZ5X3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9keW5hbWljLmM6IChnc3RfYXVkaW9fZHluYW1pY190cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0LmM6IChnc3RfYXVkaW9faW52ZXJ0X3RyYW5zZm9ybV9pcCk6CgkgIFN5bmMgdGhlIEdPYmplY3QgcHJvcGVydGllcyBiZWZvcmUgZWFjaCBwcm9jZXNzaW5nIHN0ZXAgdG8gcHJvcGVybHkKCSAgd29yayB3aXRoIHRoZSBjb250cm9sbGVyLgoKMjAwNy0wNS0wNCAxNToxNzoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogTGV0IG1vcmUgZXJyb3Igc3RhdGUgdHJpY2tsZSBkb3duIHNvIHRoYXQgd2UgY2FuIGNhdGNoIG1vcmUgZXJyb3IgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3NlbmRfa2VlcF9hbGl2ZSksCgkgIChnc3RfcnRzcHNyY19sb29wX3VkcCksIChnc3RfcnRzcHNyY190cnlfc2VuZCksIChnc3RfcnRzcHNyY19zZW5kKSwKCSAgKGdzdF9ydHNwc3JjX3NldHVwX3N0cmVhbXMpLCAoZ3N0X3J0c3BzcmNfb3BlbiksCgkgIChnc3RfcnRzcHNyY19jbG9zZSksIChnc3RfcnRzcHNyY19wbGF5KSwgKGdzdF9ydHNwc3JjX3BhdXNlKSwKCSAgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIExldCBtb3JlIGVycm9yIHN0YXRlIHRyaWNrbGUgZG93biBzbyB0aGF0IHdlIGNhbiBjYXRjaCBtb3JlIGVycm9yCgkgIGNhc2VzLgoJICBIYW5kbGUga2VlcC1hbGl2ZSBhIGxpdHRsZSBzbWFydGVyIGJ5IHNlbGVjdGluZyBhIG1ldGhvZCB0aGUgc2VydmVyCgkgIGFjdHVhbGx5IHN1cHBvcnRzLgoJICBGaXggYSByYWNlIGluIFVEUCBzdHJlYW1pbmcgc2h1dGRvd24uCgoyMDA3LTA1LTA0IDEzOjA0OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBJZ25vcmUgZXJyb3JzIHdoZW4gdHJ5aW5nIHRvIHVzZSB0aGUga2VlcC1hbGl2ZSBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2VuZF9rZWVwX2FsaXZlKToKCSAgSWdub3JlIGVycm9ycyB3aGVuIHRyeWluZyB0byB1c2UgdGhlIGtlZXAtYWxpdmUgbWVzc2FnZXMuCgoyMDA3LTA1LTA0IDEyOjMxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBTZW5kIFJUQ1AgbWVzc2FnZXMgYmFjayB0byB0aGUgc2VydmVyIG92ZXIgdGhlIFRDUCBjb25uZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3J0c3BzcmNfc2lua19jaGFpbiksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX21hbmFnZXIpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2ZyZWVfdWRwKSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdGNwKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfbWNhc3QpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHApLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHBfc2luayksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCk6CgkgIFNlbmQgUlRDUCBtZXNzYWdlcyBiYWNrIHRvIHRoZSBzZXJ2ZXIgb3ZlciB0aGUgVENQIGNvbm5lY3Rpb24uCgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKHJ0c3BfY29ubmVjdGlvbl93cml0ZSksCgkgIChydHNwX2Nvbm5lY3Rpb25fc2VuZCksIChydHNwX2Nvbm5lY3Rpb25fcmVhZCksIChyZWFkX2JvZHkpLAoJICAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmg6CgkgIEZhY3RvciBvdXQgYW5kIGV4cG9zZSBsb3dsZXZlbCBfd3JpdGUgYW5kIF9yZWFkIG1ldGhvZHMuCgkgIEltcGxlbWVudCBzZW5kaW5nIGRhdGEgbWVzc2FnZXMgdG8gdGhlIHNlcnZlci4KCjIwMDctMDUtMDMgMTU6NTU6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOiBGaXggdGltZXN0YW1wcyBvbiBvdXRnb2luZyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOiAoZ3N0X211bHRpcGFydF9tdXhfcXVldWVfcGFkcyksCgkgIChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICBGaXggdGltZXN0YW1wcyBvbiBvdXRnb2luZyBidWZmZXJzLgoKMjAwNy0wNS0wMyAxNDozOTowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IEVtaXQgTkVXU0VHTUVOVCBldmVudHMgYmVmb3JlIHB1c2hpbmcgdGhlIGZpcnN0IGJ1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSAgKGdzdF9tdWx0aXBhcnRfbXV4X3JlcXVlc3RfbmV3X3BhZCksIChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfY2hhbmdlX3N0YXRlKToKCSAgRW1pdCBORVdTRUdNRU5UIGV2ZW50cyBiZWZvcmUgcHVzaGluZyB0aGUgZmlyc3QgYnVmZmVyLgoKMjAwNy0wNS0wMyAxMzo0ODo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogUmVmYWN0b3IgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZmluYWxpemUpLAoJICAoZ3N0X3J0c3BzcmNfYWxsb2NfdWRwX3BvcnRzKSwgKGdzdF9ydHNwc3JjX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3J0c3BzcmNfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX21hbmFnZXIpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2ZyZWVfdWRwKSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdGNwKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfbWNhc3QpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHApLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV91ZHBfc2luayksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksIChnc3RfcnRzcHNyY19wdXNoX2V2ZW50KSwKCSAgKGdzdF9ydHNwc3JjX2xvb3BfdWRwKSwgKGdzdF9ydHNwc3JjX29wZW4pLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfcnRwaW5mbyksIChnc3RfcnRzcHNyY19wbGF5KSwKCSAgKGdzdF9ydHNwc3JjX3BhdXNlKToKCSAgUmVmYWN0b3IgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZS4KCSAgQ3JlYXRlIGludGVybmFsIHBhZHMgZm9yIFRDUCB0cmFuc3BvcnQgc28gdGhhdCB3ZSBjYW4gaW1wbGVtZW50IGV2ZW50cwoJICBhbmQgcXVlcmllcy4KCSAgSGFuZGxlIGV2ZW50cyBhbmQgcXVlcmllcy4KCSAgUGFyc2UgcmFuZ2UgZnJvbSB0aGUgU0RQLgoJICBGaXggcmFjZSBpbiBwYXVzZSBoYW5kbGVyIHdoZXJlIHRoZSBjb25uZWN0aW9uIGNvdWxkIHN0aWxsIGJlIGZsdXNoaW5nLgoKMjAwNy0wNS0wMiAxOTozMjo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogRml4IHJhY2Ugd2hlbiBtdWx0aXBsZSB1ZHAgc291cmNlcyBwb3N0IHRpbWVvdXRzLCBqdXN0IGFjdCBvbiB0aGUgZmlyc3QgcmVjZWl2ZWQgdGltZW91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19maW5hbGl6ZSksIChuZXdfc2Vzc2lvbl9wYWQpLCAocmVxdWVzdF9wdF9tYXApLAoJICAoZ3N0X3J0c3BzcmNfbG9vcF9zZW5kX2NtZCksIChnc3RfcnRzcHNyY190cnlfc2VuZCksCgkgIChnc3RfcnRzcHNyY19zZW5kKSwgKGdzdF9ydHNwc3JjX2FzeW5jX29wZW4pLCAoZ3N0X3J0c3BzcmNfY2xvc2UpLAoJICAoZ3N0X3J0c3BzcmNfcGxheSksIChnc3RfcnRzcHNyY19oYW5kbGVfbWVzc2FnZSksCgkgIChnc3RfcnRzcHNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgRml4IHJhY2Ugd2hlbiBtdWx0aXBsZSB1ZHAgc291cmNlcyBwb3N0IHRpbWVvdXRzLCBqdXN0IGFjdCBvbiB0aGUgZmlyc3QKCSAgcmVjZWl2ZWQgdGltZW91dC4KCSAgUHJvdGVjdCBzdHJlYW0gbGlzdCB3aXRoIGEgcmVjdXJzaXZlIGxvY2sgdG8gZml4IHNvbWUgcmFjZXMuCgkgIEZsdXNoIGNvbm5lY3Rpb24gd2hlbiB3ZSBuZWVkIHRvIGRvIGEgcmVjb25uZWN0IG9yIHN0b3AuCgkgIE1ha2Ugc3RhdGUgbG9jayByZWN1cnNpdmUuCgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKHJ0c3BfY29ubmVjdGlvbl9jb25uZWN0KSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9jbG9zZSk6CgkgIFNvbWUgc21hbGwgY2xlYW51cHMuCgoyMDA3LTA1LTAyIDE4OjMxOjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrLmM6IENhbGwgYmluZHRleHRkb21haW4oKSB0byBnZXQgbG9jYWxpemVkIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2suYzogKHBsdWdpbl9pbml0KToKCSAgQ2FsbCBiaW5kdGV4dGRvbWFpbigpIHRvIGdldCBsb2NhbGl6ZWQgc3RyaW5ncy4KCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfY2hhaW4pOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfaGFuZGxlX3NlZWtfZXZlbnQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfcHVzaF9idWZmZXIpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfY2hhaW4pOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICBIYW5kbGUgRElTQ09OVCBidWZmZXJzIGJ5IGNvcnJlY3RseSBzZXR0aW5nIHRoZSBESVNDT05UIGZsYWcKCSAgb24gb3V0Z29pbmcgYnVmZmVycyB3aGVuIG5lY2Vzc2FyeS4KCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX2hhbmRsZV9zZWVrX2V2ZW50KQoJICBTZW5kIG5ld3NlZ21lbnQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCjIwMDctMDUtMDIgMTg6MjU6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogT25seSBzZXQgRElTQ09OVCB3aGVuIHRoZXJlIGFjdHVhbGx5IGlzIGEgZGlzY29udCBvciB3aGVuIHdlIGp1c3Qgc3RhcnRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpOgoJICBPbmx5IHNldCBESVNDT05UIHdoZW4gdGhlcmUgYWN0dWFsbHkgaXMgYSBkaXNjb250IG9yIHdoZW4gd2UganVzdAoJICBzdGFydGVkLgoKMjAwNy0wNS0wMiAxODowMTo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhYy5jOiBDYWxsIGJpbmR0ZXh0ZG9tYWluKCkgdG8gZ2V0IGxvY2FsaXplZCBzdHJpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjLmM6IChwbHVnaW5faW5pdCk6CgkgIENhbGwgYmluZHRleHRkb21haW4oKSB0byBnZXQgbG9jYWxpemVkIHN0cmluZ3MuCgoyMDA3LTA1LTAyIDE3OjE5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IEJlIGEgYml0IG1vcmUgY2xldmVyIHdoZW4gZGVhbGluZyB3aXRoIFZCUiBmaWxlcyB3aXRoIEZBQ1QgdGFncywgd2UgZG9uJ3Qgd2FudCB0byB0aW1lc3RhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3BlcmZvcm1fc2VlayksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpLCAoZ3N0X3dhdnBhcnNlX2FkZF9zcmNfcGFkKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmg6CgkgIEJlIGEgYml0IG1vcmUgY2xldmVyIHdoZW4gZGVhbGluZyB3aXRoIFZCUiBmaWxlcyB3aXRoIEZBQ1QgdGFncywgd2UKCSAgZG9uJ3Qgd2FudCB0byB0aW1lc3RhbXAgYnVmZmVycyBpbiB0aGF0IGNhc2UgYnV0IHRoZSBlc3RpbWF0ZWQgQlBTIGNhbgoJICBiZSB1c2VkIGZvciBzZWVraW5nLgoJICBPbmx5IHNlbmQgY2xvc2Ugc2VnbWVudCBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCjIwMDctMDUtMDIgMTc6MDg6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogQ29ycmVjdGx5IHBvc3QgYW4gZXJyb3Igb24gdGhlIGJ1cyBpZiBzb21ldGhpbmcgd2VudCB3cm9uZyBpbiB0aGUgbG9vcCBmdW5jdGlvbi4gVGhpcyBmaXhlcyBhIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfbG9vcCk6CgkgIENvcnJlY3RseSBwb3N0IGFuIGVycm9yIG9uIHRoZSBidXMgaWYgc29tZXRoaW5nIHdlbnQgd3JvbmcgaW4gdGhlIGxvb3AKCSAgZnVuY3Rpb24uIFRoaXMgZml4ZXMgYSBmZXcgY2FzZXMgd2hlcmUgdGhlIHRhc2sgd2FzIHBhdXNlZCBhbmQgbm90aGluZwoJICBoYXBwZW5lZCBhbnltb3JlLgoKMjAwNy0wNS0wMiAxNjo1ODowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IFJlbW92ZSBvbGQgd29ya2Fyb3VuZCB0aGF0IHdhcyBuZWVkZWQgd2hlbiBzZWVraW5nIGFmdGVyIHRoZSBsYXN0IHNhbXBsZS4gV2l0aCB0aGUgZml4Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfaGFuZGxlX3NlZWtfZXZlbnQpOgoJICBSZW1vdmUgb2xkIHdvcmthcm91bmQgdGhhdCB3YXMgbmVlZGVkIHdoZW4gc2Vla2luZyBhZnRlciB0aGUgbGFzdAoJICBzYW1wbGUuIFdpdGggdGhlIGZpeGVkIGVycm9yIGhhbmRsaW5nIHRoaXMgd29ya3Mgbm93IGFzIGV4cGVjdGVkCgkgIHdpdGhvdXQgcHVzaGluZyB0aGUgbGFzdCBzYW1wbGUgYWx0aG91Z2ggaXQgd2Fzbid0IHJlcXVlc3RlZC4KCjIwMDctMDUtMDIgMTY6NDU6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiBIYW5kbGUgc2VnbWVudCBzZWVrcyBpbiB0aGUgc2VlayBldmVudCBoYW5kbGVyLCBjb3JyZWN0bHkgd29yayB3aXRoIHN0b3AgcG9zaXRpb24gPT0gLS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2hhbmRsZV9zZWVrX2V2ZW50KToKCSAgSGFuZGxlIHNlZ21lbnQgc2Vla3MgaW4gdGhlIHNlZWsgZXZlbnQgaGFuZGxlciwgY29ycmVjdGx5IHdvcmsgd2l0aAoJICBzdG9wIHBvc2l0aW9uID09IC0xIGFuZCBpbnN0ZWFkIG9mIHN0b3BwaW5nIHRoZSB0YXNrIG9uIHNlZWsganVzdAoJICBwYXVzZSBpdC4KCjIwMDctMDUtMDIgMTY6MTk6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiBBZGQgaGFuZGxpbmcgZm9yIHNlZ21lbnQgc2Vla3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfbG9vcCk6CgkgIEFkZCBoYW5kbGluZyBmb3Igc2VnbWVudCBzZWVrcy4KCjIwMDctMDUtMDIgMTU6MTM6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiBDb3JyZWN0bHkgaGFuZGxlIGVycm9ycywgZXNwZWNpYWxseSBpbiB0aGUgbG9vcCBmdW5jdGlvbi4gQmVmb3JlIGl0IHdhcyBlYXN5IHRvIGdldCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX3B1bGxfYnVmZmVyKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2NyZWF0ZV9zcmNfcGFkKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3Jlc3luY19sb29wKSwgKGdzdF93YXZwYWNrX3BhcnNlX2xvb3ApLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfY2hhaW4pOgoJICBDb3JyZWN0bHkgaGFuZGxlIGVycm9ycywgZXNwZWNpYWxseSBpbiB0aGUgbG9vcCBmdW5jdGlvbi4gQmVmb3JlIGl0CgkgIHdhcyBlYXN5IHRvIGdldCB0aGUgdGFzayBwYXVzZWQgYnV0IG5vIGVycm9yIGJlaW5nIHBvc3RlZCBvbiB0aGUgYnVzLgoKMjAwNy0wNS0wMiAxNDoyNzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL3Rlc3QuYzogRml4IGNvbXBpbGF0aW9uIG9mIGRlcHJlY2F0ZWQgdGVzdCBqdXN0IGJlY2F1c2UgSSdtIHRvbyBsYXp5IHRvIGRlbGV0ZSBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvdGVzdC5jOiAobWFpbik6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBkZXByZWNhdGVkIHRlc3QganVzdCBiZWNhdXNlIEknbSB0b28gbGF6eSB0byBkZWxldGUKCSAgaXQuCgoyMDA3LTA1LTAyIDEzOjMyOjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBGaXggc2VuZGluZyBSVENQIHRvIHRoZSByaWdodCBwbGFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19maW5hbGl6ZSksIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19oYW5kbGVfcmVxdWVzdCksIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwKCSAgKGdzdF9ydHNwc3JjX3NlbmRfa2VlcF9hbGl2ZSksIChnc3RfcnRzcHNyY19sb29wX3VkcCksCgkgIChnc3RfcnRzcHNyY19sb29wX3NlbmRfY21kKSwgKGdzdF9ydHNwc3JjX3RyeV9zZW5kKSwKCSAgKGdzdF9ydHNwc3JjX29wZW4pLCAoZ3N0X3J0c3BzcmNfaGFuZGxlX21lc3NhZ2UpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgRml4IHNlbmRpbmcgUlRDUCB0byB0aGUgcmlnaHQgcGxhY2UuCgkgIEZpeCBidWcgaW4gcmVmZmluZyB0aGUgd3JvbmcgVURQIGVsZW1lbnQuCgkgIFVzZSBuZXcgcGFkIG5hbWVzIGZvciB0aGUgc2Vzc2lvbiBtYW5hZ2VyLgoJICBJbXBsZW1lbnQgaGFuZGxpbmcgc2VydmVyIHJlcXVlc3RzIGluIGludGVybGVhdmVkIGFuZCBVRFAgbW9kZXMuCgkgIEhhbmRsZSBzZXNzaW9uIGtlZXAtYWxpdmUgaW4gVURQIG1vZGVzLgoJICBSZW1vdmUgR0NvbmQgZm9yIGhhbmRsaW5nIFVEUCB0aW1lb3V0cy4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2Nvbm5lY3QpLAoJICAocnRzcF9jb25uZWN0aW9uX3NlbmQpLCAocnRzcF9jb25uZWN0aW9uX3JlYWQpLCAocmVhZF9ib2R5KSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9yZWNlaXZlKSwgKHJ0c3BfY29ubmVjdGlvbl9jbG9zZSk6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uaDoKCSAgU3RvcmUgY29ubmVjdGlvbiBJUCBhZGRyZXNzIGZvciBsYXRlci4KCSAgQWRkIHRpbWVvdXQgYXJncyB0byBhbGwgb3BlcmF0aW9ucyB0aGF0IG1pZ2h0IGJsb2NrIGZvcmV2ZXIuCgkgIFBhcnNlIHNlc3Npb24gdGltZW91dC4KCSAgT25seSBjbG9zZSBzb2NrZXRzIHdoZW4gbm90IGFscmVhZHkgY2xvc2VkLgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmM6CgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuaDoKCSAgQWRkIHRpbWVvdXQgcmV0dXJuIHZhbHVlIGFuZCBlcnJvciBzdHJpbmcuCgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzogKHJ0c3BfbWVzc2FnZV9pbml0X3Jlc3BvbnNlKToKCSAgQWRkIHNtYWxsIGNvbW1lbnQuCgoyMDA3LTA1LTAxIDE2OjEzOjU4ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuKjogSGFuZGxlIE5FV1NFR01FTlQgYW5kIEZMVVNIIGV2ZW50cy4gRml4ZXMgIzQzNDgyNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOiAoZ3N0X3J0cF9tcDR2X3BheV9pbml0KSwKCSAgKGdzdF9ydHBfbXA0dl9wYXlfZW1wdHkpLCAoZ3N0X3J0cF9tcDR2X3BheV9ldmVudCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5Lmg6CgkgIEhhbmRsZSBORVdTRUdNRU5UIGFuZCBGTFVTSCBldmVudHMuIEZpeGVzICM0MzQ4MjQuCgoyMDA3LTA0LTMwIDExOjE1OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6IFJlbW92ZSB2NGwyc3JjIGZyb20gZG9jcywgc2luY2UgaXQgYnJlYWtzIHRoZSBkb2NzIGJ1aWxkLCBhbmQgdGhlIHBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICBSZW1vdmUgdjRsMnNyYyBmcm9tIGRvY3MsIHNpbmNlIGl0IGJyZWFrcyB0aGUgZG9jcyBidWlsZCwgYW5kIHRoZQoJICBwbHVnaW4gaXMgb25seSBidWlsdCBpZiAtLWVuYWJsZS1leHBlcmltZW50YWwgaXMgdXNlZCBhbnl3YXkuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBTcGFjZXMgPT4gdGFiLgoKMjAwNy0wNC0yOSAxNDo0MzozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IEFkZCBjb2RlIHRvIGRyb3AgbWVtYmVyc2hpcCBvZiBhIG11bHRpY2FzdCBncm91cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGxlYXZlX211bHRpY2FzdCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2FkZCksIChnc3RfbXVsdGl1ZHBzaW5rX3JlbW92ZSk6CgkgIEFkZCBjb2RlIHRvIGRyb3AgbWVtYmVyc2hpcCBvZiBhIG11bHRpY2FzdCBncm91cC4KCSAgKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzogKGdzdF91ZHBzaW5rX3VwZGF0ZV91cmkpLAoJICAoZ3N0X3VkcHNpbmtfc2V0X3VyaSk6CgkgIEltcGxlbWVudCBVUkkgaGFuZGxlci4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9ydHBpbmZvKToKCSAgVXNlIFVSSSBoYW5kbGVyIHRvIG1ha2UgdWRwc2luayBpbnN0YWNlLgoJICBJbXByb3ZlIGNvZGUgdG8gY29uZmlndXJlIHBvcnQgYW5kIGRlc3RpbmF0aW9uLgoKMjAwNy0wNC0yOSAxMzo1NjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIDgwIGNoYXIgcG9saWNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA4MCBjaGFyIHBvbGljZQoKMjAwNy0wNC0yOSAxMzo1MzoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhdXRvZ2VuLnNoOiBSZXF1aXJlIGF1dG9tYWtlIDEuNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICBSZXF1aXJlIGF1dG9tYWtlIDEuNwoJICAqIGV4dC9hbHNhc3BkaWYvTWFrZWZpbGUuYW06CgkgICogZXh0L2RpdngvTWFrZWZpbGUuYW06CgkgICogZXh0L2l2b3JiaXMvTWFrZWZpbGUuYW06CgkgICogZXh0L211c2ljYnJhaW56L01ha2VmaWxlLmFtOgoJICAqIGV4dC9uZW9uL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zZGwvTWFrZWZpbGUuYW06CgkgICogZXh0L3N3ZmRlYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGhlb3JhL01ha2VmaWxlLmFtOgoJICAqIGV4dC93YXZwYWNrL01ha2VmaWxlLmFtOgoJICAqIGV4dC94dmlkL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tb2RwbHVnL01ha2VmaWxlLmFtOgoJICBGaXggdXAgTWFrZWZpbGUuYW0gYWNjb3JkaW5nbHkuCgoyMDA3LTA0LTI5IDEzOjQ5OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0LzogQWRkIGphY2sgYW5kIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsc2FzcGRpZi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWJ6Mi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkeGFwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRmYnZpZGVvc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZhYWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mYWFkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmlsdGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZnJlZXplLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2xpbWFnZXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nc20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oMjY0cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW1zLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW9kcGx1Zy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11c2VwYWNrLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVzaWNicmFpbnoueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uZW9uLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbnNmZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNkbC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdW5kdG91Y2gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVjdHJ1bS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWVkLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdHRhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9jcm9wLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbmdoZWFkZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14dmlkLnhtbDoKCSAgQWRkIGphY2sgYW5kIHVwZGF0ZS4KCjIwMDctMDQtMjkgMTI6MTk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiBGaXggbXVsdGljYXN0IGRldGVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfYWRkKToKCSAgRml4IG11bHRpY2FzdCBkZXRlY3Rpb24uCgkgIERvbid0IHRyeSB0byBqb2luIGEgbXVsdGljYXN0IGdyb3VwIGlmIHRoZSBhZGRyZXNzIGlzIG5vdCBtdWx0aWNhc3QuCgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfdXBkYXRlX3VyaSk6CgkgIFNtYWxsIGRlYnVnIGltcHJvdmVtZW50LgoKMjAwNy0wNC0yNyAxNjo0NDoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogSWdub3JlIEFTWU5DIHN0YXRlIG1lc3NhZ2VzIGZyb20gdGhlIHVkcHNpbmssIGl0J3MgaXJyZWxldmFudCBmb3IgdGhlIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfcnRwaW5mbyksIChnc3RfcnRzcHNyY19wbGF5KSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKToKCSAgSWdub3JlIEFTWU5DIHN0YXRlIG1lc3NhZ2VzIGZyb20gdGhlIHVkcHNpbmssIGl0J3MgaXJyZWxldmFudCBmb3IgdGhlCgkgIHBhcmVudC4KCjIwMDctMDQtMjcgMTU6MzA6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5oOiBGaXggbW9kZSBwcm9wZXJ0eSB3aGVuIHNwZWNpZmllZCBhcyBhbiBhcmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5Lmg6CgkgIEZpeCBtb2RlIHByb3BlcnR5IHdoZW4gc3BlY2lmaWVkIGFzIGFuIGFyZy4KCjIwMDctMDQtMjYgMTU6MDg6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGQgZG9jdW1lbnRhdGlvbiBmb3Igb3N4YXVkaW8gcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3N4YXVkaW8ueG1sOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3Igb3N4YXVkaW8gcGx1Z2luLgoKMjAwNy0wNC0yNiAxNDozMTozMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IEFkZCBkb2N1bWVudGF0aW9uIGZvciBvc3h2aWRlbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3N4dmlkZW8ueG1sOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3Igb3N4dmlkZW8KCjIwMDctMDQtMjYgMTA6MDg6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLio6IFByb3RlY3Qgc3RhdGUgY2hhbmdlcyB3aXRoIGEgbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19maW5hbGl6ZSksIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19vcGVuKSwgKGdzdF9ydHNwc3JjX2Nsb3NlKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cGluZm8pLCAoZ3N0X3J0c3BzcmNfcGxheSksCgkgIChnc3RfcnRzcHNyY19wYXVzZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBQcm90ZWN0IHN0YXRlIGNoYW5nZXMgd2l0aCBhIGxvY2suCgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKHJ0c3BfY29ubmVjdGlvbl9jcmVhdGUpLAoJICAocGFyc2VfbGluZSk6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uaDoKCSAgUmVtb3ZlIHNvbWUgdW51c2VkIHN0dWZmLgoKMjAwNy0wNC0yNiAwODo0ODozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGVyZSBhcmUgZXhhY3RseSAwIGJ5dGVzIHRvIHJlYWQgYW5kIHRoZSBpb2N0bCBkaWQgbm90IHJlcG9ydCBhbiBlcnJvci4gRi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jcmVhdGUpOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIGV4YWN0bHkgMCBieXRlcyB0byByZWFkIGFuZCB0aGUgaW9jdGwKCSAgZGlkIG5vdCByZXBvcnQgYW4gZXJyb3IuIEZpeGVzICM0MzM1MzAuCgoyMDA3LTA0LTI2IDA4OjM5OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IEFwcGx5IERJU0NPTlQgdG8gYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICBBcHBseSBESVNDT05UIHRvIGJ1ZmZlcnMuCgkgIE9ubHkgYXBwbHkgdGltZXN0YW1wIHRvIHRoZSBmaXJzdCBzYW1wbGUgYWZ0ZXIgYSBESVNDT05ULCB0b28gbWFueSBWQlIKCSAgZmlsZXMgY2F1c2UgcmFuZG9tIGppdHRlciBpbiB0aGUgdGltZXN0YW1wcy4gRml4ZXMgIzQzMzExOS4KCjIwMDctMDQtMjUgMTU6NTU6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHBkZWMuKjogQWRkIGR1bW15IGxhdGVuY3kgcHJvcGVydHkgdG8gYmUgYmFja3dhcmRzIGNvbXBhdCB3aXRoIHJ0cGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IChnc3RfcnRwX2RlY19jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfZGVjX2luaXQpLCAoZ3N0X3J0cF9kZWNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfZGVjX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmg6CgkgIEFkZCBkdW1teSBsYXRlbmN5IHByb3BlcnR5IHRvIGJlIGJhY2t3YXJkcyBjb21wYXQgd2l0aCBydHBiaW4uCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRzcHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3J0c3BzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cGluZm8pOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgQWRkIGxhdGVuY3kgcHJvcGVydHkgYW5kIGNvbmZpZ3VyZSBpbiB0aGUgc2Vzc2lvbiBtYW5hZ2VyLgoJICBEb24ndCBzZXQgaW52YWxpZCBjbG9jay1iYXNlIGFuZCBzZXFudW0tYmFzZSBvbiBjYXBzLCBzb21lIHNlcnZlcnMKCSAgc29tZXRpbWVzIGRvbid0IHNlbmQgdGhlbS4KCjIwMDctMDQtMjUgMTU6MzE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOiBEb3VibGUtY2hlY2sgdGhhdCBSR0IgaW5wdXQgY2FwcyBhcmUgcmVhbGx5IFJHQkEgY2FwcyAoYXBwYXJlbnRseSB0aGUgY29yZSBkb2Vzbid0IGFsd2F5cyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzogKGdzdF9hbHBoYV9jb2xvcl9iYXNlX2luaXQpLAoJICAoZ3N0X2FscGhhX2NvbG9yX3RyYW5zZm9ybV9jYXBzKSwgKGdzdF9hbHBoYV9jb2xvcl9zZXRfY2Fwcyk6CgkgIERvdWJsZS1jaGVjayB0aGF0IFJHQiBpbnB1dCBjYXBzIGFyZSByZWFsbHkgUkdCQSBjYXBzIChhcHBhcmVudGx5CgkgIHRoZSBjb3JlIGRvZXNuJ3QgYWx3YXlzIGNhdGNoIGl0IGlmIHRob3NlIGNhcHMgYXJlbid0IGEgc3Vic2V0IG9mCgkgIG91ciB0ZW1wbGF0ZSBjYXBzLCBhbHNvIHNlZSAjNDIxNTQzKS4gRml4ZXMgIzQyOTMxOSBpbiBhIHdheS4KCSAgQWxzbywgZG9uJ3QgbGVhayB0aGUgcGFkIHRlbXBsYXRlIGluIHRoZSB0cmFuc2Zvcm1fY2FwcyBmdW5jdGlvbi4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FscGhhY29sb3IuYzogKHNldHVwX2FscGhhY29sb3IpLAoJICAoY2xlYW51cF9hbHBoYWNvbG9yKSwgKGNyZWF0ZV9jYXBzX3JnYjI0KSwgKGNyZWF0ZV9jYXBzX3JnYmEzMiksCgkgIChjcmVhdGVfYnVmZmVyX3JnYjI0XzN4NCksIChjcmVhdGVfYnVmZmVyX3JnYmEzMl8zeDQpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoYWxwaGFjb2xvcl9zdWl0ZSk6CgkgIEFkZCBzb21lIGJhc2ljIHVuaXQgdGVzdHMgZm9yIGFscGhhY29sb3IuCgoyMDA3LTA0LTI1IDE1OjA4OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogSWYgd2UgZ2V0IGEgZmF0YWwgZmxvdyByZXR1cm4gaW4gdGhlIGxvb3AgZnVuY3Rpb24sIGZpcnN0IHBvc3QgdGhlIGVycm9yIG1lc3NhZ2UgYW5kIG9ubHkgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IChnc3RfcG5nZGVjX3Rhc2spOgoJICBJZiB3ZSBnZXQgYSBmYXRhbCBmbG93IHJldHVybiBpbiB0aGUgbG9vcCBmdW5jdGlvbiwgZmlyc3QgcG9zdCB0aGUKCSAgZXJyb3IgbWVzc2FnZSBhbmQgb25seSB0aGVuIHNlbmQgdGhlIEVPUyBldmVudCBkb3duc3RyZWFtLCBvdGhlcndpc2UKCSAgYXBwbGljYXRpb25zIG1pZ2h0IGdldCBhbiBlb3MgbWVzc2FnZSBiZWZvcmUgdGhlIGVycm9yIG1lc3NhZ2UgYW5kCgkgIHRoaW5rIGV2ZXJ5dGhpbmcgd2FzIG9rIChyZWxhdGVkIHRvICM0MjkzMTkpLgoKMjAwNy0wNC0yNSAxMDowNzoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IFJlYWQgdGhlIGNoYW5uZWwgYnl0ZSBhcyBhbiB1bnNpZ25lZCBieXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpOgoJICBSZWFkIHRoZSBjaGFubmVsIGJ5dGUgYXMgYW4gdW5zaWduZWQgYnl0ZS4KCjIwMDctMDQtMjUgMDk6NDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogTWFrZSBzdXJlIHdlIGNvbmZpZ3VyZSB0aGUgY2xvY2tfcmF0ZSBpbiB0aGUgYmFzZWNsYXNzIGluIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLiBGaXhlcyAjNDMxMjgyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6IChnc3RfcnRwX0wxNl9kZXBheV9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogKGdzdF9ydHBfYW1yX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9hbXJfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX2Ftcl9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6IChnc3RfcnRwX2dzbV9kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfZ3NtX2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOiAoZ3N0X3J0cF9oMjYzcF9kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiAoZ3N0X3J0cF9oMjY0X2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6IChnc3RfcnRwX2lsYmNfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2lsYmNfZGVwYXlfaW5pdCksIChnc3RfcnRwX2lsYmNfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2lsYmNfZGVwYXlfcHJvY2VzcyksIChnc3RfaWxiY19kZXBheV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lsYmNfZGVwYXlfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jOiAoZ3N0X3J0cF9tcDJ0X2RlcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzogKGdzdF9ydHBfcGNtYV9kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfcGNtYV9kZXBheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOiAoZ3N0X3J0cF9wY211X2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9wY211X2RlcGF5X3NldGNhcHMpOgoJICBNYWtlIHN1cmUgd2UgY29uZmlndXJlIHRoZSBjbG9ja19yYXRlIGluIHRoZSBiYXNlY2xhc3MgaW4gdGhlIHNldGNhcHMKCSAgZnVuY3Rpb24uIEZpeGVzICM0MzEyODIuCgoyMDA3LTA0LTI1IDA4OjM2OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBQYXJzZSBzZXJ2ZXIgYWRkcmVzcyBmcm9tIFNEUC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZmluYWxpemUpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2ZyZWUpLCAocmVxdWVzdF9wdF9tYXApLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpLCAoZ3N0X3J0c3BzcmNfb3Blbik6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBQYXJzZSBzZXJ2ZXIgYWRkcmVzcyBmcm9tIFNEUC4KCSAgSG9vayB1cCBhIHVkcHNpbmsgdG8gc2VuZCBSVENQIGJhY2sgdG8gdGhlIHNlcnZlci4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0Lmg6CgkgIEFkZCBzb21lIGRvY3MuCgoyMDA3LTA0LTI1IDA2OjUyOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogTWFrZSBoZWFkZXIgZmllbGQgY2hlY2sgY29uZGl0aW9uYWwuIEZpeGVzICM0MzMxMzUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpOgoJICBNYWtlIGhlYWRlciBmaWVsZCBjaGVjayBjb25kaXRpb25hbC4gRml4ZXMgIzQzMzEzNQoKMjAwNy0wNC0yNCAwOToxMjo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBtaW5pbWFsIGRvY3MgYmx1cmIgdG8gYWxwaGFjb2xvcjsgc3BsaXQgb3V0IGhlYWRlcnMgaW50byBzZXBhcmF0ZSBoZWFkZXIgZmlsZSBmb3IgZ3RrLWRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSAgKiBnc3QvYWxwaGEvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5oOgoJICBBZGQgbWluaW1hbCBkb2NzIGJsdXJiIHRvIGFscGhhY29sb3I7IHNwbGl0IG91dCBoZWFkZXJzIGludG8KCSAgc2VwYXJhdGUgaGVhZGVyIGZpbGUgZm9yIGd0ay1kb2MuCgoyMDA3LTA0LTIwIDE3OjI1OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2RlYnVnL3Byb2dyZXNzcmVwb3J0LmM6IERvbid0IHRyeSB0byBwb3N0IE5VTEwgbWVzc2FnZSAoaW4gY2FzZSB3ZSBjYW4ndCBxdWVyeSB1cHN0cmVhbSBwb3NpdGlvbiBvciBkdXJhdGlvbikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5jOiAoZ3N0X3Byb2dyZXNzX3JlcG9ydF9yZXBvcnQpOgoJICBEb24ndCB0cnkgdG8gcG9zdCBOVUxMIG1lc3NhZ2UgKGluIGNhc2Ugd2UgY2FuJ3QgcXVlcnkgdXBzdHJlYW0KCSAgcG9zaXRpb24gb3IgZHVyYXRpb24pLgoKMjAwNy0wNC0xOCAxMjozNjozNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2N1dHRlci9nc3RjdXR0ZXIuKjogRml4IHNvbWUgb2YgdGhlIG1vc3Qgb2J2aW91cyBidWdzIGluIGN1dHRlci4gTm93IGRvZXNuJ3QgbGVhayBldmVyeXRoaW5nIGlmIGlucHV0IGlzIHNpbGVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzogKGdzdF9jdXR0ZXJfaW5pdCksIChnc3RfY3V0dGVyX2NoYWluKSwKCSAgKGdzdF9jdXR0ZXJfZ2V0X2NhcHMpOgoJICAqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmg6CgkgIEZpeCBzb21lIG9mIHRoZSBtb3N0IG9idmlvdXMgYnVncyBpbiBjdXR0ZXIuIE5vdyBkb2Vzbid0IGxlYWsKCSAgZXZlcnl0aGluZyBpZiBpbnB1dCBpcyBzaWxlbnQuCgoyMDA3LTA0LTE4IDA5OjQ4OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy4qOiBldmVyeXRoaW5nIGVsc2UgcmVzdWx0cyBpbiBhIGludmFsaWQgYmxvY2sgYWxpZ24gYW5kIGludmFsaWQgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6IChnc3Rfd2F2ZW5jX2NyZWF0ZV9oZWFkZXJfYnVmKSwKCSAgKGdzdF93YXZlbmNfc2lua19zZXRjYXBzKSwgKGdzdF93YXZlbmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5oOgoJICBXYXYgYXBwYXJlbnRseSBvbmx5IHN1cHBvcnRzIHdpZHRoPT1HU1RfUk9VTkRfVVAoZGVwdGgpLCBldmVyeXRoaW5nCgkgIGVsc2UgcmVzdWx0cyBpbiBhIGludmFsaWQgYmxvY2sgYWxpZ24gYW5kIGludmFsaWQgZmlsZXMuCgoyMDA3LTA0LTE3IDE2OjM5OjAyICswMDAwICBTbmFpayA8c25haWszMkBnbWFpbC5jb20+CgoJICBnc3Qvc21wdGUvYmFyYm94d2lwZXMuYzogQWRkIG1pc3NpbmcgYnJlYWsgc3RhdGVtZW50IGZvciBCT1hfSE9SSVpPTlRBTCBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNuYWlrIDxzbmFpazMyIGdtYWlsIGNvbT4KCSAgKiBnc3Qvc21wdGUvYmFyYm94d2lwZXMuYzogKGdzdF93aXBlX2JveGVzX2RyYXcpOgoJICBBZGQgbWlzc2luZyBicmVhayBzdGF0ZW1lbnQgZm9yIEJPWF9IT1JJWk9OVEFMIGNhc2UuCgoyMDA3LTA0LTE3IDEwOjE0OjQzICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IFVzZSBjb3JyZWN0IGZvcm1hdCBzdHJpbmdzIGZvciBpbnRlZ2VyIHR5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFZpbmNlbnQgVG9ycmkgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZG90IGZyPgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKToKCSAgVXNlIGNvcnJlY3QgZm9ybWF0IHN0cmluZ3MgZm9yIGludGVnZXIgdHlwZXMuCgoyMDA3LTA0LTE3IDAyOjUxOjAyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogVXNlIGdzdF9yaWZmX2NyZWF0ZV9hdWRpb190ZW1wbGF0ZV9jYXBzICgpIGluc3RlYWQgb2YgdGhlIGxvY2FsIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2Jhc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFyc2VfY3JlYXRlX3NvdXJjZXBhZCk6CgkgIFVzZSBnc3RfcmlmZl9jcmVhdGVfYXVkaW9fdGVtcGxhdGVfY2FwcyAoKSBpbnN0ZWFkIG9mIHRoZSBsb2NhbCBjYXBzLgoJICBUaGlzIG1ha2VzIHVwZGF0ZXMgb2YgdGhlIGxvY2FsIGNhcHMgdW5lY2Vzc2FyeSB3aGVuZXZlciBsaWJnc3RyaWZmCgkgIGdldHMgc3VwcG9ydCBmb3IgbmV3IGZvcm1hdHMuCgoyMDA3LTA0LTE2IDIxOjI5OjQwICswMDAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vOiBGaXggYW5kL29yIHVwZGF0ZSBjb3B5cmlnaHQgYXR0cmlidXRpb25zICgjNDMwMjI4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBCcmlhbiBDYW1lcm9uICA8YnJpYW4uY2FtZXJvbiBhdCBzdW4gZG90IGNvbT4KCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW8uYzoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlci5jOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmg6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmg6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5oOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmg6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmg6CgkgIEZpeCBhbmQvb3IgdXBkYXRlIGNvcHlyaWdodCBhdHRyaWJ1dGlvbnMgKCM0MzAyMjgpLgoKMjAwNy0wNC0xNCAxNzoxODoxNCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9wbHVnaW5zL2luc3BlY3QvOiBBZGQgeG1sIGRvYyBmaWxlcyBmb3IgV2luZG93cyBzaW5rcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGlyZWN0ZHJhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRpcmVjdHNvdW5kLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZWZvcm0ueG1sOgoJICBBZGQgeG1sIGRvYyBmaWxlcyBmb3IgV2luZG93cyBzaW5rcwoJICAqIHdpbjMyL3ZzNi9saWJnc3RxdGRlbXV4LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0bXBlZ3ZpZGVvcGFyc2UuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfcGx1Z2luc19iYWQuZHN3OgoJICBVcGRhdGUgcHJvamVjdHMgZmlsZXMuCgoyMDA3LTA0LTEzIDA5OjMyOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3MuCgkgICogZ3N0L3J0c3AvVVJMUzoKCSAgQWRkIHNvbWUgbW9yZSBleGFtcGxlIHVybHMuCgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IChnc3RfcnRwX2RlY19tYXJzaGFsX0JPWEVEX19VSU5UX1VJTlQpLAoJICAoZ3N0X3J0cF9kZWNfY2hhaW5fcnRwKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChyZXF1ZXN0X3B0X21hcCksCgkgIChnc3RfcnRzcHNyY19hY3RpdmF0ZV9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfcnRwaW5mbyk6CgkgIFJlbW92ZSB1bnVzZWQgY29kZS4KCjIwMDctMDQtMTMgMDg6MTk6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBSZWxheCB0aGUgYXVkaW8vbXBlZyBjYXBzIGFnYWluIGFuZCBhZGQgRklYTUU6IGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAodWludDY0X2NlaWxpbmdfc2NhbGVfaW50KSwKCSAgKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSk6CgkgIFJlbGF4IHRoZSBhdWRpby9tcGVnIGNhcHMgYWdhaW4gYW5kIGFkZCBGSVhNRTogY29tbWVudC4KCjIwMDctMDQtMTMgMDY6MjA6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS4qOiBNb3JlIHNhbml0eSBjaGVjayBmb3IgdGhlIGhlYWRlciBmaWVsZHMuIEZpeCB0eXBlIGZvciAncmF0ZScgaGVhZGVyIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKHVpbnQ2NF9jZWlsaW5nX3NjYWxlX2ludCksCgkgIChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICBNb3JlIHNhbml0eSBjaGVjayBmb3IgdGhlIGhlYWRlciBmaWVsZHMuIEZpeCB0eXBlIGZvciAncmF0ZScgaGVhZGVyCgkgIGZpZWxkLgoKMjAwNy0wNC0xMiAxNjowNjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOiBJZiB0aGUgbWV0YWRhdGEgc3RyaW5ncyB3ZSBnZXQgaW4gdGhlIHN0cmVhbSBhcmUgbm90IFVURi04LCB0cnkgdG8gaW50ZXJwcmV0IHRoZW0gYWNjb3JkaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzogKG5vdGdzdF90YWdfZnJlZWZvcm1fc3RyaW5nX3RvX3V0ZjgpLAoJICAoZ3N0X2ljeWRlbXV4X3VuaWNvZGlmeSk6CgkgIElmIHRoZSBtZXRhZGF0YSBzdHJpbmdzIHdlIGdldCBpbiB0aGUgc3RyZWFtIGFyZSBub3QgVVRGLTgsIHRyeSB0bwoJICBpbnRlcnByZXQgdGhlbSBhY2NvcmRpbmcgdG8gdGhlIGNoYXJhY3RlciBlbmNvZGluZ3Mgc3BlY2lmaWVkIGluIHRoZQoJICBHU1RfSUNZX1RBR19FTkNPRElORyBhbmQgR1NUX1RBR19FTkNPRElORyBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGFuZAoJICBvbmx5IGZhbGwgYmFjayB0byBsb2NhbGUvSVNPLTg4NTktMSBpZiB0aG9zZSBhcmVuJ3Qgc2V0IG9yIGRvbid0CgkgIHdvcmsuIFNob3VsZCBmaXggIzQyODkwMS4KCjIwMDctMDQtMTIgMTQ6MjA6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiBVc2UgdGhlIHByb3BlciBzeW5jIHdvcmQgZm9yIFNQUyBhbmQgUFBTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICBVc2UgdGhlIHByb3BlciBzeW5jIHdvcmQgZm9yIFNQUyBhbmQgUFBTLgoKMjAwNy0wNC0xMiAxMTo0MToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcnRwL01ha2VmaWxlLmFtOiBnc3QvcnRwL2ZudjFoYXNoLmMgKE1BU0tfMjQsIEZOVjFfSEFTSF8zMl9JTklULCBGTlYxX0hBU0hfMzJfUFJJTUUsIGZudjFfaGFzaF8zMl9uZXcsIGZudjFfaGFzaF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2ZudjFoYXNoLmMgKE1BU0tfMjQsIEZOVjFfSEFTSF8zMl9JTklULCBGTlYxX0hBU0hfMzJfUFJJTUUsCgkgIGZudjFfaGFzaF8zMl9uZXcsIGZudjFfaGFzaF8zMl91cGRhdGUsIGZudjFfaGFzaF8zMl90b18yNCk6CgkgICogZ3N0L3J0cC9mbnYxaGFzaC5oIChfX0dTVF9GTlYxX0hBU0hfSF9fKToKCSAgQWRkIGEgc2ltcGxlIGhhc2hpbmcgaW1wbGVtZW50YXRpb24gdGhhdCB3ZSBjYW4gdXNlIHRvIGdlbmVyYXRlCgkgIGEgMjQtYml0IGlkZW50IHZhbHVlIGJhc2VkIG9uIHRoZSBjb2RlYm9va3MgZm9yIHZvcmJpcyBhbmQgdGhlb3JhLgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmMgKGdzdF9ydHBfdGhlb3JhX3BheV9maW5pc2hfaGVhZGVycywKCSAgZ3N0X3J0cF90aGVvcmFfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYwoJICAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfcGFyc2VfY29uZmlndXJhdGlvbiwKCSAgZ3N0X3J0cF92b3JiaXNfZGVwYXlfc3dpdGNoX2NvZGVib29rLCBnc3RfcnRwX3ZvcmJpc19kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jIChnc3RfcnRwX3ZvcmJpc19wYXlfcmVzZXRfcGFja2V0LAoJICBnc3RfcnRwX3ZvcmJpc19wYXlfaW5pdF9wYWNrZXQsIGdzdF9ydHBfdm9yYmlzX3BheV9mbHVzaF9wYWNrZXQsCgkgIGdzdF9ydHBfdm9yYmlzX3BheV9maW5pc2hfaGVhZGVycywgZ3N0X3J0cF92b3JiaXNfcGF5X2hhbmRsZV9idWZmZXIpOgoJICBVc2UgdGhlIGhhc2hpbmcgZnVuY3Rpb24sIGVuc3VyaW5nIHRoYXQgdGhlIHNhbWUgY29kZWJvb2tzIHJlc3VsdAoJICBpbiB0aGUgc2FtZSBpZGVudCBhbmQgdGh1cyB0aGUgc2FtZSBTRFAgZGVzY3JpcHRpb24uCgkgIFZhcmlvdXMgbG9nIGZpeGVzL2NoYW5nZXMuCgoyMDA3LTA0LTEyIDExOjM3OjUwICswMDAwICBqZXJyeSB0YW4gPGplcnJ5LnRhbkBzdW4uY29tPgoKCSAgc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6IGl0IGlzIHRoZSBhcHBsaWNhdGlvbidzIHJlc3BvbnNpYmlsaXR5IHRvIG1ha2Ugc3VyZSBpdCBvcGVuIHRoZSBkZXZpY2Ugb25jZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBqZXJyeSB0YW4gPGplcnJ5IGRvdCB0YW4gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6IChnc3Rfc3VuYXVkaW9zcmNfb3Blbik6CgkgIHJlbW92ZSB0aGUgY2FsbCBvZiAgaW9jdGwgKGZkLCBBVURJT19NSVhFUl9NVUxUSVBMRV9PUEVOKSwgaXQgaXMgdGhlCgkgIGFwcGxpY2F0aW9uJ3MgcmVzcG9uc2liaWxpdHkgdG8gbWFrZSBzdXJlIGl0IG9wZW4gdGhlIGRldmljZSBvbmNlLgoJICBSZW1vdmUgYSBjYXJlbGVzcyBlcnJvciBpZiBBVURJT0RFViBpcyBzZXQuIEZpeGVzICMzOTI2MjAuCgoyMDA3LTA0LTEyIDEwOjUyOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBNYWtlIHRpbWVzY2FsZSAzMiBiaXRzIGFnYWluIHNvIHdlIGRvbid0IHNjcmV3IHVwIHRoZSBwdHNfb2Zmc2V0IGNhbGN1bGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBNYWtlIHRpbWVzY2FsZSAzMiBiaXRzIGFnYWluIHNvIHdlIGRvbid0IHNjcmV3IHVwIHRoZSBwdHNfb2Zmc2V0CgkgIGNhbGN1bGF0aW9ucy4KCjIwMDctMDQtMTIgMDg6MjE6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHBkZWMuKjogTWFrZSBiYWNrd2FyZCBjb21wYXQgd2l0aCBydHBiaW4gYnkgYWRkaW5nIHRoZSByZXF1ZXN0LXB0LW1hcCBzaWduYWxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuYzogKGdzdF9ydHBfZGVjX21hcnNoYWxfQk9YRURfX1VJTlRfVUlOVCksCgkgIChnc3RfcnRwX2RlY19jbGFzc19pbml0KSwgKGdzdF9ydHBfZGVjX2NoYWluX3J0cCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmg6CgkgIE1ha2UgYmFja3dhcmQgY29tcGF0IHdpdGggcnRwYmluIGJ5IGFkZGluZyB0aGUgcmVxdWVzdC1wdC1tYXAgc2lnbmFscy4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwKCSAgKG5ld19zZXNzaW9uX3BhZCksIChyZXF1ZXN0X3B0X21hcCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX2NhcHMpLAoJICAoZ3N0X3J0c3BzcmNfYWN0aXZhdGVfc3RyZWFtcyk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBJbXBsZW1lbnQgcmVxdWVzdC1wdC1tYXAgc2lnbmFscyBpbnN0ZWFkIG9mIHNldHRpbmcgY2FwcyBvbiB0aGUgYnVmZmVycwoJICBmb3IgdGhlIHNlc3Npb24gbWFuYWdlci4KCjIwMDctMDQtMTEgMTA6MjU6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcC5jOiBSZWdpc3RlciBHc3ROZXRCdWZmZXIgaW4gcGx1Z2luX2luaXQgc28gdGhhdCB0aGUgdHlwZSBjYW4gYmUgdXNlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMgd2l0aG91dCByYWNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHAuYzogKHBsdWdpbl9pbml0KToKCSAgUmVnaXN0ZXIgR3N0TmV0QnVmZmVyIGluIHBsdWdpbl9pbml0IHNvIHRoYXQgdGhlIHR5cGUgY2FuIGJlIHVzZWQgZnJvbQoJICBtdWx0aXBsZSB0aHJlYWRzIHdpdGhvdXQgcmFjZXMuCgoyMDA3LTA0LTExIDEwOjE5OjA2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIHVwZGF0ZSB0byBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0byBzcGVjIGZpbGUKCjIwMDctMDQtMTEgMDk6NTM6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC86IEhhbmRsZSB2ZXJzaW9uIDEgbWRoZCBhdG9tcyB0byBnZXQgZXh0ZW5kZWQgcHJlY2lzaW9uIGR1cmF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZ2V0X2R1cmF0aW9uKSwKCSAgKHF0ZGVtdXhfcGFyc2Vfc2FtcGxlcyksIChxdGRlbXV4X3BhcnNlX3NlZ21lbnRzKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X3BhcnNlX3RyZWUpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfZHVtcC5jOiAocXRkZW11eF9kdW1wX21kaGQpOgoJICBIYW5kbGUgdmVyc2lvbiAxIG1kaGQgYXRvbXMgdG8gZ2V0IGV4dGVuZGVkIHByZWNpc2lvbiBkdXJhdGlvbnMuCgkgIEZpeGVzICM0MjY5NzIuCgoyMDA3LTA0LTEwIDE3OjA2OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOiBGaXggZGVwYXlsb2FkZXIgY2xvY2tfcmF0ZSBhbmQgc29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOiAoZ3N0X3J0cF9hbXJfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX2Ftcl9kZXBheV9wcm9jZXNzKToKCSAgRml4IGRlcGF5bG9hZGVyIGNsb2NrX3JhdGUgYW5kIHNvbWUgY2xlYW51cHMuCgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzogKGdzdF9ydHBfaDI2NF9kZXBheV9maW5hbGl6ZSksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX2gyNjRfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuaDoKCSAgRG9uJ3QgcHVzaCBjb2RlY19kYXRhIGluIHRoZSBhZGFwdGVyIGJlY2F1c2UgaXQgbWlnaHQgZ2V0IGZsdXNoZWQgd2hlbgoJICB3ZSBnZXQgYSBkaXNjb250LgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6IChnc3RfcnRwX21wNGdfZGVwYXlfcHJvY2Vzcyk6CgkgIEhhbmRsZSBtdWx0aXBsZSBBVSBwZXIgcGFja2V0LgoJICAqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6IChnc3RfcnRwX3N2M3ZfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX3N2M3ZfZGVwYXlfcGx1Z2luX2luaXQpOgoJICBEaXNhYmxlIHJhbmssIHRoaXMgb25lIGRvZXMgbm90IHdvcmsuCgkgIFJlbW92ZSB0aW1lc3RhbXBpbmcsIGJhc2UgY2xhc3MgZG9lcyB0aGF0LgoKMjAwNy0wNC0xMCAxMjowMTozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOiBsaW1pdCBjYXBzIHRvIHRoZSBmb3JtYXRzIHdlIGFubm91bmNlIGluIHRoZSB0ZW1wbGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfcGFyc2VfaGVhZGVyKToKCSAgbGltaXQgY2FwcyB0byB0aGUgZm9ybWF0cyB3ZSBhbm5vdW5jZSBpbiB0aGUgdGVtcGxhdGUKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKHVpbnQ2NF9jZWlsaW5nX3NjYWxlX2ludCksCgkgIChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksCgkgIChnc3Rfd2F2cGFyc2VfYWRkX3NyY19wYWQpLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKToKCSAgZml4IHNvbWUgY3Jhc2hlcnMvYXNzZXJ0cyB3aGVuIGRlYWxpbmcgd2l0aCBicm9rZW4gZmlsZXMKCjIwMDctMDQtMTAgMTA6MDE6MTQgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogRml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MuIEZpeGVzICM0MjgxODIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfbWFzc2FnZV9pbmRleCk6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6IChnc3RfcnRwX21wNGdfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6IChnc3RfcnRwX3NwZWV4X2RlcGF5X2dldF9tb2RlKSwKCSAgKGdzdF9ydHBfc3BlZXhfZGVwYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfbWVkaWFfdG9fY2FwcyksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksIChnc3RfcnRzcHNyY19sb29wX3VkcCk6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfaW5pdF9zZW5kKToKCSAgRml4IHNvbWUgY29tcGlsZXIgd2FybmluZ3MuIEZpeGVzICM0MjgxODIuCgoyMDA3LTA0LTA2IDEyOjU0OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvOiBNb3JwaCBSVFBEZWMgaW50byBzb21ldGhpbmcgY29tcGF0aWJsZSB3aXRoIFJUUEJpbiBhcyBhIGZhbGxiYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuYzogKGZpbmRfc2Vzc2lvbl9ieV9pZCksIChjcmVhdGVfc2Vzc2lvbiksCgkgIChmcmVlX3Nlc3Npb24pLCAoZ3N0X3J0cF9kZWNfYmFzZV9pbml0KSwgKGdzdF9ydHBfZGVjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9kZWNfaW5pdCksIChnc3RfcnRwX2RlY19maW5hbGl6ZSksCgkgIChnc3RfcnRwX2RlY19xdWVyeV9zcmMpLCAoZ3N0X3J0cF9kZWNfY2hhaW5fcnRwKSwKCSAgKGdzdF9ydHBfZGVjX2NoYWluX3J0Y3ApLCAoZ3N0X3J0cF9kZWNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfZGVjX2dldF9wcm9wZXJ0eSksIChnc3RfcnRwX2RlY19wcm92aWRlX2Nsb2NrKSwKCSAgKGdzdF9ydHBfZGVjX2NoYW5nZV9zdGF0ZSksIChjcmVhdGVfcmVjdl9ydHApLCAoY3JlYXRlX3JlY3ZfcnRjcCksCgkgIChjcmVhdGVfcnRjcCksIChnc3RfcnRwX2RlY19yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X3J0cF9kZWNfcmVsZWFzZV9wYWQpOgoJICAqIGdzdC9ydHNwL2dzdHJ0cGRlYy5oOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3AuYzogKHBsdWdpbl9pbml0KToKCSAgTW9ycGggUlRQRGVjIGludG8gc29tZXRoaW5nIGNvbXBhdGlibGUgd2l0aCBSVFBCaW4gYXMgYSBmYWxsYmFjay4KCSAgVmFyaW91cyBvdGhlciBzdHlsZSBmaXhlcy4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChmaW5kX3N0cmVhbV9ieV9pZCksCgkgIChmaW5kX3N0cmVhbV9ieV91ZHBzcmMpLCAoZ3N0X3J0c3BzcmNfc3RyZWFtX2ZyZWUpLAoJICAoZ3N0X3J0c3BzcmNfY2xlYW51cCksIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKG5ld19zZXNzaW9uX3BhZCksIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19hY3RpdmF0ZV9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpLAoJICAoZ3N0X3J0c3BzcmNfbG9vcF91ZHApLCAoZ3N0X3J0c3BzcmNfc2V0dXBfYXV0aCksCgkgIChnc3RfcnRzcHNyY19oYW5kbGVfbWVzc2FnZSksIChnc3RfcnRzcHNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgSW1wbGVtZW50IFJUUEJpbiBzZXNzaW9uIG1hbmFnZXIgaGFuZGxpbmcuCgkgIERvbid0IHRyeSB0byBhZGQgZW1wdHkgcHJvcGVydGllcyB0byBjYXBzLgoJICBJbXBsZW1lbnQgZmFsbGJhY2sgc2Vzc2lvbiBtYW5hZ2VyLCBoYW5kbGluZy4KCSAgRG9uJ3QgY29tYmluZSBlcnJvcnMgZnJvbSBSVENQIHN0cmVhbXMsIGp1c3QgaWdub3JlIHRoZW0uCgkgICogZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5jOiAocnRzcF90cmFuc3BvcnRfZ2V0X21hbmFnZXIpOgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuaDoKCSAgSW1wbGVtZW50IGZhbGxiYWNrIHNlc3Npb24gbWFuYWdlci4KCSAgTWFrZSBSVFBCaW4gdGhlIGRlZmF1bHQgb25lIHdoZW4gYXZhaWxhYmxlLgoKMjAwNy0wNC0wNSAxNTowNToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5Lio6IFRyeSB0byByZWNvdmVyIGZyb20gcGFja2V0IGxvc3MgYSBsaXR0bGUgYmV0dGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9nc3RydHB4cXRkZXBheS5jOiAoZ3N0X3J0cF94cXRfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX3hxdF9kZXBheV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5Lmg6CgkgIFRyeSB0byByZWNvdmVyIGZyb20gcGFja2V0IGxvc3MgYSBsaXR0bGUgYmV0dGVyLgoKMjAwNy0wNC0wNSAxMzo1Njo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6IFRoaXMgZWxlbWVudCBpcyByZWFkeSB0byBiZSBhdXRvcGx1Z2dlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzogKGdzdF9ydHBfbXA0YV9kZXBheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfbXA0YV9kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfbXA0YV9kZXBheV9wbHVnaW5faW5pdCk6CgkgIFRoaXMgZWxlbWVudCBpcyByZWFkeSB0byBiZSBhdXRvcGx1Z2dlZC4KCjIwMDctMDQtMDUgMTE6MjY6MjUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBEb24ndCBsZWF2ZSB0aGUgb2Zmc2V0cyBkZWZpbmVkIGJ5IHVwc3RyZWFtIGVsZW1lbnQgb24gdGhlIGNvbXByZXNzZWQgZGF0YSBidWZmZXIgd2UgYXJlIHB1c2hpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA0LTA1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpOgoJICBEb24ndCBsZWF2ZSB0aGUgb2Zmc2V0cyBkZWZpbmVkIGJ5IHVwc3RyZWFtIGVsZW1lbnQgb24gdGhlCgkgIGNvbXByZXNzZWQgZGF0YSBidWZmZXIgd2UgYXJlIHB1c2hpbmcgZG93bnN0cmVhbS4gTWFrZSB0aGVtCgkgIEdTVF9CVUZGRVJfT0ZGU0VUX05PTkUuCgoyMDA3LTA0LTA0IDEyOjM5OjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpLzogRG9uJ3QgYWJvcnQgb24gb3V0LW9mLW1lbW9yeS4gVXNlIHN0cmVhbS1uciBhcyB1bnNpZ25lZCBpbnRlZ2VyIG9ubHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvUkVBRE1FOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksIChnc3RfYXZpX2RlbXV4X3BhcnNlX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2luZGV4KSwgKGdzdF9hdmlfZGVtdXhfc3luYyksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9zY2FuKSwgKGdzdF9hdmlfZGVtdXhfbWFzc2FnZV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X2NhbGN1bGF0ZV9kdXJhdGlvbnNfZnJvbV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXJfcHVzaCksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXJfcHVsbCksIChnc3RfYXZpX2RlbXV4X2NvbWJpbmVfZmxvd3MpLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSk6CgkgIERvbid0IGFib3J0IG9uIG91dC1vZi1tZW1vcnkuIFVzZSBzdHJlYW0tbnIgYXMgdW5zaWduZWQgaW50ZWdlciBvbmx5LgoKMjAwNy0wNC0wMyAwOTo1NTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zbXB0ZS9iYXJib3h3aXBlcy5jOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc21wdGUvYmFyYm94d2lwZXMuYzoKCSAgRml4IGVycm9yIGFzIHNwb3R0ZWQgYnkgU25haWsgPHNuYWlrMzIgYXQgZ21haWwgZG90IGNvbT4KCjIwMDctMDMtMzAgMTc6MTk6MzQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBTdXBwb3J0IGF1ZGlvL3gtcmF3LWZsb2F0IGluIHdhdiBmaWxlcy4gVGhpcyBvbmx5IHdvcmtzIHdpdGggcGx1Z2lucy1iYXNlIENWUywgdXNpbmcgYW4gby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgU3VwcG9ydCBhdWRpby94LXJhdy1mbG9hdCBpbiB3YXYgZmlsZXMuIFRoaXMgb25seSB3b3JrcyB3aXRoCgkgIHBsdWdpbnMtYmFzZSBDVlMsIHVzaW5nIGFuIG9sZGVyIHZlcnNpb24gZG9lc24ndCBoYXZlIGFueQoJICBkaXNhZHZhbnRhZ2VzIHRob3VnaC4KCjIwMDctMDMtMzAgMTU6NTk6MjcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJldmVydCBsYXN0IGNoYW5nZSBhcyB3ZSBkb24ndCB3YW50IHBsdWdpbnMtZ29vZCB0byBkZXBlbmQgb24gcGx1Z2lucy1iYXNlIENWUyBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X2F1X3BhcnNlX3BhcnNlX2hlYWRlciksIChnc3RfYXVfcGFyc2VfY2hhaW4pOgoJICAqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuaDoKCSAgUmV2ZXJ0IGxhc3QgY2hhbmdlIGFzIHdlIGRvbid0IHdhbnQgcGx1Z2lucy1nb29kIHRvIGRlcGVuZCBvbgoJICBwbHVnaW5zLWJhc2UgQ1ZTIG5vdy4KCjIwMDctMDMtMzAgMDQ6NTA6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrLzogRG9uJ3QgcGxheSBhdWRpb2NvbnZlcnQuIEFzIHdhdnBhY2sgd2FudHMvb3V0cHV0cyBhbGwgc2FtcGxlcyB3aXRoIHdpZHRoPT0zMiBhbmQgZGVwdGg9WzEsMzJdIGFjY2VwdCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX2luaXQpLCAoZ3N0X3dhdnBhY2tfZGVjX3Npbmtfc2V0X2NhcHMpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX2NsaXBfb3V0Z29pbmdfYnVmZmVyKSwKCSAgKGdzdF93YXZwYWNrX2RlY19wb3N0X3RhZ3MpLCAoZ3N0X3dhdnBhY2tfZGVjX2NoYWluKToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX3Jlc2V0KSwKCSAgKGdzdF93YXZwYWNrX2VuY19zaW5rX3NldF9jYXBzKSwgKGdzdF93YXZwYWNrX2VuY19zZXRfd3BfY29uZmlnKSwKCSAgKGdzdF93YXZwYWNrX2VuY19jaGFpbik6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICBEb24ndCBwbGF5IGF1ZGlvY29udmVydC4gQXMgd2F2cGFjayB3YW50cy9vdXRwdXRzIGFsbCBzYW1wbGVzIHdpdGgKCSAgd2lkdGg9PTMyIGFuZCBkZXB0aD1bMSwzMl0gYWNjZXB0IHRoaXMgYW5kIGxldCBhdWRpb2NvbnZlcnQgY29udmVydAoJICB0byBhY2NlcHRlZCBmb3JtYXRzIGluc3RlYWQgb2YgZG9pbmcgaXQgaW4gdGhlIGVsZW1lbnQgZm9yIG4qOCBkZXB0aHMuCgkgIFRoaXMgYWxzbyBhZGRzIHN1cHBvcnQgZm9yIG5vbi1uKjggZGVwdGhzIGFuZCBwcmV2ZW50cyBzb21lIHVzZWxlc3MKCSAgbWVtb3J5IGFsbG9jYXRpb25zLiBGaXhlcyAjNDIxNTk4CgkgIEFsc28gYWRkIGEgd29ya2Fyb3VuZCBmb3IgYnVnICM0MjE1NDIgaW4gd2F2cGFja2VuYyBmb3Igbm93Li4uCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja2RlYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tlbmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrcGFyc2UuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ29uc2lkZXIgdGhlIGNoYW5nZSBhYm92ZSBpbiB0aGUgdW5pdCB0ZXN0cyBhbmQgdGVzdCBpZiB0aGUgY29ycmVjdAoJICBjYXBzIGFyZSBhY2NlcHRlZCBhbmQgc2V0LiBBbHNvIGNoZWNrIGZvciBHU1RfQlVGRkVSX09GRlNFVF9FTkQgaW4KCSAgdGhlIHdhdnBhY2twYXJzZSB1bml0IHRlc3QuCgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX3Npbmtfc2V0X2NhcHMpOgoJICBTZXQgY2FwcyBvbiB0aGUgc3JjIHBhZCBhcyBzb29uIGFzIHBvc3NpYmxlLgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuaDoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrY29tbW9uLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICBGaXggaW5kZW50aW9uLiBnc3QtaW5kZW50IGlzIG5vdyBjYWxsZWQgYnkgY2ljbC4KCjIwMDctMDMtMjkgMTg6NTE6MzMgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgZ3N0LXBsdWdpbnMtYmFzZSBDVlMgZm9yIGF1ZGlvY29udmVydCB3aXRoIG5vbi1uYXRpdmUgZmxvYXQgc3VwcG9ydCBhbmQgd2lkdGgvZGVwdGggZml4IGluIGxpYmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIGdzdC1wbHVnaW5zLWJhc2UgQ1ZTIGZvciBhdWRpb2NvbnZlcnQgd2l0aCBub24tbmF0aXZlCgkgIGZsb2F0IHN1cHBvcnQgYW5kIHdpZHRoL2RlcHRoIGZpeCBpbiBsaWJnc3RyaWZmLgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkb3QgZGU+CgkgICogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOiAoZ3N0X2F1X3BhcnNlX3Jlc2V0KSwKCSAgKGdzdF9hdV9wYXJzZV9wYXJzZV9oZWFkZXIpLCAoZ3N0X2F1X3BhcnNlX2NoYWluKToKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkgIERvbid0IHN3YXAgdGhlIGZsb2F0cyBvdXJzZWxmIGlmIHRoZXkncmUgbm90IGluIG5hdGl2ZSBlbmRpYW5uZXNzLgoJICBJbnN0ZWFkIGxldCBhdWRpb2NvbnZlcnQgaGFuZGxlIHRoaXMuIEZpeGVzICMzMzk4MzguCgoyMDA3LTAzLTI5IDE0OjQwOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEZsdXNoIGFkYXB0ZXIgb24gZGlzY29udHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IChnc3RfcnRwX2gyNjNwX2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9oMjYzcF9kZXBheV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IChnc3RfcnRwX2gyNjRfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX2gyNjRfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0YWRlcGF5LmM6IChnc3RfcnRwX21wNGFfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX21wNGFfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX21wNGFfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzogKGdzdF9ydHBfbXA0Z19kZXBheV9wcm9jZXNzKToKCSAgRmx1c2ggYWRhcHRlciBvbiBkaXNjb250cy4KCjIwMDctMDMtMjkgMTQ6MDM6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogVXNlIG1vcmUgZWZmaWNpZW50IGFkYXB0ZXIgYW5kIHJ0cGJ1ZmZlciBtZXRob2RzIHdoZW4gcG9zc2libGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzogKGdzdF9ydHBfTDE2X2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzogKGdzdF9ydHBfZ3NtX2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6IChnc3RfcnRwX2lsYmNfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzogKGdzdF9ydHBfbXAydF9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOiAoZ3N0X3J0cF9tcDRnX2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOiAoZ3N0X3J0cF9tcDRnX3BheV9mbHVzaCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzogKGdzdF9ydHBfbXA0dl9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXA0dl9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzogKGdzdF9ydHBfbXA0dl9wYXlfZmx1c2gpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzogKGdzdF9ydHBfbXBhX2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6IChnc3RfcnRwX21wYV9wYXlfZmx1c2gpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzogKGdzdF9ydHBfbXB2X2RlcGF5X3Byb2Nlc3MpOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6IChnc3RfcnRwX3BjbWFfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzogKGdzdF9ydHBfcGNtdV9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOiAoZ3N0X3J0cF9zdjN2X2RlcGF5X3Byb2Nlc3MpOgoJICBVc2UgbW9yZSBlZmZpY2llbnQgYWRhcHRlciBhbmQgcnRwYnVmZmVyIG1ldGhvZHMgd2hlbiBwb3NzaWJsZS4KCjIwMDctMDMtMjkgMTI6MTQ6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6IENvcnJlY3RseSBoYW5kbGUgd2lkdGghPWRlcHRoIGlucHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiAoZ3N0X3dhdmVuY19jcmVhdGVfaGVhZGVyX2J1ZiksCgkgIChnc3Rfd2F2ZW5jX3Npbmtfc2V0Y2Fwcyk6CgkgIENvcnJlY3RseSBoYW5kbGUgd2lkdGghPWRlcHRoIGlucHV0LgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBBbHJlYWR5IGV4cG9ydCBpbiB0aGUgY2FwcyB0aGF0IHdpZHRoPT04IHVzZXMgdW5zaWduZWQgc2FtcGxlcyBhbmQKCSAgZXZlcnl0aGluZyBlbHNlIHVzZXMgc2lnbmVkIHNhbXBsZXMuCgoyMDA3LTAzLTI5IDA5OjU5OjIzICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBnc3QvdWRwLzogUmV3b3JrIHRoZSBzb2NrZXQgYWxsb2NhdGlvbiBhIGJpdCBiYXNlZCBvbiB0aGUgc29ja2ZkIGFyZ3VtZW50IHNvIHRoYXQgaXQgYmVjb21lcyB1c2FibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlIGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzogKGdzdF9keW51ZHBzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2R5bnVkcHNpbmtfaW5pdCksIChnc3RfZHludWRwc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2R5bnVkcHNpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9keW51ZHBzaW5rX2luaXRfc2VuZCksCgkgIChnc3RfZHludWRwc2lua19jbG9zZSk6CgkgICogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmg6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksIChnc3RfdWRwc3JjX2luaXQpLAoJICAoZ3N0X3VkcHNyY19jcmVhdGUpLCAoZ3N0X3VkcHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3VkcHNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X3VkcHNyY19zdGFydCksIChnc3RfdWRwc3JjX3N0b3ApOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmg6CgkgIFJld29yayB0aGUgc29ja2V0IGFsbG9jYXRpb24gYSBiaXQgYmFzZWQgb24gdGhlIHNvY2tmZCBhcmd1bWVudCBzbyB0aGF0CgkgIGl0IGJlY29tZXMgdXNhYmxlLgoJICBBZGQgYSBjbG9zZWZkIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSB1ZHAgZWxlbWVudHMgdG8gY2xvc2UgdGhlIGN1c3RvbQoJICBmaWxlIGRlc2NyaXB0b3JzIHdoZW4gZ29pbmcgdG8gUkVBRFkuIEZpeGVzICM0MjMzMDQuCgkgIEFQSTpHc3RVRFBTcmM6OmNsb3NlZmQgcHJvcGVydHkKCSAgQVBJOkdzdER5blVEUFNpbms6OmNsb3NlZmQgcHJvcGVydHkKCjIwMDctMDMtMjkgMDg6MDg6NDkgKzAwMDAgIExhdXJlbnQgR2xheWFsIDxzcGdsZWdsZUB5YWhvby5mcj4KCgkgIGdzdC9ydHAvOiBBZGRlZCBIMjY0IHBheWxvYWRlci4gRml4ZXMgIzQyMzc4Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGUgYXQgeWFob28gZG90IGZyPgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRwYXkuYzogKGdzdF9ydHBfaDI2NF9wYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfaDI2NF9wYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2gyNjRfcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9oMjY0X3BheV9maW5hbGl6ZSksIChnc3RfcnRwX2gyNjRfcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9oMjY0X3BheV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9ydHBfaDI2NF9wYXlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfaDI2NF9wYXlfZ2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBfaDI2NF9wYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfaDI2NF9wYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NHBheS5oOgoJICBBZGRlZCBIMjY0IHBheWxvYWRlci4gRml4ZXMgIzQyMzc4Mi4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiAoZ3N0X3J0cF9oMjY0X2RlcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9oMjY0X2RlcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9oMjY0X2RlcGF5X3Byb2Nlc3MpOgoJICBTbWFsbCBmaXhlcy4KCjIwMDctMDMtMjggMjI6Mjc6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBBY3R1YWxseSBzdXBwb3J0IGRlcHRocyBmcm9tIDEgdG8gMzIsIG5vdCBvbmx5IDggdG8gMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBBY3R1YWxseSBzdXBwb3J0IGRlcHRocyBmcm9tIDEgdG8gMzIsIG5vdCBvbmx5IDggdG8gMzIuCgoyMDA3LTAzLTI4IDIyOjIzOjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogQWRkIHN1cHBvcnQgZm9yIHdhdiBmaWxlcyBjb250YWluaW5nIGF1ZGlvL3gtcmF3LWludCB3aXRoIHJhbmRvbSBkZXB0aHMgYmV0d2VlbiAxIGFuZCAzMiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIEFkZCBzdXBwb3J0IGZvciB3YXYgZmlsZXMgY29udGFpbmluZyBhdWRpby94LXJhdy1pbnQgd2l0aCByYW5kb20KCSAgZGVwdGhzIGJldHdlZW4gMSBhbmQgMzIgYml0cy4KCjIwMDctMDMtMjggMTg6NDA6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIGdzdC9ydHAvOiBBZGRlZCBNUDRBLUxBVE0gZGVwYXlsb2FkZXIuIEZpeGVzICM0MTc3OTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogU3RlZmFuIEtvc3QgIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuYzogKGdzdF9ydHBfbXA0YV9kZXBheV9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF9tcDRhX2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9tcDRhX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9tcDRhX2RlcGF5X2ZpbmFsaXplKSwgKGdzdF9ydHBfbXA0YV9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXA0YV9kZXBheV9wcm9jZXNzKSwgKGdzdF9ydHBfbXA0YV9kZXBheV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9tcDRhX2RlcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX21wNGFfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfbXA0YV9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRhZGVwYXkuaDoKCSAgQWRkZWQgTVA0QS1MQVRNIGRlcGF5bG9hZGVyLiBGaXhlcyAjNDE3NzkyLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6IChnc3RfcnRwX21wNHZfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX21wNHZfZGVwYXlfcHJvY2Vzcyk6CgkgIEZpeHVwIGRlcGF5bG9hZGVyLCBzZXR0aW5nIGNvZGVjX2RhdGEsIHVzaW5nIG1vcmUgZWZmaWNpZW50IGFkYXB0b3IgYW5kCgkgIHJ0cGJ1ZmZlciBoYW5kbGluZy4KCSAgKiBnc3QvcnRzcC9VUkxTOgoJICBBZGQgdXJsIHRvIHRlc3QgYWJvdmUuCgoyMDA3LTAzLTI4IDE1OjE3OjI3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvOiBQcm9jZXNzICdjdHRzJyBhdG9tcywgd2hpY2ggYXJlIHByZXNlbnQgaW4gQVZDIElTTyBmaWxlcyAoLm1vdiBmaWxlcyB3aXRoIGgyNjQgdmlkZW8pLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9wcmVwYXJlX2N1cnJlbnRfc2FtcGxlKSwKCSAgKGdzdF9xdGRlbXV4X2NoYWluKSwgKHF0ZGVtdXhfcGFyc2Vfc2FtcGxlcyk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmM6IChxdGRlbXV4X2R1bXBfY3R0cyk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmg6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF9mb3VyY2MuaDoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4X3R5cGVzLmM6CgkgIFByb2Nlc3MgJ2N0dHMnIGF0b21zLCB3aGljaCBhcmUgcHJlc2VudCBpbiBBVkMgSVNPIGZpbGVzICgubW92IGZpbGVzCgkgIHdpdGggaDI2NCB2aWRlbykuCgkgIFVzZSB0aGUgb2Zmc2V0IHByZXNlbnQgaW4gJ2N0dHMnIHRvIGNhbGN1bGF0ZSB0aGUgUFRTIGZvciBlYWNoIHBhY2tldAoJICBhbmQgc2V0IHRoZSBQVFMgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgRml4ZXMgIzQyMzI4MwoKMjAwNy0wMy0yNSAxNTozNDo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogSGFuZGxlIGRlZmF1bHQgY2xvY2stcmF0ZXMgZm9yIHN0YXRpYyBwYXlsb2FkIHR5cGVzLCByZWFycmFuZ2Ugc3R1ZmYgc28gdGhhdCB0aGUgcnRwbWFwIGZpZWxkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChmaW5kX3N0cmVhbV9ieV9zZXR1cCksCgkgIChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9mcmVlKSwKCSAgKGdldF9kZWZhdWx0X3JhdGVfZm9yX3B0KSwgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cG1hcCksCgkgIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfcnRzcHNyY19hY3RpdmF0ZV9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cGluZm8pOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgSGFuZGxlIGRlZmF1bHQgY2xvY2stcmF0ZXMgZm9yIHN0YXRpYyBwYXlsb2FkIHR5cGVzLCByZWFycmFuZ2Ugc3R1ZmYgc28KCSAgdGhhdCB0aGUgcnRwbWFwIGZpZWxkIGluIHRoZSBzZHAgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0cy4KCSAgUGFyc2UgUlRQLUluZm8gZmllbGQgdG8gZ2V0IHRoZSBzZXFudW0gYW5kIHRpbWViYXNlIGZpZWxkcyB0aGF0IHNob3VsZAoJICBnbyBpbiB0aGUgY2Fwcy4KCSAgRGVsYXkgY29uZmlndXJpbmcgY2FwcyBhZnRlciB3ZSBnb3QgdGhlIFJUUC1JbmZvIGZyb20gdGhlIFBMQVkgcmVwbHkgZnJvbQoJICB0aGUgc2VydmVyLgoKMjAwNy0wMy0yNCAxOTo0Njo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOiBSZW1vdmUgJ2NoYW5uZWwtcG9zaXRpb25zJyBmaWVsZCB3aGVuIG11bmdpbmcgaW5wdXQgY2FwcyBpbnRvIDEtY2hhbm5lbCBvdXRwdXQgY2FwcyAoSS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGdzdF9kZWludGVybGVhdmVfc2lua19zZXRjYXBzKToKCSAgUmVtb3ZlICdjaGFubmVsLXBvc2l0aW9ucycgZmllbGQgd2hlbiBtdW5naW5nIGlucHV0IGNhcHMgaW50bwoJICAxLWNoYW5uZWwgb3V0cHV0IGNhcHMgKEkgZ3Vlc3MgdGVjaG5pY2FsbHkgd2Ugc2hvdWxkIHNldCB0aGUKCSAgcG9zaXRpb24gZm9yIGVhY2ggY2hhbm5lbCBvbiB0aGUgb3V0cHV0IGNhcHMgaWYgaXQncyBub24tTk9ORSwKCSAgYnV0IEknbGwgc2F2ZSB0aGF0IGFzIGEgdGFzayBmb3IgYW5vdGhlciBkYXkpLgoKMjAwNy0wMy0yMiAyMjoxNDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jOiBEb24ndCBsZWFrIGlucHV0IGJ1ZmZlciBpbiBjaGFpbiBmdW5jdGlvbjsgbWFpbnRhaW4gb3VyIG93biBsaXN0IG9mIHNvdXJjZSBwYWRzIC0gdGhlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGdzdF9kZWludGVybGVhdmVfYWRkX25ld19wYWRzKSwKCSAgKGdzdF9kZWludGVybGVhdmVfcmVtb3ZlX3BhZHMpLCAoZ3N0X2RlaW50ZXJsZWF2ZV9wcm9jZXNzKSwKCSAgKGdzdF9kZWludGVybGVhdmVfY2hhaW4pOgoJICBEb24ndCBsZWFrIGlucHV0IGJ1ZmZlciBpbiBjaGFpbiBmdW5jdGlvbjsgbWFpbnRhaW4gb3VyIG93biBsaXN0IG9mCgkgIHNvdXJjZSBwYWRzIC0gdGhlcmUgYXJlIG5vIGd1YXJhbnRlZXMgYWJvdXQgdGhlIG9yZGVyIG9mIHRoZSBsaXN0CgkgIGluIHRoZSBHc3RFbGVtZW50IHN0cnVjdCwgYW5kIHdlIHdhbnQgYSB2ZXJ5IHNwZWNpZmljIG9yZGVyOyBsYXN0bHksCgkgIHNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgoyMDA3LTAzLTIyIDE2OjI1OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogUmV2ZXJ0IGxhc3QgY29tbWl0LCBwcmV2ZW50aW5nIGluZmluaXRlIHBsdWdnaW5nIGxvb3BzIHdpdGggcmFua3MgaXMgbm8gY2xlYW4gc29sdXRpb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9wbHVnaW5faW5pdCk6CgkgIFJldmVydCBsYXN0IGNvbW1pdCwgcHJldmVudGluZyBpbmZpbml0ZSBwbHVnZ2luZyBsb29wcyB3aXRoIHJhbmtzCgkgIGlzIG5vIGNsZWFuIHNvbHV0aW9uIGFuZCBpbiBnZW5lcmFsIHRoZXJlJ3Mgbm8gcmVhc29uIHdoeSBvbmUgd2FudHMKCSAgdG8gcGFyc2UgZnJhbWVkIHdhdnBhY2sgZGF0YSBhZ2Fpbi4KCjIwMDctMDMtMjIgMTU6NTI6NTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogU2VuZCB0aGUgbmV3IHNlZ21lbnQgZXZlbnQgaW4gdGltZSBmb3JtYXQgaW5zdGVhZCBvZiBieXRlcy4gVGhpcyBhbGxvd3MgIndhdnBhY2tlbmMgISB3YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IChnc3Rfd2F2cGFja19lbmNfcHVzaF9ibG9jayk6CgkgIFNlbmQgdGhlIG5ldyBzZWdtZW50IGV2ZW50IGluIHRpbWUgZm9ybWF0IGluc3RlYWQgb2YgYnl0ZXMuIFRoaXMKCSAgYWxsb3dzICJ3YXZwYWNrZW5jICEgd2F2cGFja2RlYyAhIHNvbWVhdWRpb3NpbmsiIHBpcGVsaW5lcy4KCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX3BsdWdpbl9pbml0KToKCSAgQWNjZXB0IGZyYW1lZCBhbmQgbm9uLWZyYW1lZCBpbnB1dCwgd2F2cGFja3BhcnNlIGRvZXNuJ3QgY2FyZS4gVG8KCSAgcHJldmVudCAid2F2cGFja3BhcnNlICEgd2F2cGFja3BhcnNlICEgLi4uIiBwaXBlbGluZXMgbG93ZXIgdGhlCgkgIHJhbmsgb2Ygd2F2cGFja3BhcnNlIGJ5IG9uZS4gVGhpcyBhbGxvd3MgIndhdnBhY2tlbmMgISB3YXZwYWNrcGFyc2UgIQoJICAuLi4iIHBpcGVsaW5lcy4KCjIwMDctMDMtMjIgMTE6MDg6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogUmV2ZXJ0IHRvIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGhlcmUuIFdlIGNhbiBhbmQgc2hvdWxkIHVzZSBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2NoYWluKToKCSAgUmV2ZXJ0IHRvIHVzZSBnc3RfcGFkX2FsbG9jX2J1ZmZlcigpIGhlcmUuIFdlIGNhbiBhbmQgc2hvdWxkIHVzZSBpdC4KCSAgVGhhbmtzIHRvIEphbiBhbmQgTWlrZSBmb3Igbm90aWNpbmcgbXkgbWlzdGFrZS4KCjIwMDctMDMtMjIgMDk6NDQ6MTcgKzAwMDAgIENocmlzdG9waGUgRGVoYWlzIDxjaHJpc3RvcGhlLmRlaGFpc0BnbWFpbC5jb20+CgoJICBleHQvZ2NvbmYvZ2NvbmYuYzogQWNjZXB0IGNvbXBsZXggcGlwZWxpbmUgZGVzY3JpcHRpb25zIGFzIGFuIGF1ZGlvIHByb2ZpbGUgaW5zdGVhZCBvZiBqdXN0IGEgc2luZ2xlIGVsZW1lbnQuIEZpeGVzICMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDaHJpc3RvcGhlIERlaGFpcyA8Y2hyaXN0b3BoZSBkb3QgZGVoYWlzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZXh0L2djb25mL2djb25mLmM6IChnc3RfZ2NvbmZfcmVuZGVyX2Jpbl93aXRoX2RlZmF1bHQpOgoJICBBY2NlcHQgY29tcGxleCBwaXBlbGluZSBkZXNjcmlwdGlvbnMgYXMgYW4gYXVkaW8gcHJvZmlsZSBpbnN0ZWFkIG9mIGp1c3QKCSAgYSBzaW5nbGUgZWxlbWVudC4gRml4ZXMgIzQyMDY1OC4KCjIwMDctMDMtMjIgMDA6MTc6NDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuKjogUHV0IHRoZSB3cml0ZSBoZWxwZXJzIGludG8gdGhlIEdzdFdhdnBhY2tFbmMgc3RydWN0IGRpcmVjdGx5IGFuZCBub3QgYXMgYSBwb2ludGVyIHRvIHNhdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IChnc3Rfd2F2cGFja19lbmNfY2xhc3NfaW5pdCksCgkgIChnc3Rfd2F2cGFja19lbmNfaW5pdCksIChnc3Rfd2F2cGFja19lbmNfY2hhaW4pLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3Jld3JpdGVfZmlyc3RfYmxvY2spOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDoKCSAgUHV0IHRoZSB3cml0ZSBoZWxwZXJzIGludG8gdGhlIEdzdFdhdnBhY2tFbmMgc3RydWN0IGRpcmVjdGx5IGFuZCBub3QKCSAgYXMgYSBwb2ludGVyIHRvIHNhdmUgdHdvIHNtYWxsLCBidXQgdXNlbGVzcyBtYWxsb2NzLiBUaGlzIGFsc28gbWFrZXMKCSAgaXQgcG9zc2libGUgdG8gZHJvcCB0aGUgZmluYWxpemUgbWV0aG9kLgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfcHVzaF9idWZmZXIpOgoJICBGb3IgY29uc2lzdGVuY3kgcmVhc29ucyBhbHNvIHNldCBHU1RfQlVGRkVSX09GRlNFVF9FTkQgb24gdGhlIG91dGdvaW5nCgkgIGJ1ZmZlcnMgdGhlIHNhbWUgd2F5IHdhdnBhY2tlbmMgZG9lcyBpdC4KCjIwMDctMDMtMjEgMjM6NTA6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogRG9uJ3QgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYXMgd2UgbWlnaHQgY2xpcCB0aGUgYnVmZmVyIGxhdGVyIGFuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfY2hhaW4pOgoJICBEb24ndCB1c2UgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSBhcyB3ZSBtaWdodCBjbGlwIHRoZSBidWZmZXIgbGF0ZXIgYW5kCgkgIEJhc2VUcmFuc2Zvcm0tYmFzZWQgZWxlbWVudHMgd2lsbCBsaWtlbHkgYnJlYWsgYmVjYXVzZSBvZiB3cm9uZwoJICB1bml0LXNpemUuIEFsc28gcGx1ZyBhIHBvc3NpYmxlIG1lbWxlYWsgdGhhdCBoYXBwZW5zIHdoZW4gZGVjb2RpbmcKCSAgZmFpbHMgZm9yIHNvbWUgcmVhc29uLgoKMjAwNy0wMy0yMSAxMTo0OTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzogUmVuYW1lIHJlZ2lzdGVyZWQgdHlwZSBpbiBwcmVwYXJhdGlvbiBvZiBHc3RUYWdEZW11eCBtb3ZpbmcgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FwZXRhZy9nc3R0YWdkZW11eC5jOiAoZ3N0X3RhZ19kZW11eF9nZXRfdHlwZSk6CgkgIFJlbmFtZSByZWdpc3RlcmVkIHR5cGUgaW4gcHJlcGFyYXRpb24gb2YgR3N0VGFnRGVtdXggbW92aW5nIHRvCgkgIC1iYXNlIGF0IHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZS4KCjIwMDctMDMtMTkgMTA6Mjk6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogU3RyZWFtaW5nIG1vZGUgZml4ZXM6IGRvbid0IHVucmVmIGJ1ZmZlciB3ZSBkb24ndCBvd24gYW55IGxvbmdlcjsgcmVtb3ZlIGJvZ3VzIGFkYXB0ZXIgZmwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpOgoJICBTdHJlYW1pbmcgbW9kZSBmaXhlczogZG9uJ3QgdW5yZWYgYnVmZmVyIHdlIGRvbid0IG93biBhbnkgbG9uZ2VyOwoJICByZW1vdmUgYm9ndXMgYWRhcHRlciBmbHVzaC4gRml4ZXMgIzQxOTMzOC4KCjIwMDctMDMtMTggMDQ6MjE6MjggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgUkVRVUlSRU1FTlRTOiBDaGFuZ2UgdGhlIGZvcm1hdCB0byBrZXkvdmFsdWUsIGFkZCBhIGJ1bmNoIG9mIGluZm9ybWF0aW9uLCByZW1vdmUgYSBidW5jaCBvZiByZXF1aXJlbWVudHMgdGhhdCBhcmUgZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFUVVJUkVNRU5UUzogQ2hhbmdlIHRoZSBmb3JtYXQgdG8ga2V5L3ZhbHVlLCBhZGQgYSBidW5jaCBvZgoJICBpbmZvcm1hdGlvbiwgcmVtb3ZlIGEgYnVuY2ggb2YgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIGZvcgoJICBvdGhlciBHU3RyZWFtZXIgcGFja2FnZXMuCgoyMDA3LTAzLTE4IDAyOjAwOjU0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIFJFUVVJUkVNRU5UUzogRml4IGEgZmV3IHRoaW5ncy4gIFRoaXMgZmlsZSByZWFsbHkgbmVlZHMgYSBnb29kIG9uY2Utb3Zlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVRVUlSRU1FTlRTOiBGaXggYSBmZXcgdGhpbmdzLiAgVGhpcyBmaWxlIHJlYWxseSBuZWVkcyBhCgkgIGdvb2Qgb25jZS1vdmVyLgoKMjAwNy0wMy0xNiAxODozODoxOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubTogRml4IHByZXZpb3VzIGNvbW1pdCwgd2Ugd2FudCB0byBwYXNzIHRoZSBOU1ZpZXcgaW4gdGhlIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgRml4IHByZXZpb3VzIGNvbW1pdCwgd2Ugd2FudCB0byBwYXNzIHRoZSBOU1ZpZXcgaW4gdGhlIG1lc3NhZ2UuCgoyMDA3LTAzLTE2IDE2OjI3OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOiBFbWl0ICdoYXZlLW5zLXZpZXcnIG1lc3NhZ2Ugd2hlbiB3b3JraW5nIGluIGVtYmVkZGVkIG1vZGUuIFRoZSBtZXNzYWdlIHdpbGwgY29udGFpbiBhIHBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgRW1pdCAnaGF2ZS1ucy12aWV3JyBtZXNzYWdlIHdoZW4gd29ya2luZyBpbiBlbWJlZGRlZCBtb2RlLiBUaGUgbWVzc2FnZQoJICB3aWxsIGNvbnRhaW4gYSBwb2ludGVyIHRvIHRoZSBuZXdseSBjcmVhdGVkIE5TVmlldy4KCjIwMDctMDMtMTYgMDk6NTc6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyMTBiYW5kcy5jOiBBIDEwIGJhbmQgRVEgc2hvdWxkIGJlIGluaXRpYWxpemVkIHRvIDEgYmFuZHMgYW5kIG5vdCB0byAzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyXzEwYmFuZHNfaW5pdCk6CgkgIEEgMTAgYmFuZCBFUSBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgdG8gMSBiYW5kcyBhbmQgbm90IHRvIDMuCgoyMDA3LTAzLTE1IDEyOjA1OjAxICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgc3lzL01ha2VmaWxlLmFtOiBEb24ndCBmb3JnZXQgdG8gZGlzdHJpYnV0ZSB0aGUgc3lzL29zeGF1ZGlvLyBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgZm9yZ2V0IHRvIGRpc3RyaWJ1dGUgdGhlIHN5cy9vc3hhdWRpby8gZGlyZWN0b3J5LgoKMjAwNy0wMy0xNSAxMTozOTo1MyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIEFjdGl2YXRlIG9zeGF1ZGlvIGluIGdzdC1wbHVnaW5zLWdvb2Qgd2l0aCBwcm9wZXIgYnVpbGQgc2V0dXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBzeXMvTWFrZWZpbGUuYW06CgkgICogc3lzL29zeGF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpby5jOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSAgKGdzdF9vc3hfYXVkaW9fc2lua19vc3hlbGVtZW50X2RvX2luaXQpLCAoZ3N0X29zeF9hdWRpb19zaW5rX2luaXQpLAoJICAoZ3N0X29zeF9hdWRpb19zaW5rX2dldGNhcHMpLAoJICAoZ3N0X29zeF9hdWRpb19zaW5rX2NyZWF0ZV9yaW5nYnVmZmVyKSwgKHBsdWdpbl9pbml0KToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSAgKGdzdF9vc3hfYXVkaW9fc3JjX29zeGVsZW1lbnRfZG9faW5pdCksIChnc3Rfb3N4X2F1ZGlvX3NyY19pbml0KSwKCSAgKGdzdF9vc3hfYXVkaW9fc3JjX2NyZWF0ZV9yaW5nYnVmZmVyKToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5jOiAoZ3N0X29zeF9yaW5nX2J1ZmZlcl9nZXRfdHlwZSksCgkgIChnc3Rfb3N4X3JpbmdfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X29zeF9yaW5nX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9vc3hfcmluZ19idWZmZXJfYWNxdWlyZSksIChnc3Rfb3N4X3JpbmdfYnVmZmVyX3N0YXJ0KSwKCSAgKGdzdF9vc3hfcmluZ19idWZmZXJfcGF1c2UpLCAoZ3N0X29zeF9yaW5nX2J1ZmZlcl9zdG9wKToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4cmluZ2J1ZmZlci5oOgoJICBBY3RpdmF0ZSBvc3hhdWRpbyBpbiBnc3QtcGx1Z2lucy1nb29kIHdpdGggcHJvcGVyIGJ1aWxkIHNldHVwLgoJICBBZGQgaW5saW5lZCBkb2N1bWVudGF0aW9uLgoJICBGaXggZGVidWcgc3RhdGVtZW50cwoJICBGaXggcmluZ2J1ZmZlciB3aGVuIHBhdXNpbmcuCgkgIEZpeGVzICMzMjM0NzEKCjIwMDctMDMtMTQgMjI6MjE6MjYgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvcnRwLzogUG9ydGVkIG11bGF3IGFuZCBhbGF3IHBheWxvYWRlcnMgdG8gdXNlIG5ldyBiYXNlIGNsYXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5oOgoJICBQb3J0ZWQgbXVsYXcgYW5kIGFsYXcgcGF5bG9hZGVycyB0byB1c2UgbmV3IGJhc2UgY2xhc3MKCjIwMDctMDMtMTQgMTY6MzA6MTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBzeXMvb3N4dmlkZW8vOiBGaXggbGVha3Mgd2hlbiBydW5uaW5nIGEgTlNBcHAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5oOgoJICAqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIEZpeCBsZWFrcyB3aGVuIHJ1bm5pbmcgYSBOU0FwcC4KCSAgQWNjZXB0IGFueSBraW5kIG9mIHJlc29sdXRpb25zLgoJICBXb3JrcyBpbiBmdWxsc2NyZWVuLiBDYW4gbWF4aW1pemUuCgkgIE9ubHkgdGhpbmcgbGVmdCBiZWZvcmUgYmVpbmcgYWJsZSB0byBtb3ZlIHRoaXMgdG8gLWdvb2QgaXMgZG9jdW1lbnRhdGlvbgoJICBhbmQgZW1iZWRkZWQgd2luZG93IHN1cHBvcnQuCgoyMDA3LTAzLTE0IDE1OjI1OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vYWYucG86CgkgICogcG8vYXoucG86CgkgICogcG8vY3MucG86CgkgICogcG8vZW5fR0IucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmwucG86CgkgICogcG8vb3IucG86CgkgICogcG8vc3EucG86CgkgICogcG8vc3IucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgIFVwZGF0ZSB0cmFuc2xhdGlvbnMuCgoyMDA3LTAzLTE0IDE0OjQ5OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggc3RyaW5nIHJlcGxhY2UgZXJyb3IgKEFHX0FHX0dTVF8qID0+IEFHX0dTVF8qKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggc3RyaW5nIHJlcGxhY2UgZXJyb3IgKEFHX0FHX0dTVF8qID0+IEFHX0dTVF8qKS4KCjIwMDctMDMtMTQgMTQ6NDg6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9lcXVhbGl6ZXIvOiBBZGQgMyBhbmQgMTAgYmFuZCB2ZXJzaW9uIGFuZCBhZGQgbWlzc2luZyBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6IChfZG9faW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9iYW5kX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9iYW5kX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9nZXRfdHlwZSksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2NoaWxkX3Byb3h5X2ludGVyZmFjZV9pbml0KSwgKHNldHVwX2ZpbHRlciksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jb21wdXRlX2ZyZXF1ZW5jaWVzKSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX3RyYW5zZm9ybV9pcCksIChwbHVnaW5faW5pdCk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIxMGJhbmRzLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl8xMGJhbmRzX2Jhc2VfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl8xMGJhbmRzX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfMTBiYW5kc19pbml0KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyXzEwYmFuZHNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyXzEwYmFuZHNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjEwYmFuZHMuaDoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplcjNiYW5kcy5jOgoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfM2JhbmRzX2Jhc2VfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl8zYmFuZHNfY2xhc3NfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl8zYmFuZHNfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl8zYmFuZHNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyXzNiYW5kc19nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyM2JhbmRzLmg6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXJuYmFuZHMuYzoKCSAgKGdzdF9paXJfZXF1YWxpemVyX25iYW5kc19iYXNlX2luaXQpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfbmJhbmRzX2luaXQpOgoJICBBZGQgMyBhbmQgMTAgYmFuZCB2ZXJzaW9uIGFuZCBhZGQgbWlzc2luZyBnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzLgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX2V2ZW50KSwKCSAgKGdzdF9zcGVjdHJ1bV90cmFuc2Zvcm1faXApOgoJICBBZGQgc29tZSBjb21tZW50cyBhYm91dCBmbG9hdCBzdXBwb3J0LgoKMjAwNy0wMy0xMiAxNzo1Njo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzogRml4IGhhbmRsaW5nIG9mIC0xIHZhbHVlcyBmb3Igc3RhcnQgYW5kIHN0b3AgdmFsdWVzIHdoZW4gc2Vla2luZywgYW5kIFNFRUtfQ1VSK1NFRUtfRU5EIGhlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X3NyY3BhZF9ldmVudCk6CgkgIEZpeCBoYW5kbGluZyBvZiAtMSB2YWx1ZXMgZm9yIHN0YXJ0IGFuZCBzdG9wIHZhbHVlcyB3aGVuIHNlZWtpbmcsCgkgIGFuZCBTRUVLX0NVUitTRUVLX0VORCBoZXJlIGFzIHdlbGwuCgoyMDA3LTAzLTEyIDE3OjI0OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiBGaXggaGFuZGxpbmcgb2YgLTEgdmFsdWVzIGZvciBzdGFydCBhbmQgc3RvcCB2YWx1ZXMgd2hlbiBzZWVraW5nLCBhbmQgU0VFS19DVVIrU0VFS19FTkQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X3NyY3BhZF9ldmVudCk6CgkgIEZpeCBoYW5kbGluZyBvZiAtMSB2YWx1ZXMgZm9yIHN0YXJ0IGFuZCBzdG9wIHZhbHVlcyB3aGVuIHNlZWtpbmcsCgkgIGFuZCBTRUVLX0NVUitTRUVLX0VORC4KCjIwMDctMDMtMTIgMTU6NDk6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBJJ20gdG9vIGxhenkgdG8gY29tbWVudCB0aGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgUGF0Y2ggYnk6IGxpbmUgZm9yIHdpbSwgc2luY2UgaGUncyBhd2F5CgoyMDA3LTAzLTEyIDEzOjI4OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IEZpeCBwYXJzaW5nIG9mIElEMyB2Mi4yLjAgUElDIGZyYW1lcy4gT25seSBpbiB2ZXJzaW9uID49IDIuMy4wIGlzIHRoZSBpbWFnZSBmb3JtYXQgYSB2YXJpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiAocGFyc2VfcGljdHVyZV9mcmFtZSk6CgkgIEZpeCBwYXJzaW5nIG9mIElEMyB2Mi4yLjAgUElDIGZyYW1lcy4gT25seSBpbiB2ZXJzaW9uID49IDIuMy4wIGlzCgkgIHRoZSBpbWFnZSBmb3JtYXQgYSB2YXJpYWJsZS1sZW5ndGggTlVMLXRlcm1pbmF0ZWQgc3RyaW5nOyBpbgoJICB2ZXJzaW9ucyBiZWZvcmUgdGhhdCB0aGUgaW1hZ2UgZm9ybWF0IGlzIGEgZml4ZWQtbGVuZ3RoIHN0cmluZyBvZgoJICAzIGNoYXJhY3RlcnMgKHNlZSAjMzQ4NjQ0IGZvciBhIHNhbXBsZSB0YWcpLgoJICBBbHNvIG1ha2Ugc3VwcGxpZWQgbWltZSB0eXBlIGxvd2VyLWNhc2UgYW5kIGZpeCB1cCAnanBnJyB0byAnanBlZycuCgoyMDA3LTAzLTExIDIyOjIzOjA0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay4qOiBIYW5kbGUgZGlzcGxheSBtb2RlIGNoYW5nZXMgZHVyaW5nIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmg6CgkgIEhhbmRsZSBkaXNwbGF5IG1vZGUgY2hhbmdlcyBkdXJpbmcgcGxheWJhY2suCgoyMDA3LTAzLTEwIDE2OjA3OjMxICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogQWRkIG5ldyBwcm9qZWN0IGZpbGVzIHRvIE1BTklGRVNULgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgQWRkIG5ldyBwcm9qZWN0IGZpbGVzIHRvIE1BTklGRVNULgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhdWRpb2Z4LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cnRwLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cnRzcC5kc3A6CgkgIFVwZGF0ZSBwcm9qZWN0IGZpbGVzLgoKMjAwNy0wMy0xMCAxMjozMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFByaW50ZiBmb3JtYXQgZml4ZXM7IGFsc28gYWRkIHNvbWUgbWlzc2luZyBxdW90ZXMgaW4gdHJhbnNsYXRlZCBzdHJpbmdzLiBGaXhlcyAjNDE2NzI4IGFuZCAjNDE2NzI3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1YmluZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogKGdzdF92NGwyX2ZpbGxfbGlzdHMpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX2dyYWJfZnJhbWUpOgoJICBQcmludGYgZm9ybWF0IGZpeGVzOyBhbHNvIGFkZCBzb21lIG1pc3NpbmcgcXVvdGVzIGluIHRyYW5zbGF0ZWQKCSAgc3RyaW5ncy4gRml4ZXMgIzQxNjcyOCBhbmQgIzQxNjcyNy4KCjIwMDctMDMtMDkgMjA6MTI6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOiBUaW0gYW5kIEkgY2FuJ3QgdGhpbmsgb2YgYW55IHJlYXNvbiB0aGUgY2hpbGQgYXVkaW8gc2luayBuZWVkcyB0byBiZSBzZXQgYmFjayB0byBOLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzogKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZmluZF9iZXN0KToKCSAgVGltIGFuZCBJIGNhbid0IHRoaW5rIG9mIGFueSByZWFzb24gdGhlIGNoaWxkIGF1ZGlvIHNpbmsgbmVlZHMgdG8KCSAgYmUgc2V0IGJhY2sgdG8gTlVMTCBhZnRlciBzdWNjZXNzZnVsbHkgZGV0ZXJtaW5pbmcgdGhhdCBpdCBjYW4KCSAgcmVhY2ggUkVBRFkgLSBpdCBnZXRzIGltbWVkaWF0ZWx5IHNldCBiYWNrIHRvIFJFQURZIGJ5IHRoZSBjYWxsZXIKCSAgYW55d2F5LCBjYXVzaW5nIGFuIHVubmVjZXNzYXJ5IGNsb3NlL29wZW4gb2YgYW55IGF1ZGlvIGRldmljZXMKCSAgaW52b2x2ZWQuCgoyMDA3LTAzLTA5IDE5OjUxOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcG8vOiBBZGQgamEucG8gZmlsZSBmcm9tICMzNzczMDYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vamEucG86CgkgIEFkZCBqYS5wbyBmaWxlIGZyb20gIzM3NzMwNi4KCjIwMDctMDMtMDkgMTk6NDQ6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMvc3VuYXVkaW8vOiBBY3R1YWxseSB0cmFuc2xhdGUgc3VuYXVkaW8gbWl4ZXIgdHJhY2sgbGFiZWxzIGluc3RlYWQgb2YganVzdCBtYXJraW5nIHRoZSBzdHJpbmdzIGFzIHRyYW5zbGF0YWJsZSAoIzMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvLmM6IChwbHVnaW5faW5pdCk6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5jOgoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfdHJhY2tfbmV3KToKCSAgQWN0dWFsbHkgdHJhbnNsYXRlIHN1bmF1ZGlvIG1peGVyIHRyYWNrIGxhYmVscyBpbnN0ZWFkIG9mIGp1c3QKCSAgbWFya2luZyB0aGUgc3RyaW5ncyBhcyB0cmFuc2xhdGFibGUgKCMzNzczMDYpOyBjbGVhbiB1cCB3ZWlyZAoJICBsYWJlbCBzdHJpbmcgbWFwcGluZyBjb2RlIHRoYXQgc2VydmVzIG5vIGFwcGFyZW50IHB1cnBvc2UuIEFsc28KCSAgc2V0IHRoZSAndW50cmFuc2xhdGVkLWxhYmVsJyBwcm9wZXJ0eSB3aGVuIGNyZWF0aW5nIG1peGVyIHRyYWNrcwoJICBpZiB0aGUgR3N0TWl4ZXJUcmFjayBiYXNlIGNsYXNzIHN1cHBvcnRzIHRoaXMuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zdW5hdWRpby5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoc3VuYXVkaW9fc3VpdGUpOgoJICBWZXJ5IG1pbmltYWxpc3RpYyB1bml0IHRlc3QgZm9yIHN1bmF1ZGlvbWl4ZXIgZWxlbWVudCAoY29tcGlsZXMsIGJ1dCBub3QKCSAgYWN0dWFsbHkgdGVzdGVkIG9uIGEgc3lzdGVtIHdoZXJlIHN1bmF1ZGlvbWl4ZXIgaXMgYXZhaWxhYmxlKS4KCjIwMDctMDMtMDkgMTg6NDk6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IFJlLWVuYWJsZSB0aGUgc3RhdGVzIHRlc3QgYW5kIHNlZSBpZiBpdCB3b3JrcyBvbiB0aGUgYnVpbGRib3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgUmUtZW5hYmxlIHRoZSBzdGF0ZXMgdGVzdCBhbmQgc2VlIGlmIGl0IHdvcmtzIG9uIHRoZSBidWlsZGJvdHMuCgoyMDA3LTAzLTA5IDE3OjMyOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoKCSAgZXh0L2R2L2dzdGR2ZGVjLio6IEluZmVyIHBpeGVsLWFzcGVjdC1yYXRpbyBmcm9tIHRoZSB2aWRlbyBmcmFtZSBmb3JtYXQgaWYgaXQgaXNuJ3QgcHJvdmlkZWQgYnkgdGhlIGNvbnRhaW5lciwgYXMgaGFwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOiAoZ3N0X2R2ZGVjX2luaXQpLCAoZ3N0X2R2ZGVjX3Npbmtfc2V0Y2FwcyksCgkgIChnc3RfZHZkZWNfc3JjX25lZ290aWF0ZSksIChnc3RfZHZkZWNfY2hhaW4pLAoJICAoZ3N0X2R2ZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2R2L2dzdGR2ZGVjLmg6CgkgIEluZmVyIHBpeGVsLWFzcGVjdC1yYXRpbyBmcm9tIHRoZSB2aWRlbyBmcmFtZSBmb3JtYXQgaWYgaXQgaXNuJ3QKCSAgcHJvdmlkZWQgYnkgdGhlIGNvbnRhaW5lciwgYXMgaGFwcGVucyB3aGVuIHBsYXlpbmcgRFYgZnJvbSBBVkkKCSAgb3IgUXVpY2t0aW1lIGNvbnRhaW5lcnMuCgkgIFBhdGNoIGJ5OiBXaW0gVGF5bWFucyA8d2ltQGZsdWVuZG8uY29tPgoJICBGaXhlcyAjMzgwOTQ0CgoyMDA3LTAzLTA5IDE3OjA1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBXaGVuIGFjdGl2YXRlZCwgcmVtb3ZlIHRoZSB1ZHBzcmMgdGltZW91dCwgd2UgaGF2ZSBkYXRhZmxvdyBhbmQgdGltZW91dHMgd2lsbCBsYXRlciBiZSBoYW5kbGVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2FjdGl2YXRlX3N0cmVhbXMpOgoJICBXaGVuIGFjdGl2YXRlZCwgcmVtb3ZlIHRoZSB1ZHBzcmMgdGltZW91dCwgd2UgaGF2ZSBkYXRhZmxvdyBhbmQgdGltZW91dHMKCSAgd2lsbCBsYXRlciBiZSBoYW5kbGVkIGJ5IHRoZSBqaXR0ZXJidWZmZXIuCgoyMDA3LTAzLTA5IDE2OjUzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzogQWRkIHdyaXRlIHN1cHBvcnQgZm9yIEdTVF9UQUdfTVVTSUNCUkFJTlpfU09SVE5BTUUgKFRTT1ApIHRhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgQWRkIHdyaXRlIHN1cHBvcnQgZm9yIEdTVF9UQUdfTVVTSUNCUkFJTlpfU09SVE5BTUUgKFRTT1ApIHRhZy4KCSAgRml4ZXMgIzQxNDQ5Ni4KCjIwMDctMDMtMDkgMTU6MDQ6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCBzdHJlYW0gcG9zaXRpb24gcmVwb3J0aW5nIGFmdGVyIGEgc2Vlay4gRml4ZXMgIzQxNjQ0NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdHJlYW0pLAoJICAoZ3N0X2F2aV9kZW11eF9wdXNoX2V2ZW50KSwgKGdzdF9hdmlfZGVtdXhfZG9fc2VlayksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKSwKCSAgKGdzdF9hdmlfZGVtdXhfY2hhaW4pOgoJICBGaXggc3RyZWFtIHBvc2l0aW9uIHJlcG9ydGluZyBhZnRlciBhIHNlZWsuIEZpeGVzICM0MTY0NDUuCgoyMDA3LTAzLTA5IDA4OjU4OjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZXF1YWxpemVyLzogUmVmYWN0b3IgcGx1Z2luIGludG8gYSBiYXNlIGNsYXNzIGFuZCBhIGZpcnN0IHN1YmNsYXNzIChuYmFuZCBlcSkuIFRoZSBuYmFuZCBlcSB1c2VzIEdzdENoaWxkUHJveHkgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VxdWFsaXplci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOiAoX2RvX2luaXQpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfYmFuZF9jbGFzc19pbml0KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2JhbmRfZ2V0X3R5cGUpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2NoaWxkX3Byb3h5X2dldF9jaGlsZHJlbl9jb3VudCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jaGlsZF9wcm94eV9pbnRlcmZhY2VfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9iYXNlX2luaXQpLCAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9maW5hbGl6ZSksIChzZXR1cF9maWx0ZXIpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfY29tcHV0ZV9mcmVxdWVuY2llcyksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9zZXRfcHJvcGVydHkpLCAoZ3N0X2lpcl9lcXVhbGl6ZXJfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX3NldHVwKSwgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5oOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVybmJhbmRzLmM6CgkgIChnc3RfaWlyX2VxdWFsaXplcl9uYmFuZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX25iYW5kc19jbGFzc19pbml0KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX25iYW5kc19pbml0KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX25iYW5kc19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfbmJhbmRzX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXJuYmFuZHMuaDoKCSAgUmVmYWN0b3IgcGx1Z2luIGludG8gYSBiYXNlIGNsYXNzIGFuZCBhIGZpcnN0IHN1YmNsYXNzIChuYmFuZCBlcSkuIFRoZQoJICBuYmFuZCBlcSB1c2VzIEdzdENoaWxkUHJveHkgYW5kIGlzIGNvbnRyb2xhYmxlLiBNb3JlIHN1YmNsYXNzZXMgd2lsbAoJICBmb2xsb3cuCgoyMDA3LTAzLTA4IDE2OjAxOjQyICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBNYWtlIGF2aWRlbXV4IGFjY2VwdCBvcHRpb25hbCBoZWFkZXIgY2h1bmtzIGluIGFueSBvcmRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3B1c2hfZXZlbnQpLCAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksIChnc3RfYXZpX2RlbXV4X2NoYWluKToKCSAgTWFrZSBhdmlkZW11eCBhY2NlcHQgb3B0aW9uYWwgaGVhZGVyIGNodW5rcyBpbiBhbnkgb3JkZXIuCgkgIEZpeGVzICM0MTU0NDYuCgoyMDA3LTAzLTA4IDEyOjIzOjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEaXNhYmxlIHRoZSBzdGF0ZXMgY2hlY2sgdW50aWwgdGhlIHJlbWFpbmluZyBWYWxncmluZCBlcnJvcnMgYXJlIGZpeGVkIG9yIHN1cHByZXNzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBEaXNhYmxlIHRoZSBzdGF0ZXMgY2hlY2sgdW50aWwgdGhlIHJlbWFpbmluZyBWYWxncmluZCBlcnJvcnMKCSAgYXJlIGZpeGVkIG9yIHN1cHByZXNzZWQuCgoyMDA3LTAzLTA4IDEwOjI0OjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOiBBZGQgYXVkaW9keW5hbWljIGNoZWNrIHRvIC5jdnNpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgQWRkIGF1ZGlvZHluYW1pYyBjaGVjayB0byAuY3ZzaWdub3JlCgoyMDA3LTAzLTA4IDEwOjAyOjEyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC86IEFkZCBuZXcgYXVkaW9keW5hbWljIGVsZW1lbnQgd2hpY2ggY2FuIGFjdCBhcyBhIGNvbXByZXNzb3Igb3IgZXhwYW5kZXIuIFN1cHBvcnRlZCBhcmUgaGFyZC1rbmVlIGFuZCBzb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCAgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5jOgoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfY2hhcmFjdGVyaXN0aWNzX2dldF90eXBlKSwKCSAgKGdzdF9hdWRpb19keW5hbWljX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfc2V0X3Byb2Nlc3NfZnVuY3Rpb24pLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfYmFzZV9pbml0KSwgKGdzdF9hdWRpb19keW5hbWljX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfaW5pdCksIChnc3RfYXVkaW9fZHluYW1pY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9hdWRpb19keW5hbWljX3NldHVwKSwKCSAgKGdzdF9hdWRpb19keW5hbWljX3RyYW5zZm9ybV9oYXJkX2tuZWVfY29tcHJlc3Nvcl9pbnQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX2hhcmRfa25lZV9jb21wcmVzc29yX2Zsb2F0KSwKCSAgKGdzdF9hdWRpb19keW5hbWljX3RyYW5zZm9ybV9zb2Z0X2tuZWVfY29tcHJlc3Nvcl9pbnQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX3NvZnRfa25lZV9jb21wcmVzc29yX2Zsb2F0KSwKCSAgKGdzdF9hdWRpb19keW5hbWljX3RyYW5zZm9ybV9oYXJkX2tuZWVfZXhwYW5kZXJfaW50KSwKCSAgKGdzdF9hdWRpb19keW5hbWljX3RyYW5zZm9ybV9oYXJkX2tuZWVfZXhwYW5kZXJfZmxvYXQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX3NvZnRfa25lZV9leHBhbmRlcl9pbnQpLAoJICAoZ3N0X2F1ZGlvX2R5bmFtaWNfdHJhbnNmb3JtX3NvZnRfa25lZV9leHBhbmRlcl9mbG9hdCksCgkgIChnc3RfYXVkaW9fZHluYW1pY190cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZHluYW1pYy5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZnguYzogKHBsdWdpbl9pbml0KToKCSAgQWRkIG5ldyBhdWRpb2R5bmFtaWMgZWxlbWVudCB3aGljaCBjYW4gYWN0IGFzIGEgY29tcHJlc3NvciBvcgoJICBleHBhbmRlci4gU3VwcG9ydGVkIGFyZSBoYXJkLWtuZWUgYW5kIHNvZnQta25lZSBvcGVyYXRpb24gbW9kZXMgd2l0aAoJICB1c2VyLXNwZWNpZmllZCByYXRpbyBhbmQgdGhyZXNob2xkLgoJICBBdHRhY2sgYW5kIHJlbGVhc2UgcGFyYW1ldGVycyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZCBidXQgd2lsbCBmb2xsb3cuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meC54bWw6CgkgIEludGVncmF0ZSBhdWRpb2R5bmFtaWMgaW50byB0aGUgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2R5bmFtaWMuYzogKHNldHVwX2R5bmFtaWMpLAoJICAoY2xlYW51cF9keW5hbWljKSwgKEdTVF9TVEFSVF9URVNUKSwgKGR5bmFtaWNfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGF1ZGlvZHluYW1pYy4KCjIwMDctMDMtMDcgMTk6NDg6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IEZyZWUgaGFuZGxlcyB0aGF0IHdlIGFsbG9jYXRlZCB3aGVuIGV4aXRpbmcgdmlhIHRoZSBlcnJvciBwYXRocy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IChnc3RfZHYxMzk0c3JjX3N0YXJ0KToKCSAgRnJlZSBoYW5kbGVzIHRoYXQgd2UgYWxsb2NhdGVkIHdoZW4gZXhpdGluZyB2aWEgdGhlIGVycm9yIHBhdGhzLgoKMjAwNy0wMy0wNyAxMjowNzowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svOiBVc2UgYSBnZW5lcmFsIHdhdnBhY2sgZGVidWcgY2F0ZWdvcnkgZm9yIGNvbW1vbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2NvbW1vbi5jOgoJICBVc2UgYSBnZW5lcmFsIHdhdnBhY2sgZGVidWcgY2F0ZWdvcnkgZm9yIGNvbW1vbiBjb2RlLgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tzdHJlYW1yZWFkZXIuYzoKCSAgKGdzdF93YXZwYWNrX3N0cmVhbV9yZWFkZXJfc2V0X3Bvc19hYnMpLAoJICAoZ3N0X3dhdnBhY2tfc3RyZWFtX3JlYWRlcl9zZXRfcG9zX3JlbCksCgkgIChnc3Rfd2F2cGFja19zdHJlYW1fcmVhZGVyX3dyaXRlX2J5dGVzKToKCSAgVXNlIHRoZSBnZW5lcmFsIHdhdnBhY2sgZGVidWcgY2F0ZWdvcnkgaGVyZSB0b28gYW5kIGFkZCBkZWJ1ZwoJICBvdXRwdXQgdG8gdGhlIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBub3QgYmUgY2FsbGVkIGF0IGFsbCBieQoJICB0aGUgd2F2cGFjayBsaWJyYXJ5LgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogKGdzdF93YXZwYWNrX2RlY19wbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX3BsdWdpbl9pbml0KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX3BsdWdpbl9pbml0KToKCSAgQ2hhbmdlIGRlYnVnZ2luZyBjYXRlZ29yeSBuYW1lcyB0byBjb25mb3JtIHRvIHRoZSBjb252ZW50aW9ucy4KCjIwMDctMDMtMDcgMTE6Mzc6MjMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4Lio6IFNoYXJlIHF0ZGVtdXggZGVidWcgY2F0ZWdvcnkgYWNyb3NzIGFsbCBmaWxlcywgb3RoZXJ3aXNlIGFsbCBkZWJ1Z2dpbmcgaW4gZmlsZXMgb3RoZXIgdGhhbiBxdGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgU2hhcmUgcXRkZW11eCBkZWJ1ZyBjYXRlZ29yeSBhY3Jvc3MgYWxsIGZpbGVzLCBvdGhlcndpc2UgYWxsIGRlYnVnZ2luZwoJICBpbiBmaWxlcyBvdGhlciB0aGFuIHF0ZGVtdXguYyB3b3VsZCBlbmQgdXAgaW4gdGhlIGRlZmF1bHQgY2F0ZWdvcnkuCgoyMDA3LTAzLTA3IDExOjI0OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvbGV2ZWwvZ3N0bGV2ZWwuKjogUmVzb2x2ZSBtZXNzYWdlIHRpbWVzdGFtcHMgYWdhaW5zdCB0aGUgcGxheWJhY2sgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmM6IChnc3RfbGV2ZWxfY2xhc3NfaW5pdCksCgkgIChnc3RfbGV2ZWxfc2V0X2NhcHMpLCAoZ3N0X2xldmVsX3N0YXJ0KSwgKGdzdF9sZXZlbF9ldmVudCksCgkgIChnc3RfbGV2ZWxfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSAgUmVzb2x2ZSBtZXNzYWdlIHRpbWVzdGFtcHMgYWdhaW5zdCB0aGUgcGxheWJhY2sgc2VnbWVudC4KCjIwMDctMDMtMDcgMTE6MjM6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS4qOiBPbmUgRklYTUUgbGVzcywgYnkgcmVzb2x2aW5nIG1lc3NhZ2UgdGltZXN0YW1wcyBhZ2FpbnN0IHRoZSBwbGF5YmFjayBzZWdtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9zdGFydCksCgkgIChnc3Rfc3BlY3RydW1fZXZlbnQpLCAoZ3N0X3NwZWN0cnVtX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmg6CgkgIE9uZSBGSVhNRSBsZXNzLCBieSByZXNvbHZpbmcgbWVzc2FnZSB0aW1lc3RhbXBzIGFnYWluc3QgdGhlIHBsYXliYWNrCgkgIHNlZ21lbnQuCgoyMDA3LTAzLTA2IDIzOjIxOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBGaXggQ2hhbmdlTG9nIG1lc3NhZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBDaGFuZ2VMb2cgbWVzc2FnZQoKMjAwNy0wMy0wNiAyMzoxOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiBEb24ndCBsZWFrIGNhcHM6IG1ha2UgZ3N0X2lkM2RlbXV4X2FkZF9zcmNwYWQoKSBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGNhcHMgcGFzc2VkIHRvIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9hZGRfc3JjcGFkKSwKCSAgKGdzdF9pZDNkZW11eF9zaW5rX2FjdGl2YXRlKToKCSAgRG9uJ3QgbGVhayBjYXBzOiBtYWtlIGdzdF9pZDNkZW11eF9hZGRfc3JjcGFkKCkgbm90IHRha2Ugb3duZXJzaGlwIG9mIHRoZQoJICBjYXBzIHBhc3NlZCB0byBpdCAocHJldmlvdXNsbHkgb25lIGNvZGUgcGF0aCBhc3N1bWVzIGl0IHRha2VzIG93bmVyc2hpcAoJICB3aGlsZSBhbm90aGVyIG9uZSBhc3N1bWVzIGl0IGRvZXNuJ3QpLgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9maWxlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9maWxlcy9pZDMtNDA3MzQ5LTEudGFnOgoJICAqIHRlc3RzL2ZpbGVzL2lkMy00MDczNDktMi50YWc6CgkgIEFkZCBkaXJlY3Rvcnkgd2hlcmUgZGF0YSBmb3IgdW5pdCB0ZXN0cyBjYW4gYmUgc3RvcmVkLgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzZGVtdXguYzogKHBhZF9hZGRlZF9jYiksIChlcnJvcl9jYiksCgkgIChyZWFkX3RhZ3NfZnJvbV9maWxlKSwgKHJ1bl9jaGVja19mb3JfZmlsZSksCgkgIChjaGVja19kYXRlXzE5NzdfMDZfMjMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoaWQzZGVtdXhfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBpZDNkZW11eCwgYW5kIGluIHBhcnRpY3VsYXIgZm9yIGJ1ZyAjNDA3MzQ5LiBPbmx5CgkgIHRlc3RpbmcgcHVsbC1tb2RlIGZvciBub3c7IHB1c2ggbW9kZSBkb2Vzbid0IHdvcmsgeWV0IGJlY2F1c2UgdGhlIHRlc3QKCSAgZmlsZXMgYXJlIHNtYWxsZXIgdGhhbiBJRDNfVFlQRV9GSU5EX01JTl9TSVpFLgoKMjAwNy0wMy0wNiAyMjoxNDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBBZGQgbWlzc2luZyBiYWNrc2xhc2ggYXQgZW5kIG9mIGxpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBBZGQgbWlzc2luZyBiYWNrc2xhc2ggYXQgZW5kIG9mIGxpbmUuCgoyMDA3LTAzLTA2IDE4OjM2OjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBUcmlnZ2VyIHJlYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBUcmlnZ2VyIHJlYnVpbGQuCgoyMDA3LTAzLTA2IDE4OjE2OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2lkM2RlbXV4LzogRG8gbm90IGNvbnZlcnQgb2Jzb2xldGUgVERBL1REQVQgZnJhbWVzIHRvIFREUkMgZnJhbWVzLCBvdGhlcndpc2UgdGhlIGZvdXItZGlnaXQgbnVtYmVyIHdpbGwgYmUgaW50ZXJwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6IChpZDNkZW11eF9pZDN2Ml9mcmFtZXNfdG9fdGFnX2xpc3QpOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmg6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSksCgkgIChwYXJzZV9vYnNvbGV0ZV90ZGF0X2ZyYW1lKToKCSAgRG8gbm90IGNvbnZlcnQgb2Jzb2xldGUgVERBL1REQVQgZnJhbWVzIHRvIFREUkMgZnJhbWVzLCBvdGhlcndpc2UKCSAgdGhlIGZvdXItZGlnaXQgbnVtYmVyIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSB5ZWFyLCB3aGVyZWFzIGl0IGlzCgkgIG1vbnRoIGFuZCBkYXkgaW4gRERNTSBmb3JtYXQuIEluc3RlYWQsIHBhcnNlIFREQVQgZnJhbWVzIGFuZCBmaXggdXAKCSAgdGhlIGRhdGUgaW4gdGhlIEdTVF9UQUdfREFURSB0YWcgbGF0ZXIgaWYgd2UgYWxzbyBleHRyYWN0ZWQgYSB5ZWFyLgoJICBGaXhlcyAjNDA3MzQ5LgoKMjAwNy0wMy0wNiAxNDo1MzowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5jOiBGaXggdXAgdGhlIGRpc3Bvc2UgbG9naWMgc28gaXQgZG9lc24ndCBsZWFrLCBhbmQgZml4IHNldHRpbmcgb2YgdGhlIGNoaWxkIHN0YXRlIHNvIHRoYXQgd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuYzogKGdzdF9zd2l0Y2hfc2lua19kaXNwb3NlKSwKCSAgKGdzdF9zd2l0Y2hfY29tbWl0X25ld19raWQpOgoJICBGaXggdXAgdGhlIGRpc3Bvc2UgbG9naWMgc28gaXQgZG9lc24ndCBsZWFrLCBhbmQgZml4IHNldHRpbmcgb2YKCSAgdGhlIGNoaWxkIHN0YXRlIHNvIHRoYXQgd2UgZG9uJ3Qgc2V0IGEgY2hpbGQgdG8gb3VyIGN1cnJlbnQgc3RhdGUKCSAganVzdCBhcyB3ZSBhcmUgY2hhbmdpbmcgaXQgdG8gc29tZXRoaW5nIGVsc2UuCgoyMDA3LTAzLTA2IDEzOjU3OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IEZpeCBhbmQgY2xlYW51cCBkZWZhdWx0IHByb3BlcnR5IHZhbHVlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fY2xhc3NfaW5pdCksCgkgIChnc3Rfc3BlY3RydW1faW5pdCksIChnc3Rfc3BlY3RydW1fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zcGVjdHJ1bV90cmFuc2Zvcm1faXApOgoJICBGaXggYW5kIGNsZWFudXAgZGVmYXVsdCBwcm9wZXJ0eSB2YWx1ZXMuCgkgIEFkZCBGSVhNRXMgZm9yIHN0dWZmIHRoYXQgbG9va3MgcmF0aGVyIHdyb25nLgoKMjAwNy0wMy0wNiAxMzoyMToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nb29tL2dzdGdvb20uKjogRG9jdW1lbnQsIGZpeCBhbmQgaW1wcm92ZSBnb29tIGFkYXB0ZXIgYmVoYXZpb3VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9zcmNfc2V0Y2FwcyksIChnZXRfYnVmZmVyKSwKCSAgKGdzdF9nb29tX2NoYWluKToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmg6CgkgIERvY3VtZW50LCBmaXggYW5kIGltcHJvdmUgZ29vbSBhZGFwdGVyIGJlaGF2aW91ci4KCSAgRml4ZXMgIzQwNzAwNi4KCjIwMDctMDMtMDUgMTg6NDM6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXh0L2VzZC9lc2RzaW5rLmM6IFVucmVmIHN0YXRpYyBwYWQgdGVtcGxhdGUgYWZ0ZXIgdXNpbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9lc2QvZXNkc2luay5jOiAoZ3N0X2VzZHNpbmtfb3Blbik6CgkgIFVucmVmIHN0YXRpYyBwYWQgdGVtcGxhdGUgYWZ0ZXIgdXNpbmcgaXQuCgoyMDA3LTAzLTA1IDE3OjE3OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6IEZpeCB1cCB0aGUgcmVmZXJlbmNlIGNvdW50aW5nIG9mIHRoZSBjaGlsZCBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuYzogKGdzdF9zd2l0Y2hfc2lua19kaXNwb3NlKSwKCSAgKGdzdF9zd2l0Y2hfY29tbWl0X25ld19raWQpOgoJICBGaXggdXAgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBvZiB0aGUgY2hpbGQgZWxlbWVudHMuCgoyMDA3LTAzLTA1IDE3OjA4OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEZpeCBlbmNvZGluZy1uYW1lIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOiAoZ3N0X3J0cF9tcDRnX3BheV9zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOiAoZ3N0X3J0cF90aGVvcmFfcGF5X2ZpbmlzaF9oZWFkZXJzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZ3N0X3J0cF92b3JiaXNfcGF5X2ZpbmlzaF9oZWFkZXJzKToKCSAgRml4IGVuY29kaW5nLW5hbWUgY2FzZS4KCjIwMDctMDMtMDUgMTY6Mzk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogRml4IHNwZWV4IChkZSlwYXlsb2FkZXIuIEZpeGVzICMzNTgwNDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOiAoZ3N0X3J0cF9zcGVleF9kZXBheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfc3BlZXhfZGVwYXlfZ2V0X21vZGUpLCAoZ3N0X3J0cF9zcGVleF9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfc3BlZXhfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOiAoZ3N0X3J0cF9zcGVleF9wYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfc3BlZXhfcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9zcGVleF9wYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX3NwZWV4X3BheV9wYXJzZV9pZGVudCksIChnc3RfcnRwX3NwZWV4X3BheV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9ydHBfc3BlZXhfcGF5X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5oOgoJICBGaXggc3BlZXggKGRlKXBheWxvYWRlci4gRml4ZXMgIzM1ODA0MC4KCjIwMDctMDMtMDUgMTU6NDI6NTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuYzogSW5zdGFsbCBmYWtlc2luayBpbiBOVUxMIGJ5IGZpeGluZyBzb21lIGJyb2tlbiBsb2dpYy4gVGhpcyBvYnZpYXRlcyB0aGUgbmVlZCB0byBtYW51YWxseSBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6IChnc3Rfc3dpdGNoX3NpbmtfcmVzZXQpLAoJICAoZ3N0X3N3aXRjaF9jb21taXRfbmV3X2tpZCksIChnc3Rfc3dpdGNoX3Npbmtfc2V0X2NoaWxkKToKCSAgSW5zdGFsbCBmYWtlc2luayBpbiBOVUxMIGJ5IGZpeGluZyBzb21lIGJyb2tlbiBsb2dpYy4gVGhpcyBvYnZpYXRlcwoJICB0aGUgbmVlZCB0byBtYW51YWxseSBzZXQgX0lTX1NJTksuCgkgIEFkZCBzb21lIGNvbW1lbnRzIGFuZCByZW1vdmUgYSBsaXR0bGUgY3J1ZnQgd2hpbGUgSSdtIGF0IGl0LgoKMjAwNy0wMy0wNSAxNDo0Njo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6IE1hcmsgdXMgYXMgYSBzaW5rIHdoZW4gd2UgaGF2ZSBubyBmYWtlc2luayBpbiBOVUxMLiBGaXhlcyAjNDE0ODg3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5jOiAoZ3N0X3N3aXRjaF9zaW5rX3Jlc2V0KToKCSAgTWFyayB1cyBhcyBhIHNpbmsgd2hlbiB3ZSBoYXZlIG5vIGZha2VzaW5rIGluIE5VTEwuIEZpeGVzICM0MTQ4ODcuCgoyMDA3LTAzLTA1IDA4OjMwOjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vOiBSZW1vdmUgdHdvIG9ic29sZXRlIGFuZCBjb25mdXNpbmcgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLWF1ZGlvdGVzdC5jOiAobWVzc2FnZV9oYW5kbGVyKToKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogKG1lc3NhZ2VfaGFuZGxlcik6CgkgIFJlbW92ZSB0d28gb2Jzb2xldGUgYW5kIGNvbmZ1c2luZyBjb21tZW50cy4KCjIwMDctMDMtMDQgMTg6NTI6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwby9QT1RGSUxFUy5pbjogVXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgVXBkYXRlLgoKMjAwNy0wMy0wNCAxNzozMzozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogR2FoISBBbHNvIGRpc2FibGUgZ2NvbmZ2aWRlb3NpbmsgZnJvbSB0aGUgdGVzdHMsIG90aGVyd2lzZSBpdCB3aWxsIGluc3RhbnRpYXRlIGF1dG92aWRlb3NpbmsuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIEdhaCEgQWxzbyBkaXNhYmxlIGdjb25mdmlkZW9zaW5rIGZyb20gdGhlIHRlc3RzLCBvdGhlcndpc2UKCSAgaXQgd2lsbCBpbnN0YW50aWF0ZSBhdXRvdmlkZW9zaW5rLCBhbmQgZGZidmlkZW9zaW5rIGFuZAoJICBsZWFrIG9uIHRoZSBidWlsZGJvdHMuCgoyMDA3LTAzLTA0IDE3OjEzOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6IE1ha2Ugc3VyZSB3ZSBhbHdheXMgZGVzdHJveSBvdXIgbGliY2RpbyBoYW5kbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6IChnc3RfY2Rpb19jZGRhX3NyY19vcGVuKSwKCSAgKGdzdF9jZGlvX2NkZGFfc3JjX2ZpbmFsaXplKToKCSAgTWFrZSBzdXJlIHdlIGFsd2F5cyBkZXN0cm95IG91ciBsaWJjZGlvIGhhbmRsZS4KCjIwMDctMDMtMDQgMTc6MDU6NTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERpc2FibGUgYXV0b3ZpZGVvc2luayBzbyB0aGUgYnVpbGRib3RzIGRvbid0IGJhcmYgb3ZlciBtZW1vcnkgbGVha2VkIGluIHRoZSBkaXJlY3RmYiBzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRGlzYWJsZSBhdXRvdmlkZW9zaW5rIHNvIHRoZSBidWlsZGJvdHMgZG9uJ3QgYmFyZiBvdmVyIG1lbW9yeQoJICBsZWFrZWQgaW4gdGhlIGRpcmVjdGZiIHNpbmsuCgoyMDA3LTAzLTA0IDE1OjI4OjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6IENoYWluIHVwIGluIGRpc3Bvc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogKGdzdF94aW1hZ2Vfc3JjX2Rpc3Bvc2UpOgoJICBDaGFpbiB1cCBpbiBkaXNwb3NlCgoyMDA3LTAzLTA0IDE1OjA3OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzogVXNlIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGluc3RlYWQgb2Ygc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQrcGFkX25ldy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOiAoZ3N0X211bHRpcGFydF9kZW11eF9pbml0KSwKCSAgKGdzdF9tdWx0aXBhcnRfZmluZF9wYWRfYnlfbWltZSk6CgkgIFVzZSBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBpbnN0ZWFkIG9mCgkgIHN0YXRpY19wYWRfdGVtcGxhdGVfZ2V0K3BhZF9uZXcuCgoyMDA3LTAzLTA0IDE0OjU2OjUzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6IENhdGNoIHRoZSBjYXNlIHdoZXJlIG5vIGNsb2NrIGhhcyBiZWVuIHNldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogKGdzdF94aW1hZ2Vfc3JjX2NyZWF0ZSk6CgkgIENhdGNoIHRoZSBjYXNlIHdoZXJlIG5vIGNsb2NrIGhhcyBiZWVuIHNldC4KCjIwMDctMDMtMDQgMTM6NTI6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IGEgYnVuY2ggb2YgbGVha3Mgc2hvd24gYnkgdGhlIG5ld2x5LWFkZGVkIHN0YXRlcyB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6IChnc3RfZmxhY19lbmNfZmluYWxpemUpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOiAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZ2NvbmZfYXVkaW9fc2lua19kaXNwb3NlKSwgKGdzdF9nY29uZl9hdWRpb19zaW5rX2ZpbmFsaXplKToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NyYy5jOiAoZ3N0X2djb25mX2F1ZGlvX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2djb25mX2F1ZGlvX3NyY19jbGFzc19pbml0KSwgKGdzdF9nY29uZl9hdWRpb19zcmNfZGlzcG9zZSksCgkgIChnc3RfZ2NvbmZfYXVkaW9fc3JjX2ZpbmFsaXplKSwgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuYzogKGdzdF9nY29uZl92aWRlb19zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfZ2NvbmZfdmlkZW9fc2lua19jbGFzc19pbml0KSwgKGdzdF9nY29uZl92aWRlb19zaW5rX2ZpbmFsaXplKSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5jOiAoZ3N0X2djb25mX3ZpZGVvX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2djb25mX3ZpZGVvX3NyY19jbGFzc19pbml0KSwgKGdzdF9nY29uZl92aWRlb19zcmNfZGlzcG9zZSksCgkgIChnc3RfZ2NvbmZfdmlkZW9fc3JjX2ZpbmFsaXplKSwgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0c3dpdGNoc2luay5jOiAoZ3N0X3N3aXRjaF9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N3aXRjaF9zaW5rX3Jlc2V0KSwgKGdzdF9zd2l0Y2hfc2lua19zZXRfY2hpbGQpOgoJICAqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmM6IChnc3RfaGFsX2F1ZGlvX3NpbmtfYmFzZV9pbml0KToKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc3JjLmM6IChnc3RfaGFsX2F1ZGlvX3NyY19iYXNlX2luaXQpOgoJICAqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6IChnc3Rfc2hvdXQyc2VuZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zaG91dDJzZW5kX2luaXQpLCAoZ3N0X3Nob3V0MnNlbmRfZmluYWxpemUpOgoJICAqIGdzdC9kZWJ1Zy90ZXN0cGx1Z2luLmM6IChnc3RfdGVzdF9jbGFzc19pbml0KSwKCSAgKGdzdF90ZXN0X2ZpbmFsaXplKToKCSAgKiBnc3QvZmx4L2dzdGZseGRlYy5jOiAoZ3N0X2ZseGRlY19jbGFzc19pbml0KSwKCSAgKGdzdF9mbHhkZWNfZGlzcG9zZSk6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzogKGdzdF9tdWx0aXBhcnRfbXV4X2ZpbmFsaXplKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzogKGdzdF9ydHBfbXA0Z19wYXlfZmluYWxpemUpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2luaXQpLAoJICAoZ3N0X3J0c3BzcmNfZmluYWxpemUpOgoJICAqIGdzdC9ydHNwL3J0c3BleHR3bXMuYzogKHJ0c3BfZXh0X3dtc19mcmVlX2NvbnRleHQpOgoJICAqIGdzdC9ydHNwL3J0c3BleHR3bXMuaDoKCSAgKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzogKGdzdF9zbXB0ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9zbXB0ZV9maW5hbGl6ZSk6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfZmluYWxpemUpOgoJICAqIGdzdC91ZHAvZ3N0dWRwc2luay5jOiAoZ3N0X3VkcHNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfdWRwc2lua19maW5hbGl6ZSk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfZGlzcG9zZSksCgkgIChnc3Rfd2F2cGFyc2Vfc2lua19hY3RpdmF0ZSk6CgkgICogc3lzL29zcy9nc3Rvc3NzaW5rLmM6IChnc3Rfb3NzX3NpbmtfZmluYWxpc2UpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IChnc3Rfb3NzX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9vc3Nfc3JjX2ZpbmFsaXplKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6IChnc3RfdjRsMl9vYmplY3RfZGVzdHJveSk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Y0bDJzcmNfZmluYWxpemUpOgoJICAqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6IChnc3RfeGltYWdlX3NyY194aW1hZ2VfZ2V0KToKCSAgRml4IGEgYnVuY2ggb2YgbGVha3Mgc2hvd24gYnkgdGhlIG5ld2x5LWFkZGVkIHN0YXRlcyB0ZXN0LgoKMjAwNy0wMy0wNCAxMzo0MTowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvZHYvZ3N0ZHZkZWMuYzogVXNlIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGluc3RlYWQgb2Ygc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQrcGFkX25ldy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVjLmM6IChnc3RfZHZkZWNfaW5pdCk6CgkgIFVzZSBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSBpbnN0ZWFkIG9mCgkgIHN0YXRpY19wYWRfdGVtcGxhdGVfZ2V0K3BhZF9uZXcuCgoyMDA3LTAzLTAzIDEzOjA2OjIxICswMDAwICBMb8OvYyBNaW5pZXIgPGxvb2wrZ25vbWVAdmlhLmVjcC5mcj4KCgkgIERvbid0IG1peCB0YWJzIGFuZCBzcGFjZXMgKCM0MTQxNjgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExvw69jIE1pbmllciA8bG9vbCtnbm9tZSBhdCB2aWEgZWNwIGZyPgoJICAqIGV4dC9saWJjYWNhL01ha2VmaWxlLmFtOgoJICAqIGdzdC9kZWJ1Zy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgbWl4IHRhYnMgYW5kIHNwYWNlcyAoIzQxNDE2OCkuCgoyMDA3LTAzLTAyIDIxOjM1OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljLy5jdnNpZ25vcmU6IElnbm9yZSBmaWxlcyB0byBwbGVhc2UgYnVpbGRib3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmN2c2lnbm9yZToKCSAgSWdub3JlIGZpbGVzIHRvIHBsZWFzZSBidWlsZGJvdC4KCjIwMDctMDMtMDIgMjE6MDE6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBVbmJyZWFrIG15IHByZXZpb3VzIGNvbW1pdCAoc3dhcHBlZCBub21pbmF0b3IgJiBkZW5vbWluYXRvcikuIFRpbSwgdGhhbmtzIGZvciBzcG90dGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpLAoJICAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKToKCSAgVW5icmVhayBteSBwcmV2aW91cyBjb21taXQgKHN3YXBwZWQgbm9taW5hdG9yICYgZGVub21pbmF0b3IpLiBUaW0sCgkgIHRoYW5rcyBmb3Igc3BvdHRpbmcuCgoyMDA3LTAzLTAyIDE2OjA4OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2NkaW8vZ3N0Y2Rpb2NkZGFzcmMuYzogU21hbGwgY29kZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NkaW8vZ3N0Y2Rpb2NkZGFzcmMuYzogKGdzdF9jZGlvX2NkZGFfc3JjX3Byb2JlX2RldmljZXMpLAoJICAoZ3N0X2NkaW9fY2RkYV9zcmNfcmVhZF9zZWN0b3IpLCAoZ3N0X2NkaW9fY2RkYV9zcmNfb3BlbiksCgkgIChnc3RfY2Rpb19jZGRhX3NyY19maW5hbGl6ZSk6CgkgIFNtYWxsIGNvZGUgY2xlYW51cHMuCgkgIERvbid0IHVzZSBwYWRfYWxsb2MgYXMgdGhlIGJhc2UgY2xhc3MgY2Fubm90IGRlYWwgd2l0aCB0aGUgZXJyb3IgY29kZXMuCgoyMDA3LTAzLTAyIDEzOjQwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYzogRml4IGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfdWRwc3JjX2NyZWF0ZSk6CgkgIEZpeCBkb2MuCgoyMDA3LTAzLTAyIDEzOjI5OjI1ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEhhbmRsZSByb3VuZGluZyBiZXR0ZXIgdG8gbm90IGRyb3AgbGFzdCBzYW1wbGUgZnJhbWUuIEZpeGVzICMzNTY2OTIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAodWludDY0X2NlaWxpbmdfc2NhbGVfaW50KSwKCSAgKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSk6CgkgIEhhbmRsZSByb3VuZGluZyBiZXR0ZXIgdG8gbm90IGRyb3AgbGFzdCBzYW1wbGUgZnJhbWUuIEZpeGVzICMzNTY2OTIKCjIwMDctMDMtMDIgMTM6MTk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERpc2FibGUgY2FjYXNpbmsgZnJvbSB0aGUgc3RhdGVzIGNoZWNrIHRvbyAtIGl0IGFsc28gY2FsbHMgZXhpdCgxKSBvbiB1cyB3aGVuIGl0IGNhbid0IGZpbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBEaXNhYmxlIGNhY2FzaW5rIGZyb20gdGhlIHN0YXRlcyBjaGVjayB0b28gLSBpdCBhbHNvIGNhbGxzIGV4aXQoMSkKCSAgb24gdXMgd2hlbiBpdCBjYW4ndCBmaW5kIGEgdGVybWluYWwgdG8gdGFsayB0by4KCjIwMDctMDMtMDIgMTI6NTY6MTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy4qOiBBZGQgc3VwcG9ydCB0byBzdHJpcCBwcm9wcmlldGFyeSBoZWFkZXJzLiBGaXhlcyAjMzUwMjk2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpciBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3VkcHNyY19pbml0KSwKCSAgKGdzdF91ZHBzcmNfY3JlYXRlKSwgKGdzdF91ZHBzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF91ZHBzcmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5oOgoJICBBZGQgc3VwcG9ydCB0byBzdHJpcCBwcm9wcmlldGFyeSBoZWFkZXJzLiBGaXhlcyAjMzUwMjk2LgoKMjAwNy0wMy0wMiAxMjo1Mjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6IEZpeCBjb21waWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzogKGdzdF9ydHBfbXAydF9kZXBheV9wcm9jZXNzKToKCSAgRml4IGNvbXBpbGF0aW9uLgoKMjAwNy0wMy0wMiAxMjoxNjoxNiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5Lio6IEFkZCBzdXBwb3J0IHRvIHN0cmlwIG9mZiBwcm9wcmlldGFyeSBoZWFkZXJzLiBGaXhlcyAjMzUwMjc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpciBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6IChnc3RfcnRwX21wMnRfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX21wMnRfZGVwYXlfaW5pdCksIChnc3RfcnRwX21wMnRfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX21wMnRfZGVwYXlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfbXAydF9kZXBheV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5Lmg6CgkgIEFkZCBzdXBwb3J0IHRvIHN0cmlwIG9mZiBwcm9wcmlldGFyeSBoZWFkZXJzLiBGaXhlcyAjMzUwMjc4LgoKMjAwNy0wMy0wMiAxMToyMjozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9oYWwvaGFsLmM6IEZpeCBjb21waWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2hhbC9oYWwuYzoKCSAgRml4IGNvbXBpbGF0aW9uLgoKMjAwNy0wMy0wMiAxMDo1NDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy4qOiBSZW1vdmUgZGV2aWNlLW5hbWUgZnJvbSBHc3RTdW5BdWRpb1NyYy4gRml4ZXMgIzQxMjU5Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6IChnc3Rfc3VuYXVkaW9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3VuYXVkaW9zcmNfaW5pdCksIChnc3Rfc3VuYXVkaW9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zdW5hdWRpb3NyY19vcGVuKToKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zcmMuaDoKCSAgUmVtb3ZlIGRldmljZS1uYW1lIGZyb20gR3N0U3VuQXVkaW9TcmMuIEZpeGVzICM0MTI1OTcuCgoyMDA3LTAzLTAxIDIxOjUwOjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvaGFsLzogSGF2aW5nIE5VTEwgYXMgVURJIHByZXZpb3VzbHkgc2VsZWN0ZWQgdGhlIGRlZmF1bHQgc2luay9zcmMuIENoYW5nZSB0aGlzIGJhY2sgYnV0IG1lbnRpb24gaXQgaW4gdGhlIGRlYnVnIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2hhbC9nc3RoYWxhdWRpb3NpbmsuYzogKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc3JjLmM6IChkb190b2dnbGVfZWxlbWVudCk6CgkgIEhhdmluZyBOVUxMIGFzIFVESSBwcmV2aW91c2x5IHNlbGVjdGVkIHRoZSBkZWZhdWx0IHNpbmsvc3JjLiBDaGFuZ2UKCSAgdGhpcyBiYWNrIGJ1dCBtZW50aW9uIGl0IGluIHRoZSBkZWJ1ZyBvdXRwdXQuCgkgICogZXh0L2hhbC9oYWwuYzogKGdzdF9oYWxfZ2V0X2Fsc2FfZWxlbWVudCksCgkgIChnc3RfaGFsX2dldF9vc3NfZWxlbWVudCksIChnc3RfaGFsX2dldF9zdHJpbmcpLAoJICAoZ3N0X2hhbF9yZW5kZXJfYmluX2Zyb21fdWRpKSwgKGdzdF9oYWxfZ2V0X2F1ZGlvX3NpbmspLAoJICAoZ3N0X2hhbF9nZXRfYXVkaW9fc3JjKToKCSAgKiBleHQvaGFsL2hhbC5oOgoJICBSZWZhY3RvciBhIGJpdCwgY2hlY2sgYWxsIGVycm9yIGNvbmRpdGlvbnMsIGdyZWF0bHkgaW1wcm92ZSBkZWJ1Z2dpbmcKCSAgYW5kIGZpeCBzb21lIHBvc3NpYmxlIG1lbW9yeSBsZWFrcy4gQWxzbyBpbXBsZW1lbnQgT1NTIHN1cHBvcnQKCSAgYW5kIGFsbG93IHNwZWNpZnlpbmcgYW4gVURJIHRoYXQgcG9pbnRzIHRvIGEgcmVhbCBkZXZpY2UuIEZvciB0aGlzIHRoZQoJICBjaGlsZCBkZXZpY2Ugd2hpY2ggc3VwcG9ydHMgQUxTQSAocHJlZmVycmVkKSBvciBPU1MgaXMgdXNlZC4KCSAgQXMgYSBzaWRlIGVmZmVjdCB0aGlzIG1ha2VzIGl0IGltcG9zc2libGUgbm93IHRvIGdldCBhIGFsc2FzaW5rIGluCgkgIGhhbGF1ZGlvc3JjIGFuZCBhIGFsc2FzcmMgaW4gaGFsYXVkaW9zaW5rLgoKMjAwNy0wMy0wMSAxODo0NzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogRXJyb3JzIGZyb20gdGhlIHVkcCBzb3VyY2VzIGFyZSBub3QgZmF0YWwgdW5sZXNzIGFsbCBvZiB0aGVtIGFyZSBpbiBlcnJvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZmluZF9zdHJlYW1fYnlfY2hhbm5lbCksCgkgIChmaW5kX3N0cmVhbV9ieV91ZHBzcmMpLCAoZ3N0X3J0c3BzcmNfaGFuZGxlX21lc3NhZ2UpOgoJICBFcnJvcnMgZnJvbSB0aGUgdWRwIHNvdXJjZXMgYXJlIG5vdCBmYXRhbCB1bmxlc3MgYWxsIG9mIHRoZW0gYXJlIGluCgkgIGVycm9yLgoKMjAwNy0wMy0wMSAxODoxNDo0MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogRGlzYWJsZSBhYXNpbmsgaW4gdGhlIHN0YXRlcyB0ZXN0LiBJIHN1c3BlY3QgdGhpcyBpcyB0aGUgZWxlbWVudCB0aGF0IGlzIGNhbGxpbmcgZXhpdCgxKSB3aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIERpc2FibGUgYWFzaW5rIGluIHRoZSBzdGF0ZXMgdGVzdC4gSSBzdXNwZWN0IHRoaXMgaXMgdGhlIGVsZW1lbnQgdGhhdAoJICBpcyBjYWxsaW5nIGV4aXQoMSkgd2hlbiBpdCBjYW4ndCBwcm9jZWVkLgoKMjAwNy0wMy0wMSAxNzoyNjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogRHJhdyBwbHVnaW5zIGluIGZyb20gdGhlIGJ1aWxkIHRyZWUgc3lzLyBkaXIsIHJhdGhlciB0aGFuIHBpY2tpbmcgdXAgdGhlIGFscmVhZHkgaW5zdGFsbGVkIHYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIERyYXcgcGx1Z2lucyBpbiBmcm9tIHRoZSBidWlsZCB0cmVlIHN5cy8gZGlyLCByYXRoZXIgdGhhbiBwaWNraW5nCgkgIHVwIHRoZSBhbHJlYWR5IGluc3RhbGxlZCB2ZXJzaW9ucy4KCjIwMDctMDMtMDEgMTA6NDQ6MzYgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiBFcnJvciBvdXQgY29ycmVjdGx5IHdoZW4gZ2V0dGluZyB4Y29udGV4dCBmYWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDEgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfb3Blbl9kaXNwbGF5KToKCSAgRXJyb3Igb3V0IGNvcnJlY3RseSB3aGVuIGdldHRpbmcgeGNvbnRleHQgZmFpbHMuCgoyMDA3LTAzLTAxIDA5OjI5OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IE1ha2Ugc3RhdGUgY2hhbmdlIHRvIFBBVVNFRCBOT19QUkVST0xMIGJlY2F1c2UgdGhhdCdzIHdoYXQgaXQgd2lsbCBiZSBpbiB0aGUgZnV0dXJlIGFuZCBydHNwc3JjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOiAoZ3N0X3J0cGRlY19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHN0YXRlIGNoYW5nZSB0byBQQVVTRUQgTk9fUFJFUk9MTCBiZWNhdXNlIHRoYXQncyB3aGF0IGl0IHdpbGwgYmUgaW4KCSAgdGhlIGZ1dHVyZSBhbmQgcnRzcHNyYyByZWxpZXMgb24gaXQuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpLAoJICAoZ3N0X3J0c3BzcmNfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgZXJyb3Igb3V0IHdoZW4gd2UgZG9uJ3QgZ2V0IGFuIGVycm9yIGZyb20gdGhlIHN0YXRlIGNoYW5nZQoJICBmdW5jdGlvbi4KCjIwMDctMDMtMDEgMDE6NDg6NTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC9oYWwvOiBDaGVjayBpZiB0aGUgZGV2aWNlIFVESSBpcyBzZXQgYmVmb3JlIHRyeWluZyB0byBxdWVyeSBIQUwgYWJvdXQgaXQgYW5kIGdpdmUgYSB1c2VmdWwgZXJyb3IgbWVzc2FnZSBpZiBpdCB3YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc2luay5jOiAoZG9fdG9nZ2xlX2VsZW1lbnQpOgoJICAqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zcmMuYzogKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgQ2hlY2sgaWYgdGhlIGRldmljZSBVREkgaXMgc2V0IGJlZm9yZSB0cnlpbmcgdG8gcXVlcnkgSEFMCgkgIGFib3V0IGl0IGFuZCBnaXZlIGEgdXNlZnVsIGVycm9yIG1lc3NhZ2UgaWYgaXQgd2Fzbid0IHNldC4KCSAgKiBleHQvaGFsL2hhbC5jOiAoZ3N0X2hhbF9nZXRfc3RyaW5nKToKCSAgRG9uJ3QgcXVlcnkgSEFMIGZvciBOVUxMIFVESXMuIFBhc3NpbmcgTlVMTCBhcyBVREkgdG8gSEFMCgkgIGdpdmVzIGFuIGFzc2VydGlvbiBmYWlsdXJlIGluIEQtQnVzIHdoZW4gcnVubmluZyB3aXRoCgkgIERCVVNfRkFUQUxfV0FSTklOR1M9MS4KCjIwMDctMDItMjggMTk6Mjk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnIHRvIHRydW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgY29uZmlnIHRvIHRydW5rCgoyMDA3LTAyLTI4IDE5OjI5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQ29udmVydCB0byBuZXcgQUdfR1NUIHN0eWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENvbnZlcnQgdG8gbmV3IEFHX0dTVCBzdHlsZS4KCjIwMDctMDItMjggMTI6NTk6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBhZGQgdGVzdCBmb3Igc3RhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IChHU1RfU1RBUlRfVEVTVCksIChzdGF0ZXNfc3VpdGUpOgoJICBhZGQgdGVzdCBmb3Igc3RhdGVzCgoyMDA3LTAyLTI4IDEwOjU4OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogQWRkIG5ldyB2aWRlb2ZpbHRlciBjaGVjayB0byAuY3ZzaWdub3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBBZGQgbmV3IHZpZGVvZmlsdGVyIGNoZWNrIHRvIC5jdnNpZ25vcmUuCgoyMDA3LTAyLTI4IDEwOjU0OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBGaXggY29tYmluZWQgZmxvdyByZXR1cm4uIEZpeGVzICM0MTI2MDguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfY29tYmluZV9mbG93cyksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKSwKCSAgKGdzdF9hdmlfZGVtdXhfbG9vcCksIChnc3RfYXZpX2RlbXV4X2NoYWluKToKCSAgRml4IGNvbWJpbmVkIGZsb3cgcmV0dXJuLiBGaXhlcyAjNDEyNjA4LgoKMjAwNy0wMi0yOCAxMDo0MToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC92aWRlb2ZpbHRlci9NYWtlZmlsZS5hbTogRGlzdCBoZWFkZXIuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkgIERpc3QgaGVhZGVyLi4KCjIwMDctMDItMjggMTA6Mjk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuaDogQWRkIGhlYWRlciB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5oOgoJICBBZGQgaGVhZGVyIHRvby4KCjIwMDctMDItMjggMTA6MTc6MTUgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvdmlkZW9maWx0ZXIvOiBQb3J0IGdhbW1hIGZpbHRlciB0byAwLjEwLiBGaXhlcyAjNDEyNzA0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOiAoZ3N0X2dhbW1hX2Jhc2VfaW5pdCksCgkgIChnc3RfZ2FtbWFfY2xhc3NfaW5pdCksIChnc3RfZ2FtbWFfaW5pdCksIChnc3RfZ2FtbWFfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9nYW1tYV9nZXRfcHJvcGVydHkpLCAoZ3N0X2dhbW1hX2NhbGN1bGF0ZV90YWJsZXMpLAoJICAob2lsX3RhYmxlbG9va3VwX3U4KSwgKGdzdF9nYW1tYV9zZXRfY2FwcyksCgkgIChnc3RfZ2FtbWFfcGxhbmFyNDExX2lwKSwgKGdzdF9nYW1tYV90cmFuc2Zvcm1faXApLCAocGx1Z2luX2luaXQpOgoJICBQb3J0IGdhbW1hIGZpbHRlciB0byAwLjEwLiBGaXhlcyAjNDEyNzA0LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvZmlsdGVyLmM6IChzZXR1cF9maWx0ZXIpLAoJICAoY2xlYW51cF9maWx0ZXIpLCAoY2hlY2tfZmlsdGVyKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHZpZGVvYmFsYW5jZV9zdWl0ZSksICh2aWRlb2ZsaXBfc3VpdGUpLCAoZ2FtbWFfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB1bml0IHRlc3RzIGZvciB2aWRlb2ZpbHRlcnMuCgoyMDA3LTAyLTI4IDEwOjA2OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvVVJMUzogQWRkIGFub3RoZXIgaW50ZXJlc3RpbmcgdGVzdCB1cmwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL1VSTFM6CgkgIEFkZCBhbm90aGVyIGludGVyZXN0aW5nIHRlc3QgdXJsLgoJICAqIGdzdC9ydHNwL3J0c3BtZXNzYWdlLmM6IChydHNwX21lc3NhZ2VfZ2V0X2hlYWRlcik6CgkgIERvbid0IGFsbG93IGdldHRpbmcgaGVhZGVyIGZpZWxkcyBmcm9tIGRhdGEgcGFja2V0cy4KCjIwMDctMDItMjcgMjM6NDM6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGV4dC9zaG91dDIvZ3N0c2hvdXQyLio6IEFkZCBhIHByb3BlcnR5IGZvciB1c2VybmFtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzogKGdzdF9zaG91dDJzZW5kX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Nob3V0MnNlbmRfaW5pdCksIChnc3Rfc2hvdXQyc2VuZF9zdGFydCksCgkgIChnc3Rfc2hvdXQyc2VuZF9zZXRfcHJvcGVydHkpLCAoZ3N0X3Nob3V0MnNlbmRfZ2V0X3Byb3BlcnR5KToKCSAgKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5oOgoJICBBZGQgYSBwcm9wZXJ0eSBmb3IgdXNlcm5hbWUuCgoyMDA3LTAyLTI3IDEyOjAyOjAzICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3cGx1Z2luLmM6CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmg6CgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHBsdWdpbi5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuaDoKCSogc3lzL29zeHZpZGVvL2NvY29hd2luZG93Lmg6CgkqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgdXBkYXRlIGNvcHlyaWdodCBzdGF0ZW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgY29weXJpZ2h0IHN0YXRlbWVudHMKCjIwMDctMDItMjcgMTE6NTk6MjEgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb2VsZW1lbnQuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvZWxlbWVudC5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuaDoKCSAgdXBkYXRlIGNvcHlyaWdodCBzdGF0ZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBjb3B5cmlnaHQgc3RhdGVtZW50CgoyMDA3LTAyLTI3IDExOjMwOjE5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgc3lzL29zeHZpZGVvLzogRGlzYWJsZSB0aGUgY29jb2EgZXZlbnQgbG9vcCBzaW5jZSBpdCdzIGEgaHVnZSBtZW1vcnkgbGVhay4gU2hvdWxkIG9ubHkgbWF0dGVyIGlmIHRoZSBzaW5rIGlzbid0IHVzZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5oOgoJICAqIHN5cy9vc3h2aWRlby9jb2NvYXdpbmRvdy5tOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIERpc2FibGUgdGhlIGNvY29hIGV2ZW50IGxvb3Agc2luY2UgaXQncyBhIGh1Z2UgbWVtb3J5IGxlYWsuIFNob3VsZCBvbmx5CgkgIG1hdHRlciBpZiB0aGUgc2luayBpc24ndCB1c2VkIHdpdGhpbiBhbiBOU0FwcCAod2hpY2ggaGFzIGFscmVhZHkgZ290CgkgIGEgY29jYSBldmVudCBsb29wKS4KCSAgUmVtb3ZlIGFsbCB1bnVzZWQgY29kZS4KCjIwMDctMDItMjYgMTI6MDc6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3J0c3AvTWFrZWZpbGUuYW06IEZpeCBtYWtlIGNoZWNrIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvTWFrZWZpbGUuYW06CgkgIEZpeCBtYWtlIGNoZWNrIHRvby4KCjIwMDctMDItMjYgMTA6MDA6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3J0c3AvYmFzZTY0Lio6IENvbW1pdCBtaXNzaW5nIGZpbGVzIGZvciBiYXNlNjQgZW5jb2RpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2Jhc2U2NC5jOiAodXRpbF9iYXNlNjRfZW5jb2RlKToKCSAgKiBnc3QvcnRzcC9iYXNlNjQuaDoKCSAgQ29tbWl0IG1pc3NpbmcgZmlsZXMgZm9yIGJhc2U2NCBlbmNvZGluZy4KCjIwMDctMDItMjQgMjI6NTc6NDkgKzAwMDAgIExvw69jIE1pbmllciA8bG9vbCtnbm9tZUB2aWEuZWNwLmZyPgoKCSAgRml4IGJ1aWxkIHdpdGggTERGTEFHUz0nLVdsLC16LGRlZnMnICgjNDEwOTk3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IExvw69jIE1pbmllciA8bG9vbCtnbm9tZSBhdCB2aWEgZWNwIGZyPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvYW5ub2RleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvanBlZy9NYWtlZmlsZS5hbToKCSAgKiBleHQvc3BlZXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FscGhhL01ha2VmaWxlLmFtOgoJICAqIGdzdC9jdXR0ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlYnVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lZmZlY3R2L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICAqIGdzdC9sZXZlbC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc21wdGUvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGQgd2l0aCBMREZMQUdTPSctV2wsLXosZGVmcycgKCM0MTA5OTcpCgoyMDA3LTAyLTI0IDIyOjUyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IGJ1aWxkIHdpdGggTERGTEFHUz0nLVdsLC16LGRlZnMnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L2dzbS9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJICAqIGV4dC93YXZwYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ZpbHRlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXZlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9uc2YvTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlcGxheWdhaW4vTWFrZWZpbGUuYW06CgkgICogZ3N0L3NwZWVkL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGQgd2l0aCBMREZMQUdTPSctV2wsLXosZGVmcycuCgoyMDA3LTAyLTIzIDE5OjEyOjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9ydHNwLzogZ19iYXNlNjRfZW5jb2RlIGlzIGEgR0xpYiAyLjEyIGZ1bmN0aW9uLiBVc2UgYW4gZXF1aXZhbGVudCB0YWtlbiBmcm9tIGljZWNhc3QgdG8gcmVwbGFjZSBpdC4gUmVsaWNlbnNlZCBmci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAoYXBwZW5kX2F1dGhfaGVhZGVyKSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9zZW5kKSwgKHJ0c3BfY29ubmVjdGlvbl9zZXRfYXV0aCk6CgkgIGdfYmFzZTY0X2VuY29kZSBpcyBhIEdMaWIgMi4xMiBmdW5jdGlvbi4gVXNlIGFuIGVxdWl2YWxlbnQgdGFrZW4KCSAgZnJvbSBpY2VjYXN0IHRvIHJlcGxhY2UgaXQuIFJlbGljZW5zZWQgZnJvbSBHUEwgY291cnRlc3kgb2YgTWlrZQoJICBTbWl0aC4KCjIwMDctMDItMjMgMTg6MTI6MjcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L3J0c3AvOiBJbXBsZW1lbnQgc2ltcGxlIEJhc2ljIEF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgc28gdGhhdCB1cmxzIGxpa2UgcnRzcDovL3VzZXI6cGFzc0Bob3N0bmFtZS9ydHNwc3RyZWFtIHdvcmsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF9ydHNwc3JjX2NyZWF0ZV9zdHJlYW0pLCAocnRzcF9hdXRoX21ldGhvZF90b19zdHJpbmcpLAoJICAoZ3N0X3J0c3BzcmNfcGFyc2VfYXV0aF9oZHIpLCAoZ3N0X3J0c3BzcmNfc2V0dXBfYXV0aCksCgkgIChnc3RfcnRzcHNyY19zZW5kKSwgKGdzdF9ydHNwc3JjX3RyeV9zZW5kKSwgKGdzdF9ydHNwc3JjX29wZW4pLAoJICAoZ3N0X3J0c3BzcmNfY2xvc2UpLCAoZ3N0X3J0c3BzcmNfcGxheSksIChnc3RfcnRzcHNyY19wYXVzZSksCgkgIChnc3RfcnRzcHNyY191cmlfc2V0X3VyaSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChydHNwX2Nvbm5lY3Rpb25fY3JlYXRlKSwKCSAgKGFwcGVuZF9hdXRoX2hlYWRlciksIChydHNwX2Nvbm5lY3Rpb25fc2VuZCksCgkgIChydHNwX2Nvbm5lY3Rpb25fZnJlZSksIChydHNwX2Nvbm5lY3Rpb25fc2V0X2F1dGgpOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmg6CgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuaDoKCSAgKiBnc3QvcnRzcC9ydHNwdXJsLmM6IChydHNwX3VybF9nZXRfcmVxdWVzdF91cmkpOgoJICAqIGdzdC9ydHNwL3J0c3B1cmwuaDoKCSAgSW1wbGVtZW50IHNpbXBsZSBCYXNpYyBBdXRoZW50aWNhdGlvbiBzdXBwb3J0IHNvIHRoYXQgdXJscyBsaWtlCgkgIHJ0c3A6Ly91c2VyOnBhc3NAaG9zdG5hbWUvcnRzcHN0cmVhbSB3b3JrIG9uIGhvc3RzIHRoYXQgcmVxdWlyZQoJICBhdXRoZW50aWNhdGlvbi4KCjIwMDctMDItMjIgMTc6NTM6MjYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJICBGaXggc2VnZmF1bHQgd2hlbiBvcHBlbmluZyBhIHJhZGlvIGRldmljZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBzZWdmYXVsdCB3aGVuIG9wcGVuaW5nIGEgcmFkaW8gZGV2aWNlLgoKMjAwNy0wMi0yMiAxNDozNToyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRml4IGxldmVsIGZvciBtdWx0aS1jaGFubmVsIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiAoZ3N0X2xldmVsX3NldF9jYXBzKSwKCSAgKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICAqIHN5cy92NGwyL1JFQURNRToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggbGV2ZWwgZm9yIG11bHRpLWNoYW5uZWwgY2FzZS4KCjIwMDctMDItMjEgMTA6MTg6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC4qOiBVc2UgZnVuY3Rpb24gcG9pbnRlciBmb3IgcHJvY2VzcyBmdW5jdGlvbiBhbmQgYWRkIHByb2Nlc3MgZnVuY3Rpb25zIGZvciBmbG9hdCBhdWRpby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmM6IChnc3RfbGV2ZWxfaW5pdCksIChnc3RfbGV2ZWxfc2V0X2NhcHMpLAoJICAoZ3N0X2xldmVsX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmg6CgkgIFVzZSBmdW5jdGlvbiBwb2ludGVyIGZvciBwcm9jZXNzIGZ1bmN0aW9uIGFuZCBhZGQgcHJvY2VzcyBmdW5jdGlvbnMKCSAgZm9yIGZsb2F0IGF1ZGlvLgoKMjAwNy0wMi0yMCAyMTozNDowMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay4qOiBSZW1vdmUgaW5jbHVkZSBvZiB1bnVzZWQgaGVhZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuaDoKCSAgUmVtb3ZlIGluY2x1ZGUgb2YgdW51c2VkIGhlYWRlcnMuCgkgICogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3JtcGx1Z2luLmM6CgkgICogc3lzL3dhdmVmb3JtL2dzdHdhdmVmb3Jtc2luay5jOgoJICAqIHN5cy93YXZlZm9ybS9nc3R3YXZlZm9ybXNpbmsuaDoKCSAgKiB3aW4zMi92czYvbGliZ3N0d2F2ZWZvcm0uZHNwOgoJICBBZGQgYSBuZXcgd2F2ZWZvcm0gcGx1Z2luIHdoaWNoIGluY2x1ZGVzIGFuIGF1ZGlvIHNpbmsKCSAgZWxlbWVudCB1c2luZyB0aGUgV2F2ZUZvcm0gd2luMzIgQVBJLgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBBZGQgdGhlIG5ldyBwcm9qZWN0IGZpbGUgZm9ybSB3YXZlZm9ybSBwbHVnaW4uCgoyMDA3LTAyLTE5IDEyOjIyOjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IFJlYWRkIEdTVF9FTEVNRU5UX0VSUk9SIGlmIHdlIGNhbid0IHJlZW5xdWUgYnVmZmVycyBhZnRlciBFSU8sIGZpeGVzICM0MDczNjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJzcmNfZmlsbF9mb3JtYXRfbGlzdCksCgkgIChnc3RfdjRsMnNyY19ncmFiX2ZyYW1lKSwgKGdzdF92NGwyc3JjX3NldF9jYXB0dXJlKSwKCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfaW5pdCk6CgkgIFJlYWRkIEdTVF9FTEVNRU5UX0VSUk9SIGlmIHdlIGNhbid0IHJlZW5xdWUgYnVmZmVycyBhZnRlciBFSU8sCgkgIGZpeGVzICM0MDczNjkKCjIwMDctMDItMTggMTg6MDA6NTEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHN5cy9kaXJlY3RkcmF3LzogUHJlcGFyZSB0aGUgcGx1Z2luIHRvIG1vdmUgdG8gZ29vZDoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3BsdWdpbi5jOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgICogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuaDoKCSAgUHJlcGFyZSB0aGUgcGx1Z2luIHRvIG1vdmUgdG8gZ29vZDoKCSAgUmVtb3ZlIHVudXNlZC91bnRlc3RlZCBjb2RlIChyZW5kZXJpbmcgdG8gYW4gZXh0ZXJuIHN1cmZhY2UsCgkgIHl1diBmb3JtYXQgcmVuZGVyaW5nKS5Vc2UgR1NUXyhERUJVRy8qKV9PQkpFQ1QgbWFjcm9zCgkgIFJlbmFtZSBhbGwgZnVuY3Rpb25zIGZyb20gZ3N0X2RpcmVjdGRyYXdzaW5rIHRvIGdzdF9kaXJlY3RkcmF3X3NpbmsuCgkgIEFkZCBndGsgZG9jIHNlY3Rpb24KCSAgRml4IGEgYnVnIGluIGdzdF9kaXJlY3RkcmF3X3Npbmtfc2hvd19mcmFtZSwgbWVtY3B5IGxpbmUgYnkgbGluZQoJICByZXNwZWN0aW5nIGRlc3RpbmF0aW9uIHN1cmZhY2Ugc3RyaWRlLgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHBsdWdpbi5jOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmg6CgkgIFByZXBhcmUgdGhlIHBsdWdpbiB0byBtb3ZlIHRvIGdvb2Q6CgkgIFJlbmFtZSBhbGwgZnVuY3Rpb25zIGZyb20gZ3N0X2RpcmVjdHNvdW5kc2luayB0byBnc3RfZGlyZWN0c291bmRfc2luay4KCSAgQWRkIGd0ayBkb2Mgc2VjdGlvbgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgQWRkIGNvbmZpZy5oLmluCgoyMDA3LTAyLTE4IDEzOjI0OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEFkZGVkIHNpbXBsZSBtcGVnIHRyYW5zcG9ydCBzdHJlYW0gcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5LmM6IChnc3RfcnRwX21wMnRfcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX21wMnRfcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9tcDJ0X3BheV9pbml0KSwKCSAgKGdzdF9ydHBfbXAydF9wYXlfc2V0Y2FwcyksIChnc3RfcnRwX21wMnRfcGF5X2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cF9tcDJ0X3BheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0cGF5Lmg6CgkgIEFkZGVkIHNpbXBsZSBtcGVnIHRyYW5zcG9ydCBzdHJlYW0gcGF5bG9hZGVyLgoKMjAwNy0wMi0xNiAxMjozMjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL1VSTFM6IEFkZCBleGFtcGxlIEgyNjQgcnRzcCB1cmwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL1VSTFM6CgkgIEFkZCBleGFtcGxlIEgyNjQgcnRzcCB1cmwuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfbWVkaWFfdG9fY2FwcyksCgkgIChnc3RfcnRzcHNyY19oYW5kbGVfbWVzc2FnZSksIChnc3RfcnRzcHNyY19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBjb252ZXJ0IHZhbHVlcyB0byBsb3dlcmNhc2Ugb3Igd2UgbWlnaHQgbWVzcyB1cCBiYXNlNjQgZW5jb2RlZAoJICBwcm9wZXJ0aWVzLgoKMjAwNy0wMi0xNiAxMjozMDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvUkVBRE1FOiBGaXggY2FzZSBvZiBzdHJpbmcgcGFyYW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL1JFQURNRToKCSAgRml4IGNhc2Ugb2Ygc3RyaW5nIHBhcmFtcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiAoZ3N0X3J0cF9oMjY0X2RlcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9oMjY0X2RlcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9oMjY0X2RlcGF5X3Byb2Nlc3MpOgoJICBGaXggZGVwYXlsb2FkZXIsIHN1cHBvcnQgbW9yZSBwYWNrZXQgdHlwZXMuCgkgIEFkZCBzeW5jIGNvZGVzIHRvIG1ha2Ugc3VyZSB0aGUgcGFja2V0aXplciBjYW4gZG8gaXRzIGpvYi4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuYzogKGdzdF9ydHBfbXB2X2RlcGF5X3Byb2Nlc3MpOgoJICBGaXggY2FwcyBjYXNlIGFnYWluLgoKMjAwNy0wMi0xNSAxMjoyNjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IFNldCByaWdodCBjYXBzIG9uIG91dHB1dCBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiAoZ3N0X3J0cF9oMjY0X2RlcGF5X3Byb2Nlc3MpOgoJICBTZXQgcmlnaHQgY2FwcyBvbiBvdXRwdXQgYnVmZmVycy4KCjIwMDctMDItMTQgMTc6MDQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9zZHBtZXNzYWdlLmM6IENsZWFyIHN0YWNrIGFsbG9jYXRlZCBTRFBNZWRpYSBzdHJ1Y3QgYmVmb3JlIGNhbGxpbmcgX2luaXQoKSBvbiBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5jOiAoc2RwX3BhcnNlX2xpbmUpOgoJICBBcyBzcG90dGVkIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgIDxwa2ogYXQgYXhpcyBjb20+OgoJICBDbGVhciBzdGFjayBhbGxvY2F0ZWQgU0RQTWVkaWEgc3RydWN0IGJlZm9yZSBjYWxsaW5nIF9pbml0KCkgb24gaXQuCgkgIENsYXJpZnkgdGhpcyBpbiB0aGUgZG9jcyBhcyB3ZWxsLgoKMjAwNy0wMi0xNCAxNzowMToyNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzogRG9uJ3QgcmVzZXQgdGhlIHByb2ZpbGUgd2hlbiBnb2luZyBzd2l0Y2hpbmcgc3RhdGVzLCBhcyBpdCBtYWtlcyB0aGUgZWxlbWVudCBub24tcmV1c2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zaW5rLmM6IChnc3RfZ2NvbmZfYXVkaW9fc2lua19yZXNldCksCgkgIChkb19jaGFuZ2VfY2hpbGQpOgoJICBEb24ndCByZXNldCB0aGUgcHJvZmlsZSB3aGVuIGdvaW5nIHN3aXRjaGluZyBzdGF0ZXMsIGFzIGl0IG1ha2VzCgkgIHRoZSBlbGVtZW50IG5vbi1yZXVzYWJsZS4KCjIwMDctMDItMTQgMTU6MjQ6NTAgKzAwMDAgIGpwLmxpdSA8anBfbGl1QGFzdHJvY29tLmNuPgoKCSAgZ3N0L3J0c3Avc2RwbWVzc2FnZS4qOiBGaXggbWVtb3J5IG1hbmFnZW1lbnQgb2YgU0RQIG1lc3NhZ2VzLiBGaXhlcyAjNDA3NzkzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9zZHBtZXNzYWdlLmM6IChzZHBfb3JpZ2luX2luaXQpLCAoc2RwX2Nvbm5lY3Rpb25faW5pdCksCgkgIChzZHBfYmFuZHdpZHRoX2luaXQpLCAoc2RwX3RpbWVfaW5pdCksIChzZHBfem9uZV9pbml0KSwKCSAgKHNkcF9rZXlfaW5pdCksIChzZHBfYXR0cmlidXRlX2luaXQpLCAoc2RwX21lc3NhZ2VfaW5pdCksCgkgIChzZHBfbWVzc2FnZV91bmluaXQpLCAoc2RwX21lc3NhZ2VfZnJlZSksIChzZHBfbWVkaWFfaW5pdCksCgkgIChzZHBfbWVkaWFfdW5pbml0KSwgKHNkcF9tZWRpYV9mcmVlKSwgKHNkcF9tZXNzYWdlX2FkZF9tZWRpYSksCgkgIChzZHBfcGFyc2VfbGluZSk6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5oOgoJICBCYXNlZCBvbiBwYXRjaCBieToganAubGl1IDxqcF9saXUgYXQgYXN0cm9jb20gZG90IGNuPgoJICBGaXggbWVtb3J5IG1hbmFnZW1lbnQgb2YgU0RQIG1lc3NhZ2VzLiBGaXhlcyAjNDA3NzkzLgoKMjAwNy0wMi0xNCAxMjowNzowMSArMDAwMCAgemhhbmdmZWkgZ2FvIDxnYW96aGFuZ2ZlaUB5YWhvby5jb20uY24+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBBbGxvdyBtdXhpbmcgdmlkZW8veC1oMjY0ICh3YXMgYWxyZWFkeSBpbiB0aGUgY2FwcykuIEZpeGVzICM0MDc3ODAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogemhhbmdmZWkgZ2FvIDxnYW96aGFuZ2ZlaUB5YWhvby5jb20uY24+CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X3ZpZHNpbmtfc2V0X2NhcHMpOgoJICBBbGxvdyBtdXhpbmcgdmlkZW8veC1oMjY0ICh3YXMgYWxyZWFkeSBpbiB0aGUgY2FwcykuIEZpeGVzICM0MDc3ODAuCgoyMDA3LTAyLTE0IDEwOjA5OjEyICswMDAwICBqcC5saXUgPGpwX2xpdUBhc3Ryb2NvbS5jbj4KCgkgIGdzdC9ydHNwL3J0c3B1cmwuYzogRml4IHBhcnNpbmcgb2YgcGFzc3dvcmQgZmllbGQgaW4gdXJsLiBGaXhlcyAjNDA3Nzk3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpwLmxpdSA8anBfbGl1IGF0IGFzdHJvY29tIGRvdCBjbj4KCSAgKiBnc3QvcnRzcC9ydHNwdXJsLmM6IChydHNwX3VybF9wYXJzZSk6CgkgIEZpeCBwYXJzaW5nIG9mIHBhc3N3b3JkIGZpZWxkIGluIHVybC4gRml4ZXMgIzQwNzc5Ny4KCjIwMDctMDItMTQgMDk6NTU6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuKjogVXBkYXRlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2NsYXNzX2luaXQpLAoJICAoZ3N0X3dhdnBhcnNlX3Jlc2V0KSwgKGdzdF93YXZwYXJzZV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9kZXN0cm95X3NvdXJjZXBhZCksIChnc3Rfd2F2cGFyc2VfZm10KSwKCSAgKGdzdF93YXZwYXJzZV9wYXJzZV9maWxlX2hlYWRlciksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2luaXQpLAoJICAoZ3N0X3dhdnBhcnNlX3BlcmZvcm1fc2VlayksIChnc3Rfd2F2cGFyc2VfcGVla19jaHVua19pbmZvKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2VfcGFyc2Vfc3RyZWFtX2luaXQpLAoJICAoZ3N0X3dhdnBhcnNlX2FkZF9zcmNfcGFkKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSksCgkgIChnc3Rfd2F2cGFyc2VfbG9vcCksIChnc3Rfd2F2cGFyc2VfY2hhaW4pLAoJICAoZ3N0X3dhdnBhcnNlX3BhZF9jb252ZXJ0KSwgKGdzdF93YXZwYXJzZV9wYWRfcXVlcnkpLAoJICAoZ3N0X3dhdnBhcnNlX3NyY3BhZF9ldmVudCksIChnc3Rfd2F2cGFyc2VfY2hhbmdlX3N0YXRlKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuaDoKCSAgVXBkYXRlIGRvY3MuCgkgIFVzZSBib2lsZXJwbGF0ZS4KCSAgVmFyaW91cyBjb2RlIGNsZWFudXBzLgoJICBXaGVuIHRoZSBiaXRyYXRlIGlzIG5vdCBrbm93biAoYnBzID09IDAgb3IgY29tcHJlc3NlZCBmb3JtYXRzKSBsZXQKCSAgZG93bnN0cmVhbSBlbGVtZW50IGd1ZXN0aW1hdGUgdGhlIGR1cmF0aW9uIGFuZCBwb3NpdGlvbiBhbmQgZG9uJ3QKCSAgZ2VuZXJhdGUgdGltZXN0YW1wcyBvciBkdXJhdGlvbnMuIEZpeGVzICM0MDUyMTMuCgkgIEZpeCBFT1MgYW5kIEVSUk9SIGNvbmRpdGlvbnMgaW4gY2hhaW4gbW9kZSwgd2UganVzdCBuZWVkIHRvIGZvcndhcmQgdGhlCgkgIGVycm9yIGZsb3dyZXR1cm4gdXBzdHJlYW0uCgoyMDA3LTAyLTEzIDE2OjAxOjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlLWZhY3RvciB0aGUgZ2NvbmZhdWRpb3NpbmsgaW50byBhICJHc3RTd2l0Y2hTaW5rIiBiYXNlIGNsYXNzIGFuZCBhIGNoaWxkIHRoYXQgaW1wbGVtZW50cyB0aGUgR0NvbmYga2V5IG1vbml0b3JpbmcuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvTWFrZWZpbGUuYW06CgkgICogZXh0L2djb25mL2djb25mLmM6IChnc3RfZ2NvbmZfZ2V0X3N0cmluZyksCgkgIChnc3RfZ2NvbmZfZ2V0X2tleV9mb3Jfc2lua19wcm9maWxlKSwgKGdzdF9nY29uZl9zZXRfc3RyaW5nKSwKCSAgKGdzdF9nY29uZl9yZW5kZXJfYmluX3dpdGhfZGVmYXVsdCk6CgkgICogZXh0L2djb25mL2djb25mLmg6CgkgICogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zaW5rLmM6IChnc3RfZ2NvbmZfYXVkaW9fc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfcmVzZXQpLCAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfaW5pdCksCgkgIChnc3RfZ2NvbmZfYXVkaW9fc2lua19kaXNwb3NlKSwgKGRvX2NoYW5nZV9jaGlsZCksCgkgIChnc3RfZ2NvbmZfc3dpdGNoX3Byb2ZpbGUpLCAoZ3N0X2djb25mX2F1ZGlvX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGNiX2NoYW5nZV9jaGlsZCksIChnc3RfZ2NvbmZfYXVkaW9fc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5oOgoJICAqIGV4dC9nY29uZi9nc3Rzd2l0Y2hzaW5rLmM6IChnc3Rfc3dpdGNoX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9zd2l0Y2hfc2lua19jbGFzc19pbml0KSwgKGdzdF9zd2l0Y2hfc2lua19yZXNldCksCgkgIChnc3Rfc3dpdGNoX3NpbmtfaW5pdCksIChnc3Rfc3dpdGNoX3NpbmtfZGlzcG9zZSksCgkgIChnc3Rfc3dpdGNoX2NvbW1pdF9uZXdfa2lkKSwgKGdzdF9zd2l0Y2hfc2lua19zZXRfY2hpbGQpLAoJICAoZ3N0X3N3aXRjaF9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3Rfc3dpdGNoX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9zd2l0Y2hfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X3N3aXRjaF9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2djb25mL2dzdHN3aXRjaHNpbmsuaDoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2NsYXNzX2luaXQpLCAoZ3N0X2F1dG9fYXVkaW9fc2lua19kaXNwb3NlKSwKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfY2xlYXJfa2lkKSwgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfcmVzZXQpLAoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19kZXRlY3QpOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfYXV0b192aWRlb19zaW5rX2Rpc3Bvc2UpLAoJICAoZ3N0X2F1dG9fdmlkZW9fc2lua19jbGVhcl9raWQpLCAoZ3N0X2F1dG9fdmlkZW9fc2lua19yZXNldCksCgkgIChnc3RfYXV0b192aWRlb19zaW5rX2RldGVjdCk6CgkgIFJlLWZhY3RvciB0aGUgZ2NvbmZhdWRpb3NpbmsgaW50byBhICJHc3RTd2l0Y2hTaW5rIiBiYXNlIGNsYXNzCgkgIGFuZCBhIGNoaWxkIHRoYXQgaW1wbGVtZW50cyB0aGUgR0NvbmYga2V5IG1vbml0b3JpbmcuIFRoZSBlbmQgZ29hbCBvZgoJICB0aGlzIGlzIGFuIGF1ZGlvIHNpbmsgdGhhdCBjYW4gYmUgY2hhbmdlZCBvbiB0aGUgZmx5LCBidXQgYXQgdGhlCgkgIG1vbWVudCBpdCBzdGlsbCBvbmx5IGNoYW5nZXMgb24gdGhlIG5leHQgUkVBRFkgdHJhbnNpdGlvbi4KCjIwMDctMDItMTMgMTE6NTc6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogUHV0IGRlYnVnIHN0dWZmIGludG8gI2lmbmRlZiBHU1RfRElTQUJMRV9ERUJVRyAjZW5kaWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zeW5jKSwgKGdzdF9hdmlfZGVtdXhfbWFzc2FnZV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X2NhbGN1bGF0ZV9kdXJhdGlvbnNfZnJvbV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X3B1c2hfZXZlbnQpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyX3B1bGwpLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksCgkgIChnc3RfYXZpX2RlbXV4X2xvb3ApOgoJICBQdXQgZGVidWcgc3R1ZmYgaW50byAjaWZuZGVmIEdTVF9ESVNBQkxFX0RFQlVHICNlbmRpZgoKMjAwNy0wMi0xMyAwOTo0NjoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIGNyb3NzcmVmZXJlbmNlcyB0byBnbGliL2dvYmplY3QvZ3N0cmVhbSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBBZGQgY3Jvc3NyZWZlcmVuY2VzIHRvIGdsaWIvZ29iamVjdC9nc3RyZWFtIGRvY3MuCgoyMDA3LTAyLTEyIDIzOjM1OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21vbm9zY29wZS86IEZpeCBjb3B5J24ncGFzdGUtbyBpbiBkb2NzIGNodW5rLiBBbHNvIGFkZCBzb21lIG1pc3NpbmcgQ0ZMQUdTIChidXQgbm8gTElCUywgc2luY2Ugd2Ugb25seSB1c2UgZGVmaW5lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tb25vc2NvcGUvTWFrZWZpbGUuYW06CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSAgRml4IGNvcHknbidwYXN0ZS1vIGluIGRvY3MgY2h1bmsuIEFsc28gYWRkIHNvbWUgbWlzc2luZyBDRkxBR1MKCSAgKGJ1dCBubyBMSUJTLCBzaW5jZSB3ZSBvbmx5IHVzZSBkZWZpbmVzIGZyb20gdGhlIGhlYWRlcnMpLgoKMjAwNy0wMi0xMiAyMzoyNzozMSArMDAwMCAgSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW5Aa2FvbGluLndoOS5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogRml4IG1hc3NpdmUgbWVtb3J5IGxlYWsgd2hlbiBvcGVyYXRpbmcgaW4gc3RyZWFtaW5nIG1vZGUgZHVlIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSm9uYXRoYW4gTWF0dGhldyAgPGpvbmF0aGFuIGF0IGthb2xpbiB3aDkgbmV0PgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3BhcnNlX3N0cmVhbV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSk6CgkgIEZpeCBtYXNzaXZlIG1lbW9yeSBsZWFrIHdoZW4gb3BlcmF0aW5nIGluIHN0cmVhbWluZyBtb2RlIGR1ZSB0bwoJICBHU1RfQlVGRkVSX01BTExPQ0RBVEEoKSBub3QgYmVpbmcgc2V0IG9uIG5ld2x5LWNyZWF0ZWQgYnVmZmVycy4KCSAgRml4ZXMgIzQwNzA1Ny4KCjIwMDctMDItMTIgMTU6Mjk6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogU2F2ZSBzb21lIG1lbW9yeSAoOCUpIGJ5IHJlcGFja2luZyB0aGUgaW5kZXggZW50cnkgc3RydWN0dXJlIChtb3JlIHRvIGNvbWUpLiBBZGQgbW9yZSBGSVhNRXMgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X2F2aV9kZW11eF9yZXNldCksIChnc3RfYXZpX2RlbXV4X2luZGV4X2VudHJ5X2Zvcl90aW1lKSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1cGVyaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdWJpbmRleCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX2luZGV4KSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3luYyksIChnc3RfYXZpX2RlbXV4X25leHRfZGF0YV9idWZmZXIpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fc2NhbiksIChnc3RfYXZpX2RlbXV4X21hc3NhZ2VfaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9jYWxjdWxhdGVfZHVyYXRpb25zX2Zyb21faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9wdXNoX2V2ZW50KSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcl9wdWxsKSwKCSAgKGdzdF9hdmlfZGVtdXhfZG9fc2VlayksIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKSwgKGdzdF9hdmlfZGVtdXhfbG9vcCk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBTYXZlIHNvbWUgbWVtb3J5ICg4JSkgYnkgcmVwYWNraW5nIHRoZSBpbmRleCBlbnRyeSBzdHJ1Y3R1cmUgKG1vcmUgdG8KCSAgY29tZSkuIEFkZCBtb3JlIEZJWE1FcyB0byBxdWVzdGlvbmFibGUgcGFydHMuCgoyMDA3LTAyLTEyIDEyOjU3OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvdjRsMi86IE1vcmUgRklYTUUgY29tbWVudHMgYW5kIG1lc3NhZ2luZyBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IChnc3RfdjRsMnNyY192NGwyZm91cmNjX3RvX2NhcHMpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X2NhcHMpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX2ZpbGxfZm9ybWF0X2xpc3QpLAoJICAoZ3N0X3Y0bDJzcmNfZ3JhYl9mcmFtZSksIChnc3RfdjRsMnNyY19zZXRfY2FwdHVyZSksCgkgIChnc3RfdjRsMnNyY19jYXB0dXJlX2luaXQpOgoJICBNb3JlIEZJWE1FIGNvbW1lbnRzIGFuZCBtZXNzYWdpbmcgY2hhbmdlcy4KCjIwMDctMDItMTIgMTI6NDM6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nb29tL2dzdGdvb20uKjogSW1wcm92ZWQgZG9jcyBhbmQgdXNlIEdTVF9ERUJVR19GVU5DUFRSLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9jbGFzc19pbml0KSwgKGdzdF9nb29tX2luaXQpLAoJICAoZ3N0X2dvb21fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmg6CgkgIEltcHJvdmVkIGRvY3MgYW5kIHVzZSBHU1RfREVCVUdfRlVOQ1BUUi4KCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9jbGFzc19pbml0KToKCSAgVXNlIEdTVF9ERUJVR19GVU5DUFRSLgoJICAqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6IChnc3RfbW9ub3Njb3BlX2luaXQpLAoJICAoZ3N0X21vbm9zY29wZV9jaGFpbiksIChnc3RfbW9ub3Njb3BlX2NoYW5nZV9zdGF0ZSk6CgkgIEltcHJvdmVkIGRvY3Mgc291cmNlIGNsZWFudXBzLgoKMjAwNy0wMi0xMiAxMDoyOTo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9kZWJ1Zy86IEFkZCBjb2RlIGZvciBhIHB1c2hmaWxlc3JjIGVsZW1lbnQgdGhhdCBpbXBsZW1lbnRzIGEgcHVzaGZpbGU6Ly8gVVJJIGhhbmRsZXIsIHRvIG1ha2UgZGVidWdnaW5nIHB1c2gtbW9kZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlYnVnL2dzdGRlYnVnLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L2RlYnVnL2dzdHB1c2hmaWxlc3JjLmM6CgkgICogZ3N0L2RlYnVnL2dzdHB1c2hmaWxlc3JjLmg6CgkgIEFkZCBjb2RlIGZvciBhIHB1c2hmaWxlc3JjIGVsZW1lbnQgdGhhdCBpbXBsZW1lbnRzIGEgcHVzaGZpbGU6Ly8gVVJJCgkgIGhhbmRsZXIsIHRvIG1ha2UgZGVidWdnaW5nIHB1c2gtbW9kZSBvcGVyYXRpb24gb2YgZGVtdXhlci9kZWNvZGVycwoJICB0aGF0IHN1cHBvcnQgYm90aCBlYXNpZXIgaW4gY29ubmVjdGlvbiB3aXRoIHNlZWsvcGxheWJpbi9ldGMuCgkgIFRoZSBlbGVtZW50IGlzbid0IHJlZ2lzdGVyZWQgYXQgdGhlIG1vbWVudC4KCjIwMDctMDItMTEgMTU6MjY6NDkgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBBZGQgd2luMzIgTUFOSUZFU1QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIEFkZCB3aW4zMiBNQU5JRkVTVAoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgICogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuaDoKCSAgQ2xlYXIgdW51c2VkIGNvZGUgYW5kIGFkZCBjb21tZW50cy4KCSAgUmVtb3ZlIHl1diBmcm9tIHRlbXBsYXRlIGNhcHMsIGl0IG9ubHkgc3VwcG9ydHMgUkdCCgkgIGFjdHVhbGx5LgoJICBJbXBsZW1lbnQgWE92ZXJsYXkgaW50ZXJmYWNlIGFuZCByZW1vdmUgd2luZG93IGFuZCBmdWxsc2NyZWVuCgkgIHByb3BlcnRpZXMuCgkgIEFkZCBkZWJ1ZyBsb2dzLgoJICBUZXN0IGZvciBibGl0IGNhcGFiaWxpdGllcyB0byByZXR1cm4gb25seSB0aGUgY3VycmVudCBjb2xvcnNwYWNlIGlmCgkgIHRoZSBoYXJkd2FyZSBjYW4ndCBibGl0IGZvciBvbmUgY29sb3JzcGFjZSB0byBhbm90aGVyLgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgQWRkIHNvbWUgZGVidWdzLgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBBZGQgVlM3IHByb2plY3QgZmlsZXMgYW5kIHNvbHV0aW9uLgoJICAqIHdpbjMyL3ZzNi9nc3RfcGx1Z2luc19iYWQuZHN3OgoJICAqIHdpbjMyL3ZzNi9saWJnc3RkaXJlY3RkcmF3LmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZGlyZWN0c291bmQuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RxdGRlbXV4LmRzcDoKCSAgVXBkYXRlIHByb2plY3QgZmlsZXMuCgoyMDA3LTAyLTExIDEyOjU3OjQ3ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBDb21tZW50IGEgI2lmIDAgaW4gY2FwcyB0ZW1wbGF0ZSBkZWZpbml0aW9uIGFzIFZTNiBzZWVtcyB0byBkbyBub3Qgc3VwcG9ydCBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzoKCSAgQ29tbWVudCBhICNpZiAwIGluIGNhcHMgdGVtcGxhdGUgZGVmaW5pdGlvbiBhcyBWUzYgc2VlbXMgdG8KCSAgZG8gbm90IHN1cHBvcnQgaXQuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOihnc3RfcnRzcHNyY19sb29wX3VkcCk6CgkgIFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9uLgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6KHJ0c3BfY29ubmVjdGlvbl9zZW5kKToKCSAgTW92ZSB2YXJpYWJsZXMgZGVjbGFyYXRpb24gYmVmb3JlIHRoZSBmaXJzdCBpbnN0cnVjdGlvbi4KCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5jOihydHNwX3N0cnJlc3VsdCk6CgkgIERvbid0IHVzZSBoc3RyZXJyb3IgZm9yIGVycm9yIGxvZyBvbiBHX09TX1dJTjMyIGJ1aWxkIGFzIGl0J3Mgbm90IHN1cHBvcnRlZC4KCSAgQW5kIGRvbid0IGluY2x1ZGUgbmV0ZGIuaCBmb3IgR19PU19XSU4zMgoJICAqIGdzdC9ydHNwL3NkcG1lc3NhZ2UuYzooc2RwX3BhcnNlX2xpbmUpOgoJICBUaGlzIGluaXRpYWxpemF0aW9uIFNEUE1lZGlhIG5tZWRpYSA9IHsubWVkaWEgPSBOVUxMIH07IGlzIG5vdCBzdXBwb3J0ZWQKCSAgYnkgVlM2IHRoZW4gdXNlIGFuIG90aGVyIHdheSB0byBpbml0aWFsaXplIFNEUE1lZGlhIHN0cnVjdHVyZS4KCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuaDoKCSAgKiBnc3QvdWRwL2dzdGR5bnVkcG5ldHV0aWxzLmg6CgkgIERvIG5vdCBpbmNsdWRlIDxzeXMvdGltZS5oPiBmb3IgR19PU19XSU4zMgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIERlZmluZSBzb2NrbGVuX3QgYXMgaW50IGZvciBHX09TX1dJTjMyCgkgICogd2luL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgVW5kZWYgSEFWRV9ORVRJTkVUX0lOX0gKCSAgKiB3aW4zMi92czYvZ3N0X3BsdWdpbnNfZ29vZC5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdHJ0cC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJ0c3AuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RhdXRvZ2VuLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YXVkaW9meC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHVkcC5kc3A6CgkgIEFkZCBhbmQgdXBkYXRlIHByb2plY3QgZmlsZXMuCgkgICogd2luMzIvY29tbW9uL2dzdHVkcC1lbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dWRwLWVudW10eXBlcy5oOgoJICBBZGQgYSBjb3B5IG9mIHVkcCBlbnVtdHlwZXMgdG8gd2luMzIvY29tbW9uIGFzIGluIGNvcmUKCSAgYW5kIGJhc2UuCgoyMDA3LTAyLTExIDEwOjUzOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFjdGl2YXRlIG1vbm9zY29wZSB3aGVuIGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtZXhwZXJpbWVudGFsLiBGaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBBY3RpdmF0ZSBtb25vc2NvcGUgd2hlbiBidWlsZGluZyB3aXRoIC0tZW5hYmxlLWV4cGVyaW1lbnRhbC4gRml4CgkgIC0tZW5hYmxlLWV4dGVybmFsIGNvbmZpZ3VyZSBzd2l0Y2ggZGVzY3JpcHRpb24uCgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXIuYzogKGdzdF9zdW5hdWRpb21peGVyX2Jhc2VfaW5pdCk6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6IChnc3Rfc3VuYXVkaW9zcmNfZGlzcG9zZSk6CgkgIEhlbHAgZ3N0LWluZGVudC4KCjIwMDctMDItMDkgMDk6MjQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBFeHBsaWNpdGx5IGNhc3QgcmVzdWx0IG9mIHBvaW50ZXIgYXJpdGhtZXRpYyB0byBpbnRlZ2VyIGluIG9yZGVyIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIG9uIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X3JpZmZfZ2V0X2F2aV9oZWFkZXIpOgoJICBFeHBsaWNpdGx5IGNhc3QgcmVzdWx0IG9mIHBvaW50ZXIgYXJpdGhtZXRpYyB0byBpbnRlZ2VyIGluIG9yZGVyIHRvCgkgIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmdzIG9uIHNvbWUgNjQtYml0IHN5c3RlbXMuIFNob3VsZCBmaXggIzQwNjAxOC4KCjIwMDctMDItMDggMTE6MDk6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuYzogU29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5jOgoJICBTb21lIG1vcmUgZG9jcy4KCjIwMDctMDItMDcgMjE6MDk6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDogVXBkYXRlIGZvciBuZXcgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICBVcGRhdGUgZm9yIG5ldyBlbGVtZW50cy4KCSAgKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuaDoKCSAgQ29tbWl0IG5ld2x5LWNyZWF0ZWQgaGVhZGVyIGZpbGUgYXMgd2VsbC4KCjIwMDctMDItMDcgMjA6Mzk6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlIHByb2dyZXNzcmVwb3J0IGVsZW1lbnQgcG9zdCBtZXNzYWdlcyB3aXRoIHRoZSBjdXJyZW50IHByb2dyZXNzIG9uIHRoZSBidXMuIEFsc28gYWRkIHNvbWUgYmFzaWMgZG9jcyBmb3IgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlYnVnL3Byb2dyZXNzcmVwb3J0LmM6IChnc3RfcHJvZ3Jlc3NfcmVwb3J0X3Bvc3RfcHJvZ3Jlc3MpLAoJICAoZ3N0X3Byb2dyZXNzX3JlcG9ydF9kb19xdWVyeSksIChnc3RfcHJvZ3Jlc3NfcmVwb3J0X3JlcG9ydCk6CgkgIE1ha2UgcHJvZ3Jlc3NyZXBvcnQgZWxlbWVudCBwb3N0IG1lc3NhZ2VzIHdpdGggdGhlIGN1cnJlbnQgcHJvZ3Jlc3MKCSAgb24gdGhlIGJ1cy4gQWxzbyBhZGQgc29tZSBiYXNpYyBkb2NzIGZvciBpdC4KCjIwMDctMDItMDcgMTM6MDg6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvaGFsL2hhbC4qOiBTb21lIHNtYWxsIGNsZWFudXBzOyBkZWFsIHdpdGggZXJyb3JzIHdoZW4gcGFyc2luZyB0aGUgSEFMIEFMU0EgY2FwYWJpbGl0aWVzIGEgYml0IGJldHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2hhbC9oYWwuYzogKGdzdF9oYWxfZ2V0X3N0cmluZyk6CgkgICogZXh0L2hhbC9oYWwuaDoKCSAgU29tZSBzbWFsbCBjbGVhbnVwczsgZGVhbCB3aXRoIGVycm9ycyB3aGVuIHBhcnNpbmcgdGhlIEhBTCBBTFNBCgkgIGNhcGFiaWxpdGllcyBhIGJpdCBiZXR0ZXIuCgoyMDA3LTAyLTA2IDE2OjI5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IExldCdzIHRyeSB0aGlzIGFnYWluIGFuZCB1c2UgdGhlIHJpZ2h0IGNhc3QgdGhpcyB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzogKGdzdF9zbXB0ZV90cmFuc2l0aW9uX3R5cGVfZ2V0X3R5cGUpOgoJICBMZXQncyB0cnkgdGhpcyBhZ2FpbiBhbmQgdXNlIHRoZSByaWdodCBjYXN0IHRoaXMgdGltZS4KCjIwMDctMDItMDYgMTY6MjQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvc21wdGUvZ3N0c21wdGUuYzogQWRkIGNhc3QgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBvbGRlciBHTGliIHZlcnNpb25zIHdoZXJlIHRoZSBuaWNrL25hbWUgbWVtYmVycyBpbiBHRW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IChnc3Rfc21wdGVfdHJhbnNpdGlvbl90eXBlX2dldF90eXBlKToKCSAgQWRkIGNhc3QgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBvbGRlciBHTGliIHZlcnNpb25zCgkgIHdoZXJlIHRoZSBuaWNrL25hbWUgbWVtYmVycyBpbiBHRW51bVZhbHVlIGFyZSBub3QgZGVjbGFyZWQgYXMKCSAgY29uc3RhbnQgc3RyaW5ncy4KCjIwMDctMDItMDYgMTU6NTY6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZ2NvbmYvOiBJbiBnY29uZmF1ZGlvc2luaywgZ2V0IHRoZSByaWdodCBrZXkgYXMgdGhlIG9sZCBrZXkgaW4gZG9fdG9nZ2xlIChpZS4gb25lIGRlcGVuZGVudCBvbiB0aGUgcHJvZmlsZSBzZWxlY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2djb25mLmM6IChnc3RfZ2NvbmZfZ2V0X2tleV9mb3Jfc2lua19wcm9maWxlKSwKCSAgKGdzdF9nY29uZl9yZW5kZXJfYmluX2Zyb21fa2V5KSwKCSAgKGdzdF9nY29uZl9nZXRfZGVmYXVsdF9hdWRpb19zaW5rKToKCSAgKiBleHQvZ2NvbmYvZ2NvbmYuaDoKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzogKGdldF9nY29uZl9rZXlfZm9yX3Byb2ZpbGUpLAoJICAoZG9fdG9nZ2xlX2VsZW1lbnQpLCAoZ3N0X2djb25mX2F1ZGlvX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9nY29uZl9hdWRpb19zaW5rX2dldF9wcm9wZXJ0eSk6CgkgIEluIGdjb25mYXVkaW9zaW5rLCBnZXQgdGhlIHJpZ2h0IGtleSBhcyB0aGUgb2xkIGtleSBpbiBkb190b2dnbGUKCSAgKGllLiBvbmUgZGVwZW5kZW50IG9uIHRoZSBwcm9maWxlIHNlbGVjdGVkKS4gTG9nIHNvbWUgbW9yZSBzdHVmZiBzbwoJICB3ZSBjYW4gc2VlIHdoYXQncyBhY3R1YWxseSBnb2luZyBvbi4KCjIwMDctMDItMDYgMTE6MTY6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4LzogU29tZSBzbWFsbCBjbGVhbnVwcyBhbmQgcG9ydCBib3RoIGVsZW1lbnRzIHRvIHRoZSBuZXcgR3N0QXVkaW9GaWx0ZXIgYmFzZSBjbGFzcyB0byBzYXZlIGEgZmV3IGxpbmVzIG9mIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2FtcGxpZnkuYzogKGdzdF9hdWRpb19hbXBsaWZ5X2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV9jbGFzc19pbml0KSwgKGdzdF9hdWRpb19hbXBsaWZ5X2luaXQpLAoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfc2V0X3Byb2Nlc3NfZnVuY3Rpb24pLAoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfc2V0dXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0LmM6IChnc3RfYXVkaW9faW52ZXJ0X2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9faW52ZXJ0X2NsYXNzX2luaXQpLCAoZ3N0X2F1ZGlvX2ludmVydF9zZXR1cCk6CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9pbnZlcnQuaDoKCSAgU29tZSBzbWFsbCBjbGVhbnVwcyBhbmQgcG9ydCBib3RoIGVsZW1lbnRzIHRvIHRoZSBuZXcgR3N0QXVkaW9GaWx0ZXIKCSAgYmFzZSBjbGFzcyB0byBzYXZlIGEgZmV3IGxpbmVzIG9mIGNvbW1vbiBjb2RlLgoJICAqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJICBMaW5rIGFnYWluc3QgbGliZ3N0YXVkaW8gZm9yIHRoZSBhYm92ZSBjaGFuZ2VzCgoyMDA3LTAyLTAzIDIzOjM1OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4IHVwIHRvIHVzZSB0aGUgbmV3bHkgcG9ydGVkIChhY3R1YWxseSB3b3JraW5nKSBHc3RBdWRpb0ZpbHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9lcXVhbGl6ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogKGdzdF9paXJfZXF1YWxpemVyX2Jhc2VfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jbGFzc19pbml0KSwgKGdzdF9paXJfZXF1YWxpemVyX2luaXQpLAoJICAoc2V0dXBfZmlsdGVyKSwgKGdzdF9paXJfZXF1YWxpemVyX2NvbXB1dGVfZnJlcXVlbmNpZXMpLAoJICAoZ3N0X2lpcl9lcXVhbGl6ZXJfc2V0X3Byb3BlcnR5KSwgKGdzdF9paXJfZXF1YWxpemVyX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfaWlyX2VxdWFsaXplcl90cmFuc2Zvcm1faXApLCAoZ3N0X2lpcl9lcXVhbGl6ZXJfc2V0dXApLAoJICAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmg6CgkgIEZpeCB1cCB0byB1c2UgdGhlIG5ld2x5IHBvcnRlZCAoYWN0dWFsbHkgd29ya2luZykgR3N0QXVkaW9GaWx0ZXIuCgkgIEJ1bXAgY29yZS9iYXNlIHJlcXVpcmVtZW50cyB0byBDVlMgZm9yIHRoaXMuCgkgICogdGVzdHMvaWNsZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pY2xlcy9lcXVhbGl6ZXItdGVzdC5jOiAoY2hlY2tfYnVzKSwKCSAgKGVxdWFsaXplcl9zZXRfYmFuZF92YWx1ZSksIChlcXVhbGl6ZXJfc2V0X2FsbF9iYW5kX3ZhbHVlcyksCgkgIChlcXVhbGl6ZXJfc2V0X2JhbmRfdmFsdWVfYW5kX3dhaXQpLAoJICAoZXF1YWxpemVyX3NldF9hbGxfYmFuZF92YWx1ZXNfYW5kX3dhaXQpLCAoZG9fc2xpZGVyX2ZpZGRsaW5nKSwKCSAgKG1haW4pOgoJICBBZGQgYnJhaW4tZGVhZCBpbnRlcmFjdGl2ZSB0ZXN0IGZvciBlcXVhbGl6ZXIuCgoyMDA3LTAyLTAyIDE4OjM2OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogUmVuYW1lICJ2YWx1ZXMiIHByb3BlcnR5IHRvICJiYW5kLXZhbHVlcyIgYW5kIGNoYW5nZSB0eXBlIGludG8gYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOiAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9zZXRfcHJvcGVydHkpLCAoZ3N0X2lpcl9lcXVhbGl6ZXJfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX2ZpbHRlcl9pbnBsYWNlKToKCSAgUmVuYW1lICJ2YWx1ZXMiIHByb3BlcnR5IHRvICJiYW5kLXZhbHVlcyIgYW5kIGNoYW5nZSB0eXBlIGludG8gYQoJICBHVmFsdWVBcnJheSwgc28gaXQncyBtb3JlIGVhc2lseSBiaW5kYWJsZSBhbmQgdGhlIHJhbmdlIG9mIHRoZQoJICB2YWx1ZXMgcGFzc2VkIGluIGlzIGRlZmluZWQgYW5kIGNoZWNrZWQgZXRjLjsgYWxzbyBkbyBzb21lCgkgIGxvY2tpbmcuCgoyMDA3LTAyLTAyIDE3OjM5OjIxICswMDAwICBKYW1lcyBEb2MgTGl2aW5nc3RvbiA8ZG9jbGl2aW5nc3RvbkBnbWFpbC5jb20+CgoJICBQb3J0IGVxdWFsaXplciBwbHVnaW4gdG8gMC4xMCAoIzQwMzU3MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmFtZXMgIkRvYyIgTGl2aW5nc3RvbiAgPGRvY2xpdmluZ3N0b24gYXQgZ21haWwgY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZXF1YWxpemVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6IChnc3RfaWlyX2VxdWFsaXplcl9nZXRfdHlwZSksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9iYXNlX2luaXQpLCAoZ3N0X2lpcl9lcXVhbGl6ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9jb21wdXRlX2ZyZXF1ZW5jaWVzKSwKCSAgKGdzdF9paXJfZXF1YWxpemVyX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWlyX2VxdWFsaXplcl9maWx0ZXJfaW5wbGFjZSksIChnc3RfaWlyX2VxdWFsaXplcl9zZXR1cCksCgkgIChwbHVnaW5faW5pdCk6CgkgIFBvcnQgZXF1YWxpemVyIHBsdWdpbiB0byAwLjEwICgjNDAzNTcyKS4KCjIwMDctMDEtMzEgMDg6MzI6NTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiBGaXggYSBvZmYgYnkgb25lIHRoYXQgbGVhZHMgdG8gdGhlIGR1cmF0aW9uIHJlcG9ydGVkIGFzIG9uZSBzYW1wbGUgbGVzcyB0aGFuIGl0IGlzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2hhbmRsZV9zZWVrX2V2ZW50KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2NyZWF0ZV9zcmNfcGFkKToKCSAgRml4IGEgb2ZmIGJ5IG9uZSB0aGF0IGxlYWRzIHRvIHRoZSBkdXJhdGlvbiByZXBvcnRlZCBhcyBvbmUKCSAgc2FtcGxlIGxlc3MgdGhhbiBpdCBpcwoKMjAwNy0wMS0zMCAxNzoxOTozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGFuIE9iamVjdGl2ZSBDIGNvbXBpbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ2hlY2sgZm9yIGFuIE9iamVjdGl2ZSBDIGNvbXBpbGVyCgkgICogc3lzL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3h2aWRlby9NYWtlZmlsZS5hbToKCSAgKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cuaDoKCSAgKiBzeXMvb3N4dmlkZW8vY29jb2F3aW5kb3cubToKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLmg6CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBQb3J0IG9mIG9zeHZpZGVvIHBsdWdpbiB0byAwLjEwLiBEbyBOT1QgY29uc2lkZXIgMTAwJSBzdGFibGUgIQoJICBGaXhlcyAjNDAyNDcwCgoyMDA3LTAxLTI5IDEwOjU5OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogU29tZSBtb3JlIGlnbm9yZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIFNvbWUgbW9yZSBpZ25vcmVzLgoKMjAwNy0wMS0yOCAxODoyODozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6IEZpeCBjcm9wcGluZyBmb3IgcGFja2VkIDQ6MjoyIGZvcm1hdHMgWVVZVi9ZVVkyIGFuZCBVWVZZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJICAoZ3N0X3ZpZGVvX2Nyb3BfZ2V0X2ltYWdlX2RldGFpbHNfZnJvbV9jYXBzKSwKCSAgKGdzdF92aWRlb19jcm9wX3RyYW5zZm9ybV9wYWNrZWRfY29tcGxleCk6CgkgIEZpeCBjcm9wcGluZyBmb3IgcGFja2VkIDQ6MjoyIGZvcm1hdHMgWVVZVi9ZVVkyIGFuZCBVWVZZLgoJICAqIHRlc3RzL2ljbGVzL3ZpZGVvY3JvcC10ZXN0LmM6IChjaGVja19idXNfZm9yX2Vycm9ycyksCgkgICh0ZXN0X3dpdGhfY2FwcyksIChtYWluKToKCSAgQmxvY2sgc3RyZWFtaW5nIHRocmVhZCBiZWZvcmUgY2hhbmdpbmcgZmlsdGVyIGNhcHMgd2hpbGUgdGhlCgkgIHBpcGVsaW5lIGlzIHJ1bm5pbmcgc28gdGhhdCB3ZSBkb24ndCBnZXQgcmFuZG9tIG5vdC1uZWdvdGlhdGVkCgkgIGVycm9ycyBqdXN0IGJlY2F1c2UgR1N0cmVhbWVyIGNhbid0IGhhbmRsZSB0aGF0IHlldC4KCjIwMDctMDEtMjcgMTY6MDg6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOiBDYXRjaCBlcnJvcnMgd2hpbGUgdGhlIHRlc3QgaXMgcnVubmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvaWNsZXMvdmlkZW9jcm9wLXRlc3QuYzogKHRlc3Rfd2l0aF9jYXBzKToKCSAgQ2F0Y2ggZXJyb3JzIHdoaWxlIHRoZSB0ZXN0IGlzIHJ1bm5pbmcuCgoyMDA3LTAxLTI2IDEyOjIxOjQxICswMDAwICBjaGFybGVzIDxjaGFybGVzZzNAZ21haWwuY29tPgoKCSAgZXh0L3Nob3V0Mi9nc3RzaG91dDIuKjogUHJvcGVybHkgaGFuZGxlIHRhZ3MgaW4gc2hvdXQyc2VuZC4gRml4ZXMgIzM5OTgyNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBjaGFybGVzIDxjaGFybGVzZzMgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOiAoZ3N0X3Nob3V0MnNlbmRfaW5pdCksCgkgIChzZXRfc2hvdXRfbWV0YWRhdGEpLCAoZ3N0X3Nob3V0MnNlbmRfZXZlbnQpOgoJICAqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmg6CgkgIFByb3Blcmx5IGhhbmRsZSB0YWdzIGluIHNob3V0MnNlbmQuIEZpeGVzICMzOTk4MjUuCgoyMDA3LTAxLTI1IDIzOjI3OjU5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogRml4IHRoZSBTRUVLSU5HIHF1ZXJ5LiBXZSBjYW4gc2VlayBpZiB3ZSBhcmUgaW4gcHVsbCBtb2RlLCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuIEEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9zcmNfcXVlcnkpOgoJICBGaXggdGhlIFNFRUtJTkcgcXVlcnkuIFdlIGNhbiBzZWVrIGlmIHdlIGFyZSBpbiBwdWxsIG1vZGUsIG5vdCB0aGUKCSAgb3RoZXIgd2F5IGFyb3VuZC4gQWxzbyBzZXQgdGhlIGNvcnJlY3QgZm9ybWF0IGluIHRoZSBzZWVraW5nIHF1ZXJ5IGFuZAoJICBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGhlYWRlcnMgYXJlIG5vdCByZWFkIHlldCBhbmQgd2UgY2FuJ3Qgc2F5CgkgIGFueXRoaW5nIGFib3V0IG91ciBzZWVraW5nIGNhcGFiaWxpdGllcy4KCjIwMDctMDEtMjUgMjE6NTU6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrLzogRml4IHNwZWxsaW5nIGluIDIgcGxhY2VzOiBJdCdzIGNhbGxlZCBXYXZwYWNrLCBub3QgV2F2ZVBhY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogKGdzdF93YXZwYWNrX2RlY19iYXNlX2luaXQpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfYmFzZV9pbml0KToKCSAgRml4IHNwZWxsaW5nIGluIDIgcGxhY2VzOiBJdCdzIGNhbGxlZCBXYXZwYWNrLCBub3QgV2F2ZVBhY2suCgoyMDA3LTAxLTI1IDE0OjQwOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBDb252ZXJ0IFNEUCBmaWVsZHMgdG8gdXBwZXIvbG93ZXJjYXNlIGZvbGxvd2luZyB0aGUgcnVsZXMgaW4gdGhlIFNEUCB0byBjYXBzIGRvY3VtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX2FjdGl2YXRlX3N0cmVhbXMpOgoJICBDb252ZXJ0IFNEUCBmaWVsZHMgdG8gdXBwZXIvbG93ZXJjYXNlIGZvbGxvd2luZyB0aGUgcnVsZXMgaW4gdGhlIFNEUCB0bwoJICBjYXBzIGRvY3VtZW50LgoKMjAwNy0wMS0yNSAxNDoyMjo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBGaXggY2FzZSBvZiBlbmNvZGluZy1uYW1lIGFuZCBrZXkvdmFsdWUgcGFpcnMgdG8gbWF0Y2ggdGhlIGRvY3VtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL1JFQURNRToKCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3YzdmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6CgkgIEZpeCBjYXNlIG9mIGVuY29kaW5nLW5hbWUgYW5kIGtleS92YWx1ZSBwYWlycyB0byBtYXRjaCB0aGUgZG9jdW1lbnQuCgkgIFRoaXMgaXMgdG8gbWFrZSBpbnRlcm9wZXJhdGlvbiB3aXRoIFNEUCBjYXNlLWluc2Vuc2l0aXZlIGFzIHJlcXVpcmVkIGJ5CgkgIHRoZSByZWxldmFudCBSRkNzLgoKMjAwNy0wMS0yNSAxMjowNToxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IFVzZSBwcm9wZXIgcHJpbnQgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpZmlsZS9nc3RtdWx0aWZpbGVzaW5rLmM6CgkgIChnc3RfbXVsdGlfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6IChnc3RfbXVsdGlfZmlsZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L212ZS9nc3RtdmVkZW11eC5jOiAoZ3N0X212ZV92aWRlb19jcmVhdGVfYnVmZmVyKSwKCSAgKGdzdF9tdmVfdmlkZW9fcGFsZXR0ZSksIChnc3RfbXZlX3ZpZGVvX2NvZGVfbWFwKSwKCSAgKGdzdF9tdmVfYXVkaW9faW5pdCksIChnc3RfbXZlX2F1ZGlvX2RhdGEpLCAoZ3N0X212ZV90aW1lcl9jcmVhdGUpLAoJICAoZ3N0X212ZV9kZW11eF9jaGFpbik6CgkgICogZ3N0L212ZS9nc3RtdmVtdXguYzogKGdzdF9tdmVfbXV4X3B1c2hfY2h1bmspOgoJICAqIGdzdC9tdmUvbXZlYXVkaW9lbmMuYzogKG12ZV9jb21wcmVzc19hdWRpbyk6CgkgICogZ3N0L212ZS9tdmV2aWRlb2RlYzE2LmM6IChpcHZpZGVvX2NvcHlfYmxvY2spOgoJICAqIGdzdC9tdmUvbXZldmlkZW9kZWM4LmM6IChpcHZpZGVvX2NvcHlfYmxvY2spOgoJICAqIGdzdC9tdmUvbXZldmlkZW9lbmMxNi5jOiAobXZlX2VuY29kZV9mcmFtZTE2KToKCSAgKiBnc3QvbXZlL212ZXZpZGVvZW5jOC5jOiAobXZlX2VuY29kZV9mcmFtZTgpOgoJICBVc2UgcHJvcGVyIHByaW50IHN0YXRlbWVudHMuCgkgIEZpeGVzIGJ1aWxkIG9uIG1hYyBvcyB4LgoJICA8d2luZ28+IG9vIGxvb2sgYXQgbWUgbXkgbmFtZSBpcyBlZHdhcmQgaSdtIGhhY2tpbmcgb24gbWFjb3Mgd29vbwoKMjAwNy0wMS0yNSAxMTowMjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCByZXF1aXJlZCAtY29yZS8tYmFzZSB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHJlcXVpcmVkIC1jb3JlLy1iYXNlIHRvIENWUwoKMjAwNy0wMS0yNSAxMDo1NDoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lio6IEZpbGwgdXAgdG8gTVRVIHVzaW5nIGFkYXB0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6IChnc3RfcnRwX0wxNl9wYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX0wxNl9wYXlfZmx1c2gpLCAoZ3N0X3J0cF9MMTZfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkgIEZpbGwgdXAgdG8gTVRVIHVzaW5nIGFkYXB0ZXIuCgkgIFRpbWVzdGFtcCBydHAgcGFja2V0cy4KCjIwMDctMDEtMjUgMTA6MzY6MzUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBVc2UgR19HU0laRV9GT1JNQVQgaW4gcHJpbnQgc3RhdGVtZW50cyBmb3IgcG9ydGFiaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICAqIHN5cy94aW1hZ2UveGltYWdldXRpbC5jOiAoeGltYWdldXRpbF9jaGVja194c2htX2NhbGxzKToKCSAgVXNlIEdfR1NJWkVfRk9STUFUIGluIHByaW50IHN0YXRlbWVudHMgZm9yIHBvcnRhYmlsaXR5LgoJICBGaXhlcyBidWlsZCBvbiBtYWNvc3guCgoyMDA3LTAxLTI0IDE4OjIwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IFBvcnQgYW5kIGVuYWJsZSByYXcgYXVkaW8gcGF5bG9hZGVyL2RlcGF5bG9hZGVyLiBOZWVkcyBhIGJpdCBtb3JlIHdvcmsgb24gdGhlIHBheWxvYWRlciBzaWRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOiAoZ3N0X3J0cF9MMTZfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfTDE2X2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9MMTZfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX0wxNl9kZXBheV9wYXJzZV9pbnQpLCAoZ3N0X3J0cF9MMTZfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX0wxNl9kZXBheV9wcm9jZXNzKSwgKGdzdF9ydHBfTDE2X2RlcGF5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX0wxNl9kZXBheV9nZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9MMTZfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfTDE2X2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzogKGdzdF9ydHBfTDE2X3BheV9nZXRfdHlwZSksCgkgIChnc3RfcnRwX0wxNl9wYXlfYmFzZV9pbml0KSwgKGdzdF9ydHBfTDE2X3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfTDE2X3BheV9pbml0KSwgKGdzdF9ydHBfTDE2X3BheV9maW5hbGl6ZSksCgkgIChnc3RfcnRwX0wxNl9wYXlfc2V0Y2FwcyksIChnc3RfcnRwX0wxNl9wYXlfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfcnRwX0wxNl9wYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkgIFBvcnQgYW5kIGVuYWJsZSByYXcgYXVkaW8gcGF5bG9hZGVyL2RlcGF5bG9hZGVyLiBOZWVkcyBhIGJpdCBtb3JlIHdvcmsKCSAgb24gdGhlIHBheWxvYWRlciBzaWRlLgoKMjAwNy0wMS0yNCAxNjoyNTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogT25seSB1bmJsb2NrIHRoZSB1ZHAgcGFkcyB3aGVuIHdlIGxpbmtlZCBhbmQgYWN0aXZhdGVkIHRoZW0gYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChwYWRfYmxvY2tlZCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19hY3RpdmF0ZV9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX2xvb3BfdWRwKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIE9ubHkgdW5ibG9jayB0aGUgdWRwIHBhZHMgd2hlbiB3ZSBsaW5rZWQgYW5kIGFjdGl2YXRlZCB0aGVtIGFsbC4KCSAgRml4ZXMgIzM5NTY4OC4KCjIwMDctMDEtMjQgMTU6MTg6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogQWRkZWQgc2ltcGxlIEFDMyBkZXBheWxvYWRlciAoUkZDIDQxODQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBhYzNkZXBheS5jOiAoZ3N0X3J0cF9hYzNfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfYWMzX2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9hYzNfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX2FjM19kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfYWMzX2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9hYzNfZGVwYXlfc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBfYWMzX2RlcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX2FjM19kZXBheV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3J0cF9hYzNfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwYWMzZGVwYXkuaDoKCSAgQWRkZWQgc2ltcGxlIEFDMyBkZXBheWxvYWRlciAoUkZDIDQxODQpLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6IChnc3RfcnRwX21wMnRfZGVwYXlfc2V0Y2Fwcyk6CgkgIEZpeCBhIGxlYWsuCgoyMDA3LTAxLTI0IDEyOjQxOjAzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC86IEFkZCBuZXcgZWxlbWVudCAiYXVkaW9hbXBsaWZ5Ii4gVGhpcyBhbGxvd3Mgc2NhbGluZyBvZiByYXcgYXVkaW8gc2FtcGxlcywgc2ltaWxhciB0byB0aGUgInZvbHVtZSIgZWxlbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCAgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5jOgoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfY2xpcHBpbmdfbWV0aG9kX2dldF90eXBlKSwKCSAgKGdzdF9hdWRpb19hbXBsaWZ5X2Jhc2VfaW5pdCksIChnc3RfYXVkaW9fYW1wbGlmeV9jbGFzc19pbml0KSwKCSAgKGdzdF9hdWRpb19hbXBsaWZ5X2luaXQpLCAoZ3N0X2F1ZGlvX2FtcGxpZnlfc2V0X3Byb2Nlc3NfZnVuY3Rpb24pLAoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfc2V0X3Byb3BlcnR5KSwgKGdzdF9hdWRpb19hbXBsaWZ5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV9zZXRfY2FwcyksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV90cmFuc2Zvcm1faW50X2NsaXApLAoJICAoZ3N0X2F1ZGlvX2FtcGxpZnlfdHJhbnNmb3JtX2ludF93cmFwX25lZ2F0aXZlKSwKCSAgKGdzdF9hdWRpb19hbXBsaWZ5X3RyYW5zZm9ybV9pbnRfd3JhcF9wb3NpdGl2ZSksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV90cmFuc2Zvcm1fZmxvYXRfY2xpcCksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV90cmFuc2Zvcm1fZmxvYXRfd3JhcF9uZWdhdGl2ZSksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV90cmFuc2Zvcm1fZmxvYXRfd3JhcF9wb3NpdGl2ZSksCgkgIChnc3RfYXVkaW9fYW1wbGlmeV90cmFuc2Zvcm1faXApOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvYW1wbGlmeS5oOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZnguYzogKHBsdWdpbl9pbml0KToKCSAgQWRkIG5ldyBlbGVtZW50ICJhdWRpb2FtcGxpZnkiLiBUaGlzIGFsbG93cyBzY2FsaW5nIG9mIHJhdyBhdWRpbwoJICBzYW1wbGVzLCBzaW1pbGFyIHRvIHRoZSAidm9sdW1lIiBlbGVtZW50LCBidXQgcHJvdmlkZXMgZGlmZmVyZW50IG1vZGVzCgkgIGZvciBjbGlwcGluZyBhbmQgYWxsb3dzIHVubGltaXRlZCBhbXBsaWZpY2F0aW9uLiBJdCdzIG1haW5seSB0YXJnZXRlZAoJICBmb3IgY3JlYXRpdmUgc291bmQgZGVzaWduIGFuZCBub3QgYXMgYSByZXBsYWNlbWVudCBvZiB0aGUgInZvbHVtZSIKCSAgZWxlbWVudC4gRml4ZXMgIzM5NzE2MgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICBBZGQgZG9jcyBmb3IgYXVkaW9hbXBsaWZ5IGFuZCBpbnRlZ3JhdGUgdGhlbSBpbnRvIHRoZSBidWlsZCBzeXN0ZW0KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb2FtcGxpZnkuYzogKHNldHVwX2FtcGxpZnkpLAoJICAoY2xlYW51cF9hbXBsaWZ5KSwgKEdTVF9TVEFSVF9URVNUKSwgKGFtcGxpZnlfc3VpdGUpLCAobWFpbik6CgkgIEFkZCBmYWlybHkgZXh0ZW5zaXZlIHVuaXQgdGVzdCBzdWl0ZSBmb3IgYXVkaW9hbXBsaWZ5CgoyMDA3LTAxLTI0IDEyOjI2OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBVbmJsb2NrIHBhZHMgYWZ0ZXIgYWRkaW5nIHRoZSBwYWRzIHRvIHRoZSBlbGVtZW50IHNvIHRoYXQgYXV0b3BsdWdnZXJzIGdldCBhIGNoYW5nZSB0byBsaW5rIHNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKHBhZF91bmJsb2NrZWQpLCAocGFkX2Jsb2NrZWQpOgoJICBVbmJsb2NrIHBhZHMgYWZ0ZXIgYWRkaW5nIHRoZSBwYWRzIHRvIHRoZSBlbGVtZW50IHNvIHRoYXQgYXV0b3BsdWdnZXJzCgkgIGdldCBhIGNoYW5nZSB0byBsaW5rIHNvbWV0aGluZy4gUG9zc2libHkgZml4ZXMgIzM5NTY4OC4KCjIwMDctMDEtMjQgMTI6MjI6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogRml4IGNhcHMgd2l0aCBwYXlsb2FkIG51bWJlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzogKGdzdF9ydHBfbXA0dl9kZXBheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6IChnc3RfcnRwX21wYV9kZXBheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfbXBhX2RlcGF5X2luaXQpLCAoZ3N0X3J0cF9tcGFfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX21wYV9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wdmRlcGF5LmM6IChnc3RfcnRwX21wdl9kZXBheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfbXB2X2RlcGF5X2luaXQpLCAoZ3N0X3J0cF9tcHZfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOgoJICBGaXggY2FwcyB3aXRoIHBheWxvYWQgbnVtYmVycy4KCSAgQWRkIHNvbWUgZml4ZWQgcGF5bG9hZCBudW1iZXJzIHRvIGNhcHMgd2hlbiBwb3NzaWJsZS4KCjIwMDctMDEtMjQgMTE6Mjk6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9nc3RydHB4cXRkZXBheS5jOiBGaXggY2FwcyBvbiB0aGUgZGVwYXlsb2FkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5LmM6CgkgIEZpeCBjYXBzIG9uIHRoZSBkZXBheWxvYWRlci4KCjIwMDctMDEtMjMgMTg6MTY6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4LzogQWRkIG5ldyBhdWRpb2Z4IGVsZW1lbnQgImF1ZGlvaW52ZXJ0Ii4gVGhpcyBlbGVtZW50IHN3YXBzIHRoZSB1cHBlciBhbmQgbG93ZXIgaGFsZiBvZiBzYW1wbGVzIGFuZCBjYW4gYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0ICA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogZ3N0L2F1ZGlvZngvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9meC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvaW52ZXJ0LmM6IChnc3RfYXVkaW9faW52ZXJ0X2Jhc2VfaW5pdCksCgkgIChnc3RfYXVkaW9faW52ZXJ0X2NsYXNzX2luaXQpLCAoZ3N0X2F1ZGlvX2ludmVydF9pbml0KSwKCSAgKGdzdF9hdWRpb19pbnZlcnRfc2V0X3Byb3BlcnR5KSwgKGdzdF9hdWRpb19pbnZlcnRfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19pbnZlcnRfc2V0X2NhcHMpLCAoZ3N0X2F1ZGlvX2ludmVydF90cmFuc2Zvcm1faW50KSwKCSAgKGdzdF9hdWRpb19pbnZlcnRfdHJhbnNmb3JtX2Zsb2F0KSwKCSAgKGdzdF9hdWRpb19pbnZlcnRfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb2ludmVydC5oOgoJICBBZGQgbmV3IGF1ZGlvZnggZWxlbWVudCAiYXVkaW9pbnZlcnQiLiBUaGlzIGVsZW1lbnQgc3dhcHMgdGhlIHVwcGVyCgkgIGFuZCBsb3dlciBoYWxmIG9mIHNhbXBsZXMgYW5kIGNhbiBiZSB1c2VkIGZvciBleGFtcGxlIGZvciBhCgkgIHdpZGUtc3RlcmVvIGVmZmVjdC4gRml4ZXMgIzM5NjA1NwoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICBBZGQgZG9jcyBmb3IgdGhlIGF1ZGlvaW52ZXJ0IGVsZW1lbnQgYW5kIGFkZCB0aGVtIHRvIHRoZSBidWlsZCBzeXN0ZW0uCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9pbnZlcnQuYzogKHNldHVwX2ludmVydCksCgkgIChjbGVhbnVwX2ludmVydCksIChHU1RfU1RBUlRfVEVTVCksIChpbnZlcnRfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB1bml0IHRlc3Qgc3VpdGUgZm9yIHRoZSBhdWRpb2ludmVydCBlbGVtZW50LgoKMjAwNy0wMS0yMyAxNzozNjozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6IFBhcnNlIGNvbmZpZyBwYXJhbXMgYXMgc3RyaW5nIGFuZCBpbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6IChnc3RfcnRwX21wNGdfZGVwYXlfcGFyc2VfaW50KSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfbXA0Z19kZXBheV9wcm9jZXNzKToKCSAgUGFyc2UgY29uZmlnIHBhcmFtcyBhcyBzdHJpbmcgYW5kIGludC4KCSAgUGFyc2UgYW5kIHVzZSBBVSBoZWFkZXIgbGVuZ3RoCgoyMDA3LTAxLTIzIDE3OjI3OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3NtcHRlLzogY29uc3RpZnkgc29tZSBzdGF0aWMgc3RydWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NtcHRlL2JhcmJveHdpcGVzLmM6IChnc3Rfd2lwZV9ib3hlc19kcmF3KSwKCSAgKGdzdF93aXBlX3RyaWFuZ2xlc19jbG9ja19kcmF3KSwgKGdzdF93aXBlX3RyaWFuZ2xlc19kcmF3KToKCSAgKiBnc3Qvc21wdGUvZ3N0bWFzay5jOiAoX2dzdF9tYXNrX3JlZ2lzdGVyKToKCSAgKiBnc3Qvc21wdGUvZ3N0bWFzay5oOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX3VwZGF0ZV9tYXNrKToKCSAgKiBnc3Qvc21wdGUvcGFpbnQuYzogKGdzdF9zbXB0ZV9wYWludF9oYm94KSwgKGRyYXdfYnJlc2VuaGFtX2xpbmUpLAoJICAoZ3N0X3NtcHRlX3BhaW50X3RyaWFuZ2xlX2Nsb2NrKToKCSAgY29uc3RpZnkgc29tZSBzdGF0aWMgc3RydWN0cy4KCSAgRG9uJ3QgdXBkYXRlIHRoZSBtYXNrIGlmIG5vdGhpbmcgY2hhbmdlZCB0byB0aGUgcGFyYW1zLgoJICBNYWtlIHN1cmUgd2UgbmV2ZXIgZHJhdyBvdXRzaWRlIG9mIHRoZSBwaWN0dXJlLiBGaXhlcyAjMzk4MzI1LgoKMjAwNy0wMS0yMiAxMzowNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogRXJyb3Igb3V0IHByb3Blcmx5IHdoZW4gcHVsbF9yYW5nZSBmYWlscyB3aGlsZSB3ZSdyZSByZWFkaW5nIHRoZSBoZWFkZXJzLCBpbnN0ZWFkIG9mIGp1c3QgcGF1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXJfcHVsbCk6CgkgIEVycm9yIG91dCBwcm9wZXJseSB3aGVuIHB1bGxfcmFuZ2UgZmFpbHMgd2hpbGUgd2UncmUgcmVhZGluZyB0aGUKCSAgaGVhZGVycywgaW5zdGVhZCBvZiBqdXN0IHBhdXNpbmcgdGhlIHRhc2sgc2lsZW50bHkuIEZpeGVzICMzOTkzMzguCgoyMDA3LTAxLTE5IDEzOjA2OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IFNvbWUgbW9yZSBzYW5pdHkgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgaW5wdXQgZm9ybWF0cyBtYXRjaCBhbmQgdGhlIGlucHV0IHBhZHMgYXJlIGFjdHVhbGx5IG5lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX2NvbGxlY3RlZCk6CgkgIFNvbWUgbW9yZSBzYW5pdHkgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgaW5wdXQgZm9ybWF0cyBtYXRjaCBhbmQgdGhlCgkgIGlucHV0IHBhZHMgYXJlIGFjdHVhbGx5IG5lZ290aWF0ZWQsIGluIGNhc2Ugc29tZW9uZSB0cmllcyB0byBmZWVkCgkgIGJ1ZmZlcnMgZnJvbSBmYWtlc3JjIG9yIGZpbGVzcmMuIEZpeGVzICMzOTgyOTkuCgkgIEFsc28gY29uc3QtaWZ5IGFuIGFycmF5LCBqdXN0IGJlY2F1c2Ugd2UgY2FuLgoKMjAwNy0wMS0xOSAxMDozNToxMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiBJZ25vcmUgcHJldmlvdXMgY29tbWl0LCB0aGF0IHdhcyBvbmx5IHZhbGlkIGZvciB3aWR0aHMgYW5kIGhlaWdodHMgdGhhdCBhcmUgbXVsdGlwbGVzIG9mIDQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZmlsbF9pNDIwKSwgKGdzdF9zbXB0ZV9jb2xsZWN0ZWQpOgoJICBJZ25vcmUgcHJldmlvdXMgY29tbWl0LCB0aGF0IHdhcyBvbmx5IHZhbGlkIGZvciB3aWR0aHMgYW5kIGhlaWdodHMKCSAgdGhhdCBhcmUgbXVsdGlwbGVzIG9mIDQuCgkgIENvcHkgb3ZlciBzaXplL3N0cmlkZSBtYWNyb3MgZnJvbSBqcGVnZGVjLiBUaGlzIGFsbG93cyB0aGUgZWxlbWVudAoJICB0byB3b3JrIHdpdGggYW55IHdpZHRoLGhlaWdodC4uLgoJICAuLi4gYnV0IHB1dHMgaW4gZXZpZGVuY2UgdGhhdCB0aGUgYWN0dWFsIHRyYW5zZm9ybWF0aW9ucyBvbmx5IHdvcmsKCSAgd2l0aCB3aWR0aC9oZWlnaHQgdGhhdCBhcmUgbXVsdGlwbGVzIG9mIDQuCgoyMDA3LTAxLTE5IDA5OjQ4OjQ3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IEFsbG9jYXRlIGJ1ZmZlcnMgb2YgdGhlIHJpZ2h0IHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX2NvbGxlY3RlZCk6CgkgIEFsbG9jYXRlIGJ1ZmZlcnMgb2YgdGhlIHJpZ2h0IHNpemUuCgkgIFRoZSBwcm9wZXIgc2l6ZSBvZiBhIEk0MjAgYnVmZmVyIGluIGJ5dGVzIGlzOgoJICB3aWR0aCAqIGhlaWdodCAqIDMKCSAgLS0tLS0tLS0tLS0tLS0tLS0tCgkgIDIKCjIwMDctMDEtMTggMTg6Mzc6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvc21wdGUvZ3N0c21wdGUuYzogUHJveHkgZ2V0Y2FwcyBvbiBzaW5rIHBhZHMgdG9vLCBzbyB0aGF0IHdlIGVpdGhlciBlbmQgdXAgd2l0aCB0aGUgc2FtZSBkaW1lbnNpb25zIG9uIGFsbCBwYWRzIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IChnc3Rfc21wdGVfaW5pdCk6CgkgIFByb3h5IGdldGNhcHMgb24gc2luayBwYWRzIHRvbywgc28gdGhhdCB3ZSBlaXRoZXIgZW5kIHVwIHdpdGggdGhlCgkgIHNhbWUgZGltZW5zaW9ucyBvbiBhbGwgcGFkcyBvciBlcnJvciBvdXQgaWYgdGhhdCdzIG5vdCBwb3NzaWJsZQoJICAoc2VlbXMgdG8gd29yayBldmVuISkuIEZpeGVzICMzOTgwODYsIEkgdGhpbmsuCgoyMDA3LTAxLTE4IDExOjI5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogUmVtb3ZlIGxhZHNwYSBmcm9tIGRvY3M7IGFkZCBoaWVyYXJjaHkgaW5mbyBmb3IgR3N0QXVkaW9QYW5vcmFtYTsgZml4IGludGVnZXIgcHJvcGVydGllcyB3aXRoIC0xIGFzIG1pLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgUmVtb3ZlIGxhZHNwYSBmcm9tIGRvY3M7IGFkZCBoaWVyYXJjaHkgaW5mbyBmb3IgR3N0QXVkaW9QYW5vcmFtYTsKCSAgZml4IGludGVnZXIgcHJvcGVydGllcyB3aXRoIC0xIGFzIG1pbmltdW0gdmFsdWUuCgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvZngueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkgIFVwZGF0ZSB0byBDVlMuCgoyMDA3LTAxLTE4IDExOjIzOjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6IEZpeCBkb2Mgc2VjdGlvbiBuYW1lIChGaXhlcyAjMzk3OTQ2KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6CgkgIEZpeCBkb2Mgc2VjdGlvbiBuYW1lIChGaXhlcyAjMzk3OTQ2KQoKMjAwNy0wMS0xOCAxMDozMzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgUmVtb3ZlIGJvZ3VzIENoYW5nZUxvZyBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIGJvZ3VzIENoYW5nZUxvZyBlbnRyeQoKMjAwNy0wMS0xNyAxNDozMDo1MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgc3lzL3Y0bDIvOiBGaXggRUlPIGhhbmRpbmcgd2hlbiBjYXB0dXJpbmcuIEFkZCBuZXcgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gZW5xdWUgKGFuZCByZW1vdmUgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSAgKGdzdF92NGwyX29iamVjdF9pbnN0YWxsX3Byb3BlcnRpZXNfaGVscGVyKSwKCSAgKGdzdF92NGwyX29iamVjdF9zZXRfcHJvcGVydHlfaGVscGVyKSwKCSAgKGdzdF92NGwyX29iamVjdF9nZXRfcHJvcGVydHlfaGVscGVyKSwgKGdzdF92NGwyX3NldF9kZWZhdWx0cyk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Y0bDJzcmNfaW5pdCksIChnc3RfdjRsMnNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF92NGwyc3JjX3NldF9jYXBzKToKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19maWxsX2Zvcm1hdF9saXN0KSwKCSAgKGdzdF92NGwyc3JjX2dyYWJfZnJhbWUpLCAoZ3N0X3Y0bDJzcmNfc2V0X2NhcHR1cmUpLAoJICAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9pbml0KSwgKGdzdF92NGwyc3JjX2NhcHR1cmVfc3RhcnQpLAoJICAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9kZWluaXQpOgoJICBGaXggRUlPIGhhbmRpbmcgd2hlbiBjYXB0dXJpbmcuIEFkZCBuZXcgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mCgkgIGJ1ZmZlcnMgdG8gZW5xdWUgKGFuZCByZW1vdmUgdGhlIGJvcmtlZCBudW0tYnVmZmVycyB1c2FnZSkuCgoyMDA3LTAxLTE2IDA4OjI5OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6IFVzZSBhIGZ1bmN0aW9uIGFycmF5IGZvciBwcm9jZXNzIG1ldGhvZHMsIGFkZCBtb3JlIGRvY3MgYW5kIGRlZmluZSB0aGUgc3RhcnRpbmRleCBvZiBlbnVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBjaXJjdWxhci1jaGFvcyBvcmc+CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOiAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3NldF9wcm9jZXNzX2Z1bmN0aW9uKToKCSAgVXNlIGEgZnVuY3Rpb24gYXJyYXkgZm9yIHByb2Nlc3MgbWV0aG9kcywgYWRkIG1vcmUgZG9jcyBhbmQgZGVmaW5lIHRoZQoJICBzdGFydGluZGV4IG9mIGVudW1zLgoKMjAwNy0wMS0xNCAxNzo1NTozMyArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIEFkZCBzdXBwb3J0IGZvciBtb3JlIHRoYW4gb25lIGF1ZGlvIHN0cmVhbTsgd3JpdGUgYmV0dGVyIEFWSVggaGVhZGVyOyByZWZhY3RvciBjb2RlIGEgYml0OyBkb24ndCBhbm5vdW5jZSB2b3JiaXMgY2Fwcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X2ZpbmFsaXplKSwKCSAgKGdzdF9hdmlfbXV4X3BhZF9yZXNldCksIChnc3RfYXZpX211eF9yZXNldCksIChnc3RfYXZpX211eF9pbml0KSwKCSAgKGdzdF9hdmlfbXV4X3ZpZHNpbmtfc2V0X2NhcHMpLCAoZ3N0X2F2aV9tdXhfYXVkc2lua19zZXRfY2FwcyksCgkgIChnc3RfYXZpX211eF9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X2F2aV9tdXhfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X2F2aV9tdXhfcmlmZl9nZXRfYXZpX2hlYWRlciksCgkgIChnc3RfYXZpX211eF9yaWZmX2dldF9hdml4X2hlYWRlciksIChnc3RfYXZpX211eF9yaWZmX2dldF9oZWFkZXIpLAoJICAoZ3N0X2F2aV9tdXhfd3JpdGVfYXZpeF9pbmRleCksIChnc3RfYXZpX211eF9hZGRfaW5kZXgpLAoJICAoZ3N0X2F2aV9tdXhfYmlnZmlsZSksIChnc3RfYXZpX211eF9zdGFydF9maWxlKSwKCSAgKGdzdF9hdmlfbXV4X3N0b3BfZmlsZSksIChnc3RfYXZpX211eF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2F2aV9tdXhfZG9fYnVmZmVyKSwgKGdzdF9hdmlfbXV4X2RvX29uZV9idWZmZXIpLAoJICAoZ3N0X2F2aV9tdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F2aW11eC5jOiAodGVhcmRvd25fc3JjX3BhZCk6CgkgIEFkZCBzdXBwb3J0IGZvciBtb3JlIHRoYW4gb25lIGF1ZGlvIHN0cmVhbTsgd3JpdGUgYmV0dGVyIEFWSVgKCSAgaGVhZGVyOyByZWZhY3RvciBjb2RlIGEgYml0OyBkb24ndCBhbm5vdW5jZSB2b3JiaXMgY2FwcyBvbiBvdXIgYXVkaW8KCSAgc2luayBwYWRzIHNpbmNlIHdlIGRvbid0IHN1cHBvcnQgaXQgYW55d2F5LiBDbG9zZXMgIzM3OTI5OC4KCjIwMDctMDEtMTMgMTk6MTI6MzIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9pbnRlcmxlYXZlL2RlaW50ZXJsZWF2ZS5jIChnc3RfZGVpbnRlcmxlYXZlX2FkZF9uZXdfcGFkcyk6IFVzZSBmaXhlZCBjYXBzIG9uIHNyYyBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYyAoZ3N0X2RlaW50ZXJsZWF2ZV9hZGRfbmV3X3BhZHMpOgoJICBVc2UgZml4ZWQgY2FwcyBvbiBzcmMgcGFkcy4KCSAgKGdzdF9kZWludGVybGVhdmVfcmVtb3ZlX3BhZHMpOiBSZW1vdmUgc3JjIHBhZHMsIG5vdCBzaW5rIHBhZHMuIEkKCSAgc2VlbSB0byBoYXZlIHJldmVyc2UgbWlkYXMgZGlzZWFzZSEKCSAgKGdzdF9kZWludGVybGVhdmVfcHJvY2Vzcyk6IFByb3h5IHRpbWVzdGFtcHMsIG9mZnNldHMsIGR1cmF0aW9ucywKCSAgYW5kIHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMuIEZpeGVzICMzOTU1OTcsIEkgdGhpbmsuCgoyMDA3LTAxLTEzIDE4OjAxOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmMgKGdzdF9pbnRlcmxlYXZlX2luaXQpOiBJbml0IHRoZSBhY3RpdmF0aW9uIG1vZGUgcHJvcGVybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9pbnRlcmxlYXZlL2ludGVybGVhdmUuYyAoZ3N0X2ludGVybGVhdmVfaW5pdCk6IEluaXQgdGhlCgkgIGFjdGl2YXRpb24gbW9kZSBwcm9wZXJseS4KCSAgKGdzdF9pbnRlcmxlYXZlX3NyY19zZXRjYXBzLCBnc3RfaW50ZXJsZWF2ZV9zcmNfZ2V0Y2FwcykKCSAgKGdzdF9pbnRlcmxlYXZlX2luaXQpOiBTZXQgYSBzZXRjYXBzIGFuZCBnZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZQoJICBzcmMgcGFkLCBzbyB0aGF0IHdlIGNhbiBpbXBsZW1lbnQgcHVsbC1tb2RlIG5lZ290aWF0aW9uLgoJICAoZ3N0X2ludGVybGVhdmVfc2lua19zZXRjYXBzKTogUmVuYW1lZCBmcm9tCgkgIGdzdF9pbnRlcmxlYXZlX3NldGNhcHMsIGFzIGl0IG9ubHkgZG9lcyB0aGUgc2luayBsb2dpYyBub3cuCgkgIEltcGxlbWVudCBib3RoIGZvciBwdWxsLW1vZGUgYW5kIHB1c2gtbW9kZS4KCSAgKGdzdF9pbnRlcmxlYXZlX3Byb2Nlc3MpOiBTZXQgY2FwcyBvbiBvdXIgb3V0Z29pbmcgYnVmZmVyLgoJICAoZ3N0X2ludGVybGVhdmVfc3JjX2FjdGl2YXRlX3B1bGwpOiBGaXggc29tZSBtb3JlIGJvZ3VzIGNhc3RzLgoJICBXaGF0IGlzIHVwIHdpdGggdGhpcy4KCjIwMDctMDEtMTMgMTU6NTI6MTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuKjogQWRkICdtZXRob2QnIHByb3BlcnR5IGFuZCBwcm92aWRlIGEgc2ltcGxlIChub24tcHN5Y2hvYWN1c3RpYykgcHJvY2Vzc2luZyBtZXRob2QgKCMzOTQ4NTkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vIGNpcmN1bGFyLWNoYW9zIG9yZz4KCSAgKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmM6CgkgIChnc3RfYXVkaW9fcGFub3JhbWFfbWV0aG9kX2dldF90eXBlKSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9jbGFzc19pbml0KSwgKGdzdF9hdWRpb19wYW5vcmFtYV9pbml0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9zZXRfcHJvY2Vzc19mdW5jdGlvbiksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9nZXRfcHJvcGVydHkpLCAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3NldF9jYXBzKSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fbTJzX2ludF9zaW1wbGUpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9zMnNfaW50X3NpbXBsZSksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtX20yc19mbG9hdF9zaW1wbGUpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9zMnNfZmxvYXRfc2ltcGxlKToKCSAgKiBnc3QvYXVkaW9meC9hdWRpb3Bhbm9yYW1hLmg6CgkgIEFkZCAnbWV0aG9kJyBwcm9wZXJ0eSBhbmQgcHJvdmlkZSBhIHNpbXBsZSAobm9uLXBzeWNob2FjdXN0aWMpCgkgIHByb2Nlc3NpbmcgbWV0aG9kICgjMzk0ODU5KS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChwYW5vcmFtYV9zdWl0ZSk6CgkgIFRlc3RzIGZvciBuZXcgbWV0aG9kLgoKMjAwNy0wMS0xMiAxODoyODoxMyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBjb21tZW50IG91dCBMQURTUEEgcGx1Z2luIGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbW1lbnQgb3V0IExBRFNQQSBwbHVnaW4gZm9yIG5vdwoKMjAwNy0wMS0xMiAxNzoxNjo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4LzogQWRkIFgtUVQgZGVwYXlsb2FkZXIgdGhhdCB3aWxsIGV2ZW50dWFsbHkgc2hhcmUgY29kZSB3aXRoIHRoZSBkZW11eGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcXRkZW11eC9nc3RydHB4cXRkZXBheS5jOiAoZ3N0X3J0cF94cXRfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfeHF0X2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF94cXRfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX3hxdF9kZXBheV9maW5hbGl6ZSksIChnc3RfcnRwX3F1aWNrdGltZV9wYXJzZV9zZCksCgkgIChnc3RfcnRwX3hxdF9kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfeHF0X2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF94cXRfZGVwYXlfc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBfeHF0X2RlcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX3hxdF9kZXBheV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3J0cF94cXRfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9xdGRlbXV4L2dzdHJ0cHhxdGRlcGF5Lmg6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfaGVhZGVyKSwgKGdzdF9xdGRlbXV4X2xvb3ApLAoJICAocXRkZW11eF9wYXJzZV9tb292KSwgKHF0ZGVtdXhfcGFyc2VfY29udGFpbmVyKSwKCSAgKHF0ZGVtdXhfcGFyc2Vfbm9kZSksIChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X2F1ZGlvX2NhcHMpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgKiBnc3QvcXRkZW11eC9xdWlja3RpbWUuYzogKHBsdWdpbl9pbml0KToKCSAgQWRkIFgtUVQgZGVwYXlsb2FkZXIgdGhhdCB3aWxsIGV2ZW50dWFsbHkgc2hhcmUgY29kZSB3aXRoIHRoZSBkZW11eGVyLgoJICBNYWtlIG5ldyBwbHVnaW4gZW50cnkgcG9pbnQgd2l0aCBxdWlja3RpbWUgcmVsZWF0ZWQgc3R1ZmYuCgoyMDA3LTAxLTEyIDEyOjEwOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06IERpc3QgYWxsIG5ldyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkgIERpc3QgYWxsIG5ldyBmaWxlcy4KCjIwMDctMDEtMTIgMTA6Mjc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBBY3RpdmF0ZSBkb2NzIGZvciBqYWNrLCBzZGwgYW5kIHF0ZGVtdXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuc2lnbmFsczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXRkZW11eC54bWw6CgkgIEFjdGl2YXRlIGRvY3MgZm9yIGphY2ssIHNkbCBhbmQgcXRkZW11eC4KCjIwMDctMDEtMTIgMTA6MjI6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC86IENsZWFudXAgYW5kIHJlZmFjdG9yIHRvIG1ha2UgdGhlIGNvZGUgbW9yZSByZWFkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZXh0cmFjdF9pbml0aWFsX2xlbmd0aF9hbmRfZm91cmNjKSwKCSAgKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfaGVhZGVyKSwgKGdzdF9xdGRlbXV4X2NvbWJpbmVfZmxvd3MpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksIChnc3RfcXRkZW11eF9sb29wKSwKCSAgKGdzdF9xdGRlbXV4X2NoYWluKSwgKHF0ZGVtdXhfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKHF0ZGVtdXhfaW5mbGF0ZSksIChxdGRlbXV4X3BhcnNlX21vb3YpLCAocXRkZW11eF9wYXJzZV9jb250YWluZXIpLAoJICAocXRkZW11eF9wYXJzZV9ub2RlKSwgKHF0ZGVtdXhfdHJlZV9nZXRfY2hpbGRfYnlfdHlwZSksCgkgIChxdGRlbXV4X3RyZWVfZ2V0X3NpYmxpbmdfYnlfdHlwZSksIChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKSwKCSAgKHF0ZGVtdXhfcGFyc2Vfc2FtcGxlcyksIChxdGRlbXV4X3BhcnNlX3NlZ21lbnRzKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X3RhZ19hZGRfc3RyKSwgKHF0ZGVtdXhfdGFnX2FkZF9udW0pLAoJICAocXRkZW11eF90YWdfYWRkX2RhdGUpLCAocXRkZW11eF90YWdfYWRkX2ducmUpLAoJICAocXRkZW11eF9wYXJzZV91ZHRhKSwgKHF0ZGVtdXhfcmVkaXJlY3RzX3NvcnRfZnVuYyksCgkgIChxdGRlbXV4X3Byb2Nlc3NfcmVkaXJlY3RzKSwgKHF0ZGVtdXhfcGFyc2VfcmVkaXJlY3RzKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJlZSksIChnc3RfcXRkZW11eF9oYW5kbGVfZXNkcyksCgkgIChxdGRlbXV4X3ZpZGVvX2NhcHMpLCAocXRkZW11eF9hdWRpb19jYXBzKToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eF9kdW1wLmM6IChxdGRlbXV4X2R1bXBfbXZoZCksCgkgIChxdGRlbXV4X2R1bXBfdGtoZCksIChxdGRlbXV4X2R1bXBfZWxzdCksIChxdGRlbXV4X2R1bXBfbWRoZCksCgkgIChxdGRlbXV4X2R1bXBfaGRsciksIChxdGRlbXV4X2R1bXBfdm1oZCksIChxdGRlbXV4X2R1bXBfZHJlZiksCgkgIChxdGRlbXV4X2R1bXBfc3RzZCksIChxdGRlbXV4X2R1bXBfc3R0cyksIChxdGRlbXV4X2R1bXBfc3RzcyksCgkgIChxdGRlbXV4X2R1bXBfc3RzYyksIChxdGRlbXV4X2R1bXBfc3RzeiksIChxdGRlbXV4X2R1bXBfc3RjbyksCgkgIChxdGRlbXV4X2R1bXBfY282NCksIChxdGRlbXV4X2R1bXBfZGNvbSksIChxdGRlbXV4X2R1bXBfY212ZCksCgkgIChxdGRlbXV4X2R1bXBfdW5rbm93biksIChxdGRlbXV4X25vZGVfZHVtcF9mb3JlYWNoKSwKCSAgKHF0ZGVtdXhfbm9kZV9kdW1wKToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4X2R1bXAuaDoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4X2ZvdXJjYy5oOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuYzogKHF0ZGVtdXhfdHlwZV9nZXQpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXhfdHlwZXMuaDoKCSAgKiBnc3QvcXRkZW11eC9xdHBhbGV0dGUuaDoKCSAgQ2xlYW51cCBhbmQgcmVmYWN0b3IgdG8gbWFrZSB0aGUgY29kZSBtb3JlIHJlYWRhYmxlLgoJICBNb3ZlIGRlYnVnZ2luZy90YWJsZXMgaW50byBzZXBhcmF0ZSBmaWxlcy4KCSAgQWRkIDIvNC8xNiBjb2xvciBwYWxsZXRlZSBzdXBwb3J0LgoJICBGaXggcmF3IDE1IGJpdCBSR0IgaGFuZGxpbmcuCgkgIFVzZSBtb3JlIEZPVVJDQyBjb25zdGFudHMuCgkgIEFkZCBzb21lIGRvY3MuCgoyMDA3LTAxLTExIDE5OjUxOjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IE1pbm9yIGNsZWFuLXVwOiB1c2UgZW51bSB2YWx1ZXMgaW5zdGVhZCBvZiBoYXJkY29kZWQgY29uc3RhbnRzICgjMzk1NTM2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19tb2RlX2dldF90eXBlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19jb3JyZWN0aW9uX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2pvaW50X3N0ZXJlb19tb2RlX2dldF90eXBlKToKCSAgTWlub3IgY2xlYW4tdXA6IHVzZSBlbnVtIHZhbHVlcyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBjb25zdGFudHMgKCMzOTU1MzYpLgoKMjAwNy0wMS0xMSAxNjo1OTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFNldCBjb3JyZWN0IGNhcHMgb24gb3V0Z29pbmcgcHVsbGVkIGJ1ZmZlcnMsIG9yIHRoaW5ncyBibG93IHVwIGFmdGVyIHJlY2VudCBjb3JlIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzogKGdzdF90YWdfZGVtdXhfcmVhZF9yYW5nZSk6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfcmVhZF9yYW5nZSk6CgkgIFNldCBjb3JyZWN0IGNhcHMgb24gb3V0Z29pbmcgcHVsbGVkIGJ1ZmZlcnMsIG9yIHRoaW5ncyBibG93IHVwCgkgIGFmdGVyIHJlY2VudCBjb3JlIGNoYW5nZXMuCgoyMDA3LTAxLTExIDExOjA1OjA0ICswMDAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOiBSZXR1cm4gRkxPVyBlcnJvcnMgQVNBUC4gRml4ZXMgIzM5NDk3Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKb25hcyBIb2xtYmVyZyA8am9uYXMgZG90IGhvbG1iZXJnIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOiAoZ3N0X211bHRpcGFydF9tdXhfaW5pdCksCgkgIChnc3RfbXVsdGlwYXJ0X211eF9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfcXVldWVfcGFkcyksIChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfY2hhbmdlX3N0YXRlKToKCSAgUmV0dXJuIEZMT1cgZXJyb3JzIEFTQVAuIEZpeGVzICMzOTQ5NzcuCgkgIE1pc2MgY2xlYW51cHMuCgoyMDA3LTAxLTExIDA5OjMwOjU5ICswMDAwICBMdXR6IE11ZWxsZXIgPGx1dHpAdG9wZnJvc2UuZGU+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IENoZWNrIGZvciBzdHJlYW0gcGFkIGJlZm9yZSBhY3RpdmF0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfYWN0aXZhdGVfc3RyZWFtcyk6CgkgIENoZWNrIGZvciBzdHJlYW0gcGFkIGJlZm9yZSBhY3RpdmF0aW5nLgoKMjAwNy0wMS0xMCAxNToxOTo0OCArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvcnRzcC86IEFsbG93IHVybCB0byBiZSBOVUxMIHRvIGJlIGFibGUgdG8gdXNlIGl0IGZvciBzZXJ2ZXIgY29ubmVjdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9ydHNwL0NPUFlJTkcuTUlUOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NyZWF0ZV9zdHJlYW0pLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2ZyZWUpLCAoZ3N0X3J0c3BzcmNfY2xlYW51cCksCgkgIChnc3RfcnRzcHNyY19hbGxvY191ZHBfcG9ydHMpLCAocGFkX3VuYmxvY2tlZCksIChwYWRfYmxvY2tlZCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksCgkgIChnc3RfcnRzcHNyY19hY3RpdmF0ZV9zdHJlYW1zKSwgKGdzdF9ydHNwc3JjX2xvb3BfaW50ZXJsZWF2ZWQpLAoJICAoZ3N0X3J0c3BzcmNfbG9vcF91ZHApLCAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9tZXRob2RzKSwKCSAgKGdzdF9ydHNwc3JjX2NyZWF0ZV90cmFuc3BvcnRzX3N0cmluZyksCgkgIChnc3RfcnRzcHNyY19wcmVwYXJlX3RyYW5zcG9ydHMpLCAoZ3N0X3J0c3BzcmNfc2V0dXBfc3RyZWFtcyksCgkgIChnc3RfcnRzcHNyY19vcGVuKSwgKGdzdF9ydHNwc3JjX2Nsb3NlKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKHJ0c3BfY29ubmVjdGlvbl9jcmVhdGUpLAoJICAocnRzcF9jb25uZWN0aW9uX2Nvbm5lY3QpLCAocnRzcF9jb25uZWN0aW9uX3NlbmQpLCAocmVhZF9saW5lKSwKCSAgKHBhcnNlX3JlcXVlc3RfbGluZSksIChwYXJzZV9saW5lKSwgKHJ0c3BfY29ubmVjdGlvbl9yZWFkKSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9jbG9zZSk6CgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuYzogKHJ0c3BfaW5pdF9zdGF0dXMpLCAocnRzcF9zdHJyZXN1bHQpLAoJICAocnRzcF9tZXRob2RfYXNfdGV4dCksIChydHNwX2hlYWRlcl9hc190ZXh0KSwKCSAgKHJ0c3Bfc3RhdHVzX2FzX3RleHQpLCAocnRzcF9maW5kX2hlYWRlcl9maWVsZCksCgkgIChydHNwX2ZpbmRfbWV0aG9kKToKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICAqIGdzdC9ydHNwL3J0c3BleHR3bXMuYzogKHJ0c3BfZXh0X3dtc19hZnRlcl9zZW5kKSwKCSAgKHJ0c3BfZXh0X3dtc19jb25maWd1cmVfc3RyZWFtKToKCSAgKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5jOiAocnRzcF9tZXNzYWdlX25ldyksIChydHNwX21lc3NhZ2VfaW5pdCksCgkgIChydHNwX21lc3NhZ2VfbmV3X3JlcXVlc3QpLCAocnRzcF9tZXNzYWdlX2luaXRfcmVxdWVzdCksCgkgIChydHNwX21lc3NhZ2VfbmV3X3Jlc3BvbnNlKSwgKHJ0c3BfbWVzc2FnZV9pbml0X3Jlc3BvbnNlKSwKCSAgKHJ0c3BfbWVzc2FnZV9pbml0X2RhdGEpLCAocnRzcF9tZXNzYWdlX3Vuc2V0KSwKCSAgKHJ0c3BfbWVzc2FnZV9mcmVlKSwgKHJ0c3BfbWVzc2FnZV9hZGRfaGVhZGVyKSwKCSAgKHJ0c3BfbWVzc2FnZV9nZXRfaGVhZGVyKSwgKHJ0c3BfbWVzc2FnZV9zZXRfYm9keSksCgkgIChydHNwX21lc3NhZ2VfZ2V0X2JvZHkpLCAoZHVtcF9tZW0pLCAocnRzcF9tZXNzYWdlX2R1bXApOgoJICAqIGdzdC9ydHNwL3J0c3BtZXNzYWdlLmg6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5jOiAoc2RwX21lc3NhZ2VfZ2V0X2F0dHJpYnV0ZV92YWxfbiksCgkgIChzZHBfbWVkaWFfZ2V0X2F0dHJpYnV0ZV92YWxfbiksIChyZWFkX3N0cmluZyksIChyZWFkX3N0cmluZ19kZWwpLAoJICAoc2RwX3BhcnNlX2xpbmUpLCAoc2RwX21lc3NhZ2VfcGFyc2VfYnVmZmVyKSwgKHByaW50X21lZGlhKSwKCSAgKHNkcF9tZXNzYWdlX2R1bXApOgoJICBBbGxvdyB1cmwgdG8gYmUgTlVMTCB0byBiZSBhYmxlIHRvIHVzZSBpdCBmb3Igc2VydmVyIGNvbm5lY3Rpb25zLgoJICBDYW4gbm93IHNlbmQgcmVzcG9uc2VzIGFzIHdlbGwgYXMgcmVxdWVzdHMuCgkgIE5vIGxvbmdlciBoYW5ncyBpbiBhbiBlbmRsZXNzIGxvb3AgaWYgRU9GIGlzIHJlY2VpdmVkLgoJICBDYW4gbm93IGNvbnZlcnQgYSBzdGF0dXMgY29kZSB0byBhIHRleHQgc3RyaW5nLgoJICBSZXR1cm4gUlRTUF9IRFJfSU5WQUxJRCBmb3IgdW5rbm93biBoZWFkZXJzLgoJICBSZXR1cm4gUlRTUF9JTlZBTElEIGZvciB1bmtub3duIG1ldGhvZHMuCgkgIENvcHkgQ1NlcSBhbmQgU2Vzc2lvbiBoZWFkZXJzIGZyb20gdGhlIHJlcXVlc3QuCgkgIE9ubHkgZnJlZSBtZW1vcnkgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudGx5IHNldCBtZXNzYWdlIHR5cGUuCgkgIEFkZGVkIGNvbnN0IHRvIGZ1bmN0aW9uIGFyZ3VtZW50cyBhcyBhcHByb3ByaWF0ZS4KCSAgQXZvaWQgYSBjb21waWxlciB3YXJuaW5nIHdoZW4gaW5pdGlhbGl6aW5nIG5tZWRpYS4KCSAgVXNlIGd1aW50IHJhdGhlciB0aGFuIGdpbnQgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCgkgIEZpeCBjcmFzaGVyIGluIHdtcyBleHRlbnNpb24uCgkgIEZhY3RvciBvdXQgc3RyZWFtIHNldHVwIGZyb20gb3Blbl9jb25uZWN0aW9uLgoJICBEZWxheSBhY3RpdmF0aW9uIG9mIHN0cmVhbXMgd2hlbiBhY3R1YWwgZGF0YSBpcyByZWNlaXZlZCBmcm9tIHRoZQoJICBzZXJ2ZXIsIHRoaXMgcHJlcGFyZXMgdXMgdG8gZG8gcHJvcGVyIHByb3RvY29sIHN3aXRjaGluZy4KCSAgQWRkZWQgbmV3IGxpY2Vuc2UuCgkgIEZpeGVzICMzODA4OTUuCgoyMDA3LTAxLTEwIDA5OjQ3OjQzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBTb21lIHNtYWxsIGRvY3MgZml4ZXMgKCMzOTQ4NTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vIHVidW50dSBjb20+CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuYzoKCSAgU29tZSBzbWFsbCBkb2NzIGZpeGVzICgjMzk0ODUxKS4KCjIwMDctMDEtMDkgMTI6MjU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIEZpeCBkb2NzLgoKMjAwNy0wMS0wOSAxMjoyMzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBBZGRlZCBSRkMgMjI1MCBNUEVHIFZpZGVvIERlcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcHZkZXBheS5jOiAoZ3N0X3J0cF9tcHZfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfbXB2X2RlcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF9tcHZfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX21wdl9kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfbXB2X2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9tcHZfZGVwYXlfc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBfbXB2X2RlcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX21wdl9kZXBheV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3J0cF9tcHZfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXB2ZGVwYXkuaDoKCSAgQWRkZWQgUkZDIDIyNTAgTVBFRyBWaWRlbyBEZXBheWxvYWRlci4KCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6IChnc3RfcnRwX2gyNjNwX2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9oMjYzcF9kZXBheV9wcm9jZXNzKToKCSAgRml4IEhlYWRlciBmaWxlLiBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdkZXBheS5jOiAoZ3N0X3J0cF9tcDRnX2RlcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9tcDRnX2RlcGF5X2luaXQpLCAoZ3N0X3J0cF9tcDRnX2RlcGF5X2ZpbmFsaXplKSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9wcm9jZXNzKSwgKGdzdF9ydHBfbXA0Z19kZXBheV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6IChnc3RfcnRwX21wNHZfZGVwYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX21wNHZfZGVwYXlfaW5pdCksIChnc3RfcnRwX21wNHZfZGVwYXlfZmluYWxpemUpLAoJICAoZ3N0X3J0cF9tcDR2X2RlcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF9tcDR2X2RlcGF5X3Byb2Nlc3MpLAoJICAoZ3N0X3J0cF9tcDR2X2RlcGF5X2NoYW5nZV9zdGF0ZSk6CgkgIFJlbW92ZSB1c3VzZWQgY29kZS4gUmVtb3ZlIEFkYXB0ZXIgZnJvbSBzdGF0ZSBDaGFuZ2UuIEFkZGVkIGRlYnVnLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzogKGdzdF9ydHBfbXBhX2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX21wYV9kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfbXBhX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9tcGFfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX21wYV9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5Lmg6CgkgIFN1YmNsYXNzIGJhc2UgZGVwYXlsb2FkZXIuCgkgIEFkZGVkIGRlYnVnLgoJICBTdXBwb3J0IHN0YXRpYyBwYXlsb2FkIHR5cGUgYXNzaWdubWVudCBhcyB3ZWxsLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkgIEZpeCBjYXBzLgoKMjAwNy0wMS0wOCAxMjo0NToxMCArMDAwMCAgVmluY2VudCBUb3JyaSA8dnRvcnJpQHVuaXYtZXZyeS5mcj4KCgkgIGV4dC9qcGVnLzogVGhlc2UgbGlianBlZyBjYWxsYmFja3Mgc2hvdWxkIHJldHVybiBhICdib29sZWFuJyAodW5zaWduZWQgY2hhciBhcHBhcmVudGx5KSBhbmQgbm90IGEgJ2dib29sZWFuJyAod2hpY2ggbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFZpbmNlbnQgVG9ycmkgIDx2dG9ycmkgYXQgdW5pdi1ldnJ5IGZyPgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzoKCSAgKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkgICogZXh0L2pwZWcvc21va2Vjb2RlYy5jOgoJICBUaGVzZSBsaWJqcGVnIGNhbGxiYWNrcyBzaG91bGQgcmV0dXJuIGEgJ2Jvb2xlYW4nICh1bnNpZ25lZCBjaGFyCgkgIGFwcGFyZW50bHkpIGFuZCBub3QgYSAnZ2Jvb2xlYW4nICh3aGljaCBtYXBzIHRvIGdpbnQpLiBGaXhlcwoJICB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyB3aXRoIE1pbmdXICgjMzkzNDI3KS4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX3JlYWQpOgoJICBVc2UgaW9jdGxzb2NrZXQgb24gd2luMzIuCgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY3JlYXRlKToKCSAgU29tZSBwcmludGYgZm9ybWF0IGZpeGVzIGZvciB3aW4zMi4KCjIwMDctMDEtMDcgMjI6MDM6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIE5ldyBlbGVtZW50cyBpbnRlcmxlYXZlIGFuZCBkZWludGVybGVhdmUsIGltcGxlbWVudCBjaGFubmVsIGludGVybGVhdmluZyBhbmQgZGVpbnRlcmxlYXZpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9wbHVnaW4uaDoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9wbHVnaW4uYzoKCSAgKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6IE5ldyBlbGVtZW50cyBpbnRlcmxlYXZlIGFuZAoJICBkZWludGVybGVhdmUsIGltcGxlbWVudCBjaGFubmVsIGludGVybGVhdmluZyBhbmQgZGVpbnRlcmxlYXZpbmcuCgkgIFRoZSBpbnRlcmxlYXZlciBjYW4gb3BlcmF0ZSBpbiBwdWxsIG9yIHB1c2ggbW9kZSBidXQgdGhlCgkgIGRlaW50ZXJsZWF2ZXIgaXMgbW9yZSBsaWtlIGEgZGVtdXhlciBhbmQgY2FuIG9ubHkgb3BlcmF0ZSBpbiBwdXNoCgkgIG1vZGUuCgoyMDA3LTAxLTA3IDEwOjQ0OjEyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOiBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzogKGdzdF9jdXR0ZXJfY2hhaW4pOgoJICBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbi4KCSAgKiB3aW4zMi92czYvbGliZ3N0bWF0cm9za2EuZHNwOgoJICBBZGQgemxpYiB0byB0aGUgbGluay4KCSAgKiB3aW4zMi92czYvbGliZ3N0dmlkZW9ib3guZHNwOgoJICBVcGRhdGUgbGlib2lsIGxpYnJhcnkgbmFtZSAocHJvamVjdCBpcyBsaW5rZWQgdG8gbGlib2lsLTAuMy0wLmxpYiBub3cpLgoKMjAwNy0wMS0wNSAxODozMjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENoZWNrIGZvciB6bGliIGFuZCBpZiBhdmFpbGFibGUgcGFzcyBpdCBleHBsaWNpdGx5IHRvIHRoZSBsaW5rZXIgd2hlbiBsaW5raW5nIHF0ZGVtdXguIElmIG5vdCBhdmFpbGFibGUgKG9yIC0tZGlzYWJsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L3F0ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV9tb292KToKCSAgQ2hlY2sgZm9yIHpsaWIgYW5kIGlmIGF2YWlsYWJsZSBwYXNzIGl0IGV4cGxpY2l0bHkgdG8gdGhlIGxpbmtlcgoJICB3aGVuIGxpbmtpbmcgcXRkZW11eC4gSWYgbm90IGF2YWlsYWJsZSAob3IgLS1kaXNhYmxlLWV4dGVybmFsIGhhcwoJICBiZWVuIHNwZWNpZmllZCEpLCBkaXNhYmxlIHRoZSBiaXRzIGluIHF0ZGVtdXggdGhhdCB1c2UgaXQuIEZpeGVzCgkgIGJ1aWxkIG9uIE1pbmdXICgjMzkyODU2KS4KCjIwMDctMDEtMDUgMTc6MjM6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06IElmIHpsaWIgaXMgYXZhaWxhYmxlIGFuZCB1c2VkLCB3ZSBtdXN0IGxpbmsgaXQgZXhwbGljaXRseSBmb3IgdGhpbmdzIHRvIHdvcmsgb24gTWluZ1cgKGZpeGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJICBJZiB6bGliIGlzIGF2YWlsYWJsZSBhbmQgdXNlZCwgd2UgbXVzdCBsaW5rIGl0IGV4cGxpY2l0bHkgZm9yCgkgIHRoaW5ncyB0byB3b3JrIG9uIE1pbmdXIChmaXhlcyAjMzkyODU1KS4KCjIwMDctMDEtMDUgMTY6MDc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOiBDYWxsIGdfdGhyZWFkX2luaXQoKSByaWdodCBhdCB0aGUgYmVnaW5uaW5nLiBSZW1vdmUgc3VwZXJmbHVvdXMgZ3N0X2luaXQoKSAtIHdlJ3ZlIGFscmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvaWNsZXMvdmlkZW9jcm9wLXRlc3QuYzogKG1haW4pOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSByaWdodCBhdCB0aGUgYmVnaW5uaW5nLiBSZW1vdmUgc3VwZXJmbHVvdXMKCSAgZ3N0X2luaXQoKSAtIHdlJ3ZlIGFscmVhZHkgYmVlbiBpbml0ZWQgdmlhIHRoZSBHT3B0aW9uIHN0dWZmLgoKMjAwNy0wMS0wNCAxMTowMjoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9lc2QvZXNkc2luay5jOiBEb24ndCByZXR1cm4gYm9ndXMgdmFsdWVzIHdoZW4gZXNkX2dldF9kZWxheSgpIGZhaWxzIGZvciBzb21lIHJlYXNvbiAoIzM5MjE4OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9lc2QvZXNkc2luay5jOiAoZ3N0X2VzZHNpbmtfZGVsYXkpOgoJICBEb24ndCByZXR1cm4gYm9ndXMgdmFsdWVzIHdoZW4gZXNkX2dldF9kZWxheSgpIGZhaWxzIGZvciBzb21lCgkgIHJlYXNvbiAoIzM5MjE4OSkuCgoyMDA3LTAxLTA0IDA5OjQ0OjU3ICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgQWRkIGRpcmVjdHNvdW5kc2luayB0byBidWlsZCBhbmQgZGlzdCBpdCwgc28gaXQgZ2V0cyBidWlsdCB3aGVuIGNvbXBpbGluZyB3aXRoIE1pbmdXIG9uIHdpbjMyIGFuZCB0aGUgcmVxdWlyZWQgaGVhZGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVmluY2VudCBUb3JyaSAgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZnI+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHN5cy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZGlyZWN0c291bmQvTWFrZWZpbGUuYW06CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICAoZ3N0X2RpcmVjdHNvdW5kc2lua19yZXNldCk6CgkgIEFkZCBkaXJlY3Rzb3VuZHNpbmsgdG8gYnVpbGQgYW5kIGRpc3QgaXQsIHNvIGl0IGdldHMgYnVpbHQgd2hlbgoJICBjb21waWxpbmcgd2l0aCBNaW5nVyBvbiB3aW4zMiBhbmQgdGhlIHJlcXVpcmVkIGhlYWRlcnMgYW5kIGxpYnJhcmllcwoJICBhcmUgYXZhaWxhYmxlIChmaXhlczogIzM5MjYzOCkuIEFsc28gc2ltcGxpZnkgRGlyZWN0RHJhdyBjaGVjayBhIGJpdC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBGaXggQ1ZTIGlnbm9yZSBmb3IgbmVvbmh0dHBzcmMgdGVzdCBiaW5hcnkuCgoyMDA3LTAxLTAzIDE5OjU0OjMzICswMDAwICBWaW5jZW50IFRvcnJpIDx2dG9ycmlAdW5pdi1ldnJ5LmZyPgoKCSAgQWRkIGRpcmVjdGRyYXdzaW5rIHRvIGJ1aWxkIGFuZCBkaXN0IGl0LCBzbyBpdCBnZXRzIGJ1aWx0IHdoZW4gY29tcGlsaW5nIHdpdGggTWluZ1cgb24gd2luMzIgYW5kIHRoZSByZXF1aXJlZCBoZWFkZXJzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVmluY2VudCBUb3JyaSAgPHZ0b3JyaSBhdCB1bml2LWV2cnkgZnI+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHN5cy9NYWtlZmlsZS5hbToKCSAgKiBzeXMvZGlyZWN0ZHJhdy9NYWtlZmlsZS5hbToKCSAgQWRkIGRpcmVjdGRyYXdzaW5rIHRvIGJ1aWxkIGFuZCBkaXN0IGl0LCBzbyBpdCBnZXRzIGJ1aWx0IHdoZW4KCSAgY29tcGlsaW5nIHdpdGggTWluZ1cgb24gd2luMzIgYW5kIHRoZSByZXF1aXJlZCBoZWFkZXJzIGFuZCBsaWJyYXJpZXMKCSAgYXJlIGF2YWlsYWJsZSAoZml4ZXM6ICMzOTIzMTMpLgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgIChnc3RfZGlyZWN0ZHJhd3NpbmtfY2VudGVyX3JlY3QpLCAoZ3N0X2RpcmVjdGRyYXdzaW5rX3Nob3dfZnJhbWUpLAoJICAoZ3N0X2RpcmVjdGRyYXdzaW5rX3NldHVwX2RkcmF3KSwKCSAgKGdzdF9kaXJlY3RkcmF3c2lua19zdXJmYWNlX2NyZWF0ZSk6CgkgIENvbW1lbnQgb3V0IHNvbWUgdW51c2VkIHRoaW5ncyBhbmQgZml4IHNvbWUgcHJpbnRmIGZvcm1hdCBpc3N1ZXMgaW4KCSAgb3JkZXIgdG8gYXZvaWQgd2FybmluZ3Mgd2hlbiBidWlsZGxpbmcgd2l0aCBNaW5nVyAoIzM5MjMxMykuCgoyMDA3LTAxLTAzIDE2OjQxOjEwICswMDAwICBKZW5zIEdyYW5zZXVlciA8amVuc2dyQGdteC5uZXQ+CgoJICBGaXggYnVpbGQgd2l0aCBnY2MtMi54IChkZWNsYXJlIHZhcmlhYmxlcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgYmxvY2sgZXRjLikuIEZpeGVzICMzOTE5NzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVucyBHcmFuc2V1ZXIgIDxqZW5zZ3IgYXQgZ214IG5ldD4KCSAgKiBleHQveHZpZC9nc3R4dmlkZW5jLmM6IChnc3RfeHZpZGVuY19lbmNvZGUpLAoJICAoZ3N0X3h2aWRlbmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYzogKGJwd3NpbmNfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvZmlsdGVyL2dzdGZpbHRlci5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9maWx0ZXIvZ3N0aWlyLmM6IChpaXJfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzogKGxwd3NpbmNfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvbW9kcGx1Zy9nc3Rtb2RwbHVnLmNjOgoJICAqIGdzdC9udXZkZW11eC9nc3RudXZkZW11eC5jOiAoZ3N0X251dl9kZW11eF9oZWFkZXJfbG9hZCksCgkgIChnc3RfbnV2X2RlbXV4X3N0cmVhbV9leHRlbmRfaGVhZGVyKToKCSAgRml4IGJ1aWxkIHdpdGggZ2NjLTIueCAoZGVjbGFyZSB2YXJpYWJsZXMgYXQgdGhlIGJlZ2lubmluZyBvZiBhCgkgIGJsb2NrIGV0Yy4pLiBGaXhlcyAjMzkxOTcxLgoKMjAwNi0xMi0zMCAxMjo0NDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOiBXaGVuIHdlIGNhbid0IGNyZWF0ZSBhbiBlbGVtZW50IG5lZWRlZCBmb3IgdGhlIHRlc3QsIHByaW50IGEgbWVzc2FnZSBkZXRhaWxpbmcgd2hpYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92aWRlb2Nyb3AuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKHZpZGVvY3JvcF90ZXN0X2Nyb3BwaW5nX2luaXRfY29udGV4dCk6CgkgIFdoZW4gd2UgY2FuJ3QgY3JlYXRlIGFuIGVsZW1lbnQgbmVlZGVkIGZvciB0aGUgdGVzdCwgcHJpbnQgYSBtZXNzYWdlCgkgIGRldGFpbGluZyB3aGljaCBlbGVtZW50IGl0IGFjdHVhbGx5IGlzIHRoYXQncyBtaXNzaW5nICgjMzkwNjczKS4KCjIwMDYtMTItMjQgMTE6MzY6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiBGaXggcHJlc3VtYWJseSBjb3B5J24ncGFzdG8gZm9yIDE2YnBwIGRlcHRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoY29tcG9zaXRlX3BpeGVsKToKCSAgRml4IHByZXN1bWFibHkgY29weSduJ3Bhc3RvIGZvciAxNmJwcCBkZXB0aC4KCjIwMDYtMTItMjQgMTE6MjQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IFRoZSAic2lnbmVkIiBmaWVsZCBpbiBhdWRpbyBjYXBzIGlzIG9mIGJvb2xlYW4gdHlwZSwgdHJ5aW5nIHRvIHVzZSBnc3Rfc3RydWN0dXJlX2dldF9pbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICAoZ3N0X21hdHJvc2thX211eF9hdWRpb19wYWRfc2V0Y2Fwcyk6CgkgIFRoZSAic2lnbmVkIiBmaWVsZCBpbiBhdWRpbyBjYXBzIGlzIG9mIGJvb2xlYW4gdHlwZSwgdHJ5aW5nIHRvIHVzZQoJICBnc3Rfc3RydWN0dXJlX2dldF9pbnQoKSB0byBleHRyYWN0IGl0IHdpbGwgZmFpbC4gRml4aW5nIHRoaXMgbWFrZXMKCSAgbWF0cm9za2FtdXggYWNjZXB0IHJhdyBhdWRpbyBpbnB1dCAoIzM4NzEyMSkgKHVzZSBhdCB5b3VyIG93biByaXNrCgkgIHRob3VnaCwgZHVlIHRvIHRoZSBtYXRyb3NrYSBzcGVjIGJlaW5nIG5vdCBlbnRpcmVseSB1c2VmdWwgaW4gdGhpcwoJICByZXNwZWN0KS4KCSAgQWxzbyBmaXggdXAgcmF3IGF1ZGlvIHN0cnVjdHVyZXMgaW4gdGVtcGxhdGUgY2FwcyBzbyB0aGF0IHRoZXkKCSAgcmVwcmVzZW50IHdoYXQgb3VyIHNldGNhcHMgZnVuY3Rpb24gd2lsbCBhY3R1YWxseSBhY2NlcHQsIHNvIHRoYXQKCSAgY29udmVydGVycyBrbm93IHdoYXQgdG8gY29udmVydCB0by4KCSAgRmluYWxseSwgZG9uJ3QgZmFpbCBpZiB0aGVyZSBpc24ndCBhbiAiZW5kaWFubmVzcyIgZmllbGQgaW4gOC1iaXQKCSAgUENNIGNhcHMuCgoyMDA2LTEyLTIyIDEwOjE1OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IHJlYXBwbHkgY29uc2lzdGVudCBwYWQgKGRlKWFjdGl2YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXBlZzJlbmMuYzogKHNldHVwX21wZWcyZW5jKSwKCSAgKGNsZWFudXBfbXBlZzJlbmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3JnYW5hbHlzaXMuYzogKGNsZWFudXBfcmdhbmFseXNpcyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja2RlYy5jOiAoc2V0dXBfd2F2cGFja2RlYyksCgkgIChjbGVhbnVwX3dhdnBhY2tkZWMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tlbmMuYzogKHNldHVwX3dhdnBhY2tlbmMpLAoJICAoY2xlYW51cF93YXZwYWNrZW5jKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy95NG1lbmMuYzogKHNldHVwX3k0bWVuYyksIChjbGVhbnVwX3k0bWVuYyk6CgkgIHJlYXBwbHkgY29uc2lzdGVudCBwYWQgKGRlKWFjdGl2YXRpb24KCjIwMDYtMTItMjIgMTA6MTU6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLzogcmVhcHBseSBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6IChjbGVhbnVwX3Bhbm9yYW1hKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzogKHNldHVwX2F2aW11eCksIChjbGVhbnVwX2F2aW11eCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOiAoc2V0dXBfY21tbGRlYyksCgkgICh0ZWFyZG93bl9jbW1sZGVjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6IChzZXR1cF9jbW1sZW5jKSwKCSAgKHRlYXJkb3duX2NtbWxlbmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6IChzZXR1cF9sZXZlbCksIChjbGVhbnVwX2xldmVsKToKCSAgcmVhcHBseSBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoKMjAwNi0xMi0yMSAxNzowMzozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCSAgKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkgIEFkZCAwLjEwLjUgZG9hcCBlbnRyeQoKPT09IHJlbGVhc2UgMC4xMC40ID09PQoKMjAwNi0xMi0yMSAxNTo0NTowMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjQsICJCbGFjayBCdWdzIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC40ID09PQoJICAyMDA2LTEyLTIxICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjQsICJCbGFjayBCdWdzIgoKPT09IHJlbGVhc2UgMC4xMC41ID09PQoKMjAwNi0xMi0yMSAxNTo0MDo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjUsICJUaGUgUGF0aCBvZiBUaG9ybnMiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjUgPT09CgkgIDIwMDYtMTItMjEgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuMTAuNSwgIlRoZSBQYXRoIG9mIFRob3JucyIKCjIwMDYtMTItMjEgMTQ6MDM6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21wZWcyZW5jLmM6IChzZXR1cF9tcGVnMmVuYykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXBlZzJlbmMuYzogKHNldHVwX21wZWcyZW5jKQoJICAoY2xlYW51cF9tcGVnMmVuYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcmdhbmFseXNpcy5jOiAoY2xlYW51cF9yZ2FuYWx5c2lzKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZGVjLmM6IChzZXR1cF93YXZwYWNrZGVjKSwKCSAgKGNsZWFudXBfd2F2cGFja2RlYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja2VuYy5jOiAoc2V0dXBfd2F2cGFja2VuYyksCgkgIChjbGVhbnVwX3dhdnBhY2tlbmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3k0bWVuYy5jOiAoc2V0dXBfeTRtZW5jKSwgKGNsZWFudXBfeTRtZW5jKToKCSAgcmV2ZXJ0IG15IGZyZWV6ZSBicmVha2FnZQoKMjAwNi0xMi0yMSAxMjo0ODozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvOiByZXZlcnQgbXkgZnJlZXplIGJyZWFrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1ZGlvcGFub3JhbWEuYzogKGNsZWFudXBfcGFub3JhbWEpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F2aW11eC5jOiAoc2V0dXBfYXZpbXV4KSwgKGNsZWFudXBfYXZpbXV4KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZGVjLmM6IChzZXR1cF9jbW1sZGVjKSwKCSAgKHRlYXJkb3duX2NtbWxkZWMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxlbmMuYzogKHNldHVwX2NtbWxlbmMpLAoJICAodGVhcmRvd25fY21tbGVuYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzogKHNldHVwX2xldmVsKSwgKGNsZWFudXBfbGV2ZWwpOgoJICByZXZlcnQgbXkgZnJlZXplIGJyZWFrYWdlCgoyMDA2LTEyLTIxIDA4OjIwOjEwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy86IGNvbnNpc3RlbnQgcGFkIChkZSlhY3RpdmF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21wZWcyZW5jLmM6IChzZXR1cF9tcGVnMmVuYyksCgkgIChjbGVhbnVwX21wZWcyZW5jKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6IChjbGVhbnVwX3JnYW5hbHlzaXMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tkZWMuYzogKHNldHVwX3dhdnBhY2tkZWMpLAoJICAoY2xlYW51cF93YXZwYWNrZGVjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZW5jLmM6IChzZXR1cF93YXZwYWNrZW5jKSwKCSAgKGNsZWFudXBfd2F2cGFja2VuYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMveTRtZW5jLmM6IChzZXR1cF95NG1lbmMpLCAoY2xlYW51cF95NG1lbmMpOgoJICBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoKMjAwNi0xMi0yMSAwODoxNToyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvOiBjb25zaXN0ZW50IHBhZCAoZGUpYWN0aXZhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6IChjbGVhbnVwX3Bhbm9yYW1hKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdmltdXguYzogKHNldHVwX2F2aW11eCksIChjbGVhbnVwX2F2aW11eCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOiAoc2V0dXBfY21tbGRlYyksCgkgICh0ZWFyZG93bl9jbW1sZGVjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6IChzZXR1cF9jbW1sZW5jKSwKCSAgKHRlYXJkb3duX2NtbWxlbmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6IChzZXR1cF9sZXZlbCksIChjbGVhbnVwX2xldmVsKToKCSAgY29uc2lzdGVudCBwYWQgKGRlKWFjdGl2YXRpb24KCjIwMDYtMTItMTggMTc6MTE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IERvbid0IHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2VzIGluIHN0cmVhbWluZyBtb2RlIGlmIHRoZSBzdHJlYW0gaGVhZGVycyBhcmUgYmVoaW5kIHRoZSBtb3ZpZSBkYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfcG9zdF9wcm9ncmVzcyksCgkgIChnc3RfcXRkZW11eF9jaGFpbik6CgkgIERvbid0IHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2VzIGluIHN0cmVhbWluZyBtb2RlIGlmIHRoZSBzdHJlYW0KCSAgaGVhZGVycyBhcmUgYmVoaW5kIHRoZSBtb3ZpZSBkYXRhOyBpbnN0ZWFkLCBwb3N0ICJwcm9ncmVzcyIgZWxlbWVudAoJICBtZXNzYWdlcyBhcyBhIHRlbXBvcmFyeSBzb2x1dGlvbi4gQXBwcyBtaWdodCBnZXQgY29uZnVzZWQgYW5kIGRvCgkgIHNpbGx5IHRoaW5ncyB0byB0aGUgcGlwZWxpbmUgc3RhdGUgaWYgdGhleSBzZWUgYnVmZmVyaW5nIG1lc3NhZ2VzCgkgIGZyb20gZGlmZmVyZW50IHNvdXJjZXMgYW5kIGRvbid0IHJlYWxpemUgdGhleSBjb21lIGZyb20gZGlmZmVyZW50CgkgIHNvdXJjZXMgKCMzODcxNjApLgoKMjAwNi0xMi0xOCAxNjo0NjoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBEaXNhYmxlIExBRFBTQSwgYXMgaXQgaGFzIG1vdmVkIHRvIHRoZSAtYmFkIG1vZHVsZSBmb3IgdGhlIGR1cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICBEaXNhYmxlIExBRFBTQSwgYXMgaXQgaGFzIG1vdmVkIHRvIHRoZSAtYmFkIG1vZHVsZSBmb3IgdGhlIGR1cmF0aW9uLgoKMjAwNi0xMi0xOCAxNTo1MTo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmM6IFJlc2V0IGZsb3dfc3RhdGUgYmFjayB0byBfT0sgYWZ0ZXIgYSBmbHVzaCBzdG9wIHNvIHRoYXQgd2UgZXhpdCBvdXIgZXJyb3Igc3RhdGUgYWZ0ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOiAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2V0Y2FwcyksCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9ldmVudCk6CgkgIFJlc2V0IGZsb3dfc3RhdGUgYmFjayB0byBfT0sgYWZ0ZXIgYSBmbHVzaCBzdG9wIHNvIHRoYXQgd2UgZXhpdCBvdXIKCSAgZXJyb3Igc3RhdGUgYWZ0ZXIgdGhlIGZsdXNoLiBGaXhlcyAjMzc0MjEzCgoyMDA2LTEyLTE4IDE1OjQ5OjA4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIENoYW5nZUxvZyBzdXJnZXJ5IG9uIG9uZSBvZiBTdGVmYW4ncyBjb21taXRzIGZyb20gQXVndXN0OgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgb24gb25lIG9mIFN0ZWZhbidzIGNvbW1pdHMgZnJvbSBBdWd1c3Q6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICBRdWlldGx5IChhY2NpZGVudGFsbHkpIGVuYWJsZSBMQURTUEEgZm9yIGJ1aWxkaW5nIGJ5IGRlZmF1bHQsCgkgIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBpdCBkb2Vzbid0IG1lZXQgdGhlIHBsdWdpbiBjaGVja2xpc3QuCgkgIC0tIEFkZGVkIGJ5IEphbiBTY2htaWR0IDE4IERlYyAyMDA2CgoyMDA2LTEyLTE4IDEzOjQwOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRG9uJ3Qgb3V0cHV0IGdfd2FybmluZyBmb3IgYW4gdW5zdXBwb3J0ZWQgZm9ybWF0LCBqdXN0IHNlbmQgYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9jaGFpbiksCgkgIChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKToKCSAgRG9uJ3Qgb3V0cHV0IGdfd2FybmluZyBmb3IgYW4gdW5zdXBwb3J0ZWQgZm9ybWF0LCBqdXN0IHNlbmQgYQoJICBHU1RfRUxFTUVOVF9XQVJOSU5HIGFuZCBkb24ndCBhZGQgdGhlIHBhZC4KCSAgRml4IHRoZSBjYXNlIHdoZXJlIGl0IGRvZXNuJ3QgY2hlY2sgZm9yIGEgTlVMTCBwYWQgaW4gc3RyZWFtaW5nIG1vZGUuCgkgIEZpeGVzICMzODcxMzcKCjIwMDYtMTItMTggMTI6Mjc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBjcmFzaCBkZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlciBpZiB0aGVyZSdzIG5vIHN0Y28gYXRvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRml4IGNyYXNoIGRlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyIGlmIHRoZXJlJ3Mgbm8gc3RjbyBhdG9tLgoJICBGaXhlcyAjMzg3MTIyLgoKMjAwNi0xMi0xOCAxMDowMjo1NiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AdWJ1bnR1LmNvbT4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDogVXNlIGxvY2FsIGNvcHkgb2YgbWQ1LmgsIGFzIGl0IGRpc2FwcGVhcmVkIGluIHJlY2VudCB3YXZwYWNrIGluc3RhbGxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmg6CgkgIFVzZSBsb2NhbCBjb3B5IG9mIG1kNS5oLCBhcyBpdCBkaXNhcHBlYXJlZCBpbiByZWNlbnQgd2F2cGFjawoJICBpbnN0YWxscy4KCSAgUGF0Y2ggYnk6IFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vIGF0IHVidW50dSBkb3QgY29tPgoJICBGaXhlczogIzM4NzA3NgoKMjAwNi0xMi0xNyAxOTo0MjowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NzLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMTItMTcgMDY6MTE6MzkgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay4qOiBEZWNlbnQgZWZmb3J0IGF0IHBvcnRpbmcgdG8gMC4xMC4gIE5lZWRzIGNsZWFudXAgb24gT1MvWC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5oOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsubToKCSAgRGVjZW50IGVmZm9ydCBhdCBwb3J0aW5nIHRvIDAuMTAuICBOZWVkcyBjbGVhbnVwIG9uIE9TL1guCgoyMDA2LTEyLTE3IDA1OjA3OjA3ICswMDAwICBWaWpheSBTYW50aGFuYW0gPHZpamF5QHNhbnRoYW5hbS5nbWFpbC5jb20+CgoJICBzeXMvb3N4dmlkZW8vOiBQcmVsaW1pbmFyeSBwYXRjaCBmb3IgcG9ydGluZyBvc3h2aWRlb3NpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBWaWpheSBTYW50aGFuYW0gPHZpamF5IHNhbnRoYW5hbSBnbWFpbCBjb20+CgkgICogc3lzL29zeHZpZGVvL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIFByZWxpbWluYXJ5IHBhdGNoIGZvciBwb3J0aW5nIG9zeHZpZGVvc2luawoKMjAwNi0xMi0xNiAxNjoyMToyNiArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiBJbnRyb2R1Y2Ugc29tZSBsb2NraW5nIGFyb3VuZCB0aGUgdmlkZW9taXhlciBzdGF0ZSBzbyB0aGF0IGl0IGRvZXMgbm90IGNyYXNoIHdoZW4gYWRkaW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9wYWRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF92aWRlb21peGVyX3NldF9tYXN0ZXJfZ2VvbWV0cnkpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3Npbmtfc2V0Y2FwcyksIChnc3RfdmlkZW9taXhlcl9jb2xsZWN0X2ZyZWUpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcmVzZXQpLCAoZ3N0X3ZpZGVvbWl4ZXJfaW5pdCksCgkgIChnc3RfdmlkZW9taXhlcl9maW5hbGl6ZSksIChnc3RfdmlkZW9taXhlcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcmVsZWFzZV9wYWQpLCAoZ3N0X3ZpZGVvbWl4ZXJfY29sbGVjdGVkKSwKCSAgKGdzdF92aWRlb21peGVyX2NoYW5nZV9zdGF0ZSk6CgkgIEludHJvZHVjZSBzb21lIGxvY2tpbmcgYXJvdW5kIHRoZSB2aWRlb21peGVyIHN0YXRlIHNvIHRoYXQgaXQgZG9lcyBub3QKCSAgY3Jhc2ggd2hlbiBhZGRpbmcvcmVtb3ZpbmcgcGFkcy4gRml4ZXMgIzM4MzA0My4KCjIwMDYtMTItMTYgMTU6MjU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFdlIGRvbid0IHN1cHBvcnQgc2Vla2luZyBpbiBzdHJlYW1pbmcgbW9kZSwgc28gZG9uJ3QgZXZlbiB0cnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2dldF9zcmNfcXVlcnlfdHlwZXMpLAoJICAoZ3N0X3F0ZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX2V2ZW50KToKCSAgV2UgZG9uJ3Qgc3VwcG9ydCBzZWVraW5nIGluIHN0cmVhbWluZyBtb2RlLCBzbyBkb24ndCBldmVuIHRyeS4KCSAgSW1wbGVtZW50IHNlZWtpbmcgcXVlcnkgc28gYXBwcyBjYW4gcXVlcnkgc2Vla2FiaWxpdHkgcHJvcGVybHkKCSAgKHNlZSAjMzY1NDE0KS4gRml4IGR1cmF0aW9uIHF1ZXJ5LgoKMjAwNi0xMi0xNiAxMTo0Mjo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogTWFrZSBzdXJlIGxpYmNhY2EgY2FuIGFjdHVhbGx5IGJlIHVzZWQgaW5zdGVhZCBvZiBqdXN0IGNoZWNraW5nIGZvciAvdXNyL2Jpbi9jYWNhLWNvbmZpZywgc28gd2UgZG9uJ3Qgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIE1ha2Ugc3VyZSBsaWJjYWNhIGNhbiBhY3R1YWxseSBiZSB1c2VkIGluc3RlYWQgb2YganVzdCBjaGVja2luZyBmb3IKCSAgL3Vzci9iaW4vY2FjYS1jb25maWcsIHNvIHdlIGRvbid0IHdyb25nbHkgdHJ5IHRvIGJ1aWxkIGNhY2FzaW5rIHdoZW4KCSAgY3Jvc3MtY29tcGlsaW5nIChmaXhlcyAjMzg0NTg3KS4KCjIwMDYtMTItMTUgMTA6NTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkaW5nIGRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBnc3QtcGx1Z2lucy1nb29kLmRvYXA6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBhZGRpbmcgZG9hcCBmaWxlCgoyMDA2LTEyLTE0IDE2OjIwOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBsaWJmbGFjLTEuMS4zIGNoYW5nZWQgQVBJIGFnYWluLCBidXQgd2UgY2FuJ3QgYnVpbGQgYWdhaW5zdCBpdCB5ZXQsIHNvIG1ha2Ugc3VyZSBvdXIgY2hlY2sgZG9lc24ndCB1c2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgbGliZmxhYy0xLjEuMyBjaGFuZ2VkIEFQSSBhZ2FpbiwgYnV0IHdlIGNhbid0IGJ1aWxkIGFnYWluc3QgaXQgeWV0LAoJICBzbyBtYWtlIHN1cmUgb3VyIGNoZWNrIGRvZXNuJ3QgdXNlIGxpYmZsYWMtMS4xLjMgYW5kIGFkZCBhIGNvbW1lbnQKCSAgdG8gdGhpcyBlZmZlY3QuCgoyMDA2LTEyLTE0IDE0OjI1OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzogQWRkIHNvbWUgTlVMTCBwb2ludGVyIGNoZWNrcyAocG9zc2libHkgcmVsYXRlZCB0byAjMzg1NjIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzogKGdzdF9xdWFya3R2X3RyYW5zZm9ybSksCgkgIChnc3RfcXVhcmt0dl9wbGFuZXRhYmxlX2NsZWFyKToKCSAgQWRkIHNvbWUgTlVMTCBwb2ludGVyIGNoZWNrcyAocG9zc2libHkgcmVsYXRlZCB0byAjMzg1NjIzKS4KCjIwMDYtMTItMTMgMTc6MTI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZCBBTVItV0IgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGZvcm1hdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2dldF9kdXJhdGlvbiksCgkgIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKHF0ZGVtdXhfcGFyc2VfdHJhayksCgkgIChxdGRlbXV4X2F1ZGlvX2NhcHMpOgoJICBBZGQgQU1SLVdCIHRvIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBmb3JtYXRzLgoKMjAwNi0xMi0xMiAxODo0NTo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEluIHN0cmVhbWluZyBtb2RlLCBpZiB0aGUgZmlyc3QgYnVmZmVyIHdlIGdldCBkb2Vzbid0IGhhdmUgYW4gb2Zmc2V0LCBmaXggaXQgdXAgdG8gYmUgMCwgb3RoZXJ3aXNlIHRyaW1taW5nIHdvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X2NoYWluX3BhcnNlX3RhZyksCgkgIChnc3RfdGFnX2RlbXV4X2NoYWluKToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9jaGFpbik6CgkgIEluIHN0cmVhbWluZyBtb2RlLCBpZiB0aGUgZmlyc3QgYnVmZmVyIHdlIGdldCBkb2Vzbid0IGhhdmUgYW4KCSAgb2Zmc2V0LCBmaXggaXQgdXAgdG8gYmUgMCwgb3RoZXJ3aXNlIHRyaW1taW5nIHdvbid0IHdvcmsgbGF0ZXIgb24KCSAgYW5kIHdlJ2xsIGJlIHR5cGVmaW5kaW5nIGFwcGxpY2F0aW9uL3gtaWQzLCB3aGljaCBtYXkgcmVzdWx0IGluCgkgIGRlY29kZWJpbiBwbHVnZ2luZyBhbiBlbmRsZXNzIG51bWJlciBvZiBpZDNkZW11eCBlbGVtZW50cyBhcyBhCgkgIGNvbnNlcXVlbmNlLiBGaXhlcyAjMzg1MDMxLgoKMjAwNi0xMi0xMSAyMToyMToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6IElnbm9yZSB0aGUgYnVmZmVyX3RpbWUgdGhlIHNvdW5kIGRldmljZSByZXBvcnRzLiBUdXJucyBvdXQgaXQgaXMgc29tZXRpbWVzIGNvbXBsZXRlbHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOiAoZ3N0X3N1bmF1ZGlvc2lua19wcmVwYXJlKToKCSAgSWdub3JlIHRoZSBidWZmZXJfdGltZSB0aGUgc291bmQgZGV2aWNlIHJlcG9ydHMuIFR1cm5zIG91dCBpdCBpcwoJICBzb21ldGltZXMgY29tcGxldGVseSBib2d1cyBhbmQgd2UncmUgYmV0dGVyIG9mZiB3aXRob3V0IGl0LgoKMjAwNi0xMi0xMSAxNzozMzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IG5vbi13b3JraW5nIHJlZGlyZWN0cyBmcm9tIGluZXRmaWxtLmNvbSAoaGFuZGxlICdhbGlzJyByZWZlcmVuY2UgZGF0YSB0eXBlIGFzIHdlbGwpLiBGaXhlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyZWUpOgoJICBGaXggbm9uLXdvcmtpbmcgcmVkaXJlY3RzIGZyb20gaW5ldGZpbG0uY29tIChoYW5kbGUgJ2FsaXMnIHJlZmVyZW5jZQoJICBkYXRhIHR5cGUgYXMgd2VsbCkuIEZpeGVzICMzNzg2MTMuCgoyMDA2LTEyLTExIDEzOjU5OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thLzogVHJ5IGhhcmRlciB0byBleHRyYWN0IHRoZSBmcmFtZXJhdGUgZm9yIHZpZGVvIHRyYWNrcyBjb3JyZWN0bHkgYW5kIHNhdmUgaXQgZGlyZWN0bHkgaW5zdGVhZCBvZiBjb252ZXJ0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3ZpZGVvX2NhcHMpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYzoKCSAgKGdzdF9tYXRyb3NrYV90cmFja19pbml0X3ZpZGVvX2NvbnRleHQpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgVHJ5IGhhcmRlciB0byBleHRyYWN0IHRoZSBmcmFtZXJhdGUgZm9yIHZpZGVvIHRyYWNrcyBjb3JyZWN0bHkgYW5kCgkgIHNhdmUgaXQgZGlyZWN0bHkgaW5zdGVhZCBvZiBjb252ZXJ0aW5nIGl0IGJhY2sgYW5kIGZvcnRoIGEgZmV3CgkgIHRpbWVzLiBNb3N0bHkgbWFrZXMgYSBkaWZmZXJlbmNlIGZvciB2ZXJ5IHNtYWxsIGZyYW1lcmF0ZXMgKDwxKS4KCSAgRml4ZXMgIzM4MDE5OS4KCjIwMDYtMTItMTEgMTE6NDE6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NyYy4qOiBSZW1vdmUgZ2NvbmYgbm90aWZ5IGhvb2sgd2hlbiB0aGUgZ2NvbmZhdWRpb3NyYyBlbGVtZW50IGlzIGRlc3Ryb3llZCwgb3RoZXJ3aXNlIHRoZSBjYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuYzogKGdzdF9nY29uZl9hdWRpb19zcmNfaW5pdCksCgkgIChnc3RfZ2NvbmZfYXVkaW9fc3JjX2Rpc3Bvc2UpLCAoZG9fdG9nZ2xlX2VsZW1lbnQpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmg6CgkgIFJlbW92ZSBnY29uZiBub3RpZnkgaG9vayB3aGVuIHRoZSBnY29uZmF1ZGlvc3JjIGVsZW1lbnQgaXMKCSAgZGVzdHJveWVkLCBvdGhlcndpc2UgdGhlIGNhbGxiYWNrIG1heSBiZSBjYWxsZWQgb24gYW4KCSAgYWxyZWFkeS1kZXN0cm95ZWQgaW5zdGFuY2UgYW5kIGJhZCB0aGluZ3MgaGFwcGVuLiBTaG91bGQgZml4CgkgICMzNzgxODQuCgkgIEFsc28gaWdub3JlIGdjb25mIGtleSBjaGFuZ2VzIHdoZW4gdGhlIHNvdXJjZSBpcyBhbHJlYWR5IHJ1bm5pbmcuCgoyMDA2LTEyLTA5IDE5OjI3OjI4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxtYWlsQHNsb21vc25haWwuZGU+CgoJICBnc3QvYXBldGFnL2dzdGFwZWRlbXV4LmM6IFdlIG5lZWQgdG8gYmUgYWJsZSB0byByZWFkIGFuZCBwYXJzZSBhbnkgcG9zc2libGUgZmxvYXRpbmcgcG9pbnQgc3RyaW5nIGZvcm1hdCAoIjEsMjM0IiBvciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8bWFpbCBhdCBzbG9tb3NuYWlsIGRlPgoJICAqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzogKGFwZV9kZW11eF9wYXJzZV90YWdzKToKCSAgV2UgbmVlZCB0byBiZSBhYmxlIHRvIHJlYWQgYW5kIHBhcnNlIGFueSBwb3NzaWJsZSBmbG9hdGluZyBwb2ludCBzdHJpbmcKCSAgZm9ybWF0ICgiMSwyMzQiIG9yICIxLjIzNCIpIGlycmVzcGVjdGl2ZSBvZiB0aGUgY3VycmVudCBsb2NhbGUuIGdfc3Ryb2QoKQoJICB3aWxsIHBhcnNlIHRoZSBmb3JtZXIgb25seSBpbiBjZXJ0YWluIGxvY2FsZXMgdGhvdWdoLCBzbyB3ZSByZWFsbHkgbmVlZAoJICB0byBjYW5vbmljYWxpc2UgdGhlIHNlcGFyYXRvciB0byAnLicgYW5kIHRoZW4gdXNlIGdfYXNjaWlfc3RydG9kKCkgdG8KCSAgbWFrZSBzdXJlIHdlIGNhbiBwYXJzZSBlaXRoZXIgdmVyc2lvbiBhdCBhbGwgdGltZXMuCgkgIEZpeGVzICMzODI5ODIgZm9yIHJlYWwuCgoyMDA2LTEyLTA5IDE2OjE3OjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHN5cy9zdW5hdWRpby86IFVzZSB0aGUgc3VuYXVkaW8gZGVidWcgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy5jOgoJICBVc2UgdGhlIHN1bmF1ZGlvIGRlYnVnIGNhdGVnb3J5LgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzogKGdzdF9zdW5hdWRpb3NpbmtfZmluYWxpemUpLAoJICAoZ3N0X3N1bmF1ZGlvc2lua19jbGFzc19pbml0KSwgKGdzdF9zdW5hdWRpb3NpbmtfaW5pdCksCgkgIChnc3Rfc3VuYXVkaW9zaW5rX3NldF9wcm9wZXJ0eSksIChnc3Rfc3VuYXVkaW9zaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3VuYXVkaW9zaW5rX29wZW4pLCAoZ3N0X3N1bmF1ZGlvc2lua19jbG9zZSksCgkgIChnc3Rfc3VuYXVkaW9zaW5rX3ByZXBhcmUpLCAoZ3N0X3N1bmF1ZGlvX3NpbmtfZG9fZGVsYXkpLAoJICAoZ3N0X3N1bmF1ZGlvc2lua193cml0ZSksIChnc3Rfc3VuYXVkaW9zaW5rX2RlbGF5KSwKCSAgKGdzdF9zdW5hdWRpb3NpbmtfcmVzZXQpOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuaDoKCSAgVXNlcyB0aGUgc3VuYXVkaW8gZGVidWcgY2F0ZWdvcnkgZm9yIGFsbCBkZWJ1ZyBvdXRwdXQKCSAgSW1wbGVtZW50cyB0aGUgX2RlbGF5KCkgY2FsbGJhY2sgdG8gc3luY2hyb25pc2UgdmlkZW8gcGxheWJhY2sgYmV0dGVyCgkgIENoYW5nZSB0aGUgc2VndG90YWwgYW5kIHNlZ3NpemUgdmFsdWVzIGJhY2sgdG8gdGhlIHBhcmVudCBjbGFzcwoJICBkZWZhdWx0cyAodGFrZW4gZnJvbSBidWZmZXJfdGltZSBhbmQgbGF0ZW5jeV90aW1lcyBvZiAyMDBtcyBhbmQgMTBtcwoJICByZXNwZWN0aXZlbHkpCgkgIE1lYXN1cmUgdGhlIHNhbXBsZXMgd3JpdHRlbiB0byB0aGUgZGV2aWNlIHZzLiBwbGF5ZWQuCgkgIEtlZXAgdHJhY2sgb2Ygc2VnbWVudHMgaW4gdGhlIGRldmljZSBieSB3cml0aW5nIGVtcHR5IGVvZiBmcmFtZXMsIGFuZAoJICBzbGVlcCB1c2luZyBhIEdDb25kIHdoZW4gd2UgZ2V0IHRvbyBmYXIgYWhlYWQgYW5kIHJpc2sgb3ZlcnJ1bm5pbmcgdGhlCgkgIHNpbmsncyByaW5nYnVmZmVyLgoJICBGaXhlczogIzM2MDY3MwoKMjAwNi0xMi0wOCAyMToxMjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIENvcnJlY3QgdGhlIGF0dHJpYnV0aW9uIG9mIHRoZSBwcmV2aW91cyBjb21taXQuIFRoZSBwYXRjaCBpbiBxdWVzdGlvbiB3YXMgd3JpdHRlbiBieSBCcmlhbiBDYW1lcm9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29ycmVjdCB0aGUgYXR0cmlidXRpb24gb2YgdGhlIHByZXZpb3VzIGNvbW1pdC4gVGhlIHBhdGNoIGluCgkgIHF1ZXN0aW9uIHdhcyB3cml0dGVuIGJ5IEJyaWFuIENhbWVyb24uCgoyMDA2LTEyLTA4IDE3OjA2OjQzICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBGaXggY2FwcyBmb3IgMjQgYml0IHJhdyBQQ00gYXVkaW8gKDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2dldF9kdXJhdGlvbiksCgkgIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKHF0ZGVtdXhfcGFyc2VfdHJhayksCgkgIChxdGRlbXV4X2F1ZGlvX2NhcHMpOgoJICBGaXggY2FwcyBmb3IgMjQgYml0IHJhdyBQQ00gYXVkaW8gKDIpLgoJICBGaXhlcyAjMzgzNDcxLgoKMjAwNi0xMi0wOCAxNjozODoxOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8bWFpbEBzbG9tb3NuYWlsLmRlPgoKCSAgZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS4qOiBGaXggYXVkaW9wYW5vcmFtZSB3aXRoIGZsb2F0IHNhbXBsZXMuIEZpeGVzICMzODM3MjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSAgPG1haWwgYXQgc2xvbW9zbmFpbCBkZSA+CgkgICogZ3N0L2F1ZGlvZngvYXVkaW9wYW5vcmFtYS5jOiAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX2luaXQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3NldF9jYXBzKSwgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm0pOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvcGFub3JhbWEuaDoKCSAgRml4IGF1ZGlvcGFub3JhbWUgd2l0aCBmbG9hdCBzYW1wbGVzLiBGaXhlcyAjMzgzNzI2LgoKMjAwNi0xMi0wOCAxNToxMjowMSArMDAwMCAgUGFkcmFpZyBPJ0JyaWFpbiA8cGFkcmFpZy5vYnJpYWluQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vOiBJbXBsZW1lbnQgcmVzZXQgZnVuY3Rpb25zIHRvIHVuYmxvY2sgdGhlIHNyYy9zaW5rIG1vcmUgcXVpY2tseSBvbiBzdGF0ZSBjaGFuZ2UgcmVxdWVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzogKGdzdF9zdW5hdWRpb3NpbmtfcmVzZXQpOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy5jOiAoZ3N0X3N1bmF1ZGlvc3JjX29wZW4pLAoJICAoZ3N0X3N1bmF1ZGlvc3JjX3Jlc2V0KToKCSAgSW1wbGVtZW50IHJlc2V0IGZ1bmN0aW9ucyB0byB1bmJsb2NrIHRoZSBzcmMvc2luayBtb3JlIHF1aWNrbHkgb24KCSAgc3RhdGUgY2hhbmdlIHJlcXVlc3RzLgoJICBQYXRjaCBieTogUGFkcmFpZyBPJ0JyaWFpbiA8cGFkcmFpZyBkb3Qgb2JyaWFpbiBhdCBzdW4gZG90IGNvbT4KCjIwMDYtMTItMDggMTQ6NDI6NDIgKzAwMDAgIEplcnJ5IFRhbiA8amVycnkudGFuQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlci5jOiBDb25zdHJ1Y3QgdGhlIGNvcnJlY3QgbWl4ZXIgZGV2aWNlIG5hbWUgd2hlbiB0aGUgQVVESU9ERVYgZW52IHZhciBpcyBzZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jaGFuZ2Vfc3RhdGUpOgoJICBDb25zdHJ1Y3QgdGhlIGNvcnJlY3QgbWl4ZXIgZGV2aWNlIG5hbWUgd2hlbiB0aGUgQVVESU9ERVYgZW52IHZhcgoJICBpcyBzZXQuCgkgIFBhdGNoIGJ5OiBKZXJyeSBUYW4gPGplcnJ5LnRhbiBhdCBzdW4gZG90IGNvbT4KCSAgRml4ZXM6ICMzODM1OTYKCjIwMDYtMTItMDggMTQ6MzI6NTEgKzAwMDAgIEplcnJ5IFRhbiA8amVycnkudGFuQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zcmMuYzogQXBwbHkgcGF0Y2ggdG8gb3BlbiB0aGUgbWl4ZXIgY29udHJvbCBhbmQgc2V0IHRoZSBNVUxUSVBMRV9PUEVOIGlvY3RsLiBPbiBzb2xhcmlzLCB0aGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6IChnc3Rfc3VuYXVkaW9zcmNfb3Blbik6CgkgIEFwcGx5IHBhdGNoIHRvIG9wZW4gdGhlIG1peGVyIGNvbnRyb2wgYW5kIHNldCB0aGUgTVVMVElQTEVfT1BFTgoJICBpb2N0bC4gT24gc29sYXJpcywgdGhlIG1peGVyIGRldmljZSBkb2Vzbid0IG5lZWQgb3BlbmluZyBub24tYmxvY2tpbmcKCSAgLSBpdCBjYW4gYmUgb3BlbmVkIGJ5IG11bHRpcGxlIHByb2Nlc3NlcyBieSBkZWZhdWx0LCBidXQgbmVlZHMgdGhlIGlvY3RsIAlmb3IgbXVsdGlwbGUgb3BlbnMgd2l0aGluIDEgcHJvY2Vzcy4KCSAgUGF0Y2ggYnk6IEplcnJ5IFRhbiA8amVycnkudGFuIGF0IHN1biBkb3QgY29tPgoJICBGaXhlczogIzM0OTAxNQoKMjAwNi0xMi0wNyAxNzozMDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zbXB0ZS86IFBvcnQgdG8gMC4xMCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zbXB0ZS9nc3RtYXNrLmg6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IChnc3Rfc21wdGVfY2xhc3NfaW5pdCksCgkgIChnc3Rfc21wdGVfc2V0Y2FwcyksIChnc3Rfc21wdGVfaW5pdCksIChnc3Rfc21wdGVfcmVzZXQpLAoJICAoZ3N0X3NtcHRlX2NvbGxlY3RlZCksIChnc3Rfc21wdGVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zbXB0ZV9nZXRfcHJvcGVydHkpLCAoZ3N0X3NtcHRlX2NoYW5nZV9zdGF0ZSksIChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmg6CgkgIFBvcnQgdG8gMC4xMCBzb21lIG1vcmUuCgkgIEFkZGVkIGR1cmF0aW9uIHByb3BlcnR5IHRvIHNwZWNpZnkgdGhlIGR1cmF0aW9uIG9mIHRoZSB0cmFuc2l0aW9uLgoJICBNYWtlIGZyYW1lcmF0ZSBhIGZyYWN0aW9uLgoJICBEZXByZWNhdGUgZnBzIHByb3BlcnR5LCB3ZSBvbmx5IHVzZSBuZWdvdGlhdGVkIGZwcy4KCSAgQWRkZWQgZG9jcy4KCSAgRml4IGNvbGxlY3RwYWQgdXNhZ2UuCgkgIFJlc2V0IHN0YXRlIGluIFJFQURZLgoJICBTZW5kIE5FV1NFR01FTlQgZXZlbnQuCgkgIEZpeCByYWN5IHVwZGF0ZXMgb2Ygb2JqZWN0IHByb3BlcnRpZXMuCgkgIEFkZGVkIGRlYnVnIGNhdGVnb3J5LgoJICBGaXhlcyAjMzgzMzIzLgoKMjAwNi0xMi0wNyAxMTozNTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogSGFuZGxlIG1vcmUgSDI2MyB2YXJpYW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZ2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdGRlbXV4X2hhbmRsZV9zcmNfcXVlcnkpLCAocXRkZW11eF9wYXJzZV90cmFrKSwKCSAgKHF0ZGVtdXhfdmlkZW9fY2Fwcyk6CgkgIEhhbmRsZSBtb3JlIEgyNjMgdmFyaWFudHMuCgoyMDA2LTEyLTA2IDE1OjA2OjA0ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IERvbid0IHJlc2V0IHhwb3MgYW5kIHlwb3MgaW4gdGhlIHNldGNhcHMgZnVuY3Rpb24gYmVjYXVzZSBjYXVzZXMgdW5leHBlY3RlZCBiZWhhdmlvdXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIChnc3RfdmlkZW9taXhlcl9zZXRfbWFzdGVyX2dlb21ldHJ5KSwKCSAgKGdzdF92aWRlb21peGVyX3BhZF9zaW5rX3NldGNhcHMpLCAoZ3N0X3ZpZGVvbWl4ZXJfY29sbGVjdF9mcmVlKToKCSAgRG9uJ3QgcmVzZXQgeHBvcyBhbmQgeXBvcyBpbiB0aGUgc2V0Y2FwcyBmdW5jdGlvbiBiZWNhdXNlIGNhdXNlcwoJICB1bmV4cGVjdGVkIGJlaGF2aW91ci4KCSAgRml4ZXMgIzM4MjE3OS4KCjIwMDYtMTItMDYgMTQ6NDU6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOiBLZWVwIHRyYWNrIG9mIHRoZSBidWZmZXIgdGltZXN0YW1wIGluIHRoZSBjb2xsZWN0ZGF0YSBtZW1iZXIgaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzogKGdzdF9tdWx0aXBhcnRfbXV4X2NvbXBhcmVfcGFkcyksCgkgIChnc3RfbXVsdGlwYXJ0X211eF9xdWV1ZV9wYWRzKSwgKGdzdF9tdWx0aXBhcnRfbXV4X2NvbGxlY3RlZCk6CgkgIEtlZXAgdHJhY2sgb2YgdGhlIGJ1ZmZlciB0aW1lc3RhbXAgaW4gdGhlIGNvbGxlY3RkYXRhIG1lbWJlciBpbnN0ZWFkCgkgIG9mIG1vZGlmeWluZyB0aGUgYnVmZmVyIHdpdGhvdXQgbWFraW5nIHRoZSBtZXRhZGF0YSB3cml0YWJsZSBmaXJzdC4KCSAgRml4ZXMgIzM4MjI3Ny4KCjIwMDYtMTItMDYgMTQ6MzM6NTQgKzAwMDAgIFJvYiBUYXlsb3IgPHJvYnRheWxvckBmbG9vcGlseS5vcmc+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBJZiB1c2luZyBtdWx0aWNhc3QgaW4gdWRwc3JjLCBiaW5kIHRvIHRoZSBtdWx0aWNhc3QgYWRkcmVzcyByYXRoZXIgdGhhbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJvYiBUYXlsb3IgPHJvYnRheWxvciBhdCBmbG9vcGlseSBkb3Qgb3JnPgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX3N0YXJ0KToKCSAgSWYgdXNpbmcgbXVsdGljYXN0IGluIHVkcHNyYywgYmluZCB0byB0aGUgbXVsdGljYXN0IGFkZHJlc3MgcmF0aGVyIHRoYW4KCSAgSU5fQUREUl9BTlkuCgkgIFRoaXMgYWxsb3dzIHRoZSBzaW11bHRhbm91cyB1c2Ugb2YgbXVsdGlwbGUgdWRwc3JjcyBsaXN0ZW5pbmcgb24KCSAgZGlmZmVyZW50IG11bHRpY2F0IGFkZHJlc3Nlcy4gV2l0aG91dCB0aGlzIGFsbCB1ZHBzcmNzIHdpbGwgcmVjZWl2ZSBhbGwKCSAgcGFja2V0cyBmcm9tIGFsbCBzdWJzY3JpYmVkIG11bHRpY2FzdCBhZGRyZXNzZXMuCgkgIEZpeGVzICMzODMwMDEuCgoyMDA2LTEyLTA2IDEzOjM1OjUyICswMDAwICBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbkAwa2FvbGluLndoOS5uZXQ+CgoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOiBEb24ndCBhdHRlbXB0IHRvIHdyaXRlIGEgTlVMTCBmcmFtZSBpbnRvIHRoZSBJRDMgdGFnIHNldCB3aGVuIHRoZSBjcmVhdGVGcmFtZSBtZXRob2QgcmV0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgRG9uJ3QgYXR0ZW1wdCB0byB3cml0ZSBhIE5VTEwgZnJhbWUgaW50byB0aGUgSUQzIHRhZyBzZXQgd2hlbiB0aGUKCSAgY3JlYXRlRnJhbWUgbWV0aG9kIHJldHVybmVkIE5VTEwuCgkgIEZpeGVzOiAjMzgxODU3CgkgIFBhdGNoIGJ5OiBKb25hdGhhbiBNYXR0aGV3IDxqb25hdGhhbiBhdCAwa2FvbGluIHdoOSBuZXQgPgoKMjAwNi0xMi0wNiAxMzoxNjo1OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8bWFpbEBzbG9tb3NuYWlsLmRlPgoKCSAgZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOiBVc2UgZ19zdHJ0b2QoKSBpbnN0ZWFkIG9mIHNzY2FuZiB0byBwYXJzZSBkb3VibGVzLCBzbyB0aGF0IGl0IHdpbGwgdHJ5IHBhcnNpbmcgaW4gdGhlIEMgbG9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzogKGFwZV9kZW11eF9wYXJzZV90YWdzKToKCSAgVXNlIGdfc3RydG9kKCkgaW5zdGVhZCBvZiBzc2NhbmYgdG8gcGFyc2UgZG91Ymxlcywgc28gdGhhdCBpdCB3aWxsCgkgIHRyeSBwYXJzaW5nIGluIHRoZSBDIGxvY2FsZSBpZiB0aGUgY3VycmVudCBsb2NhbGUgZmFpbHMuCgkgIEZpeGVzOiAjMzgyOTgyCgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8bWFpbCBhdCBzbG9tb3NuYWlsIGRlID4KCjIwMDYtMTItMDEgMTA6MzE6NDYgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICB3aW4zMi9NQU5JRkVTVDogRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIHdpbjMyIHVuZGVyIFZTOAoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICBQYXJ0aWFsbHkgZml4ZXMgIzM4MTE3NQoKMjAwNi0xMS0zMCAxNjo0ODo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguYzogYWNjZXB0IGFsbCBtcGVndmVyc2lvbnMsZml4ZXMgIzM4MDgyNSBzcG90dGVkIGJ5OiBKZXJvbWUgQWxldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBhY2NlcHQgYWxsIG1wZWd2ZXJzaW9ucyxmaXhlcyAjMzgwODI1CgkgIHNwb3R0ZWQgYnk6IEplcm9tZSBBbGV0CgoyMDA2LTExLTMwIDE2OjQ2OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IGNsZWFudXAgdGhlIGVycm9yIG1lc3NhZ2UgYSBiaXQgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19maWxsX2Zvcm1hdF9saXN0KSwKCSAgKGdzdF92NGwyc3JjX3F1ZXVlX2ZyYW1lKSwgKGdzdF92NGwyc3JjX2dyYWJfZnJhbWUpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X2NhcHR1cmUpLCAoZ3N0X3Y0bDJzcmNfc2V0X2NhcHR1cmUpLAoJICAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9pbml0KSwgKGdzdF92NGwyc3JjX2J1ZmZlcl9maW5hbGl6ZSk6CgkgIGNsZWFudXAgdGhlIGVycm9yIG1lc3NhZ2UgYSBiaXQgbW9yZQoKMjAwNi0xMS0zMCAxNTowODowOCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9yZXBsYXlnYWluL2dzdHJnYW5hbHlzaXMuYzogQ2FsbCB0aGUgYmFzZSBjbGFzcyBoYW5kbGVyLiAgRml4ZXMgIzM4MDYxMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyICA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmM6IChnc3RfcmdfYW5hbHlzaXNfZXZlbnQpOgoJICBDYWxsIHRoZSBiYXNlIGNsYXNzIGhhbmRsZXIuICBGaXhlcyAjMzgwNjEwLgoKMjAwNi0xMS0yOCAxMjozMDoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6IEZpeCB3aWR0aCBhbmQgaGVpZ2h0IHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6IChnc3RfY2FjYXNpbmtfY2xhc3NfaW5pdCk6CgkgIEZpeCB3aWR0aCBhbmQgaGVpZ2h0IHByb3BlcnRpZXMuCgkgICogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuaDoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIG5ld2VyIGxpYmNhY2EgdGhhdCByZXF1aXJlIHVzIHRvIGluY2x1ZGUgYSBuZXcKCSAgaGVhZGVyLiBGaXhlcyAjMzc5OTE4LgoKMjAwNi0xMS0yOCAxMTo1MjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwLzogQWRkIG1ldGhvZCBzbyB0aGF0IGV4dGVuc2lvbnMgY2FuIGNob29zZSB0byBkaXNhYmxlIHRoZSBzZXR1cCBvZiBhIHN0cmVhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfb3Blbik6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICAqIGdzdC9ydHNwL3J0c3BleHQuaDoKCSAgKiBnc3QvcnRzcC9ydHNwZXh0d21zLmM6IChydHNwX2V4dF93bXNfY29uZmlndXJlX3N0cmVhbSksCgkgIChydHNwX2V4dF93bXNfZ2V0X2NvbnRleHQpOgoJICBBZGQgbWV0aG9kIHNvIHRoYXQgZXh0ZW5zaW9ucyBjYW4gY2hvb3NlIHRvIGRpc2FibGUgdGhlIHNldHVwIG9mCgkgIGEgc3RyZWFtLgoJICBNYWtlIHRoZSBXTVMgZXh0ZW5zaW9uIHNraXAgc2V0dXAgb2YgeC13bXMtcnR4IHN0cmVhbXMuIEZpeGVzICMzNzc3OTIuCgoyMDA2LTExLTI3IDE3OjE2OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBSZW1vdmUgc29tZSBhc3NlcnRzIGFuZCByZXBsYWNlIHRoZW0gd2l0aCBhIHByb3BlciBlcnJvciBtZXNzYWdlLiBGaXhlcyAjMzc5MjYxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9nZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F0ZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksIChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBSZW1vdmUgc29tZSBhc3NlcnRzIGFuZCByZXBsYWNlIHRoZW0gd2l0aCBhIHByb3BlciBlcnJvcgoJICBtZXNzYWdlLiBGaXhlcyAjMzc5MjYxLgoKMjAwNi0xMS0yNyAxNjozMDo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgbWVudGlvbiBidWcgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtZW50aW9uIGJ1ZyBmaXgKCjIwMDYtMTEtMjcgMTY6Mjk6MDcgKzAwMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkgIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IFB1c2ggaGVhZGVyIGluIGEgc2VwYXJhdGUgYnVmZmVyIGluc3RlYWQgb2YgbWVtY3B5OmluZyBhbGwgZGF0YQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvbmFzIEhvbG1iZXJnIDxqb25hcyBkb3QgaG9sbWJlcmcgYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICBQdXNoIGhlYWRlciBpbiBhIHNlcGFyYXRlIGJ1ZmZlciBpbnN0ZWFkIG9mIG1lbWNweTppbmcgYWxsIGRhdGEKCSAgQ2hhbmdlIExGID0+IENSTEYgaW4gaGVhZGVycwoJICBNb3ZlIHRyYWlsaW5nIExGIHRvIGhlYWRlcgoKMjAwNi0xMS0yNyAxNjoyNjo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzogU21hbGwgYnVmZmVyIG92ZXJmbG93IGZpeCBhbmQgaW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzogKGdzdF9ydHBfbXBhX2RlcGF5X2NoYWluKToKCSAgU21hbGwgYnVmZmVyIG92ZXJmbG93IGZpeCBhbmQgaW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA2LTExLTI0IDA4OjU4OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvZXNkLzogcmVtb3ZlIG9ic29sZXRlIF9mYWN0b3J5X2luaXQgcHJvdG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9lc2QvZXNkbW9uLmg6CgkgICogZXh0L2VzZC9lc2RzaW5rLmg6CgkgIHJlbW92ZSBvYnNvbGV0ZSBfZmFjdG9yeV9pbml0IHByb3RvcwoKMjAwNi0xMS0yNCAwNzo0Njo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiByZW1vdmUgZGVhZCBjb2RlLCB0d2VhayBkZWJ1Z3Mgc3RhdGVtZW50cywgYWRkIGNvbW1lbnRzLCB1c2UgX3VpbnQ2NF9zY2FsZSBpbnN0ZWFkIF91aW50NjRfc2NhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaW5kZXhfZW50cnlfZm9yX3RpbWUpLAoJICAoZ3N0X2F2aV9kZW11eF9zcmNfY29udmVydCksIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2F2aV9kZW11eF9wZWVrX2NodW5rKSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3ViaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9yZWFkX3N1YmluZGV4ZXNfcHVzaCksCgkgIChnc3RfYXZpX2RlbXV4X3JlYWRfc3ViaW5kZXhlc19wdWxsKSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zeW5jKSwgKGdzdF9hdmlfZGVtdXhfbmV4dF9kYXRhX2J1ZmZlciksCgkgIChnc3RfYXZpX2RlbXV4X21hc3NhZ2VfaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9jYWxjdWxhdGVfZHVyYXRpb25zX2Zyb21faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyX3B1bGwpLCAoZ3N0X2F2aV9kZW11eF9kb19zZWVrKSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspLCAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksIChnc3RfYXZpX2RlbXV4X2xvb3ApOgoJICByZW1vdmUgZGVhZCBjb2RlLCB0d2VhayBkZWJ1Z3Mgc3RhdGVtZW50cywgYWRkIGNvbW1lbnRzLCB1c2UKCSAgX3VpbnQ2NF9zY2FsZSBpbnN0ZWFkIF91aW50NjRfc2NhbGVfaW50IHdoZW4gdXNpbmcgZ3VpbnQ2NCB2YWx1ZXMsCgkgIHNtYWxsIG9wdGltaXphdGlvbnMsIHJlZmxvdyBzb21lIGVycm9yIGhhbmRsaW5nCgoyMDA2LTExLTIyIDE3OjM5OjEzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcG8vLmN2c2lnbm9yZTogV2UgbmV2ZXIgcHV0IC5wb3QgZmlsZXMgaW4gY3ZzLiBMZXQncyBpZ25vcmUgdGhlbSBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvLy5jdnNpZ25vcmU6CgkgIFdlIG5ldmVyIHB1dCAucG90IGZpbGVzIGluIGN2cy4gTGV0J3MgaWdub3JlIHRoZW0gYWxsLgoKMjAwNi0xMS0yMSAxMjo1Nzo1MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBlbmFsYmUgTEFEU1BBIHBsdWdpbiBpbiBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGVuYWxiZSBMQURTUEEgcGx1Z2luIGluIHNwZWMgZmlsZQoKMjAwNi0xMS0xOSAxODo0NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBvL1BPVEZJTEVTLmluOiAuLi4gYnV0IGJldHRlciBleGNsdWRlIGZpbGVzIHRoYXQgYXJlbid0IGRpc3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgIC4uLiBidXQgYmV0dGVyIGV4Y2x1ZGUgZmlsZXMgdGhhdCBhcmVuJ3QgZGlzdGVkLgoKMjAwNi0xMS0xOSAxNjozMjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBvL1BPVEZJTEVTLmluOiBBZGQgdjRsMiBzb3VyY2UgZmlsZXMgdG8gbGlzdCBvZiBmaWxlcyB3aXRoIHRyYW5zbGF0aW9ucywgc28gdGhlIHN0cmluZ3MgYXJlIGFjdHVhbGx5IGV4dHJhY3RlZCAoaG93ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgQWRkIHY0bDIgc291cmNlIGZpbGVzIHRvIGxpc3Qgb2YgZmlsZXMgd2l0aCB0cmFuc2xhdGlvbnMsIHNvIHRoZQoJICBzdHJpbmdzIGFyZSBhY3R1YWxseSBleHRyYWN0ZWQgKGhvd2V2ZXIgYmFkIHRoZXkgc3RpbGwgbWF5IGJlKS4KCjIwMDYtMTEtMTkgMTY6MzA6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogTWlub3IgY2xlYW4tdXBzOiBjb25zdC1pZnkgc3RhdGljIGFycmF5LCByZW1vdmUgdHJhaWxpbmcgY29tbWEgZnJvbSB1c2UgR1NUX0RFQlVHX0ZVTkNQVFIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9jbGFzc19pbml0KToKCSAgTWlub3IgY2xlYW4tdXBzOiBjb25zdC1pZnkgc3RhdGljIGFycmF5LCByZW1vdmUgdHJhaWxpbmcgY29tbWEgZnJvbQoJICBsYXN0IGVudW0gKGdjYy0yLjl4IHRyaXBzIG92ZXIgdGhhdCksIHVzZSBHU1RfREVCVUdfRlVOQ1BUUi4KCjIwMDYtMTEtMTkgMTM6NDE6NTMgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogTWFrZSBzdXJlIHRoYXQgZ19mcmVlIGFsd2F5cyBnZXRzIGNhbGxlZCBvbiB0aGUgc2FtZSBwb2ludGVyIHRoYXQgd2FzIHJldHVybmVkIGJ5IGdfbWFsbG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSk6CgkgIE1ha2Ugc3VyZSB0aGF0IGdfZnJlZSBhbHdheXMgZ2V0cyBjYWxsZWQgb24gdGhlIHNhbWUgcG9pbnRlciB0aGF0IHdhcwoJICByZXR1cm5lZCBieSBnX21hbGxvYy4gIEZpeGVzICMzNzY1OTQuCgkgIERvIG5vdCBsZWFrIG1lbW9yeSBpZiBkZWNvbXByZXNzZWQgc2l6ZSBpcyB3cm9uZy4KCSAgUmVtb3ZlIHVubmVlZGVkIGNoZWNrIG9mIHJldHVybiB2YWx1ZSBvZiBnX21hbGxvYy4KCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoyMDA2LTExLTE4IDE4OjE0OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiBBZGQgbWlzc2luZyBjdXJseSBicmFja2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9kZWluaXQpOgoJICBBZGQgbWlzc2luZyBjdXJseSBicmFja2V0cy4KCjIwMDYtMTEtMTcgMTQ6NTQ6MDEgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBGaXggY2FwdHVyZV9kZWluaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggY2FwdHVyZV9kZWluaXQuCgoyMDA2LTExLTE2IDE1OjM2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiBVc2UgR1NUX0RFQlVHX0ZVTkNQVFI7IGFjdGl2YXRlIHJlcXVlc3QgcGFkIGJlZm9yZSByZXR1cm5pbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3JlcXVlc3RfbmV3X3BhZCk6CgkgIFVzZSBHU1RfREVCVUdfRlVOQ1BUUjsgYWN0aXZhdGUgcmVxdWVzdCBwYWQgYmVmb3JlIHJldHVybmluZyBpdC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOiAoc2V0dXBfc3JjX3BhZCksCgkgIChzZXR1cF9zaW5rX3BhZCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIHVzaW5nIHRoZW0uCgoyMDA2LTExLTE2IDE1OjA0OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBJbml0aWFsaXNlIHZhcmlhYmxlIHRvIGdldCByaWQgb2YgYm9ndXMgY29tcGlsZXIgd2FybmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fc2Nhbik6CgkgIEluaXRpYWxpc2UgdmFyaWFibGUgdG8gZ2V0IHJpZCBvZiBib2d1cyBjb21waWxlciB3YXJuaW5nLgoKMjAwNi0xMS0xNiAwNzoyNjoxNyArMDAwMCAgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBtb3ZpYWwuZmk+CgoJICBnc3QvcnRwLzogU3BlY2lmeSBILjI2MyB2YXJpYW50IGFuZCB2ZXJzaW9uIGluIHRoZSBjYXBzIChmaXhlcyAjMzYxNjM3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbW92aWFsLmZpPgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSAgU3BlY2lmeSBILjI2MyB2YXJpYW50IGFuZCB2ZXJzaW9uIGluIHRoZSBjYXBzIChmaXhlcyAjMzYxNjM3KQoKMjAwNi0xMS0xNSAxNzo0NDowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IERvbid0IHNldCBhIGRhdGEgcG9pbnRlciB0byBOVUxMIGFuZCBhIHNpemUgPiAwIHdoZW4gd2UgZGVhbCB3aXRoIGVtcHR5IHBhY2tldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChyZWFkX2JvZHkpOgoJICBEb24ndCBzZXQgYSBkYXRhIHBvaW50ZXIgdG8gTlVMTCBhbmQgYSBzaXplID4gMCB3aGVuIHdlIGRlYWwKCSAgd2l0aCBlbXB0eSBwYWNrZXRzLgoJICAqIGdzdC9ydHNwL3J0c3BtZXNzYWdlLmM6IChydHNwX21lc3NhZ2VfbmV3X3Jlc3BvbnNlKSwKCSAgKHJ0c3BfbWVzc2FnZV9pbml0X3Jlc3BvbnNlKSwgKHJ0c3BfbWVzc2FnZV9pbml0X2RhdGEpLAoJICAocnRzcF9tZXNzYWdlX3Vuc2V0KSwgKHJ0c3BfbWVzc2FnZV9mcmVlKSwKCSAgKHJ0c3BfbWVzc2FnZV90YWtlX2JvZHkpOgoJICBDaGVjayB0aGF0IHdlIGNhbid0IGNyZWF0ZSBpbnZhbGlkIGVtcHR5IHBhY2tldHMuCgoyMDA2LTExLTE1IDEyOjM1OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay86IFNvbWUgc21hbGwgY2xlYW4tdXBzOiB1c2UgZW51bXMgaW5zdGVhZCBvZiBoYXJkLWNvZGVkIG51bWJlcnMsIGNvbnN0LWlmeSBlbGVtZW50IGRldGFpbHMsIHJlLWZhY3RvciBzb20uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogKGdzdF93YXZwYWNrX2RlY19yZXNldCksCgkgIChnc3Rfd2F2cGFja19kZWNfaW5pdCksIChnc3Rfd2F2cGFja19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IChnc3Rfd2F2cGFja19lbmNfYmFzZV9pbml0KSwKCSAgKGdzdF93YXZwYWNrX2VuY19jbGFzc19pbml0KSwgKGdzdF93YXZwYWNrX2VuY19yZXNldCksCgkgIChnc3Rfd2F2cGFja19lbmNfaW5pdCksIChnc3Rfd2F2cGFja19lbmNfc2V0X3dwX2NvbmZpZyksCgkgIChnc3Rfd2F2cGFja19lbmNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgU29tZSBzbWFsbCBjbGVhbi11cHM6IHVzZSBlbnVtcyBpbnN0ZWFkIG9mIGhhcmQtY29kZWQgbnVtYmVycywKCSAgY29uc3QtaWZ5IGVsZW1lbnQgZGV0YWlscywgcmUtZmFjdG9yIHNvbWUgY29kZSBpbnRvIF9yZXNldCgpCgkgIGZ1bmN0aW9ucyAoIzM1MjYwNSkuCgoyMDA2LTExLTE1IDEyOjA4OjIwICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC4qOiBBZGQgYmFzaWMgdGFnIHdyaXRpbmcgc3VwcG9ydDsgaW1wbGVtZW50IHJlbGVhc2luZyBwYWRzICgjMzc0NjU4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzICA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X2FkZF9pbnRlcmZhY2VzKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfY2xhc3NfaW5pdCksIChnc3RfbWF0cm9za2FfcGFkX2ZyZWUpLAoJICAoZ3N0X21hdHJvc2thX211eF9yZXNldCksIChnc3RfbWF0cm9za2FfbXV4X2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF9tYXRyb3NrYV9tdXhfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X21hdHJvc2thX211eF90cmFja19oZWFkZXIpLCAoZ3N0X21hdHJvc2thX211eF9zdGFydCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX3NpbXBsZV90YWcpLCAoZ3N0X21hdHJvc2thX211eF9maW5pc2gpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguaDoKCSAgQWRkIGJhc2ljIHRhZyB3cml0aW5nIHN1cHBvcnQ7IGltcGxlbWVudCByZWxlYXNpbmcgcGFkcyAoIzM3NDY1OCkuCgoyMDA2LTExLTE1IDExOjE5OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEhhbmRsZSBvcGFxdWUvdW5zcGVjaWZpZWQgQV9BQUMgYXVkaW8gY29kZWMgSUQgKGZpeGVzICMzNzQ3MzcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBzKToKCSAgSGFuZGxlIG9wYXF1ZS91bnNwZWNpZmllZCBBX0FBQyBhdWRpbyBjb2RlYyBJRCAoZml4ZXMgIzM3NDczNykuCgoyMDA2LTExLTE1IDAwOjEyOjE5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogQWRkIERpcmFjIGZvdXJjYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiBBZGQgRGlyYWMgZm91cmNjLgoKMjAwNi0xMS0xNCAyMDowNzoyMiArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIHdpbjMyL3ZzOC86IE1ha2UgZW5kLW9mLWxpbmUgcmV0dXJucyB1bml4eSwgc28gdGhhdCB3aGVuIHRoZSBmaWxlcyBhcmUgY2hlY2tlZCBvdXQgb24gd2luMzIgdGhlIGxpbmUgcmV0dXJucyB3aWxsIGJlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoICA8c2VyZ2V5LnNjb2JpY2ggYXQgZ21haWwgY29tPgoJICAqIHdpbjMyL3ZzOC9nc3QtcGx1Z2lucy1nb29kLnNsbjoKCSAgKiB3aW4zMi92czgvbGliZ3N0MTM5NC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGFhc2luay52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGFsYXcudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RhbHBoYS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGFscGhhY29sb3IudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rhbm5vZGV4LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YXBldGFnLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YXVkaW9meC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGF1cGFyc2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RhdXRvZGV0ZWN0LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YXZpLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y2FjYXNpbmsudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RjZGlvLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Y3V0dGVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0ZHYudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RlZmZlY3R2LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0ZmxhYy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGZseGRlYy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGdvb20udmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RpY3lkZW11eC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGlkM2RlbXV4LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0anBlZy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGxhZHNwYS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGxldmVsLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0bWF0cm9za2EudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RtaWttb2QudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RtbmcudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rtb25vc2NvcGUudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RtdWxhdy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdG11bHRpcGFydC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHBuZy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJ0cC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJ0c3AudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RzaG91dDIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RzbXB0ZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHNwZWV4LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0dGFnbGliLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0dWRwLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0dmlkZW9iYWxhbmNlLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0dmlkZW9ib3gudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R2aWRlb2ZsaXAudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R2aWRlb21peGVyLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0d2F2ZW5jLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0d2F2cGFyc2UudmNwcm9qOgoJICBNYWtlIGVuZC1vZi1saW5lIHJldHVybnMgdW5peHksIHNvIHRoYXQgd2hlbiB0aGUgZmlsZXMgYXJlIGNoZWNrZWQKCSAgb3V0IG9uIHdpbjMyIHRoZSBsaW5lIHJldHVybnMgd2lsbCBiZSAwZCAwYSBhbmQgbm90IDBkIDBkIDBhLgoJICBIb3BlZnVsbHkgZml4ZXMgIzM2NjQ5Mi4KCjIwMDYtMTEtMTQgMTU6NTU6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IERpc2FibGUgaW5pdF9mcmFtZXMgZGVsYXkgdGltZXN0YW1wIGFkanVzdG1lbnQsIGl0IGRvZXMgbm90IHNlZW0gdG8gYmUgbmVlZGVkIGF0IGFsbC4gRml4ZXMgIzMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9tYXNzYWdlX2luZGV4KToKCSAgRGlzYWJsZSBpbml0X2ZyYW1lcyBkZWxheSB0aW1lc3RhbXAgYWRqdXN0bWVudCwgaXQgZG9lcyBub3QKCSAgc2VlbSB0byBiZSBuZWVkZWQgYXQgYWxsLiBGaXhlcyAjMzY5NjIxLgoKMjAwNi0xMS0xNCAxMTo0Mzo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRG9uJ3QgcGFyc2UgZXh0cmEgc2FtcGxlIHBhcmFtcyBmb3IgcmF3IHBjbS4gRml4ZXMgIzM3NDkxNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZ2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdGRlbXV4X2hhbmRsZV9zcmNfcXVlcnkpLCAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRG9uJ3QgcGFyc2UgZXh0cmEgc2FtcGxlIHBhcmFtcyBmb3IgcmF3IHBjbS4gRml4ZXMgIzM3NDkxNC4KCjIwMDYtMTEtMTMgMTg6MzE6MTggKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IEZpeCBtZW1sZWFrIGJ5IHVucmVmJ2luZyBjb2xsZWN0cGFkcyBpbnN0YW5jZSAod2hlbiBmaW5hbGl6aW5nKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgKGdzdF92aWRlb21peGVyX3NldF9tYXN0ZXJfZ2VvbWV0cnkpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3Npbmtfc2V0Y2FwcyksIChnc3RfdmlkZW9taXhlcl9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb21peGVyX2NvbGxlY3RfZnJlZSksIChnc3RfdmlkZW9taXhlcl9yZXNldCksCgkgIChnc3RfdmlkZW9taXhlcl9pbml0KSwgKGdzdF92aWRlb21peGVyX2ZpbmFsaXplKSwKCSAgKGdzdF92aWRlb21peGVyX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdmlkZW9taXhlcl9yZWxlYXNlX3BhZCksCgkgIChnc3RfdmlkZW9taXhlcl9jb2xsZWN0ZWQpLCAoZ3N0X3ZpZGVvbWl4ZXJfY2hhbmdlX3N0YXRlKToKCSAgRml4IG1lbWxlYWsgYnkgdW5yZWYnaW5nIGNvbGxlY3RwYWRzIGluc3RhbmNlICh3aGVuIGZpbmFsaXppbmcpCgkgIEltcGxlbWVudCByZWxlYXNpbmcgYSByZXF1ZXN0IHBhZC4gRml4ZXMgIzM3NDQ3OS4KCjIwMDYtMTEtMTAgMjA6MDg6NDIgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICB3aW4zMi92czgvOiBBZGQgVlM4IHByb2plY3QgZmlsZXMgKG5vdGUgdGhhdCBtYW55IG9mIHRoZSBwbHVnaW5zIGluIGV4dCBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdCkuIEZpeGVzICMzNjY0OTIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggIDxzZXJnZXkuc2NvYmljaCBhdCBnbWFpbCBjb20+CgkgICogd2luMzIvdnM4L2dzdC1wbHVnaW5zLWdvb2Quc2xuOgoJICAqIHdpbjMyL3ZzOC9saWJnc3QxMzk0LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YWFzaW5rLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YWxhdy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGFscGhhLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YWxwaGFjb2xvci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGFubm9kZXgudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RhcGV0YWcudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RhdWRpb2Z4LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0YXVwYXJzZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGF1dG9kZXRlY3QudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RhdmkudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RjYWNhc2luay52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNkaW8udmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RjdXR0ZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3Rkdi52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGVmZmVjdHYudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RmbGFjLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Zmx4ZGVjLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0Z29vbS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGljeWRlbXV4LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0aWQzZGVtdXgudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RqcGVnLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0bGFkc3BhLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0bGV2ZWwudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RtYXRyb3NrYS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdG1pa21vZC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdG1uZy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdG1vbm9zY29wZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdG11bGF3LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0bXVsdGlwYXJ0LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cG5nLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cnRwLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0cnRzcC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHNob3V0Mi52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHNtcHRlLnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0c3BlZXgudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R0YWdsaWIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R1ZHAudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R2aWRlb2JhbGFuY2UudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R2aWRlb2JveC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHZpZGVvZmxpcC52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHZpZGVvbWl4ZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R3YXZlbmMudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3R3YXZwYXJzZS52Y3Byb2o6CgkgIEFkZCBWUzggcHJvamVjdCBmaWxlcyAobm90ZSB0aGF0IG1hbnkgb2YgdGhlIHBsdWdpbnMgaW4gZXh0IGFyZQoJICBkaXNhYmxlZCBieSBkZWZhdWx0KS4gRml4ZXMgIzM2NjQ5Mi4KCjIwMDYtMTEtMTAgMTk6MTg6MzMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L211bHRpZmlsZS9NYWtlZmlsZS5hbTogTGV0J3Mgbm90IGRlcGVuZCBvbiBhIGZpbGUgdGhhdCBkb2Vzbid0IGV4aXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlmaWxlL01ha2VmaWxlLmFtOgoJICBMZXQncyBub3QgZGVwZW5kIG9uIGEgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QuCgoyMDA2LTExLTEwIDE4OjUxOjEwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIFJldml2ZSBtdWx0aWZpbGVbc3JjfHNpbmtdLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L211bHRpZmlsZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZS5jOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOgoJICAqIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgICogZ3N0L211bHRpZmlsZS9tdWx0aWZpbGUudnByb2o6CgkgIFJldml2ZSBtdWx0aWZpbGVbc3JjfHNpbmtdLgoKMjAwNi0xMS0xMCAwODowOTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiB3ZSBkbyBub3QgdHJhbnNsYXRlIGRlYnVnIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX2dyYWJfZnJhbWUpOgoJICB3ZSBkbyBub3QgdHJhbnNsYXRlIGRlYnVnIG1lc3NhZ2VzCgoyMDA2LTExLTA4IDEyOjA0OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZmx4L2dzdGZseGRlYy5jOiBmaXggY2F0ZWdvcmlzYXRpb24sIG1ha2Ugc2hvcnQgZGVzYyBtb3JlIGV4cGxpY2l0LCByZW1vdmUgdW51c2VkIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuYzogKGdzdF9mbHhkZWNfY2xhc3NfaW5pdCk6CgkgIGZpeCBjYXRlZ29yaXNhdGlvbiwgbWFrZSBzaG9ydCBkZXNjIG1vcmUgZXhwbGljaXQsIHJlbW92ZSB1bnVzZWQgY29kZQoJICBGaXhlcyAjMzcyMDIxCgoyMDA2LTExLTA4IDAxOjMwOjM5ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJICBnc3QvcnRwLzogRml4IGVsZW1lbnQgZGVzY3JpcHRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzoKCSAgRml4IGVsZW1lbnQgZGVzY3JpcHRpb25zLgoKMjAwNi0xMS0wOCAwMToyOTo1MSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSAgZ3N0L3J0cC86IEZpeCBkZXNjcmlwdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5LmM6IChnc3RfcnRwX3ZvcmJpc19wYXlfaGFuZGxlX2J1ZmZlcik6CgkgIEZpeCBkZXNjcmlwdGlvbi4KCSAgU21hbGwgY2xlYW51cCBpbiB0aGUgcGF5bG9hZGVyLgoKMjAwNi0xMS0wOCAwMToyODowMCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSAgZ3N0L3J0cC86IEFkZCB0aGVvcmEgcGF5L2RlcGF5bG9hZGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwdGhlb3JhZGVwYXkuYzogKGdzdF9ydHBfdGhlb3JhX2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX3RoZW9yYV9kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfdGhlb3JhX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF90aGVvcmFfZGVwYXlfZmluYWxpemUpLAoJICAoZ3N0X3J0cF90aGVvcmFfZGVwYXlfcGFyc2VfY29uZmlndXJhdGlvbiksCgkgIChnc3RfcnRwX3RoZW9yYV9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3N3aXRjaF9jb2RlYm9vayksCgkgIChnc3RfcnRwX3RoZW9yYV9kZXBheV9wcm9jZXNzKSwKCSAgKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX3RoZW9yYV9kZXBheV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF90aGVvcmFfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfdGhlb3JhX2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHRoZW9yYWRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuYzogKGdzdF9ydHBfdGhlb3JhX3BheV9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF90aGVvcmFfcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF90aGVvcmFfcGF5X2luaXQpLAoJICAoZ3N0X3J0cF90aGVvcmFfcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF90aGVvcmFfcGF5X3Jlc2V0X3BhY2tldCksCgkgIChnc3RfcnRwX3RoZW9yYV9wYXlfaW5pdF9wYWNrZXQpLAoJICAoZ3N0X3J0cF90aGVvcmFfcGF5X2ZsdXNoX3BhY2tldCksCgkgIChnc3RfcnRwX3RoZW9yYV9wYXlfZmluaXNoX2hlYWRlcnMpLCAoZ3N0X3J0cF90aGVvcmFfcGF5X3BhcnNlX2lkKSwKCSAgKGdzdF9ydHBfdGhlb3JhX3BheV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9ydHBfdGhlb3JhX3BheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHB0aGVvcmFwYXkuaDoKCSAgQWRkIHRoZW9yYSBwYXkvZGVwYXlsb2FkZXJzLgoKMjAwNi0xMS0wNyAwMTo0MzowNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSAgZ3N0L3J0cC9NYWtlZmlsZS5hbTogV2UgZGVwZW5kIG9uIGdzdHRhZyB0byBnZW5lcmF0ZSB0aGUgdm9yYmlzIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICBXZSBkZXBlbmQgb24gZ3N0dGFnIHRvIGdlbmVyYXRlIHRoZSB2b3JiaXMgY29tbWVudHMuCgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOgoJICAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfcGFyc2VfY29uZmlndXJhdGlvbiksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfdm9yYmlzX2RlcGF5X3N3aXRjaF9jb2RlYm9vayksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5Lmg6CgkgIFBhcnNlIGNvbmZpZ3VyYXRpb24gc3RyaW5nIGluIHRoZSBkZXBheWxvYWRlci4KCSAgSW1wbGVtZW50IHNlbGVjdGluZyBhbmQgc3dpdGNoaW5nIHRvIGEgbmV3IGNvZGVib29rLgoJICBSZWNlaXZpbmcgdm9yYmlzIG92ZXIgUlRQIG5vdyB3b3Jrcy4KCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZ3N0X3J0cF92b3JiaXNfcGF5X3Jlc2V0X3BhY2tldCksCgkgIChnc3RfcnRwX3ZvcmJpc19wYXlfaW5pdF9wYWNrZXQpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2ZpbmlzaF9oZWFkZXJzKSwKCSAgKGdzdF9ydHBfdm9yYmlzX3BheV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5oOgoJICBTZXQgdGltZXN0YW1wcyBvbiBvdXRnb2luZyBidWZmZXJzIGFuZCBSVFAgcGFja2V0cy4KCSAgRml4IGNvbmZpZ3VyYXRpb24gc3RyaW5nLCBwcmVwZW5kIG51bWJlciBvZiBQYWNrZXQgaGVhZGVycy4KCSAgRml4IGVuY29kaW5nIG9mIGlkZW50IHN0cmluZy4KCSAgQWRkIGRlbGl2ZXJ5LW1ldGhvZCB0byBjYXBzLgoJICBTdHJlYW1pbmcgdm9yYmlzIG92ZXIgUlRQIG5vdyB3b3Jrcy4KCjIwMDYtMTEtMDYgMjA6NTI6MTAgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkgIGdzdC9ydHAvZ3N0cnRwdm9yYmlzcGF5Lio6IEdlbmVyYXRlIGEgdmFsaWQgY29uZmlndXJhdGlvbiBzdHJpbmcgaW4gdGhlIGNhcHMgYmFzZWQgb24gdGhlIHZvcmJpcyBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5jOiAoZ3N0X3J0cF92b3JiaXNfcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2ZpbmlzaF9oZWFkZXJzKSwgKGdzdF9ydHBfdm9yYmlzX3BheV9wYXJzZV9pZCksCgkgIChnc3RfcnRwX3ZvcmJpc19wYXlfaGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuaDoKCSAgR2VuZXJhdGUgYSB2YWxpZCBjb25maWd1cmF0aW9uIHN0cmluZyBpbiB0aGUgY2FwcyBiYXNlZCBvbiB0aGUKCSAgdm9yYmlzIGhlYWRlcnMuCgoyMDA2LTExLTAyIDIwOjEzOjI2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBGaXggZW51bSBuaWNrczsgb25seSBlbWl0IG5vLW1vcmUtcGFkcyBvbmNlOyBhZGQgc3VwcG9ydCBmb3IgdmVyeSBmYXN0IGVuY29kaW5nIG1vZGUgaW4gdXBjb21pbmcgNC40MC4wIHJlbGVhc2UgKCMzNjkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBhdCBjaXJjdWxhci1jaGFvcy5vcmc+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19tb2RlX2dldF90eXBlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19jb3JyZWN0aW9uX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2pvaW50X3N0ZXJlb19tb2RlX2dldF90eXBlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19pbml0KSwgKGdzdF93YXZwYWNrX2VuY19zZXRfd3BfY29uZmlnKToKCSAgRml4IGVudW0gbmlja3M7IG9ubHkgZW1pdCBuby1tb3JlLXBhZHMgb25jZTsgYWRkIHN1cHBvcnQgZm9yIHZlcnkKCSAgZmFzdCBlbmNvZGluZyBtb2RlIGluIHVwY29taW5nIDQuNDAuMCByZWxlYXNlICgjMzY5NTM5KS4KCjIwMDYtMTEtMDIgMTQ6NDM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvY2Rpby86IE1vdmUgQ0QtVEVYVCB1dGlsaXR5IGZ1bmN0aW9uIGludG8gY29tbW9uIGZpbGUgc28gaXQgY2FuIGFsc28gYmUgdXNlZCBieSBhIGZ1dHVyZSBjZGlvcGFyYW5vaWFzcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jZGlvL2dzdGNkaW8uYzogKGdzdF9jZGlvX2dldF9jZHRleHQpOgoJICAqIGV4dC9jZGlvL2dzdGNkaW8uaDoKCSAgKiBleHQvY2Rpby9nc3RjZGlvY2RkYXNyYy5jOiAoZ3N0X2NkaW9fY2RkYV9zcmNfb3Blbik6CgkgIE1vdmUgQ0QtVEVYVCB1dGlsaXR5IGZ1bmN0aW9uIGludG8gY29tbW9uIGZpbGUgc28gaXQgY2FuIGFsc28gYmUKCSAgdXNlZCBieSBhIGZ1dHVyZSBjZGlvcGFyYW5vaWFzcmMuCgoyMDA2LTExLTAxIDE5OjQ4OjI2ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBDaGFuZ2VMb2c6CgkqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIEltcHJvdmVkIGNvbW1lbnRzIGluIEVMRU1FTlRfRVJST1IvV0FSTklORyBhbmQgYWRkZWQgIiNpZiAwIiB0byB4b3ZlcmxheSBjb2RlIHRoYXQgaXMgc3RpbGwgbm90IGltcGxlbWVudGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSW1wcm92ZWQgY29tbWVudHMgaW4gRUxFTUVOVF9FUlJPUi9XQVJOSU5HIGFuZCBhZGRlZCAiI2lmIDAiIHRvIHhvdmVybGF5IGNvZGUgdGhhdCBpcyBzdGlsbCBub3QgaW1wbGVtZW50ZWQuCgoyMDA2LTExLTAxIDEzOjU5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IFdlIHJlcXVpcmUgYSAtYmFzZSBtb3JlIHJlY2VudCB0aGFuIDAuMTAuOSwgc28gaXQncyBzYWZlIHRvIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX3BpY3R1cmVfZnJhbWUpOgoJICBXZSByZXF1aXJlIGEgLWJhc2UgbW9yZSByZWNlbnQgdGhhbiAwLjEwLjksIHNvIGl0J3Mgc2FmZSB0byB1c2UKCSAgR1NUX1RZUEVfVEFHX0lNQUdFX1RZUEUgdW5jb25kaXRpb25hbGx5IG5vdy4KCSAgKiBleHQvZHYvZ3N0ZHZkZWMuYzogKGdzdF9kdmRlY19zaW5rX2V2ZW50KToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6IChnc3RfanBlZ19kZWNfc2lua19ldmVudCk6CgkgIFVzZSBfbmV3c2VnbWVudF9mdWxsKCkgbm93IHRoYXQgd2UgZGVwZW5kIG9uIGEgcmVjZW50IGVub3VnaCBjb3JlLgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBSZW1vdmUgY3J1ZnQgdGhhdCB3ZSBkb24ndCBuZWVkIGFueSBsb25nZXIgbm93IHRoYXQgd2UgZGVwZW5kIG9uCgkgIGEgcmVjZW50IGVub3VnaCAtYmFzZS4KCjIwMDYtMTEtMDEgMTA6MTk6MTggKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBzeXMvOiBXYWl0IHVudGlsIHRoZSB3aW5kb3cgaXMgY3JlYXRlZCBiZWZvcmUgdXNpbmcgaXQ7IGd1YXJkIHVuaXN0ZC5oIGluY2x1ZGVzIHdpdGggSEFWRV9VTklTVERfSC4gKCMzNjY1MjMpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgY29tPgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgIChnc3RfZGlyZWN0ZHJhd3Npbmtfd2luZG93X3RocmVhZCksCgkgIChnc3RfZGlyZWN0ZHJhd3NpbmtfY3JlYXRlX2RlZmF1bHRfd2luZG93KToKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5oOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgV2FpdCB1bnRpbCB0aGUgd2luZG93IGlzIGNyZWF0ZWQgYmVmb3JlIHVzaW5nIGl0OyBndWFyZCB1bmlzdGQuaAoJICBpbmNsdWRlcyB3aXRoIEhBVkVfVU5JU1REX0guICgjMzY2NTIzKQoJICAqIHdpbjMyL3ZzOC9saWJnc3RkaXJlY3RkcmF3LnZjcHJvajoKCSAgKiB3aW4zMi92czgvbGliZ3N0ZGlyZWN0c291bmQudmNwcm9qOgoJICBVcGRhdGUgcHJvamVjdCBmaWxlcy4KCjIwMDYtMTAtMzEgMTA6NTI6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogRml4IGFuZCBhY3RpdmF0ZSBJTEJDIHBheSBhbmQgZGVwYXlsb2FkZXJzLiBGaXhlcyAjMzY4MTYyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6IChnc3RfcnRwaWxiY3BheV9pbml0KSwKCSAgKGdzdF9ydHBpbGJjcGF5X3NldGNhcHMpOgoJICBGaXggYW5kIGFjdGl2YXRlIElMQkMgcGF5IGFuZCBkZXBheWxvYWRlcnMuIEZpeGVzICMzNjgxNjIuCgoyMDA2LTEwLTMxIDEwOjMxOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBIYW5kbGUgdW5ib3VuZGVkIGxlbmd0aCBzdHJlYW1zIGEgYml0IGJldHRlci4gRml4ZXMgIzM2NzY5Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZ2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdGRlbXV4X2hhbmRsZV9zcmNfcXVlcnkpLCAocXRkZW11eF9wYXJzZV90cmVlKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIEhhbmRsZSB1bmJvdW5kZWQgbGVuZ3RoIHN0cmVhbXMgYSBiaXQgYmV0dGVyLiBGaXhlcyAjMzY3Njk2LgoKMjAwNi0xMC0zMSAwOTo0NDozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiBTb21lIHNtYWxsIGNsZWFudXBzLCB1c2UgX3NjYWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzogKHNwZWV4X2RlY19jb252ZXJ0KSwKCSAgKHNwZWV4X2RlY19zaW5rX2V2ZW50KSwgKHNwZWV4X2RlY19jaGFpbl9wYXJzZV9oZWFkZXIpOgoJICBTb21lIHNtYWxsIGNsZWFudXBzLCB1c2UgX3NjYWxlLgoKMjAwNi0xMC0zMSAwOToyOTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogVXNlIGhpZ2hlciBwcmVjaXNpb24gc2NhbGUgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSk6CgkgIFVzZSBoaWdoZXIgcHJlY2lzaW9uIHNjYWxlIGZ1bmN0aW9uLgoKMjAwNi0xMC0zMCAxNjoxODoxOCArMDAwMCAgTWljaGFsIEJlbmVzIDxtaWNoYWwuYmVuZXNAaXRvbmlzLnR2PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEZpeCBzZXZlcmFsIGlzc3VlcyB3aXRoIGVuY29kZWQvY29tcHJlc3NlZC9lbmNyeXB0ZWQvc2lnbmVkIHRyYWNrczsgYWxzbywgcmVtb3ZlIHN1cGVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWljaGFsIEJlbmVzICA8bWljaGFsIGRvdCBiZW5lcyBhdCBpdG9uaXMgdHY+CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfZW5jb2RpbmdfY21wKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9yZWFkX3RyYWNrX2VuY29kaW5ncyksCgkgIChnc3RfbWF0cm9za2FfZGVjb2RlX2J1ZmZlcik6CgkgIEZpeCBzZXZlcmFsIGlzc3VlcyB3aXRoIGVuY29kZWQvY29tcHJlc3NlZC9lbmNyeXB0ZWQvc2lnbmVkIHRyYWNrczsKCSAgYWxzbywgcmVtb3ZlIHN1cGVyZmx1b3VzIG5ld2xpbmUgY2hhcmFjdGVycyBmcm9tIHNvbWUgZGVidWcKCSAgc3RhdGVtZW50cy4gKCMzNjYxNTUpCgoyMDA2LTEwLTMwIDA5OjI0OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2pwZWcvOiBWYXJpb3VzIGNsZWFudXBzLCBjYXBzbmVnbyBhbmQgbGVhayBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOiAoZ3N0X2pwZWdlbmNfZ2V0Y2Fwcyk6CgkgICogZXh0L2pwZWcvZ3N0c21va2VkZWMuYzogKGdzdF9zbW9rZWRlY19jbGFzc19pbml0KSwKCSAgKGdzdF9zbW9rZWRlY19pbml0KSwgKGdzdF9zbW9rZWRlY19maW5hbGl6ZSksIChnc3Rfc21va2VkZWNfY2hhaW4pLAoJICAoZ3N0X3Ntb2tlZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19jbGFzc19pbml0KSwKCSAgKGdzdF9zbW9rZWVuY19pbml0KSwgKGdzdF9zbW9rZWVuY19maW5hbGl6ZSksCgkgIChnc3Rfc21va2VlbmNfZ2V0Y2FwcyksIChnc3Rfc21va2VlbmNfc2V0Y2FwcyksCgkgIChnc3Rfc21va2VlbmNfcmVzeW5jKSwgKGdzdF9zbW9rZWVuY19jaGFpbiksCgkgIChnc3Rfc21va2VlbmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9zbW9rZWVuY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Ntb2tlZW5jX2NoYW5nZV9zdGF0ZSk6CgkgIFZhcmlvdXMgY2xlYW51cHMsIGNhcHNuZWdvIGFuZCBsZWFrIGZpeGVzLgoKMjAwNi0xMC0zMCAwODoxNzowOCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogRml4IHZpZGVvbWl4ZXIgc28gdGhhdCBpdCBjYW4gaGFuZGxlIGFueSBjb21iaW5hdGlvbiBvZiBmcmFtZXJhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogKGdzdF92aWRlb21peGVyX3VwZGF0ZV9xdWV1ZXMpOgoJICBGaXggdmlkZW9taXhlciBzbyB0aGF0IGl0IGNhbiBoYW5kbGUgYW55IGNvbWJpbmF0aW9uIG9mIGZyYW1lcmF0ZXMuCgkgIEZpeGVzICMzNjcyMjEuCgoyMDA2LTEwLTI4IDE2OjM3OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBGaXggcG9zaXRpb24gcXVlcnkgZm9yIGF1ZGlvLiBhbHNvIGZpeGVzIHRpbWVzdGFtcHMgaW4gc3RyZWFtaW5nIG1vZGUgYW5kIGJ1ZyAjMzY0OTU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9maWxlX2hlYWRlciksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9pbml0X3B1c2gpLCAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdHJlYW0pLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyX3B1c2gpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksCgkgIChnc3RfYXZpX2RlbXV4X2NoYWluKToKCSAgRml4IHBvc2l0aW9uIHF1ZXJ5IGZvciBhdWRpby4gYWxzbyBmaXhlcyB0aW1lc3RhbXBzIGluIHN0cmVhbWluZwoJICBtb2RlIGFuZCBidWcgIzM2NDk1OC4KCSAgU21hbGwgY2xlYW51cHMuCgoyMDA2LTEwLTI3IDE3OjEwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2xpYnBuZy9nc3RwbmdlbmMuKjogRml4IHN0cmlkZXMuIEZpeGVzICMzNjQ4NTYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6IChnc3RfcG5nZW5jX3NldGNhcHMpLCAoZ3N0X3BuZ2VuY19jaGFpbik6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdlbmMuaDoKCSAgRml4IHN0cmlkZXMuIEZpeGVzICMzNjQ4NTYuCgkgIENsZWFudXAgY2Fwc25lZ28uCgkgIFNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgoyMDA2LTEwLTE4IDE3OjA2OjIxICswMDAwICBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQG1vdmlhbC5maT4KCgkgIGdzdC9ydHAvOiBBZGQgc3RhdGljIHBheWxvYWQgbnVtYmVycyBpbiBhZGRpdGlvbiB0byB0aGUgZHluYW1pYyBvbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFZpbGxlIFN5cmphbGEgPHZpbGxlIGRvdCBzeXJqYWxhIGF0IG1vdmlhbCBkb3QgZmk+CgkgICogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOiAoZ3N0X3J0cF9wY21hX3BheV9mbHVzaCksCgkgIChnc3RfcnRwX3BjbWFfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOiAoZ3N0X3J0cF9wY211X3BheV9mbHVzaCk6CgkgIEFkZCBzdGF0aWMgcGF5bG9hZCBudW1iZXJzIGluIGFkZGl0aW9uIHRvIHRoZSBkeW5hbWljIG9uZXMuCgkgIEZpeGVzICMzNjE2MzkuCgoyMDA2LTEwLTE4IDE2OjE4OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvOiBSZXVzZSBhbHJlYWR5IGV4aXN0aW5nIGVudW0gZm9yIGxvd2VyIHRyYW5zcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BfbG93ZXJfdHJhbnNfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwKCSAgKGdzdF9ydHNwc3JjX2xvb3BfdWRwKSwgKGdzdF9ydHNwc3JjX29wZW4pLAoJICAoZ3N0X3J0c3BzcmNfdXJpX2dldF9wcm90b2NvbHMpLCAoZ3N0X3J0c3BzcmNfdXJpX3NldF91cmkpOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChydHNwX2Nvbm5lY3Rpb25fY3JlYXRlKToKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICAqIGdzdC9ydHNwL3J0c3B1cmwuYzogKHJ0c3BfdXJsX3BhcnNlKToKCSAgKiBnc3QvcnRzcC9ydHNwdXJsLmg6CgkgIFJldXNlIGFscmVhZHkgZXhpc3RpbmcgZW51bSBmb3IgbG93ZXIgdHJhbnNwb3J0LgoJICBBZGQgcnRzcHQgYW5kIHJ0c3B1IHByb3RvY29scy4KCSAgU2VuZCByZWRpcmVjdCB0byBydHNwdCB3aGVuIHVkcCB0aW1lcyBvdXQuCgoyMDA2LTEwLTE4IDE0OjAwOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEZpeCBzZWVraW5nIHNvbWUgbW9yZSwgbW9zdGx5IGZvciBzcGVlZCBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLAoJICAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKToKCSAgRml4IHNlZWtpbmcgc29tZSBtb3JlLCBtb3N0bHkgZm9yIHNwZWVkIGNoYW5nZXMuCgoyMDA2LTEwLTE4IDExOjI4OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZml4IEZyZWRyaWsncyBlLW1haWwgYWRkcmVzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGZpeCBGcmVkcmlrJ3MgZS1tYWlsIGFkZHJlc3MKCjIwMDYtMTAtMTggMTE6MDQ6MDkgKzAwMDAgIEZyZWRyaWsgUGVyc3NvbiA8ZnJlcGVAYnJvYWRiYW5kLm5ldD4KCgkgIHN5cy92NGwyL2dzdHY0bDJ0dW5lci4qOiBGaXggX3NldF9jaGFubmVsKCk6IHJlbW92ZSB1c2VsZXNzIGdfb2JqZWN0X25vdGlmeSgpIGZvciAiY2hhbm5lbCIgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZyZWRyaWsgUGVyc3NvbiAgPGZyZXBlIGF0IGJyb2FkYmFuZCBuZXQ+CgkgICogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmg6CgkgIEZpeCBfc2V0X2NoYW5uZWwoKTogcmVtb3ZlIHVzZWxlc3MgZ19vYmplY3Rfbm90aWZ5KCkgZm9yICJjaGFubmVsIgoJICBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3QgYW55IGxvbmdlciBhbmQgdGhlcmVmb3JlIG5vdyBhbHNvCgkgIHVzZWxlc3MgcmVkaXJlY3QgKCMzMzg4MTgpLgoKMjAwNi0xMC0xNyAxNToxNjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZyB0aGVtIHRvIHJ1bm5pbmcgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX3NldF93cF9jb25maWcpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfY3JlYXRlX3NyY19wYWQpOgoJICAqIGdzdC9udXZkZW11eC9nc3RudXZkZW11eC5jOiAoZ3N0X251dl9kZW11eF9jcmVhdGVfcGFkcyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja3BhcnNlLmM6ICh3YXZwYWNrcGFyc2VfZm91bmRfcGFkKToKCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgYWRkaW5nIHRoZW0gdG8gcnVubmluZyBlbGVtZW50LgoKMjAwNi0xMC0xNyAxNDo1NzoxNyArMDAwMCAgSm9zZXAgVG9ycmEgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogTWFrZSBjb21waWxlIHdpdGggRm9ydGUgY29tcGlsZXIsIG1vc3RseSBkb24ndCBkbyBwb2ludGVyIGFyaXRobWV0aWMgd2l0aCB2b2lkIHBvaW50ZXJzICgjMzYyNi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJhIFZhbGxlcyAgPGpvc2VwIGF0IGZsdWVuZG8gY29tPgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKG5leHRfZW50cnlfc2l6ZSksIChxdGRlbXV4X2luZmxhdGUpLCAocXRkZW11eF9wYXJzZV9tb292KSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJlZSksIChxdGRlbXV4X3BhcnNlX3RyYWspLCAocXRkZW11eF90YWdfYWRkX3N0ciksCgkgIChxdGRlbXV4X3RhZ19hZGRfbnVtKSwgKHF0ZGVtdXhfdGFnX2FkZF9kYXRlKSwKCSAgKHF0ZGVtdXhfdGFnX2FkZF9nbnJlKToKCSAgTWFrZSBjb21waWxlIHdpdGggRm9ydGUgY29tcGlsZXIsIG1vc3RseSBkb24ndCBkbyBwb2ludGVyIGFyaXRobWV0aWMKCSAgd2l0aCB2b2lkIHBvaW50ZXJzICgjMzYyNjI2KS4KCjIwMDYtMTAtMTcgMTQ6Mzc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvb3NzL2dzdG9zc3NpbmsuYzogU29tZSBkcml2ZXJzIGRvIG5vdCBzdXBwb3J0IHVuc2V0dGluZyB0aGUgbm9uLWJsb2NraW5nIGZsYWcgb25jZSB0aGUgZGV2aWNlIGlzIG9wZW5lZC4gSW4gdGhvc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zcy9nc3Rvc3NzaW5rLmM6IChnc3Rfb3NzX3NpbmtfcHJlcGFyZSk6CgkgIFNvbWUgZHJpdmVycyBkbyBub3Qgc3VwcG9ydCB1bnNldHRpbmcgdGhlIG5vbi1ibG9ja2luZyBmbGFnIG9uY2UgdGhlCgkgIGRldmljZSBpcyBvcGVuZWQuIEluIHRob3NlIGNhc2VzLCBjbG9zZS9vcGVuIHRoZSBkZXZpY2UgaW4KCSAgbm9uLWJsb2NraW5nIG1vZGUuIEZpeGVzICMzNjI2NzMuCgoyMDA2LTEwLTE3IDEzOjQ0OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvdjRsMi86IGRlYXIgc3RlZmFuLCBmcmFtZXNwZXJzZWNvbmQgaXMgbm90IGZyYW1lcGVyaW9kLCByZXZlcnRpbmcgYnV0IGFkZGluZyBjb21tZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogKGdzdF92NGwyX2ZpbGxfbGlzdHMpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX3NldF9mcHMpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X2Zwcyk6CgkgIGRlYXIgc3RlZmFuLCBmcmFtZXNwZXJzZWNvbmQgaXMgbm90IGZyYW1lcGVyaW9kLCByZXZlcnRpbmcgYnV0IGFkZGluZwoJICBjb21tZW50CgoyMDA2LTEwLTE3IDExOjI4OjUwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvdjRsMi86IE51bWVyYXRvciBpcyBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGlzIGRlbm9taW5hdG9yLiBTYXkgdGhhdCBhbG91ZCA1IHRpbWVzIGFuZCByZXRyeSBhZnRlciBuZXh0IGJlZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogKGdzdF92NGwyX2ZpbGxfbGlzdHMpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX3NldF9mcHMpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X2Zwcyk6CgkgIE51bWVyYXRvciBpcyBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGlzIGRlbm9taW5hdG9yLiBTYXkgdGhhdCBhbG91ZAoJICA1IHRpbWVzIGFuZCByZXRyeSBhZnRlciBuZXh0IGJlZXIuCgoyMDA2LTEwLTE3IDEwOjU5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC4qOiBBdm9pZCB2b2lkIHBvaW50ZXIgdXNhZ2UsIGJldHRlciB1c2UgZ3VpbnQ4ICogaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV9tb292KSwgKHF0ZGVtdXhfcGFyc2UpLAoJICAocXRkZW11eF9ub2RlX2R1bXBfZm9yZWFjaCksIChxdGRlbXV4X2R1bXBfbXZoZCksCgkgIChxdGRlbXV4X2R1bXBfdGtoZCksIChxdGRlbXV4X2R1bXBfZWxzdCksIChxdGRlbXV4X2R1bXBfbWRoZCksCgkgIChxdGRlbXV4X2R1bXBfaGRsciksIChxdGRlbXV4X2R1bXBfdm1oZCksIChxdGRlbXV4X2R1bXBfZHJlZiksCgkgIChxdGRlbXV4X2R1bXBfc3RzZCksIChxdGRlbXV4X2R1bXBfc3R0cyksIChxdGRlbXV4X2R1bXBfc3RzcyksCgkgIChxdGRlbXV4X2R1bXBfc3RzYyksIChxdGRlbXV4X2R1bXBfc3RzeiksIChxdGRlbXV4X2R1bXBfc3RjbyksCgkgIChxdGRlbXV4X2R1bXBfY282NCksIChxdGRlbXV4X2R1bXBfZGNvbSksIChxdGRlbXV4X2R1bXBfY212ZCksCgkgIChxdGRlbXV4X2R1bXBfdW5rbm93biksIChxdGRlbXV4X3RyZWVfZ2V0X2NoaWxkX2J5X3R5cGUpLAoJICAocXRkZW11eF90cmVlX2dldF9zaWJsaW5nX2J5X3R5cGUpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgQXZvaWQgdm9pZCBwb2ludGVyIHVzYWdlLCBiZXR0ZXIgdXNlIGd1aW50OCAqIGluc3RlYWQuCgoyMDA2LTEwLTE2IDE4OjIyOjQ3ICswMDAwICBKb3NlcCBUb3JyYSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgRml4IGEgYnVuY2ggb2YgcHJvYmxlbXMgZGlzY292ZXJlZCBieSB0aGUgRm9ydGUgY29tcGlsZXIsIG1vc3RseSB0eXBlIG1peHVwcyBhbmQgcG9pbnRlciBhcml0aG1ldGljcyB3aXRoIHZvaWQgcG9pbnRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmEgVmFsbGVzICA8am9zZXAgYXQgZmx1ZW5kbyBjb20+CgkgICogZXh0L2NhaXJvL2dzdHRpbWVvdmVybGF5LmM6IChnc3RfY2Fpcm9fdGltZV9vdmVybGF5X3RyYW5zZm9ybSk6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua193cml0ZSk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX2xlbmd0aCksCgkgIChnc3RfZmxhY19kZWNfcmVhZF9zZWVrYWJsZSksIChnc3RfZmxhY19kZWNfY2hhaW4pLAoJICAoZ3N0X2ZsYWNfZGVjX3NlbmRfbmV3c2VnbWVudCk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiAoZ3N0X2ZsYWNfZW5jX3NlZWtfY2FsbGJhY2spLAoJICAoZ3N0X2ZsYWNfZW5jX3RlbGxfY2FsbGJhY2spOgoJICAqIGV4dC9qcGVnL3Ntb2tlY29kZWMuYzogKGZpbmRfYmVzdF9zaXplKSwgKHNtb2tlY29kZWNfZW5jb2RlKSwKCSAgKHNtb2tlY29kZWNfcGFyc2VfaGVhZGVyKSwgKHNtb2tlY29kZWNfZGVjb2RlKToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOiAoZ3N0X2F2aV9tdXhfd3JpdGVfYXZpeF9pbmRleCk6CgkgICogZ3N0L2RlYnVnL2VmZW5jZS5jOiAoZ3N0X2ZlbmNlZF9idWZmZXJfYWxsb2MpOgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzogKGdzdF9pY3lkZW11eF90eXBlZmluZF9vcl9mb3J3YXJkKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKHJ0c3BfY29ubmVjdGlvbl9yZWFkKToKCSAgKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2NoYW5nZV9zdGF0ZSk6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5oOgoJICBGaXggYSBidW5jaCBvZiBwcm9ibGVtcyBkaXNjb3ZlcmVkIGJ5IHRoZSBGb3J0ZSBjb21waWxlciwgbW9zdGx5IHR5cGUKCSAgbWl4dXBzIGFuZCBwb2ludGVyIGFyaXRobWV0aWNzIHdpdGggdm9pZCBwb2ludGVycy4gRml4ZXMgIzM2MjYwMy4KCjIwMDYtMTAtMTIgMTk6MDI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvc3BlZXgvOiBNaXNjZWxsYW5lb3VzIGNsZWFuLXVwcywgYW1vbmcgb3RoZXIgdGhpbmdzOiBzcGVleGVuYyA9PiBlbmMgdG8gZW5oYW5jZSBjb2RlIHJlYWRhYmlsaXR5OyBjaGFuZ2Ugc3BlZXhlbmMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4LmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IChnc3Rfc3BlZXhfZW5jX2dldF9mb3JtYXRzKSwKCSAgKGdzdF9zcGVleF9lbmNfc2V0dXBfaW50ZXJmYWNlcyksIChnc3Rfc3BlZXhfZW5jX2Jhc2VfaW5pdCksCgkgIChnc3Rfc3BlZXhfZW5jX2NsYXNzX2luaXQpLCAoZ3N0X3NwZWV4X2VuY19maW5hbGl6ZSksCgkgIChnc3Rfc3BlZXhfZW5jX3Npbmtfc2V0Y2FwcyksIChnc3Rfc3BlZXhfZW5jX2NvbnZlcnRfc3JjKSwKCSAgKGdzdF9zcGVleF9lbmNfY29udmVydF9zaW5rKSwgKGdzdF9zcGVleF9lbmNfZ2V0X3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF9zcGVleF9lbmNfc3JjX3F1ZXJ5KSwgKGdzdF9zcGVleF9lbmNfc2lua19xdWVyeSksCgkgIChnc3Rfc3BlZXhfZW5jX2luaXQpLCAoZ3N0X3NwZWV4X2VuY19jcmVhdGVfbWV0YWRhdGFfYnVmZmVyKSwKCSAgKGdzdF9zcGVleF9lbmNfc2V0X2xhc3RfbXNnKSwgKGdzdF9zcGVleF9lbmNfc2V0dXApLAoJICAoZ3N0X3NwZWV4X2VuY19idWZmZXJfZnJvbV9kYXRhKSwgKGdzdF9zcGVleF9lbmNfcHVzaF9idWZmZXIpLAoJICAoZ3N0X3NwZWV4X2VuY19zZXRfaGVhZGVyX29uX2NhcHMpLCAoZ3N0X3NwZWV4X2VuY19zaW5rZXZlbnQpLAoJICAoZ3N0X3NwZWV4X2VuY19jaGFpbiksIChnc3Rfc3BlZXhfZW5jX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3BlZXhfZW5jX3NldF9wcm9wZXJ0eSksIChnc3Rfc3BlZXhfZW5jX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkgIE1pc2NlbGxhbmVvdXMgY2xlYW4tdXBzLCBhbW9uZyBvdGhlciB0aGluZ3M6IHNwZWV4ZW5jID0+IGVuYyB0bwoJICBlbmhhbmNlIGNvZGUgcmVhZGFiaWxpdHk7IGNoYW5nZSBzcGVleGVuYyA9PiBzcGVleF9lbmM7IGluIGNoYWluCgkgIGZ1bmN0aW9uIHVucmVmIGlucHV0IGJ1ZmZlciBpbiBjYXNlIG9mIGVycm9yOyB0YWtlIHJlZmVyZW5jZSBpbgoJICBldmVudCBmdW5jdGlvbjsgdXNlIGJvaWxlcnBsYXRlIG1hY3JvOyB1c2UgZ3N0X3BhZF9xdWVyeV9wZWVyXyoKCSAgY29udmVuaWVuY2UgZnVuY3Rpb25zLgoKMjAwNi0xMC0xMiAxODozNToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiBGaXggc29tZSBtZW0gbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4ZW5jX2ZpbmFsaXplKSwKCSAgKGdzdF9zcGVleGVuY19zZXRfbGFzdF9tc2cpLCAoZ3N0X3NwZWV4ZW5jX3NldHVwKSwKCSAgKGdzdF9zcGVleGVuY19zZXRfaGVhZGVyX29uX2NhcHMpOgoJICBGaXggc29tZSBtZW0gbGVha3MuCgoyMDA2LTEwLTExIDE2OjIxOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvVVJMUzogQWRkZWQgc29tZSBvdGhlciBVUkwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL1VSTFM6CgkgIEFkZGVkIHNvbWUgb3RoZXIgVVJMLgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2xvb3BfdWRwKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9yZXF1ZXN0KSwgKGdzdF9ydHNwc3JjX3NlbmQpLAoJICAoZ3N0X3J0c3BzcmNfb3BlbiksIChnc3RfcnRzcHNyY19wbGF5KSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBXb3JrIG9uIGZhbGxiYWNrIHRvIFRDUCBjb25uZWN0aW9uIHdoZW4gdGhlIFVEUCBzb2NrZXQgdGltZXMgb3V0LgoJICBIYW5kbGVyIHNlcnZlciByZXF1ZXN0cywganVzdCByZXBseSB3aXRoIE9LIGZvciBub3cuCgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuYzogKHJ0c3Bfc3RycmVzdWx0KToKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICBBZGRlZCBzb21lIG1vcmUgUmVhbCBleHRlbnNpb24gaGVhZGVycy4KCSAgKiBnc3QvcnRzcC9ydHNwdXJsLmM6IChydHNwX3VybF9wYXJzZSk6CgkgIEZpeCBwYXJzaW5nIG9mIHVybHMgd2l0aCBhICc6JyB0aGF0IGlzIG5vdCBwYXJ0IG9mIHRoZSBob3N0bmFtZTpwb3J0CgkgIHBhcnQgb2YgdGhlIHVybC4KCjIwMDYtMTAtMTEgMTM6NDk6MjYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZCBzb21lIGZvdXJjYyBmb3IgRFYgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICBBZGQgc29tZSBmb3VyY2MgZm9yIERWIGZvcm1hdC4KCjIwMDYtMTAtMTEgMTM6MjQ6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBBY3RpdmF0ZSBwYWQgYmVmb3JlIGFkZGluZyBpdCB0byB0aGUgYWxyZWFkeS1ydW5uaW5nIGVsZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzogKGdzdF90YWdfZGVtdXhfYWRkX3NyY3BhZCk6CgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6IChnc3RfaWN5ZGVtdXhfYWRkX3NyY3BhZCk6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfYWRkX3NyY3BhZCk6CgkgIEFjdGl2YXRlIHBhZCBiZWZvcmUgYWRkaW5nIGl0IHRvIHRoZSBhbHJlYWR5LXJ1bm5pbmcgZWxlbWVudC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pY3lkZW11eC5jOiAoaWN5ZGVtdXhfZm91bmRfcGFkKToKCSAgQWN0aXZhdGUgbmV3bHktY3JlYXRlZCBwYWQgdG9vLgoKMjAwNi0xMC0xMSAwODozNDoxNCArMDAwMCAgU2ViYXN0aWVuIENvdGUgPHNlYmFzNjQyQHlhaG9vLmNhPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuYzogRml4IHNvbWUgbGVha3MgaW4gY2FwcyBhbmQgdXJpcy4gRml4ZXMgIzM2MTI1Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDIgYXQgeWFob28gZG90IGNhPgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3VkcHNyY19maW5hbGl6ZSksIChnc3RfdWRwc3JjX2NyZWF0ZSksIChnc3RfdWRwc3JjX3NldF91cmkpLAoJICAoZ3N0X3VkcHNyY19zdGFydCk6CgkgIEZpeCBzb21lIGxlYWtzIGluIGNhcHMgYW5kIHVyaXMuIEZpeGVzICMzNjEyNTIuCgoyMDA2LTEwLTEwIDE4OjU0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBQcmludGYgZm9ybWF0IGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChleHRyYWN0X2luaXRpYWxfbGVuZ3RoX2FuZF9mb3VyY2MpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIpOgoJICBQcmludGYgZm9ybWF0IGZpeGVzLgoJICAqIHN5cy9kdmIvZ3N0ZHZic3JjLmM6CgkgIFVzZSAiX3N0ZGludC5oIi4KCjIwMDYtMTAtMTAgMDk6NTc6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFJlb3JnYW5pc2Ugc29tZSBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfaW5pdCksCgkgIChnc3RfcXRkZW11eF9wdXNoX2V2ZW50KSwgKGdzdF9xdGRlbXV4X2RvX3NlZWspLAoJICAoZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKSwgKGV4dHJhY3RfaW5pdGlhbF9sZW5ndGhfYW5kX2ZvdXJjYyksCgkgIChnc3RfcXRkZW11eF9sb29wX3N0YXRlX2hlYWRlciksIChnc3RfcXRkZW11eF9hY3RpdmF0ZV9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUpLCAoZ3N0X3F0ZGVtdXhfbG9vcCksCgkgIChnc3RfcXRkZW11eF9wb3N0X2J1ZmZlcmluZyksIChnc3RfcXRkZW11eF9jaGFpbiksCgkgIChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKSwgKHF0ZGVtdXhfcHJvY2Vzc19yZWRpcmVjdHMpLAoJICAocXRkZW11eF9wYXJzZV90cmVlKSwgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIFJlb3JnYW5pc2Ugc29tZSBzdHVmZi4KCSAgUGFyc2UgUlRTUCByZWRpcmVjdGlvbiBVUkxTLgoKMjAwNi0xMC0xMCAwODoyOTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9NYWtlZmlsZS5hbTogRml4IGNvcHknbidwYXN0ZS1vIChzcG90dGVkIGJ5IE1hcmsgTmF1d2VsYWVydHMsICMzNDE0ODkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvTWFrZWZpbGUuYW06CgkgIEZpeCBjb3B5J24ncGFzdGUtbyAoc3BvdHRlZCBieSBNYXJrIE5hdXdlbGFlcnRzLCAjMzQxNDg5KS4KCjIwMDYtMTAtMDkgMDc6MDE6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5Lio6IEZpeCBidWlsZCBhcyBwZXIgdGhlIHBhdGNoIGluICMzMzg4MTggY29tbWVudCAzNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5Lmg6CgkgIEZpeCBidWlsZCBhcyBwZXIgdGhlIHBhdGNoIGluICMzMzg4MTggY29tbWVudCAzNi4KCjIwMDYtMTAtMDggMjA6MDU6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJICBpbnNwZWN0IHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluc3BlY3QgdXBkYXRlcwoKMjAwNi0xMC0wNyAyMToxNTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogQWN0aXZhdGUgcGFkcyBiZWZvcmUgYWRkaW5nIHRoZW0gdG8gdGhlIHNvdXJjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpOgoJICBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBhZGRpbmcgdGhlbSB0byB0aGUgc291cmNlLgoKMjAwNi0xMC0wNyAxMTozNzo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IEFkZC91cGRhdGUgZG9jcyBzdHVmZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaW50ZXJmYWNlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHRzZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbW1zLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXBlZzJlbmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uZW9uLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcmVwbGF5Z2Fpbi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNvdW5kdG91Y2gueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGNkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zd2ZkZWMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2Nyb3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSAgQWRkL3VwZGF0ZSBkb2NzIHN0dWZmLgoKMjAwNi0xMC0wNiAxNzowMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2FkZF9wYWRzKSwgKGdzdF9kdmRlbXV4X2NoYWluKToKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfYWRkX3NyY3BhZCk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZy4KCjIwMDYtMTAtMDYgMTY6MDM6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOiAoZ3N0X211bHRpcGFydF9kZW11eF9pbml0KSwKCSAgKGdzdF9tdWx0aXBhcnRfZmluZF9wYWRfYnlfbWltZSk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZy4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOiAoZ3N0X3J0cF9tcDR2X2RlcGF5X2NsYXNzX2luaXQpOgoJICBCT0lMRVJQTEFURSBzZXRzIHBhcmVudF9jbGFzcyBmb3IgdXMuCgoyMDA2LTEwLTA2IDE1OjU2OjAxICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgQWRkIFJlcGxheUdhaW4gYW5hbHlzaXMgZWxlbWVudCAoIzM1NzA2OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuw6kgU3RhZGxlciAgPG1haWwgYXQgcmVuZXN0YWRsZXIgZGU+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L3JlcGxheWdhaW4vTWFrZWZpbGUuYW06CgkgICogZ3N0L3JlcGxheWdhaW4vZ3N0cmdhbmFseXNpcy5jOiAoZ3N0X3JnX2FuYWx5c2lzX2Jhc2VfaW5pdCksCgkgIChnc3RfcmdfYW5hbHlzaXNfY2xhc3NfaW5pdCksIChnc3RfcmdfYW5hbHlzaXNfaW5pdCksCgkgIChnc3RfcmdfYW5hbHlzaXNfc2V0X3Byb3BlcnR5KSwgKGdzdF9yZ19hbmFseXNpc19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3JnX2FuYWx5c2lzX3N0YXJ0KSwgKGdzdF9yZ19hbmFseXNpc19zZXRfY2FwcyksCgkgIChnc3RfcmdfYW5hbHlzaXNfdHJhbnNmb3JtX2lwKSwgKGdzdF9yZ19hbmFseXNpc19ldmVudCksCgkgIChnc3RfcmdfYW5hbHlzaXNfc3RvcCksIChnc3RfcmdfYW5hbHlzaXNfaGFuZGxlX3RhZ3MpLAoJICAoZ3N0X3JnX2FuYWx5c2lzX2hhbmRsZV9lb3MpLCAoZ3N0X3JnX2FuYWx5c2lzX3RyYWNrX3Jlc3VsdCksCgkgIChnc3RfcmdfYW5hbHlzaXNfYWxidW1fcmVzdWx0KSwgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcmVwbGF5Z2Fpbi9nc3RyZ2FuYWx5c2lzLmg6CgkgICogZ3N0L3JlcGxheWdhaW4vcmdhbmFseXNpcy5jOiAoeXVsZV9maWx0ZXIpLCAoYnV0dGVyX2ZpbHRlciksCgkgIChhcHBseV9maWx0ZXJzKSwgKHJlc2V0X2ZpbHRlcnMpLCAoYWNjdW11bGF0b3JfYWRkKSwKCSAgKGFjY3VtdWxhdG9yX2NsZWFyKSwgKGFjY3VtdWxhdG9yX3Jlc3VsdCksIChyZ19hbmFseXNpc19uZXcpLAoJICAocmdfYW5hbHlzaXNfc2V0X3NhbXBsZV9yYXRlKSwgKHJnX2FuYWx5c2lzX2Rlc3Ryb3kpLAoJICAocmdfYW5hbHlzaXNfYW5hbHl6ZV9tb25vX2Zsb2F0KSwKCSAgKHJnX2FuYWx5c2lzX2FuYWx5emVfc3RlcmVvX2Zsb2F0KSwKCSAgKHJnX2FuYWx5c2lzX2FuYWx5emVfbW9ub19pbnQxNiksCgkgIChyZ19hbmFseXNpc19hbmFseXplX3N0ZXJlb19pbnQxNiksIChyZ19hbmFseXNpc19hbmFseXplKSwKCSAgKHJnX2FuYWx5c2lzX3RyYWNrX3Jlc3VsdCksIChyZ19hbmFseXNpc19hbGJ1bV9yZXN1bHQpLAoJICAocmdfYW5hbHlzaXNfcmVzZXRfYWxidW0pLCAocmdfYW5hbHlzaXNfcmVzZXQpOgoJICAqIGdzdC9yZXBsYXlnYWluL3JnYW5hbHlzaXMuaDoKCSAgQWRkIFJlcGxheUdhaW4gYW5hbHlzaXMgZWxlbWVudCAoIzM1NzA2OSkuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9yZ2FuYWx5c2lzLmM6IChnZXRfZXhwZWN0ZWRfZ2FpbiksCgkgIChzZXR1cF9yZ2FuYWx5c2lzKSwgKGNsZWFudXBfcmdhbmFseXNpcyksIChzZXRfcGxheWluZ19zdGF0ZSksCgkgIChzZW5kX2Vvc19ldmVudCksIChzZW5kX3RhZ19ldmVudCksIChwb2xsX2VvcyksIChwb2xsX3RhZ3MpLAoJICAoZmFpbF91bmxlc3NfdHJhY2tfZ2FpbiksIChmYWlsX3VubGVzc190cmFja19wZWFrKSwKCSAgKGZhaWxfdW5sZXNzX2FsYnVtX2dhaW4pLCAoZmFpbF91bmxlc3NfYWxidW1fcGVhayksCgkgIChmYWlsX2lmX3RyYWNrX3RhZ3MpLCAoZmFpbF9pZl9hbGJ1bV90YWdzKSwKCSAgKGZhaWxfdW5sZXNzX251bV90cmFja3MpLCAodGVzdF9idWZmZXJfY29uc3RfZmxvYXRfbW9ubyksCgkgICh0ZXN0X2J1ZmZlcl9jb25zdF9mbG9hdF9zdGVyZW8pLCAodGVzdF9idWZmZXJfY29uc3RfaW50MTZfbW9ubyksCgkgICh0ZXN0X2J1ZmZlcl9jb25zdF9pbnQxNl9zdGVyZW8pLCAodGVzdF9idWZmZXJfc3F1YXJlX2Zsb2F0X21vbm8pLAoJICAodGVzdF9idWZmZXJfc3F1YXJlX2Zsb2F0X3N0ZXJlbyksICh0ZXN0X2J1ZmZlcl9zcXVhcmVfaW50MTZfbW9ubyksCgkgICh0ZXN0X2J1ZmZlcl9zcXVhcmVfaW50MTZfc3RlcmVvKSwgKHB1c2hfYnVmZmVyKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHJnYW5hbHlzaXNfc3VpdGUpLCAobWFpbik6CgkgIFVuaXQgdGVzdHMgZm9yIHRoZSBuZXcgcmVwbGF5Z2FpbiBlbGVtZW50LgoKMjAwNi0xMC0wNiAxNTo0OTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9mYWFkL2dzdGZhYWQuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZhYWQvZ3N0ZmFhZC5jOiAoZ3N0X2ZhYWRfc2V0Y2FwcyksIChnc3RfZmFhZF9jaGFpbiksCgkgIChnc3RfZmFhZF9jbG9zZV9kZWNvZGVyKToKCSAgU29tZSBjbGVhbnVwcy4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgRG9uJ3QgZXZlciBpZ25vcmUgdW5saW5rZWQsIHdlJ3JlIG5vdCBhIGRlbXV4ZXIuCgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfYWRkX3N0cmVhbSk6CgkgIEFjdGl2YXRlIHBhZCBiZWZvcmUgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50LgoKMjAwNi0xMC0wNiAxMjo1NTo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogUmV3b3JrIGhvdyB0aGUgdHJhbnNwb3J0IHN0cmluZyBpcyBjb25zdHJ1Y3RlZCwgdHJ5IHRvIHNoYXJlIGNoYW5uZWxzIGFuZCB1ZHAgcG9ydHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwX3Byb3RvX2dldF90eXBlKSwKCSAgKGdzdF9ydHNwc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwgKGdzdF9ydHNwc3JjX21lZGlhX3RvX2NhcHMpLAoJICAoZ3N0X3J0c3BzcmNfYWxsb2NfdWRwX3BvcnRzKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwgKGZpbmRfc3RyZWFtX2J5X2NoYW5uZWwpLAoJICAoZ3N0X3J0c3BzcmNfcHVzaF9ldmVudCksIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwKCSAgKGdzdF9ydHNwc3JjX2NyZWF0ZV90cmFuc3BvcnRzX3N0cmluZyksCgkgIChnc3RfcnRzcHNyY19jb25maWd1cmVfdHJhbnNwb3J0cyksIChnc3RfcnRzcHNyY19vcGVuKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBSZXdvcmsgaG93IHRoZSB0cmFuc3BvcnQgc3RyaW5nIGlzIGNvbnN0cnVjdGVkLCB0cnkgdG8gc2hhcmUgY2hhbm5lbHMKCSAgYW5kIHVkcCBwb3J0cy4KCSAgTWFrZSBtb3N0IG9mIHRoZSBzdHVmZiBsZXNzIGRlcGVuZGFudCBvbiBSVFAgYXMgd2UgYXJlIGFsc28gZ29pbmcgdG8gdXNlCgkgIGl0IGZvciBSRFQuCgkgIEFkZCBzdXBwb3J0IGZvciB0cmFuc3BvcnQgc3BlY2lmaWMgc2Vzc2lvbiBtYW5hZ2Vycy4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2ZsdXNoKToKCSAgSW1wbGVtZW50IF9mbHVzaCgpLgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmM6IChydHNwX3N0cnJlc3VsdCk6CgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuaDoKCSAgQWRkIGdlbmVyaWMgZXJyb3IgcmV0dXJuIGNvZGUuCgkgICogZ3N0L3J0c3AvcnRzcGV4dC5oOgoJICBBZGQgc3VwcG9ydCBmb3IgcGx1Z2dhYmxlIHRyYW5wb3J0IHN0cmluZ3MuCgkgICogZ3N0L3J0c3AvcnRzcGV4dHdtcy5jOiAocnRzcF9leHRfd21zX2JlZm9yZV9zZW5kKSwKCSAgKHJ0c3BfZXh0X3dtc19hZnRlcl9zZW5kKSwgKHJ0c3BfZXh0X3dtc19wYXJzZV9zZHApLAoJICAocnRzcF9leHRfd21zX2dldF9jb250ZXh0KToKCSAgRGV0ZWN0IFdNU2VydmVyIGFuZCBhY3RpdmF0ZSB0aGUgZXh0ZW5zaW9uLgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzogKHJ0c3BfdHJhbnNwb3J0X2dldF9taW1lKSwKCSAgKHJ0c3BfdHJhbnNwb3J0X2dldF9tYW5hZ2VyKSwgKHJ0c3BfdHJhbnNwb3J0X3BhcnNlKToKCSAgKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0Lmg6CgkgIEFkZGVkIG1ldGhvZHMgdG8gZ2V0IG1pbWUvbWFuYWdlciBmb3IgY2VydGFpbiB0cmFuc3BvcnRzLgoKMjAwNi0xMC0wNiAxMTozMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiBGaXggbWVtIGxlYWssIGF2b2lkIHVubmVjZXNzYXJ5IG1lbWNweS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgRml4IG1lbSBsZWFrLCBhdm9pZCB1bm5lY2Vzc2FyeSBtZW1jcHkuCgoyMDA2LTEwLTA2IDAyOjI5OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogUmVtb3ZlZCBjcnVmdCBjb2RlIHRoYXQgd2FzIGp1c3QgY29tbWVudGVkIG91dC4gUmVtb3ZlZCBzb21lIG9ic29sZXRlIGRlYnVnIGxvZ3Mgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1faW5pdCksCgkgIChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgUmVtb3ZlZCBjcnVmdCBjb2RlIHRoYXQgd2FzIGp1c3QgY29tbWVudGVkIG91dC4gUmVtb3ZlZCBzb21lIG9ic29sZXRlCgkgIGRlYnVnIGxvZ3Mgc3RhdGVtZW50cy4KCjIwMDYtMTAtMDUgMTg6MTQ6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBbm90aGVyIGJhdGNoIG9mIHByaW50ZiBmb3JtYXQgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdHMvZ3N0ZHRzZGVjLmM6IChnc3RfZHRzZGVjX2NoYWluKToKCSAgKiBleHQvbXVzaWNicmFpbnovZ3N0dHJtLmM6IChnc3RfdHJtX3NldGNhcHMpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19zaW5rX3NldF9jYXBzKToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9jaGFpbiksIChxdGRlbXV4X3BhcnNlKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgQW5vdGhlciBiYXRjaCBvZiBwcmludGYgZm9ybWF0IGZpeGVzLgoKMjAwNi0xMC0wNSAxNjozNzozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFByaW50ZiBmb3JtYXQgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJICAoZ3N0X2NhaXJvX3RpbWVfb3ZlcmxheV91cGRhdGVfZm9udF9oZWlnaHQpOgoJICAqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6IChnc3RfcGl4YnVmc2NhbGVfdHJhbnNmb3JtX2NhcHMpOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19wYXJzZV9pbWFnZV9kYXRhKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6IChnc3RfanBlZ2VuY19jaGFpbik6CgkgICogZXh0L2pwZWcvZ3N0c21va2VkZWMuYzogKGdzdF9zbW9rZWRlY19jaGFpbik6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19jaGFpbik6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKHVzZXJfZW5kcm93X2NhbGxiYWNrKToKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfcGFyc2VfaGVhZGVyKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1cGVyaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdWJpbmRleCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKToKCSAgKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOiAoZ3N0X2N1dHRlcl9jaGFpbik6CgkgICogZ3N0L2RlYnVnL2VmZW5jZS5jOiAoZ3N0X2VmZW5jZV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2ZlbmNlZF9idWZmZXJfY29weSk6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3N0cmVhbSk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9zdGFydCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19oYW5kbGVfbWVzc2FnZSk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpOgoJICAqIHN5cy94aW1hZ2UveGltYWdldXRpbC5jOiAoeGltYWdldXRpbF94Y29udGV4dF9nZXQpOgoJICBQcmludGYgZm9ybWF0IGZpeGVzLgoKMjAwNi0xMC0wNCAyMjozNzowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLio6IEhhbmRsZSBwYWNrZWQgWVVWIGZvcm1hdHMgKFVZVlksIFlVWTIsIFlVWVYpIHNlcGFyYXRlbHk7IGFsc28sIGZpeCBwYXNzdGhyb3VnaCBtb2RlOyBsYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOiAoZ3N0X3ZpZGVvX2Nyb3BfY2xhc3NfaW5pdCksCgkgIChnc3RfdmlkZW9fY3JvcF9pbml0KSwKCSAgKGdzdF92aWRlb19jcm9wX2dldF9pbWFnZV9kZXRhaWxzX2Zyb21fY2FwcyksCgkgIChnc3RfdmlkZW9fY3JvcF90cmFuc2Zvcm1fcGFja2VkX2NvbXBsZXgpLAoJICAoZ3N0X3ZpZGVvX2Nyb3BfdHJhbnNmb3JtX3BhY2tlZF9zaW1wbGUpLAoJICAoZ3N0X3ZpZGVvX2Nyb3BfdHJhbnNmb3JtKSwgKGdzdF92aWRlb19jcm9wX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF92aWRlb19jcm9wX3NldF9jYXBzKSwKCSAgKGdzdF92aWRlb2Nyb3BfY2xlYXJfbmVnb3RpYXRlZF9jYXBzX2xvY2tlZCksCgkgIChnc3RfdmlkZW9fY3JvcF9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmg6CgkgIEhhbmRsZSBwYWNrZWQgWVVWIGZvcm1hdHMgKFVZVlksIFlVWTIsIFlVWVYpIHNlcGFyYXRlbHk7IGFsc28sIGZpeAoJICBwYXNzdGhyb3VnaCBtb2RlOyBsYXN0bHksIGNsZWFyIG5lZ290aWF0ZWQgYmFzZXRyYW5zZm9ybSBjYXBzIHdoZW4KCSAgdGhlIGNyb3BwaW5nIGNoYW5nZXMgaW4gb3JkZXIgdG8gZm9yY2UgcmVuZWdvdGlhdGlvbi4KCjIwMDYtMTAtMDQgMjA6MDU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9pY2xlcy86IFZpc3VhbCB0ZXN0IGZvciB2aWRlb2Nyb3AsIHNob3dzIHRoYXQgcGFja2VkIHl1diBkb2Vzbid0IHdvcmsgcmlnaHQgeWV0LiAtLXdpdGgtZmZtcGVnY29sb3JzcGFjZSBvcHRpb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvaWNsZXMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9pY2xlcy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9pY2xlcy92aWRlb2Nyb3AtdGVzdC5jOiAocXVpdF9tYWlubG9vcCksICh0aWNrX2NiKSwKCSAgKHRlc3Rfd2l0aF9jYXBzKSwgKHZpZGVvX2Nyb3BfZ2V0X3Rlc3RfY2FwcyksIChtYWluKToKCSAgVmlzdWFsIHRlc3QgZm9yIHZpZGVvY3JvcCwgc2hvd3MgdGhhdCBwYWNrZWQgeXV2IGRvZXNuJ3Qgd29yayByaWdodAoJICB5ZXQuIC0td2l0aC1mZm1wZWdjb2xvcnNwYWNlIG9wdGlvbiBkb2Vzbid0IHdvcmsgeWV0IGZvciB1bmtub3duCgkgIHJlYXNvbnMgKGFub3RoZXIgYmFzZXRyYW5zZm9ybSBpc3N1ZT8pCgoyMDA2LTEwLTA0IDE3OjUzOjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvTWFrZWZpbGUuYW06IERpc3QgbmV3IC5oIGZpbGUgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgRGlzdCBuZXcgLmggZmlsZSB0b28uCgoyMDA2LTEwLTA0IDE3OjI0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvOiBGYWN0b3Igb3V0IGV4dGVuc2lvbiBpbiBzZXBhcmF0ZSBtb2R1bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOiAoZ3N0X3J0cGRlY19nZXRjYXBzKSwKCSAgKGdzdF9ydHBkZWNfY2hhaW5fcnRwKSwgKGdzdF9ydHBkZWNfY2hhaW5fcnRjcCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfaW5pdCksCgkgIChnc3RfcnRzcHNyY19maW5hbGl6ZSksIChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cG1hcCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksIChnc3RfcnRzcHNyY19zZW5kKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX21ldGhvZHMpLCAoZ3N0X3J0c3BzcmNfb3BlbiksCgkgIChnc3RfcnRzcHNyY19wbGF5KSwgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuYzogKHJ0c3Bfc3RycmVzdWx0KToKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICAqIGdzdC9ydHNwL3J0c3BleHQuaDoKCSAgKiBnc3QvcnRzcC9ydHNwZXh0d21zLmM6IChydHNwX2V4dF93bXNfcGFyc2Vfc2RwKSwKCSAgKHJ0c3BfZXh0X3dtc19nZXRfY29udGV4dCk6CgkgICogZ3N0L3J0c3AvcnRzcGV4dHdtcy5oOgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzogKHJ0c3BfdHJhbnNwb3J0X2luaXQpLCAocGFyc2VfbW9kZSksCgkgIChydHNwX3RyYW5zcG9ydF9wYXJzZSk6CgkgICogZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5oOgoJICBGYWN0b3Igb3V0IGV4dGVuc2lvbiBpbiBzZXBhcmF0ZSBtb2R1bGUuCgkgIEZpeCBnZXRjYXBzIHRvIGZpbHRlciBhZ2FpbnN0IHRoZSBwYWR0ZW1wbGF0ZS4KCSAgVXNlIENvbnRlbnQtQmFzZSBpZiB0aGUgc2VydmVyIGdpdmVzIG9uZS4KCSAgUmV3b3JrIHRoZSB0cmFuc3BvcnQgcGFyc2luZyBhIGJpdCBmb3IgZnV0dXJlIGV4dGVuc2lvbnMuCgkgIEFkZGVkIHNvbWUgUmVhbCBIZWFkZXIgZmllbGQgZGVmaW5pdGlvbnMuCgoyMDA2LTEwLTA0IDEwOjI5OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcGx1Z2lucy86IGFkZGVkIHY0bDIgc3R1YnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBhZGRlZCB2NGwyIHN0dWJzCgkgICogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBhZGQgdjRsMgoKMjAwNi0xMC0wNCAxMDoyNDo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzogRXh0cmFjdCBkaXNjL2FsYnVtL21lZGl1bSBudW1iZXIgYW5kIGNvdW50IGFuZCB0cnkgaGFyZGVyIHRvIGV4dHJhY3QgdHJhY2sgbnVtYmVyL2NvdW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4LmM6IChhcGVfZGVtdXhfcGFyc2VfdGFncyk6CgkgIEV4dHJhY3QgZGlzYy9hbGJ1bS9tZWRpdW0gbnVtYmVyIGFuZCBjb3VudCBhbmQgdHJ5IGhhcmRlcgoJICB0byBleHRyYWN0IHRyYWNrIG51bWJlci9jb3VudC4KCjIwMDYtMTAtMDMgMTg6MzY6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaWNsZXMvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTEwLTAzIDE4OjM1OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICBhZGQgaWNsZSBmb3IgdjRsMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGljbGUgZm9yIHY0bDIKCjIwMDYtMTAtMDMgMTg6MTU6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGJ1aWxkIHN0dWZmIGZvciB2NGwyLCBuZWVkcyAtLWVuYWJsZS1leHBlcmltZW50YWwgdW50aWwgdGhlIGxhc3QgYml0cyBhcmUgcmVzb2x2ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHN5cy9NYWtlZmlsZS5hbToKCSAgYWRkIGJ1aWxkIHN0dWZmIGZvciB2NGwyLCBuZWVkcyAtLWVuYWJsZS1leHBlcmltZW50YWwgdW50aWwKCSAgdGhlIGxhc3QgYml0cyBhcmUgcmVzb2x2ZWQKCjIwMDYtMTAtMDMgMTM6NDc6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICBjb21tZW50IG91dCB0aGUgbm90aWZpZXMgZm9yIHJlbW92ZWQgcHJvcGVydGllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWVudCBvdXQgdGhlIG5vdGlmaWVzIGZvciByZW1vdmVkIHByb3BlcnRpZXMKCjIwMDYtMTAtMDMgMTM6MzA6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOiBjb21tZW50IG91dCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBhbHJlYWR5IHBhcnQgb2YgdGhlIHR1bmVyIGludGVyZmFjZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICAoZ3N0X3Y0bDJfb2JqZWN0X2luc3RhbGxfcHJvcGVydGllc19oZWxwZXIpOgoJICBjb21tZW50IG91dCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBhbHJlYWR5IHBhcnQgb2YgdGhlIHR1bmVyCgkgIGludGVyZmFjZS4KCjIwMDYtMTAtMDMgMTM6MTg6NTkgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IEltcHJvdmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDMgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIEltcHJvdmUgZG9jcy4KCjIwMDYtMTAtMDIgMTY6MTQ6MDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgc3RvcCByZW1vdmluZyBnZGtwaXhidWYgcGx1Z2luIGZyb20gcGFja2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3RvcCByZW1vdmluZyBnZGtwaXhidWYgcGx1Z2luIGZyb20gcGFja2FnZQoKMjAwNi0wOS0yOSAxNTozOTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEaXNhYmxlIGF1dG9kZXRlY3QgdGVzdCB0ZW1wb3JhcmlseSwgc28gdGhhdCB0aGUgYnVpbGQgYm90cyB1cGRhdGUgLWJhZCBhbmQgdGhlIHJhbmtzIG9mIHVuci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgRGlzYWJsZSBhdXRvZGV0ZWN0IHRlc3QgdGVtcG9yYXJpbHksIHNvIHRoYXQgdGhlIGJ1aWxkIGJvdHMKCSAgdXBkYXRlIC1iYWQgYW5kIHRoZSByYW5rcyBvZiB1bnJlbGlhYmxlIHZpZGVvIHNpbmtzIGluIHRoZXJlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1dG9kZXRlY3QuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgU2tpcCB0ZXN0IGlmIG5vIHVzYWJsZSB2aWRlb3NpbmsgaXMgZm91bmQuCgoyMDA2LTA5LTI5IDE1OjM3OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvVVJMUzogQWRkIHNvbWUgbW9yZSBVUkxzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9VUkxTOgoJICBBZGQgc29tZSBtb3JlIFVSTHMuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRzcHNyY19pbml0KSwgKGdzdF9ydHNwc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF9ydHNwc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfcnRzcHNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX3NldHVwX3J0cCksIChnc3RfcnRzcHNyY19sb29wX2ludGVybGVhdmVkKSwKCSAgKGdzdF9ydHNwc3JjX2xvb3BfdWRwKSwgKGdzdF9ydHNwc3JjX2xvb3Bfc2VuZF9jbWQpLAoJICAoZ3N0X3J0c3BzcmNfbG9vcCksIChnc3RfcnRzcHNyY19zZW5kKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX21ldGhvZHMpLCAoZ3N0X3J0c3BzcmNfb3BlbiksCgkgIChnc3RfcnRzcHNyY19jbG9zZSksIChnc3RfcnRzcHNyY19wbGF5KSwgKGdzdF9ydHNwc3JjX3BhdXNlKSwKCSAgKGdzdF9ydHNwc3JjX2hhbmRsZV9tZXNzYWdlKSwgKGdzdF9ydHNwc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBBZGQgdGltZW91dCBwcm9wZXJ0eSB0byBjb250cm9sIFVEUCB0aW1lb3V0cy4KCSAgRml4IGVycm9yIG1lc3NhZ2VzLgoJICBBbHNvIHN0YXJ0IGEgbG9vcCBmdW5jdGlvbiB3aGVuIG9wZXJhdGluZyBpbiBVRFAgbW9kZSBzbyB0aGF0IHdlIGNhbgoJICBkbyBzb21lIG1vcmUgc3R1ZmYgYXN5bmMuCgkgIEhhbmRsZSBlbGVtZW50IG1lc3NhZ2VzIGZyb20gdWRwc3JjIHRvIGRldGVjdCB0aW1lb3V0cy4gSWYgYSB0aW1lb3V0CgkgIGhhcHBlbnMgd2UgY3VycmVudGx5IGdlbmVyYXRlIGFuIGVycm9yLgoJICBBUEk6IHJ0c3BzcmM6OnRpbWVvdXQgcHJvcGVydHkuCgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfdWRwc3JjX2NyZWF0ZSk6CgkgIFJlYWxseSBpbXBsZW1lbnQgdGhlIHRpbWVvdXQgaW4gbWljcm9zZWNvbmRzIGFuZCBub3QgbWlsbGlzZWNvbmRzLgoKMjAwNi0wOS0yOSAxMTowOTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0dWRwc3JjLio6IEFkZGVkIHByb3BlcnR5IHRvIHBvc3QgYSBtZXNzYWdlIG9uIHRpbWVvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3VkcHNyY19pbml0KSwKCSAgKGdzdF91ZHBzcmNfY3JlYXRlKSwgKGdzdF91ZHBzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF91ZHBzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF91ZHBzcmNfdW5sb2NrKSwgKGdzdF91ZHBzcmNfc3RvcCk6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgQWRkZWQgcHJvcGVydHkgdG8gcG9zdCBhIG1lc3NhZ2Ugb24gdGltZW91dC4KCSAgVXBkYXRlZCBkb2NzLgoJICBXaGVuIHJlc3RhcnRpbmcgdGhlIHNlbGVjdCwgaW5pdGlhbGl6ZSB0aGUgZmRzZXRzIGFnYWluLgoJICBJbml0IGNvbnRyb2wgc29ja2V0cyBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgY2xvc2UgYSByYW5kb20gc29ja2V0LgoJICBBUEk6IEdzdFVEUFNyYzo6dGltZW91dCBwcm9wZXJ0eQoKMjAwNi0wOS0yOSAwODoxNTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogRml4IGZsYWcgcmVnaXN0cmF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcF9wcm90b19nZXRfdHlwZSk6CgkgIEZpeCBmbGFnIHJlZ2lzdHJhdGlvbi4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX3JlYWQpOgoJICBSZWFkaW5nIDAgYWxzbyBtZWFucyAnbm8gbW9yZSBjb21tYW5kcycKCjIwMDYtMDktMjkgMDg6MDk6MjQgKzAwMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBGaXggcG9zc2libGUgaW5maW5pdGUgbG9vcCB3aGVuIHNodXR0aW5nIGRvd24sIGEgcmVhZCBjYW4gYWxzbyByZXR1cm4gMCB0byBpbmRpY2F0ZSBubyBtb3JlIG1lc3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDAgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jcmVhdGUpOgoJICBGaXggcG9zc2libGUgaW5maW5pdGUgbG9vcCB3aGVuIHNodXR0aW5nIGRvd24sIGEgcmVhZCBjYW4gYWxzbyByZXR1cm4KCSAgMCB0byBpbmRpY2F0ZSBubyBtb3JlIG1lc3NhZ2VzIGFyZSBhdmFpbGFibGUuIEZpeGVzICMzNTgxNTYuCgoyMDA2LTA5LTI4IDE3OjA4OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgc3lzL3Y0bDIvOiBGcmFtZXJhdGUgY2FuIGJlIDAvMSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2dldF9hbGxfY2FwcyksCgkgIChnc3RfdjRsMnNyY19nZXRfY2Fwcyk6CgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZmlsbF9saXN0cyk6CgkgIEZyYW1lcmF0ZSBjYW4gYmUgMC8xIHRvby4KCSAgSW5pdCBmcmFtZXJhdGUgdG8gMC8xIGJlZm9yZSBxdWVyeWluZyBpdCBzbyB0aGF0IHdlIGNhbiBkZXRlY3QKCSAgZGV2aWNlcyB0aGF0IGRvbid0IGtub3cgYWJvdXQgYSBmcmFtZXJhdGUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA2LTA5LTI4IDE0OjMxOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgc3VwcG9ydCBmb3IgJ3l2MTInIGZvdXJjYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF92aWRlb19jYXBzKToKCSAgQWRkIHN1cHBvcnQgZm9yICd5djEyJyBmb3VyY2MuCgoyMDA2LTA5LTI3IDE3OjQ3OjU3ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkgIFJlbW92ZWQgc2V0LXVuZGVmLWZwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZWQgc2V0LXVuZGVmLWZwcy4KCjIwMDYtMDktMjcgMTc6MDQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvdjRsMi86IFJlbmFtZWQgc29tZSBwcm9wZXJ0aWVzIHRvIG1hdGNoIHRoZSB0dW5lciBpbnRlcmZhY2UgbmFtaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIChnc3RfdjRsMl9vYmplY3RfaW5zdGFsbF9wcm9wZXJ0aWVzX2hlbHBlciksIChnc3RfdjRsMl9vYmplY3RfbmV3KSwKCSAgKGdzdF92NGwyX29iamVjdF9zZXRfcHJvcGVydHlfaGVscGVyKSwKCSAgKGdzdF92NGwyX29iamVjdF9nZXRfcHJvcGVydHlfaGVscGVyKSwgKGdzdF92NGwyX3NldF9kZWZhdWx0cyk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Y0bDJzcmNfY3JlYXRlKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzogKGdzdF92NGwyX3R1bmVyX2NvbnRhaW5zX2NoYW5uZWwpLAoJICAoZ3N0X3Y0bDJfdHVuZXJfbGlzdF9jaGFubmVscyksCgkgIChnc3RfdjRsMl90dW5lcl9zZXRfY2hhbm5lbF9hbmRfbm90aWZ5KSwKCSAgKGdzdF92NGwyX3R1bmVyX2dldF9jaGFubmVsKSwgKGdzdF92NGwyX3R1bmVyX2NvbnRhaW5zX25vcm0pLAoJICAoZ3N0X3Y0bDJfdHVuZXJfbGlzdF9ub3JtcyksIChnc3RfdjRsMl90dW5lcl9zZXRfbm9ybV9hbmRfbm90aWZ5KSwKCSAgKGdzdF92NGwyX3R1bmVyX2dldF9ub3JtKToKCSAgKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6IChnc3RfdjRsMl9nZXRfY2FwYWJpbGl0aWVzKSwKCSAgKGdzdF92NGwyX2ZpbGxfbGlzdHMpLCAoZ3N0X3Y0bDJfZW1wdHlfbGlzdHMpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX2dldF9mcHMpOgoJICBSZW5hbWVkIHNvbWUgcHJvcGVydGllcyB0byBtYXRjaCB0aGUgdHVuZXIgaW50ZXJmYWNlIG5hbWluZy4KCjIwMDYtMDktMjcgMTY6MTQ6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOiAoZ3N0X3Y0bDJfb2JqZWN0X3NldF9wcm9wZXJ0eV9oZWxwZXIpLAoJICAoZ3N0X3Y0bDJfc2V0X2RlZmF1bHRzKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IChnc3RfdjRsMnNyY19nZXRfcmVhZCksCgkgIChnc3RfdjRsMnNyY19jcmVhdGUpOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5jOiAoZ3N0X3Y0bDJfeG92ZXJsYXlfb3Blbik6CgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZ2V0X2NhcGFiaWxpdGllcyksCgkgIChnc3RfdjRsMl9maWxsX2xpc3RzKSwgKGdzdF92NGwyX29wZW4pLCAoZ3N0X3Y0bDJfc2V0X25vcm0pLAoJICAoZ3N0X3Y0bDJfZ2V0X2ZyZXF1ZW5jeSksIChnc3RfdjRsMl9zZXRfZnJlcXVlbmN5KSwKCSAgKGdzdF92NGwyX3NpZ25hbF9zdHJlbmd0aCksIChnc3RfdjRsMl9nZXRfYXR0cmlidXRlKSwKCSAgKGdzdF92NGwyX3NldF9hdHRyaWJ1dGUpLCAoZ3N0X3Y0bDJfZ2V0X2lucHV0KSwKCSAgKGdzdF92NGwyX3NldF9pbnB1dCk6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJzcmNfZmlsbF9mb3JtYXRfbGlzdCksCgkgIChnc3RfdjRsMnNyY19ncmFiX2ZyYW1lKSwgKGdzdF92NGwyc3JjX2dldF9jYXB0dXJlKSwKCSAgKGdzdF92NGwyc3JjX3NldF9jYXB0dXJlKSwgKGdzdF92NGwyc3JjX2NhcHR1cmVfaW5pdCksCgkgIChnc3RfdjRsMnNyY19jYXB0dXJlX3N0YXJ0KSwgKGdzdF92NGwyc3JjX2NhcHR1cmVfc3RvcCksCgkgIChnc3RfdjRsMnNyY19idWZmZXJfbmV3KToKCSAgKiB0ZXN0cy9pY2xlcy92NGwyc3JjLXRlc3QuYzogKG15X2J1c19jYWxsYmFjayksIChtYWluKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIEZpeCBlcnJvciBtZXNzYWdlcy4KCSAgVXNlIGxvY2tzIHdoZW4gZ2V0dGluZyB0aW1lc3RhbXBzLgoJICBGaXggbGVha3MgaW4gdGVzdC4KCSAgQWRkIGxpY2Vuc2luZyBoZWFkZXIgdG8gdGVzdHMuCgoyMDA2LTA5LTI3IDE1OjE0OjA3ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHRlc3RzL2ljbGVzL3Y0bDJzcmMtdGVzdC5jOgoJICBTb21lIGNsZWFudXBzIGFuZCBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNvbWUgY2xlYW51cHMgYW5kIGNvbW1lbnRzLgoKMjAwNi0wOS0yNyAxMzo0MTozNSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBhZGQgYXVkaW9meCBwbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhdWRpb2Z4IHBsdWdpbgoKMjAwNi0wOS0yNiAxNDoxNzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IEFkZCB2NGwyIHBsdWdpbiB0byB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgQWRkIHY0bDIgcGx1Z2luIHRvIHRoZSBkb2NzLgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2dldF9yZWFkKSwKCSAgKGdzdF92NGwyc3JjX2dldF9tbWFwKSwgKGdzdF92NGwyc3JjX2NyZWF0ZSk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ2aWRvcmllbnQuYzoKCSAgRml4IGRvY3MuCgkgIFJlbW92ZSBzb21lIG1vcmUgZXh0ZXJucy4KCjIwMDYtMDktMjYgMTM6MTg6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvdjRsMi9NYWtlZmlsZS5hbTogRml4IG1ha2VmaWxlLCBsaXN0IGxpYnMgaW4gc3RhY2sgb3JkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL01ha2VmaWxlLmFtOgoJICBGaXggbWFrZWZpbGUsIGxpc3QgbGlicyBpbiBzdGFjayBvcmRlci4KCSAgKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzogKGdzdF92NGwyX2RldmljZV9nZXRfdHlwZSksCgkgIChnc3RfdjRsMl9vYmplY3RfaW5zdGFsbF9wcm9wZXJ0aWVzX2hlbHBlcik6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2dldF9yZWFkKSwKCSAgKGdzdF92NGwyc3JjX2dldF9tbWFwKSwgKGdzdF92NGwyc3JjX2NyZWF0ZSk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ2aWRvcmllbnQuaDoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuaDoKCSAgKiBzeXMvdjRsMi92NGwyX2NhbGxzLmg6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJICBGaXggY29kaW5nIHN0eWxlOgoJICAtIFJlbW92ZSBleHRlcm4gZnJvbSBmdW5jdGlvbnMuCgkgIC0gRml4IGhlYWRlciBpbmRlbnRhdGlvbi4KCSAgRml4IEZsYWdzLCBhZGQgZGVmYXVsdHMgZm9yIHByb3BlcnRpZXMuCgkgIFJlbW92ZSB1bnVzZWQgZW51bXMuCgkgIEZpeCBUT09fTEFaWSBpbiBlcnJvciBtZXNzYWdlcy4KCjIwMDYtMDktMjYgMTE6MDY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvdjRsMi86IEZpeCBwYXNzIGF0IGNvZGUgY2xlYW51cHMsIG1vdmUgZXJyb3JzIGNhc2VzIG91dCBvZiB0aGUgbm9ybWFsIGZsb3cgZm9yIGFkZGl0aW9uYWwgY29kZSBjbGFyaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6IChnc3RfdjRsMl9jbGFzc19wcm9iZV9kZXZpY2VzKSwKCSAgKGdzdF92NGwyX3Byb2JlX25lZWRzX3Byb2JlKSwKCSAgKGdzdF92NGwyX29iamVjdF9pbnN0YWxsX3Byb3BlcnRpZXNfaGVscGVyKSwgKGdzdF92NGwyX29iamVjdF9uZXcpLAoJICAoZ3N0X3Y0bDJfb2JqZWN0X2Rlc3Ryb3kpLCAoZ3N0X3Y0bDJfb2JqZWN0X3NldF9wcm9wZXJ0eV9oZWxwZXIpLAoJICAoZ3N0X3Y0bDJfb2JqZWN0X2dldF9wcm9wZXJ0eV9oZWxwZXIpLCAoZ3N0X3Y0bDJfc2V0X2RlZmF1bHRzKSwKCSAgKGdzdF92NGwyX29iamVjdF9zdGFydCksIChnc3RfdjRsMl9vYmplY3Rfc3RvcCk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogKGdzdF92NGwyc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Y0bDJzcmNfaW5pdCksIChnc3RfdjRsMnNyY19kaXNwb3NlKSwKCSAgKGdzdF92NGwyc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfdjRsMnNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3Y0bDJzcmNfZml4YXRlKSwgKGdzdF92NGwyc3JjX2dldF9jYXBzKSwKCSAgKGdzdF92NGwyc3JjX3NldF9jYXBzKSwgKGdzdF92NGwyc3JjX2dldF9yZWFkKSwKCSAgKGdzdF92NGwyc3JjX2dldF9tbWFwKSwgKGdzdF92NGwyc3JjX2NyZWF0ZSk6CgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZ2V0X2NhcGFiaWxpdGllcyksCgkgIChnc3RfdjRsMl9vcGVuKSwgKGdzdF92NGwyX2Nsb3NlKSwgKGdzdF92NGwyX2dldF9ub3JtKSwKCSAgKGdzdF92NGwyX3NldF9ub3JtKSwgKGdzdF92NGwyX2dldF9mcmVxdWVuY3kpLAoJICAoZ3N0X3Y0bDJfc2V0X2ZyZXF1ZW5jeSksIChnc3RfdjRsMl9zaWduYWxfc3RyZW5ndGgpLAoJICAoZ3N0X3Y0bDJfZ2V0X2F0dHJpYnV0ZSksIChnc3RfdjRsMl9zZXRfYXR0cmlidXRlKSwKCSAgKGdzdF92NGwyX2dldF9pbnB1dCksIChnc3RfdjRsMl9zZXRfaW5wdXQpOgoJICAqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogKGdzdF92NGwyc3JjX2ZpbGxfZm9ybWF0X2xpc3QpLAoJICAoZ3N0X3Y0bDJzcmNfcXVldWVfZnJhbWUpLCAoZ3N0X3Y0bDJzcmNfZ3JhYl9mcmFtZSksCgkgIChnc3RfdjRsMnNyY19nZXRfY2FwdHVyZSksIChnc3RfdjRsMnNyY19zZXRfY2FwdHVyZSksCgkgIChnc3RfdjRsMnNyY19jYXB0dXJlX2luaXQpLCAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9zdGFydCksCgkgIChnc3RfdjRsMnNyY19jYXB0dXJlX3N0b3ApLCAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9kZWluaXQpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X3NpemVfbGltaXRzKSwgKGdzdF92NGwyc3JjX3NldF9mcHMpLAoJICAoZ3N0X3Y0bDJzcmNfZ2V0X2ZwcyksIChnc3RfdjRsMnNyY19idWZmZXJfZmluYWxpemUpLAoJICAoZ3N0X3Y0bDJzcmNfYnVmZmVyX25ldyk6CgkgIEZpeCBwYXNzIGF0IGNvZGUgY2xlYW51cHMsIG1vdmUgZXJyb3JzIGNhc2VzIG91dCBvZiB0aGUgbm9ybWFsCgkgIGZsb3cgZm9yIGFkZGl0aW9uYWwgY29kZSBjbGFyaXR5LgoKMjAwNi0wOS0yNSAxMzo1NTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdXRvZGV0ZWN0LzogU21hbGwgY2xlYW51cHMuIGRvbid0IHRyeSB0byBzZXQgInN5bmMiIHByb3BlcnR5IHdoZW4gaXQgaXMgbm90IGF2YWlsYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19iYXNlX2luaXQpLCAoZ3N0X2F1dG9fYXVkaW9fc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZmluZF9iZXN0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6IChnc3RfYXV0b192aWRlb19zaW5rX2RldGVjdCk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICBkb24ndCB0cnkgdG8gc2V0ICJzeW5jIiBwcm9wZXJ0eSB3aGVuIGl0IGlzIG5vdCBhdmFpbGFibGUuCgoyMDA2LTA5LTI1IDExOjQ3OjQyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IEluY2x1ZGUgc3RkbGliLmggaW4gc29tZSBtb3JlIHBsYWNlcywgbWFrZXMgdGhpbmdzIGNvbXBpbGUgd2l0aCB1Q2xpYmMgYW5kIC1XZXJyb3IgKCMzNTc1OTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCAgPHBraiBhdCBheGlzIGNvbT4KCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICBJbmNsdWRlIHN0ZGxpYi5oIGluIHNvbWUgbW9yZSBwbGFjZXMsIG1ha2VzIHRoaW5ncyBjb21waWxlCgkgIHdpdGggdUNsaWJjIGFuZCAtV2Vycm9yICgjMzU3NTkyKS4KCjIwMDYtMDktMjUgMDk6MTU6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvanBlZy9nc3RqcGVnZGVjLmM6IG91ciBjb2RlIHNob3VsZCBoYW5kbGUgdGhhdCBmaW5lLiBTb21lIG9mIHRoZSBidXR0b25zIG9uIHRoZSBhcHBsZSB0cmFpbGVyIHNpdGUgYXJlIGFwcGFyZW50bHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJICBTZXQgbWluaW11bSBoZWlnaHQgdG8gOCAoZnJvbSAxNiksIG91ciBjb2RlIHNob3VsZCBoYW5kbGUKCSAgdGhhdCBmaW5lLiBTb21lIG9mIHRoZSBidXR0b25zIG9uIHRoZSBhcHBsZSB0cmFpbGVyIHNpdGUKCSAgYXJlIGFwcGFyZW50bHkgb25seSAxNSBwaXhlbHMgaGlnaCAoc2VlICMzNTc0NzApLgoKMjAwNi0wOS0yMyAxNTozMTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwLzogSW1wcm92ZSBlcnJvciByZXBvcnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2xvb3ApLCAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19vcGVuKToKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2NyZWF0ZSksCgkgIChydHNwX2Nvbm5lY3Rpb25fY29ubmVjdCksIChydHNwX2Nvbm5lY3Rpb25fcmVhZCksIChyZWFkX2JvZHkpLAoJICAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpOgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmM6IChydHNwX3N0cnJlc3VsdCk6CgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuaDoKCSAgSW1wcm92ZSBlcnJvciByZXBvcnRpbmcuCgoyMDA2LTA5LTIzIDE1OjMwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEZpeCBrbGFzcyB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzogKGdzdF9hc3Rlcmlza2gyNjNfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzogKGdzdF9ydHBfTDE2ZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogKGdzdF9ydHBfYW1yX2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOiAoZ3N0X3J0cF9nc21fZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOiAoZ3N0X3J0cF9oMjYzcF9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBoMjY0ZGVwYXkuYzogKGdzdF9ydHBfaDI2NF9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzogKGdzdF9ydHBfaWxiY19kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDJ0ZGVwYXkuYzogKGdzdF9ydHBfbXAydF9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfbXAydF9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzogKGdzdF9ydHBfbXA0Z19kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzogKGdzdF9ydHBfbXA0dl9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOiAoZ3N0X3J0cF9tcGFfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6IChnc3RfcnRwX3BjbWFfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6IChnc3RfcnRwX3BjbXVfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOiAoZ3N0X3J0cF9zcGVleF9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBzdjN2ZGVwYXkuYzogKGdzdF9ydHBfc3Yzdl9kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOiAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfcGx1Z2luX2luaXQpOgoJICBGaXgga2xhc3MgdHlwb3MuCgkgIE1hcmsgUkFOS19NQVJHSU5BTCwgZGVjb2RlYmluIGNhbiBoYW5kbGUgdGhlIGRlcGF5bG9hZGVycyBmaW5lLgoKMjAwNi0wOS0yMiAxNzo1Mzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogTmVlZCAgLWJhc2UgQ1ZTIGZvciBnc3RfYmFzZV9ydHBfZGVwYXlsb2FkX3B1c2hfdHMoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBOZWVkICAtYmFzZSBDVlMgZm9yIGdzdF9iYXNlX3J0cF9kZXBheWxvYWRfcHVzaF90cygpLgoKMjAwNi0wOS0yMiAxNzoyMjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogRG9uJ3QgY2hlY2sgZm9yIGEgdGFnIHRoYXQgaXMgbmV2ZXIgdGhlcmUgYW5kIGNoZWNrIGlmIHdlIHJlYWQgdGhlIGNvcnJlY3QgdGFnLiBGaXhlcyBzZWVraW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3N0cmVhbV9pbmRleCk6CgkgIERvbid0IGNoZWNrIGZvciBhIHRhZyB0aGF0IGlzIG5ldmVyIHRoZXJlIGFuZCBjaGVjayBpZiB3ZSByZWFkIHRoZQoJICBjb3JyZWN0IHRhZy4gRml4ZXMgc2Vla2luZyBhZ2Fpbi4KCSAgV2UgbXVzdCBwb3N0IGFuIGVycm9yIHdoZW4gYWxsIHBhZHMgYXJlIHVubGlua2VkLgoKMjAwNi0wOS0yMiAxNToxNToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBNb3JlIGZpeGFnZSwgc2V0IGVuZG9kZXItcGFyYW1zIGNvcnJlY3RseSBpbiB0aGUgcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNkZXBheS5jOiAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfcHJvY2Vzcyk6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzogKGdzdF9ydHBfdm9yYmlzX3BheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfdm9yYmlzX3BheV9yZXNldF9wYWNrZXQpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2luaXRfcGFja2V0KSwKCSAgKGdzdF9ydHBfdm9yYmlzX3BheV9mbHVzaF9wYWNrZXQpLCAoZ3N0X3J0cF92b3JiaXNfcGF5X3BhcnNlX2lkKSwKCSAgKGdzdF9ydHBfdm9yYmlzX3BheV9oYW5kbGVfYnVmZmVyKToKCSAgTW9yZSBmaXhhZ2UsIHNldCBlbmRvZGVyLXBhcmFtcyBjb3JyZWN0bHkgaW4gdGhlIHBheWxvYWRlci4KCjIwMDYtMDktMjIgMTI6MTI6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXV0b2RldGVjdC86IE1ha2Ugc3RhdGljIHBhZCB0ZW1wbGF0ZXMgc3RhdGljIHRvIGFwcGVhc2UgdmFsZ3JpbmQncyBsZWFrIGRldGVjdG9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJICAoZ3N0X2F1dG9fdmlkZW9fc2lua19iYXNlX2luaXQpOgoJICBNYWtlIHN0YXRpYyBwYWQgdGVtcGxhdGVzIHN0YXRpYyB0byBhcHBlYXNlIHZhbGdyaW5kJ3MgbGVhawoJICBkZXRlY3Rvci4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2F1dG9kZXRlY3QuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGF1dG9kZXRlY3Rfc3VpdGUpOgoJICBBZGQgc2ltcGxlIHRlc3QgZm9yIHRoZSBnaG9zdHBhZCBsb2NrdXAgb24gc2h1dGRvd24gZml4ZWQgaW4gY29yZQoJICBDVlMgKGF1ZGlvIGJpdCBkaXNhYmxlZCBiZWNhdXNlIGl0IHdvdWxkIG5lZWQgZG96ZW5zIG9mIGFsc2EKCSAgc3VwcHJlc3Npb25zIGFuZCBJJ20gdG9vIGxhenkgdG8gYWRkIHRob3NlIG5vdykuCgoyMDA2LTA5LTIyIDEyOjA4OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6IChnc3RfcnRwX0wxNmRlcGF5X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuYzogKGdzdF9ydHBfbXA0Z19kZXBheV9jbGFzc19pbml0KToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwdm9yYmlzZGVwYXkuYzogKGdzdF9ydHBfdm9yYmlzX2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfdm9yYmlzX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfZmluYWxpemUpLCAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfc2V0Y2FwcyksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9wcm9jZXNzKSwKCSAgKGdzdF9ydHBfdm9yYmlzX2RlcGF5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX3ZvcmJpc19kZXBheV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF92b3JiaXNfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfdm9yYmlzX2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc2RlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHB2b3JiaXNwYXkuYzogKGdzdF9ydHBfdm9yYmlzX3BheV9iYXNlX2luaXQpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2NsYXNzX2luaXQpLCAoZ3N0X3J0cF92b3JiaXNfcGF5X2luaXQpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X3NldGNhcHMpLCAoZ3N0X3J0cF92b3JiaXNfcGF5X2luaXRfcGFja2V0KSwKCSAgKGdzdF9ydHBfdm9yYmlzX3BheV9mbHVzaF9wYWNrZXQpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2FwcGVuZF9idWZmZXIpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cF92b3JiaXNfcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHZvcmJpc3BheS5oOgoJICBBZGQgZXhwZXJpbWVudGFsIHZvcmJpcyBwYXkgYW5kIGRlcGF5bG9hZGVycy4KCjIwMDYtMDktMjEgMTM6MzM6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzogRml4IHByb2ZpbGUtbGV2ZWwtaWQgcGFyc2luZyBhbmQgc2V0dXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOiAoZ3N0X3J0cF9tcDRnX3BheV9wYXJzZV9hdWRpb19jb25maWcpOgoJICBGaXggcHJvZmlsZS1sZXZlbC1pZCBwYXJzaW5nIGFuZCBzZXR1cC4KCjIwMDYtMDktMjEgMDk6NTA6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwLzogVXBkYXRlIFJFQURNRSwgc2ltcGxlIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvUkVBRE1FOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX3NldF9wcm9wZXJ0eSk6CgkgIFVwZGF0ZSBSRUFETUUsIHNpbXBsZSBjbGVhbnVwLgoKMjAwNi0wOS0yMSAwOTozNToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvUkVBRE1FOiBVcGRhdGUgUkVBRE1FIHdpdGggc29tZSBleGFtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9SRUFETUU6CgkgIFVwZGF0ZSBSRUFETUUgd2l0aCBzb21lIGV4YW1wbGVzLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOiAoZ3N0X3J0cF9tcDRnX3BheV9pbml0KSwKCSAgKGdzdF9ydHBfbXA0Z19wYXlfZmluYWxpemUpLCAoZ3N0X3J0cF9tcDRnX3BheV9wYXJzZV9hdWRpb19jb25maWcpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9wYXJzZV92aWRlb19jb25maWcpLCAoZ3N0X3J0cF9tcDRnX3BheV9uZXdfY2FwcyksCgkgIChnc3RfcnRwX21wNGdfcGF5X3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5oOgoJICBNYWtlIG9wdGlvbmFsIFJUUCBwYXJhbWV0ZXJzIG9mIHR5cGUgU1RSSU5HLCBhcyByZXF1aXJlZCBieSB0aGUKCSAgYXBwbGljYXRpb24veC1ydHAgY2FwcyBzcGVjaWZpY2F0aW9uLgoKMjAwNi0wOS0yMCAxOTozNzo0NSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC9ydHAvOiBDb3JyZWN0bHkgY2FsY3VsYXRlIHNpemUgb2YgZWFjaCBIMjYzKyBSVFAgYnVmZmVyIHRha2luZyBpbnRvIGFjY291bnQgTVRVIGFuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkgIENvcnJlY3RseSBjYWxjdWxhdGUgc2l6ZSBvZiBlYWNoIEgyNjMrIFJUUCBidWZmZXIgdGFraW5nIGludG8gYWNjb3VudCBNVFUgYW5kCgkgIFJUUCBoZWFkZXIuCgoyMDA2LTA5LTIwIDE2OjQxOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9NYWtlZmlsZS5hbTogQW5kIG1ha2VmaWxlIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgQW5kIG1ha2VmaWxlIHRvby4KCjIwMDYtMDktMjAgMTY6MDk6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogQWRkZWQgcHJlbGltaW5hcnkgQVNGIGRlcGF5bG9hZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwYXNmZGVwYXkuYzogKGdzdF9ydHBfYXNmX2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX2FzZl9kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfYXNmX2RlcGF5X2luaXQpLAoJICAoZGVjb2RlX2Jhc2U2NCksIChnc3RfcnRwX2FzZl9kZXBheV9zZXRjYXBzKSwKCSAgKGdzdF9ydHBfYXNmX2RlcGF5X3Byb2Nlc3MpLCAoZ3N0X3J0cF9hc2ZfZGVwYXlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfYXNmX2RlcGF5X2dldF9wcm9wZXJ0eSksIChnc3RfcnRwX2FzZl9kZXBheV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3J0cF9hc2ZfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwYXNmZGVwYXkuaDoKCSAgQWRkZWQgcHJlbGltaW5hcnkgQVNGIGRlcGF5bG9hZGVyLgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IChkZWNvZGVfYmFzZTY0KToKCSAgRml4IGJhc2U2NCBkZWNvZGluZy4KCjIwMDYtMDktMjAgMTY6MDY6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9VUkxTOiBBZGRlZCBzb21lIHRlc3QgVVJMUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvVVJMUzoKCSAgQWRkZWQgc29tZSB0ZXN0IFVSTFMuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY3JlYXRlX3N0cmVhbSksCgkgIChnc3RfcnRzcHNyY19sb29wKSwgKGdzdF9ydHNwc3JjX29wZW4pOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgV2hlbiBjcmVhdGluZyBzdHJlYW1zLCBnaXZlIGFjY2VzcyB0byB0aGUgY29tcGxldGUgU0RQLgoJICBGaXggc29tZSBsZWFrcy4KCSAgQ29sbGVjdCBhbmQgbWVyZ2UgZ2xvYmFsIHN0cmVhbSBwcm9wZXJ0aWVzIGluIHN0cmVhbSBjYXBzLgoJICBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBXTVNlcnZlci4KCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX2NyZWF0ZSksCgkgIChydHNwX2Nvbm5lY3Rpb25fY29ubmVjdCksIChydHNwX2Nvbm5lY3Rpb25fcmVhZCksIChyZWFkX2JvZHkpLAoJICAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmg6CgkgIE1ha2UgY29ubmVjdGlvbiBpbnRlcnJ1cHRhYmxlLgoJICBSZWZhY3RvciB0byBtYWtlIGl0IHJlY29ubmVjdGFibGUuCgkgIERvbid0IGZhaWwgb24gc2hvcnQgcmVhZHMgd2hlbiByZWFkaW5nIGRhdGEgcGFja2V0cy4KCSAgKiBnc3QvcnRzcC9ydHNwdXJsLmM6IChydHNwX3VybF9wYXJzZSksIChydHNwX3VybF9zZXRfcG9ydCksCgkgIChydHNwX3VybF9nZXRfcG9ydCk6CgkgICogZ3N0L3J0c3AvcnRzcHVybC5oOgoJICBBZGQgbWV0aG9kcyBmb3IgZ2V0dGluZy9zZXR0aW5nIHRoZSBwb3J0LgoJICAqIGdzdC9ydHNwL3NkcG1lc3NhZ2UuYzogKHNkcF9tZXNzYWdlX2dldF9hdHRyaWJ1dGVfdmFsX24pLAoJICAoc2RwX21lc3NhZ2VfZ2V0X2F0dHJpYnV0ZV92YWwpLCAoc2RwX21lZGlhX2dldF9hdHRyaWJ1dGUpLAoJICAoc2RwX21lZGlhX2dldF9hdHRyaWJ1dGVfdmFsX24pLCAoc2RwX21lZGlhX2dldF9hdHRyaWJ1dGVfdmFsKSwKCSAgKHNkcF9tZWRpYV9nZXRfZm9ybWF0KSwgKHNkcF9wYXJzZV9saW5lKSwKCSAgKHNkcF9tZXNzYWdlX3BhcnNlX2J1ZmZlcik6CgkgIEZpeCBoZWFkZXJzLgoJICBBZGQgbWV0aG9kcyBmb3IgZ2V0dGluZyBtdWx0aXBsZSBhdHRyaWJ1dGVzIHdpdGggdGhlIHNhbWUgbmFtZS4KCSAgSW5jcmVhc2UgYnVmZmVyIHNpemUgd2hlbiBwYXJzaW5nLgoJICBGaXggcGFyc2luZyBvZiBhPWZvbyBmaWVsZHMuCgkgICogZ3N0L3J0c3AvdGVzdC5jOiAobWFpbik6CgkgIFVwZGF0ZSB0byBuZXcgY29ubmVjdGlvbiBBUEkuCgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzogKHJ0c3BfbWVzc2FnZV9uZXdfcmVzcG9uc2UpLAoJICAocnRzcF9tZXNzYWdlX2luaXRfcmVzcG9uc2UpLCAocnRzcF9tZXNzYWdlX2luaXRfZGF0YSksCgkgIChydHNwX21lc3NhZ2VfdW5zZXQpLCAocnRzcF9tZXNzYWdlX2ZyZWUpLCAocnRzcF9tZXNzYWdlX2R1bXApOgoJICAqIGdzdC9ydHNwL3J0c3BtZXNzYWdlLmg6CgkgICogZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5jOiAocnRzcF90cmFuc3BvcnRfZnJlZSk6CgkgICogZ3N0L3J0c3AvcnRzcHRyYW5zcG9ydC5oOgoJICAqIGdzdC9ydHNwL3NkcC5oOgoJICAqIGdzdC9ydHNwL3NkcG1lc3NhZ2UuaDoKCSAgKiBnc3QvcnRzcC9nc3RydHNwLmM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcC5oOgoJICAqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJICAqIGdzdC9ydHNwL2dzdHJ0cGRlYy5oOgoJICAqIGdzdC9ydHNwL3J0c3AuaDoKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5jOgoJICAqIGdzdC9ydHNwL3J0c3BkZWZzLmg6CgkgIER1YWwgbGljZW5zZWQgdW5kZXIgTUlUIGFuZCBMR1BMIG5vdy4KCjIwMDYtMDktMTkgMTc6MjU6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLio6IFJlb3JnYW5pemUgc3RyZWFtIHBhcnNpbmcgYW5kIGNyZWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChmaW5kX3N0cmVhbV9ieV9wdCksCgkgIChnc3RfcnRzcHNyY19jcmVhdGVfc3RyZWFtKSwgKGdzdF9ydHNwc3JjX2ZyZWVfc3RyZWFtKSwKCSAgKGdzdF9ydHNwc3JjX21lZGlhX3RvX2NhcHMpLCAoZ3N0X3J0c3BzcmNfc3RyZWFtX3NldHVwX3J0cCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksIChmaW5kX3N0cmVhbV9ieV9jaGFubmVsKSwKCSAgKGdzdF9ydHNwc3JjX3B1c2hfZXZlbnQpLCAoZ3N0X3J0c3BzcmNfbG9vcCksIChnc3RfcnRzcHNyY19zZW5kKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX21ldGhvZHMpLCAoZ3N0X3J0c3BzcmNfb3BlbiksCgkgIChnc3RfcnRzcHNyY19wYXJzZV9ydHBpbmZvKSwgKGdzdF9ydHNwc3JjX3BsYXkpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgUmVvcmdhbml6ZSBzdHJlYW0gcGFyc2luZyBhbmQgY3JlYXRpb24uCgkgIERldGVjdCBjb250YWluZXIgZm9ybWF0cyBpbiBpbnRlcmxlYXZlZCBtb2RlLgoJICBLZWVwIG1vcmUgc3RhdGUgYWJvdXQgdGhlIHN0cmVhbXMuCgkgIEFzc3VtZSBhIHNlcnZlciBhbHNvIHN1cHBvcnRzIFBMQVkgaWYgaXQgZG9lcyBub3Qgc2F5LgoJICBBZGQgdW5pY2FzdCBhbmQgaW50ZXJsZWF2ZWQgcHJvcGVydGllcyB0byBUQ1AgdHJhbnNwb3J0IHJlcXVlc3RzIHRvIG1ha2UKCSAgc29tZSBzZXJ2ZXJzIGhhcHB5IChXTVNlcnZlcikuCgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5oOgoJICBBZGQgc29tZSBkZWZpbmVzIGZvciB0aGUgc3RhbmRhcmQgQmFuZHdpZHRoIHR5cGVzLgoKMjAwNi0wOS0xOSAxNjoyNDoxMCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkgIEp1c3QgYSBzbWFsbCBmaXggdG8gdGhlIGFwcCBvcHRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSnVzdCBhIHNtYWxsIGZpeCB0byB0aGUgYXBwIG9wdGlvbnMuCgoyMDA2LTA5LTE5IDEzOjA4OjM1ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwydmlkb3JpZW50LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ2aWRvcmllbnQuaDoKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkgIEFkZCBWaWRlbyBPcmllbnRhdGlvbiBpbnRlcmZhY2Ugc3VwcG9ydCB0byB2NGwyc3JjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIFZpZGVvIE9yaWVudGF0aW9uIGludGVyZmFjZSBzdXBwb3J0IHRvIHY0bDJzcmMuCgoyMDA2LTA5LTE5IDEwOjUzOjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvdGVzdC5jOiBGaXggYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3Rlc3QuYzogKG1haW4pOgoJICBGaXggYnVpbGQuCgoyMDA2LTA5LTE5IDEwOjE0OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEFkZCBtcy1nc20gdG8gdGhlIHNyYyB0ZW1wbGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIEFkZCBtcy1nc20gdG8gdGhlIHNyYyB0ZW1wbGF0ZS4KCjIwMDYtMDktMTggMTc6Mzc6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9nc3RydHNwc3JjLio6IFNtYWxsIGNsZWFudXBzLCBhZGRlZCBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX3NlbmQpLCAoZ3N0X3J0c3BzcmNfcGFyc2VfbWV0aG9kcyksCgkgIChnc3RfcnRzcHNyY19vcGVuKSwgKGdzdF9ydHNwc3JjX2Nsb3NlKSwgKGdzdF9ydHNwc3JjX3BsYXkpLAoJICAoZ3N0X3J0c3BzcmNfcGF1c2UpLCAoZ3N0X3J0c3BzcmNfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHNwc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9ydHNwc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIFNtYWxsIGNsZWFudXBzLCBhZGRlZCBkb2N1bWVudGF0aW9uLgoJICBUcnkgdG8gY2xlYW4gdXAgdGhlIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuCgkgIFJlZmFjdG9yIHBhcnNpbmcgdGhlIHN1cHBvcnRlZCBtZXRob2RzLgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChydHNwX2Nvbm5lY3Rpb25fb3BlbiksCgkgIChydHNwX2Nvbm5lY3Rpb25fY3JlYXRlKSwgKHJ0c3BfY29ubmVjdGlvbl9zZW5kKSwKCSAgKHBhcnNlX3Jlc3BvbnNlX3N0YXR1cyksIChwYXJzZV9yZXF1ZXN0X2xpbmUpLAoJICAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpLCAocnRzcF9jb25uZWN0aW9uX2Nsb3NlKSwKCSAgKHJ0c3BfY29ubmVjdGlvbl9mcmVlKToKCSAgKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0LmM6IChydHNwX3RyYW5zcG9ydF9uZXcpLAoJICAocnRzcF90cmFuc3BvcnRfaW5pdCksIChydHNwX3RyYW5zcG9ydF9wYXJzZSksCgkgIChydHNwX3RyYW5zcG9ydF9mcmVlKToKCSAgKiBnc3QvcnRzcC9ydHNwdXJsLmM6IChydHNwX3VybF9wYXJzZSk6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5jOiAoc2RwX21lc3NhZ2VfbmV3KSwgKHNkcF9tZXNzYWdlX2luaXQpLAoJICAoc2RwX21lc3NhZ2VfY2xlYW4pLCAoc2RwX21lc3NhZ2VfZnJlZSksIChzZHBfbWVkaWFfbmV3KSwKCSAgKHNkcF9tZWRpYV9pbml0KSwgKHNkcF9tZXNzYWdlX3BhcnNlX2J1ZmZlciksIChzZHBfbWVzc2FnZV9kdW1wKToKCSAgVXNlIGdfcmV0dXJuX3ZhbCBzb21lIG1vcmUuCgkgICogZ3N0L3J0c3AvcnRzcGRlZnMuaDoKCSAgQWRkIG1vcmUgZW51bSB2YWx1ZXMgdG8gdHJhY2sgaW5pdGlhbCBzdGF0ZXMuCgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzogKHJ0c3BfbWVzc2FnZV9uZXdfcmVxdWVzdCksCgkgIChydHNwX21lc3NhZ2VfaW5pdF9yZXF1ZXN0KSwgKHJ0c3BfbWVzc2FnZV9uZXdfcmVzcG9uc2UpLAoJICAocnRzcF9tZXNzYWdlX2luaXRfcmVzcG9uc2UpLCAocnRzcF9tZXNzYWdlX2luaXRfZGF0YSksCgkgIChydHNwX21lc3NhZ2VfdW5zZXQpLCAocnRzcF9tZXNzYWdlX2ZyZWUpLAoJICAocnRzcF9tZXNzYWdlX2FkZF9oZWFkZXIpLCAocnRzcF9tZXNzYWdlX3JlbW92ZV9oZWFkZXIpLAoJICAocnRzcF9tZXNzYWdlX2dldF9oZWFkZXIpLCAocnRzcF9tZXNzYWdlX3NldF9ib2R5KSwKCSAgKHJ0c3BfbWVzc2FnZV90YWtlX2JvZHkpLCAocnRzcF9tZXNzYWdlX2dldF9ib2R5KSwKCSAgKHJ0c3BfbWVzc2FnZV9zdGVhbF9ib2R5KSwgKHJ0c3BfbWVzc2FnZV9kdW1wKToKCSAgKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5oOgoJICBSZW9yZGVyIGFyZ3VtZW50cywgb2JqZWN0IGdvZXMgYXMgdGhlIGZpcnN0IG9uZS4KCSAgVXNlIGdfcmV0dXJuX3ZhbCBzb21lIG1vcmUuCgoyMDA2LTA5LTE4IDE1OjM2OjE0ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkgIEZpeCBHU1RfQlVGRkVSX0RVUkFUSU9OLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IEdTVF9CVUZGRVJfRFVSQVRJT04uCgoyMDA2LTA5LTE4IDE0OjAwOjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBFeHBvcnQgc29tZXRpbWVzIHNvdXJjZSBwYWQgd2l0aCBjb3JyZWN0IGNhcHMgb24gdGhlIHRlbXBsYXRlLCBjcmVhdGUgdGhlIGdob3N0cGFkIGZyb20gdGhlIHRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfcnRzcHNyY19zdHJlYW1fY29uZmlndXJlX3RyYW5zcG9ydCksIChnc3RfcnRzcHNyY19wdXNoX2V2ZW50KSwKCSAgKGdzdF9ydHNwc3JjX2xvb3ApLCAoZ3N0X3J0c3BzcmNfdXJpX3NldF91cmkpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgRXhwb3J0IHNvbWV0aW1lcyBzb3VyY2UgcGFkIHdpdGggY29ycmVjdCBjYXBzIG9uIHRoZSB0ZW1wbGF0ZSwgY3JlYXRlCgkgIHRoZSBnaG9zdHBhZCBmcm9tIHRoZSB0ZW1wbGF0ZS4KCSAgUmVtb3ZlIFJUQ1AgdGVtcGxhdGUgYXMgd2UgbmV2ZXIgZXhwb3NlIFJUQ1AuCgkgIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIGJvZHkgc2l6ZS4KCSAgQXZvaWQgbWVtY3B5IHdoZW4gY3JlYXRpbmcgdGhlIG91dHB1dCBidWZmZXIuCgkgIFByb3Blcmx5IHBvc3QgYW4gZXJyb3IgYW5kIHNlbmQgRU9TIHdoZW4gdGhlIGxvb3AgZnVuY3Rpb24gaXMgc2h1dCBkb3duLgoKMjAwNi0wOS0xOCAxMToyOToxMiArMDAwMCAgTHV0eiBNdWVsbGVyIDxsdXR6QHRvcGZyb3NlLmRlPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy4qOiBNYWtlIHN1cmUgd2UgY2FuIG5ldmVyIHNldCBhbiBpbnZhbGlkIGxvY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRzcHNyY19pbml0KSwgKGdzdF9ydHNwc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfcnRzcHNyY19vcGVuKSwKCSAgKGdzdF9ydHNwc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9ydHNwc3JjX3VyaV9zZXRfdXJpKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmg6CgkgIE1ha2Ugc3VyZSB3ZSBjYW4gbmV2ZXIgc2V0IGFuIGludmFsaWQgbG9jYXRpb24uCgkgICogZ3N0L3J0c3AvcnRzcG1lc3NhZ2UuYzogKHJ0c3BfbWVzc2FnZV9zdGVhbF9ib2R5KToKCSAgKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5oOgoJICBBZGRlZCBfc3RlYWxfYm9keSBtZXRob2QgZm9yIGZ1dHVyZSB1c2UuCgkgICogZ3N0L3J0c3AvcnRzcHVybC5jOiAocnRzcF91cmxfcGFyc2UpLCAocnRzcF91cmxfZnJlZSk6CgkgIE1ha2UgZnJlZWluZyBvZiBOVUxMIHVybCByZXR1cm4gaW1tZWRpYXRseS4KCjIwMDYtMDktMTggMTA6NDI6NTIgKzAwMDAgIEx1dHogTXVlbGxlciA8bHV0ekB0b3Bmcm9zZS5kZT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuKjogVXNlIGJvaWxlcnBsYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEx1dHogTXVlbGxlciA8bHV0eiBhdCB0b3Bmcm9zZSBkb3QgZGU+CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoX2RvX2luaXQpLCAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRzcHNyY19pbml0KSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9zZXR1cF9ydHApLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpLCAoZ3N0X3J0c3BzcmNfcGxheSksCgkgIChnc3RfcnRzcHNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgVXNlIGJvaWxlcnBsYXRlLgoJICBNYWtlIHJ0c3BzcmMgc3ViY2xhc3MgR3N0QmluIHRvIG1ha2Ugc3RhdGUgY2hhbmdlcyBlYXNpZXIuCgkgIEFkZCBSYW5nZSBoZWFkZXIgZmllbGQgb24gdGhlIFBMQVkgcmVxdWVzdC4KCjIwMDYtMDktMTggMDg6NTk6MTcgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzLnZlcm1laXJAYmFyY28uY29tPgoKCSAgZ3N0L3J0c3AvOiBTbWFsbCBjbGVhbnVwcy4gd2hlbiBtdWx0aWNhc3QgaXMgc2VsZWN0ZWQgYXMgdGhlIHRyYW5zcG9ydCwgY3JlYXRlIFVEUCBzb3VyY2VzIGFuZCBjb25uZWN0IHRvIHRoZSBtdWx0aWNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpanMgVmVybWVpciA8dGhpanMgZG90IHZlcm1laXIgYXQgYmFyY28gZG90IGNvbT4KCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19zZXRfc3RhdGUpLAoJICAoZ3N0X3J0c3BzcmNfbWVkaWFfdG9fY2FwcyksIChnc3RfcnRzcHNyY19zdHJlYW1fc2V0dXBfcnRwKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwgKGdzdF9ydHNwc3JjX29wZW4pLAoJICAoZ3N0X3J0c3BzcmNfY2xvc2UpLCAoZ3N0X3J0c3BzcmNfcGxheSksIChnc3RfcnRzcHNyY19wYXVzZSk6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogKGluZXRfYXRvbik6CgkgIFNtYWxsIGNsZWFudXBzLgoJICB3aGVuIG11bHRpY2FzdCBpcyBzZWxlY3RlZCBhcyB0aGUgdHJhbnNwb3J0LCBjcmVhdGUgVURQIHNvdXJjZXMgYW5kCgkgIGNvbm5lY3QgdG8gdGhlIG11bHRpY2FzdCBncm91cC4KCSAgTW92ZSBwYXJzaW5nIGFuZCBzZXR0aW5nIG9mIGNhcHMgdG8gYSBjb21tb24gcGxhY2UuCgkgIEZpeGVzICMzNDk4OTQuCgoyMDA2LTA5LTE2IDIyOjE0OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIEdfT0JKRUNUIG1hY3JvIGZpeGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2hlcm1lcy9nc3RoZXJtZXNjb2xvcnNwYWNlLmM6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZmlsZS5jOgoJICAqIGV4dC9sY3MvZ3N0Y29sb3JzcGFjZS5jOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDoKCSAgKiBleHQveGluZS94aW5lYXVkaW9kZWMuYzoKCSAgKiBleHQveGluZS94aW5lYXVkaW9zaW5rLmM6CgkgICogZXh0L3hpbmUveGluZWlucHV0LmM6CgkgICogZ3N0L2NoYXJ0L2dzdGNoYXJ0LmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSAgKiBnc3QvZ2FtZXMvZ3N0cHV6emxlLmM6CgkgICogZ3N0L2xpYnJmYi9nc3RyZmJzcmMuYzoKCSAgKiBnc3QvbWl4bWF0cml4L21peG1hdHJpeC5jOgoJICAqIGdzdC9uc2YvZ3N0bnNmLmg6CgkgICogZ3N0L3ZiaWRlYy9nc3R2YmlkZWMuYzoKCSAgKiBnc3QvdmlydHVhbGR1Yi9nc3R4c2hhcnBlbi5jOgoJICBNb3JlIEdfT0JKRUNUIG1hY3JvIGZpeGluZy4KCjIwMDYtMDktMTYgMjE6NTc6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgR19PQkpFQ1QgbWFjcm8gZml4aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkgICogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkgICogZ3N0L2RlYnVnL2JyZWFrbXlkYXRhLmM6CgkgICogZ3N0L2RlYnVnL25lZ290aWF0aW9uLmM6CgkgICogZ3N0L2RlYnVnL3Rlc3RwbHVnaW4uYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RyZXYuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0dmVydGlnby5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW90ZW1wbGF0ZS5jOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zcmMuaDoKCSAgTW9yZSBHX09CSkVDVCBtYWNybyBmaXhpbmcuCgoyMDA2LTA5LTE2IDE0OjMwOjU5ICswMDAwICBZdmVzIExlZmVidnJlIDxpdmFub2hlQGFiYWNvbS5jb20+CgoJICBnc3QvYXZpL2dzdGF2aW11eC5jOiBDb3JyZWN0bHkgc2V0IHRoZSBkd0xlbmd0aCBpbiBzdHJoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFl2ZXMgTGVmZWJ2cmUgPGl2YW5vaGUgYXQgYWJhY29tIGRvdCBjb20+CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmlfbXV4X3N0b3BfZmlsZSk6CgkgIENvcnJlY3RseSBzZXQgdGhlIGR3TGVuZ3RoIGluIHN0cmguCgkgIFdpdGggdGhpcyBwYXRjaCwgdGhlIGZpbGUgZHVyYXRpb24gaXMgbm93IGRpc3BsYXllZCBjb3JyZWN0bHkgaW4gd2luZG93CgkgIG1lZGlhIHBsYXllciBhbmQgdGhlIEFWSSBwbGF5cyBjb21wbGV0ZWx5LiBGaXhlcyAjMzU2MTQ3CgoyMDA2LTA5LTE1IDE5OjExOjAwICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJKiB0ZXN0cy9pY2xlcy92NGwyc3JjLXRlc3QuYzoKCSAgVGhlIHRlc3QgYXBwbGljYXRpb24gYW5kIHRoZSBwbGdpbmQgZXJyb3IgbWVzc2FnZXMgaGFzIGJlZW4gaW1wcm92ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBUaGUgdGVzdCBhcHBsaWNhdGlvbiBhbmQgdGhlIHBsZ2luZCBlcnJvciBtZXNzYWdlcyBoYXMgYmVlbiBpbXByb3ZlZC4KCjIwMDYtMDktMTUgMTc6MTA6MjIgKzAwMDAgIERhcnJlbiBLZW5ueSA8ZGFycmVuLmtlbm55QHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuYzogU2V0IHRoZSBvdXRwdXQgdHJhY2sgYXMgdGhlIE1BU1RFUiBzbyB0aGF0IHRoZSBnbm9tZS1zZXR0aW5ncy1kYWVtb24ga2V5YmluZGluZ3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYXJyZW4gS2VubnkgPGRhcnJlbiBkb3Qga2VubnkgYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX2J1aWxkX2xpc3QpOgoJICBTZXQgdGhlIG91dHB1dCB0cmFjayBhcyB0aGUgTUFTVEVSIHNvIHRoYXQgdGhlIGdub21lLXNldHRpbmdzLWRhZW1vbgoJICBrZXliaW5kaW5ncyBmb3IgY2hhbmdpbmcgdGhlIHZvbHVtZSB1c2luZyB0aGUga2V5Ym9hcmQgd29ya3MuCgkgIEZpeGVzICMzNTYxNDIuCgoyMDA2LTA5LTE1IDE2OjAxOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOiBGaXggZG9jdW1lbnRhdGlvbiwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNvbnRyb2wgdGhlIGZyYW1lcmF0ZSBvZiBqcGVnZGVjIHVzaW5nIGZpbHRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzogKGdzdF9tdWx0aXBhcnRfZGVtdXhfY2hhaW4pOgoJICBGaXggZG9jdW1lbnRhdGlvbiwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNvbnRyb2wgdGhlIGZyYW1lcmF0ZSBvZiBqcGVnZGVjCgkgIHVzaW5nIGZpbHRlcmVkIGNhcHMgeWV0LiBGaXhlcyAjMzU1MjEwLgoJICBSZXR1cm4gdGhlIGRvd25zdHJlYW0gR3N0Rmxvd1JldHVybiBpbnN0ZWFkIG9mIEdTVF9GTE9XX09LIHNvIHRoYXQgd2UKCSAgc3RvcCB3aGVuIHRoZXJlIGlzIGFuIGVycm9yLgoKMjAwNi0wOS0xNCAxMTowNTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IERvbid0IGludGVycHJldCBhIGZpcnN0IGJ1ZmZlciB3aXRoIGFuIG9mZnNldCBvZiBOT05FIGFzICdmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIHN0cmVhbScsIGJ1dCBvbmx5IGEgZmlyc3QgYnVmZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X2NoYWluX3BhcnNlX3RhZyk6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfY2hhaW4pOgoJICBEb24ndCBpbnRlcnByZXQgYSBmaXJzdCBidWZmZXIgd2l0aCBhbiBvZmZzZXQgb2YgTk9ORSBhcwoJICAnZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSBzdHJlYW0nLCBidXQgb25seSBhIGZpcnN0IGJ1ZmZlcgoJICB0aGF0IGhhcyBhIHZhbGlkIGJ1ZmZlciBvZmZzZXQgdGhhdCdzIG5vbi16ZXJvIChzZWUgIzM0NTQ0OSkuCgoyMDA2LTA5LTE0IDEwOjM4OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4Lio6IFdoZW4gd2UgbWVyZ2UvY29sbGVjdCBtdWx0aXBsZSBpbmNvbWluZyBidWZmZXJzIGZvciB0eXBlZmluZGluZyBwdXJwb3Nlcywga2VlcCBhbiBpbml0aWFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pY3lkZW11eC9nc3RpY3lkZW11eC5jOiAoZ3N0X2ljeWRlbXV4X3Jlc2V0KSwKCSAgKGdzdF9pY3lkZW11eF90eXBlZmluZF9vcl9mb3J3YXJkKToKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguaDoKCSAgV2hlbiB3ZSBtZXJnZS9jb2xsZWN0IG11bHRpcGxlIGluY29taW5nIGJ1ZmZlcnMgZm9yIHR5cGVmaW5kaW5nCgkgIHB1cnBvc2VzLCBrZWVwIGFuIGluaXRpYWwgMCBvZmZzZXQgb24gdGhlIGZpcnN0IG91dGdvaW5nIGJ1ZmZlcgoJICBhcyB3ZWxsIChvdGhlcndpc2UgaWQzZGVtdXggd29uJ3Qgd29yayByaWdodCkuIEZpeGVzICMzNDU0NDkuCgkgIEFsc28gTWFrZSBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgYnVmZmVyIGNhcHMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWN5ZGVtdXguYzogKHR5cGVmaW5kX3N1Y2NlZWQpLAoJICAoY2xlYW51cF9pY3lkZW11eCksIChwdXNoX2RhdGEpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoaWN5ZGVtdXhfc3VpdGUpOgoJICBTbWFsbCB0ZXN0IGNhc2UgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMDktMTMgMTM6MjY6MTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogTW9yZSBjb2RlIHJldXNlIGFuZCBiZXR0ZXIgbG9nZ2luZyBpbiBfcGVla19jaHVuaygpLiBSZWludHJvZHVjZSBjaGVjayBmb3IgY2h1bmsgc2l6ZXMgYmVmb3JlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BlZWtfY2h1bmspLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9zeW5jKSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcl9wdXNoKSwKCSAgKGdzdF9hdmlfZGVtdXhfcHJvY2Vzc19uZXh0X2VudHJ5KSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X2F2aV9kZW11eF9sb29wKToKCSAgTW9yZSBjb2RlIHJldXNlIGFuZCBiZXR0ZXIgbG9nZ2luZyBpbiBfcGVla19jaHVuaygpLiBSZWludHJvZHVjZSBjaGVjawoJICBmb3IgY2h1bmsgc2l6ZXMgYmVmb3JlIHJlYWRpbmcgdGhlbSAoYXZvaWQgb29tKS4gQmV0dGVyIGhhbmRsaW5nIGZvcgoJICBpbnZhbGlkIGNodW5rc2l6ZXMgd2hlbiBzdHJlYW1pbmcuCgoyMDA2LTA5LTEyIDIwOjE4OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogSW1wbGVtZW50cyBzdG9wKCkgdG8gY2xlYXIgdGhlIGFkYXB0ZXIgYW5kIGV2ZW50KCkgdG8gY2xlYXIgdGhlIGFkYXB0ZXIgb24gRkxVU0hfU1RPUCBhbmQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fY2xhc3NfaW5pdCksCgkgIChnc3Rfc3BlY3RydW1fc3RhcnQpLCAoZ3N0X3NwZWN0cnVtX3N0b3ApLCAoZ3N0X3NwZWN0cnVtX2V2ZW50KToKCSAgSW1wbGVtZW50cyBzdG9wKCkgdG8gY2xlYXIgdGhlIGFkYXB0ZXIgYW5kIGV2ZW50KCkgdG8gY2xlYXIgdGhlCgkgIGFkYXB0ZXIgb24gRkxVU0hfU1RPUCBhbmQgRU9TLgoKMjAwNi0wOS0xMSAyMDozODo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2xldmVsL2dzdGxldmVsLio6IEZpeCB0eXBlIG1peHVwIGluIGxldmVsLT5pbnRlcnZhbCAoZ2RvdWJsZTwtPmd1aW50NjQpLiBTcG90dGVkIGJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiAoZ3N0X2xldmVsX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmg6CgkgIEZpeCB0eXBlIG1peHVwIGluIGxldmVsLT5pbnRlcnZhbCAoZ2RvdWJsZTwtPmd1aW50NjQpLiBTcG90dGVkIGJ5CgkgIFJlbsOpIFN0YWRsZXIKCjIwMDYtMDktMTEgMTg6MjM6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS4qOiBGaXggdHlwZSBtaXh1cCBpbiBzcGVjdHJ1bS0+aW50ZXJ2YWwgKGdkb3VibGU8LT5ndWludDY0KS4gU3BvdHRlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9pbml0KSwKCSAgKGdzdF9zcGVjdHJ1bV9zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5oOgoJICBGaXggdHlwZSBtaXh1cCBpbiBzcGVjdHJ1bS0+aW50ZXJ2YWwgKGdkb3VibGU8LT5ndWludDY0KS4gU3BvdHRlZCBieQoJICBSZW7DqSBTdGFkbGVyCgoyMDA2LTA5LTExIDE4OjAyOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogVXNlIG1vcmUgZGVmaW5lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogKGRyYXdfc3BlY3RydW0pLCAobWFpbik6CgkgIFVzZSBtb3JlIGRlZmluZXMKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9pbml0KSwKCSAgKGdzdF9zcGVjdHJ1bV9kaXNwb3NlKSwgKGdzdF9zcGVjdHJ1bV9zZXRfY2FwcyksCgkgIChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgQXBwbHkgc29tZSBvZiB0aGUgc3BlY3RydW0gY2xlYW51cCBjaGFuZ2VzIHN1Z2dlc3RlZCBpbiAjMzQ4MDg1LgoKMjAwNi0wOS0wOCAxNjo0Nzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCByZXF1aXJlbWVudHMgb2YgLWJhc2UgKHZpZGVvY3JvcCB0ZXN0IGNhc2UgbmVlZHMgdGhpcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCByZXF1aXJlbWVudHMgb2YgLWJhc2UgKHZpZGVvY3JvcCB0ZXN0IGNhc2UgbmVlZHMgdGhpcykuCgkgICogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgRG9jdW1lbnQgc2xvcHB5IGhhbmRsaW5nIG9mIHN1YnNhbXBsZWQgY2hyb21hIHBsYW5lcyBpZgoJICBsZWZ0L3RvcCBjcm9wcGluZyBpcyBhbiBvZGQgbnVtYmVyLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOiAoaGFuZG9mZl9jYiksCgkgICh2aWRlb2Nyb3BfdGVzdF9jcm9wcGluZ19pbml0X2NvbnRleHQpLAoJICAodmlkZW9jcm9wX3Rlc3RfY3JvcHBpbmdfZGVpbml0X2NvbnRleHQpLAoJICAodmlkZW9jcm9wX3Rlc3RfY3JvcHBpbmcpLCAoY2hlY2tfMXgxX2J1ZmZlciksIChHU1RfU1RBUlRfVEVTVCksCgkgICh2aWRlb2Nyb3Bfc3VpdGUpLCAobWFpbik6CgkgIEFkZCBhbm90aGVyIHVuaXQgdGVzdCB0aGF0IGNyb3BzIHRoZSBpbnB1dCB0byAxeDEgKGFuZCBjaGVja3MKCSAgdGhhdCB0aGF0IHBpeGVsIGhhcyB0aGUgZXhwZWN0ZWQgdmFsdWVzIGluIGEgbnVtYmVyIG9mIGZvcm1hdHMpLgoKMjAwNi0wOS0wOCAxMTowNDoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC92aWRlb2Nyb3AvOiBTb21lIHF1aWNrIHRlc3RzIGluZGljYXRlIHRoYXQgaXQgZG9lc24ndCBtYWtlIGEgZ3JlYXQgZGVhbCBvZiBzZW5zZSB0byB1c2UgbGlib2lsIGhlcmUsIGF0IGxlYXN0IG5vdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9jcm9wL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6IChnc3RfdmlkZW9fY3JvcF9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb19jcm9wX3RyYW5zZm9ybV9wYWNrZWQpLAoJICAoZ3N0X3ZpZGVvX2Nyb3BfdHJhbnNmb3JtX3BsYW5hcik6CgkgIFNvbWUgcXVpY2sgdGVzdHMgaW5kaWNhdGUgdGhhdCBpdCBkb2Vzbid0IG1ha2UgYSBncmVhdCBkZWFsCgkgIG9mIHNlbnNlIHRvIHVzZSBsaWJvaWwgaGVyZSwgYXQgbGVhc3Qgbm90IGZvciB0aGUgbWVtY3B5KClzCgkgIHdlIGRvLCBzbyByZW1vdmUgbGlib2lsIHVzYWdlIHVudGlsIHRoZXJlIGlzIGNsZWFyIGV2aWRlbmNlCgkgIGl0IGFjdHVhbGx5IG1ha2VzIGEgcG9zaXRpdmUgZGlmZmVyZW5jZSBzb21ld2hlcmUuCgoyMDA2LTA5LTA2IDA5OjA1OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFJldmVydCBvbmUgY2hhbmdlIHRvIGZpeCBzdHJlYW1pbmcgYXZpIChhZGFwdGVyIHNpemUgIT0gZGF0YSBzaXplKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9yZWFkX3N1YmluZGV4ZXNfcHVsbCksCgkgIChnc3RfYXZpX2RlbXV4X3N5bmMpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyX3B1c2gpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSk6CgkgIFJldmVydCBvbmUgY2hhbmdlIHRvIGZpeCBzdHJlYW1pbmcgYXZpIChhZGFwdGVyIHNpemUgIT0gZGF0YSBzaXplKS4KCjIwMDYtMDktMDQgMTY6MjE6MTcgKzAwMDAgIEZyw6lkw6lyaWMgUmlzcyA8ZnJlZGVyaWMucmlzc0BnbWFpbC5jb20+CgoJICBnc3QvbWF0cm9za2EvOiBBZGQgc3VwcG9ydCBmb3IgVk9CU1VCIHN1YnRpdGxlIHRyYWNrcyBhbmQgemxpYi1jb21wcmVzc2VkIHRyYWNrcy4gTWFrZSBzdXJlIHdlIHN0YXJ0IG9uIGEga2V5ZnJhbWUgYWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcsOpZMOpcmljIFJpc3MgIDxmcmVkZXJpYy5yaXNzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfdHJhY2tfZnJlZSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcmVzZXQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3JlYWRfdHJhY2tfZW5jb2RpbmdzKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKSwgKGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9zdWJ0aXRsZV9jYXBzKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgIEFkZCBzdXBwb3J0IGZvciBWT0JTVUIgc3VidGl0bGUgdHJhY2tzIGFuZCB6bGliLWNvbXByZXNzZWQKCSAgdHJhY2tzLiBNYWtlIHN1cmUgd2Ugc3RhcnQgb24gYSBrZXlmcmFtZSBhZnRlciBhIHNlZWsuICgjMzQzMzQ4KQoKMjAwNi0wOS0wNCAxNTowNjoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS86IG5vdCBwZXJmZWN0IHlldCB0aG91Z2gsIG5lZWRzIHNvbWUgdHdlYWtpbmcgaW4gZmxhY2RlYzsgYWxzbywgc2Vla2luZyBjb3VsZCBiZSBiZXR0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3B1c2hfaGRyX2J1ZiksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF9mbGFjX2NvZGVjX3ByaXZfZGF0YSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF94aXBoX2NvZGVjX3ByaXZfZGF0YSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfdmlkZW9fY2FwcyksIChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2Fwcyk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBBZGQgYmFzaWMgRkxBQyBzdXBwb3J0ICgjMzExNTg2KSwgbm90IHBlcmZlY3QgeWV0IHRob3VnaCwgbmVlZHMgc29tZQoJICB0d2Vha2luZyBpbiBmbGFjZGVjOyBhbHNvLCBzZWVraW5nIGNvdWxkIGJlIGJldHRlci4KCSAgRG8gYmV0dGVyIGJvdW5kcyBjaGVja2luZyB3aGVuIGRlc2VyaWFsaXNpbmcgdm9yYmlzIHN0cmVhbSBoZWFkZXJzCgkgIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgb24gYmFkIGlucHV0LgoKMjAwNi0wOS0wNCAwOTozNDoyNSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6IFNlZWtpbmcgYmFjayBpbiBhIGZpbGUgY29udGFpbmluZyBhIENNTUwgc3RyZWFtIGVycm9ycyBvdXQgaWYgdGhlIHNlZWsgZ29lcyBiYWNrIHVwIHRvIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOiAoZ3N0X2NtbWxfZGVjX2NoYWluKToKCSAgU2Vla2luZyBiYWNrIGluIGEgZmlsZSBjb250YWluaW5nIGEgQ01NTCBzdHJlYW0gZXJyb3JzIG91dCBpZiB0aGUgc2VlawoJICBnb2VzIGJhY2sgdXAgdG8gdGhlIENNTUwgaGVhZGVycy4gVGhpcyBpcyBiZWNhdXNlIGFmdGVyIHRoZSBzZWVrIHRoZSB4bWwKCSAgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiA8P3htbCAuLi4/PiBpcyBzdWJtaXR0ZWQgdG8gdGhlIHhtbCBwYXJzZXIgYWdhaW4sCgkgIHdoaWNoIHJlc3VsdHMgaW4gYW4gZXJyb3IuIFRoZSBhdHRhY2hlZCBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCSAgRml4ZXMgIzM1MzkwOC4KCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmg6CgkgIEZpeCBhdXRob3JzIG5hbWUuCgoyMDA2LTA5LTAzIDEwOjQ2OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvdmlkZW9jcm9wLmM6IE1vcmUgdGVzdHM6IGNoZWNrIHBhc3N0aHJvdWdoIG1vZGUgYW5kIGNhcHMgdHJhbnNmb3JtIGluIGJvdGggZGlyZWN0aW9ucyB3aXRoIGZpeGVkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOiAoaGFuZG9mZl9jYiksCgkgIChidWZmZXJfcHJvYmVfY2IpLCAodGVzdF9jYXBzX3RyYW5zZm9ybSksICh0ZXN0X3Bhc3N0aHJvdWdoKSwKCSAgKG5vdGdzdF92YWx1ZV9saXN0X2dldF9udGhfaW50KSwgKHZpZGVvY3JvcF9zdWl0ZSk6CgkgIE1vcmUgdGVzdHM6IGNoZWNrIHBhc3N0aHJvdWdoIG1vZGUgYW5kIGNhcHMgdHJhbnNmb3JtIGluCgkgIGJvdGggZGlyZWN0aW9ucyB3aXRoIGZpeGVkIHZhbHVlcywgcmFuZ2VzIGFuZCBsaXN0cy4KCjIwMDYtMDktMDIgMTg6NDk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGQgdmlkZW9jcm9wIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgQWRkIHZpZGVvY3JvcCB0byBkb2NzLgoJICAqIGdzdC92aWRlb2Nyb3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5oOgoJICBNb3ZlIGJvaWxlcnBsYXRlIHN0dWZmIGFuZCBzdHJ1Y3R1cmVzIGludG8gYSBoZWFkZXIgZmlsZS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZpZGVvY3JvcC5jOiAodmlkZW9fY3JvcF9nZXRfdGVzdF9jYXBzKSwKCSAgKHRlc3RfdW5pdF9zaXplcyksICh2aWRlb2Nyb3BfdGVzdF9jcm9wcGluZ19pbml0X2NvbnRleHQpLAoJICAodmlkZW9jcm9wX3Rlc3RfY3JvcHBpbmdfZGVpbml0X2NvbnRleHQpLAoJICAodmlkZW9jcm9wX3Rlc3RfY3JvcHBpbmcpLCAodGVzdF9jcm9wcGluZyksICh2aWRlb2Nyb3Bfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0cyBmb3IgdmlkZW9jcm9wLgoKMjAwNi0wOS0wMiAxNTozMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFBvcnQvcmV3cml0ZSB2aWRlb2Nyb3AgZnJvbSBzY3JhdGNoIGZvciBHU3RyZWFtZXItMC4xMCwgYW5kIG1ha2UgaXQgc3VwcG9ydCBhbGwgZm9ybWF0cyB2aWRlb3NjYWxlIHN1cHBvcnRzICgjMzQ1NjUzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC92aWRlb2Nyb3AvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzogKGdzdF92aWRlb19jcm9wX2Jhc2VfaW5pdCksCgkgIChnc3RfdmlkZW9fY3JvcF9jbGFzc19pbml0KSwgKGdzdF92aWRlb19jcm9wX2luaXQpLAoJICAoZ3N0X3ZpZGVvX2Nyb3BfZ2V0X2ltYWdlX2RldGFpbHNfZnJvbV9jYXBzKSwKCSAgKGdzdF92aWRlb19jcm9wX2dldF91bml0X3NpemUpLCAoZ3N0X3ZpZGVvX2Nyb3BfdHJhbnNmb3JtX3BhY2tlZCksCgkgIChnc3RfdmlkZW9fY3JvcF90cmFuc2Zvcm1fcGxhbmFyKSwgKGdzdF92aWRlb19jcm9wX3RyYW5zZm9ybSksCgkgIChnc3RfdmlkZW9fY3JvcF90cmFuc2Zvcm1fZGltZW5zaW9uKSwKCSAgKGdzdF92aWRlb19jcm9wX3RyYW5zZm9ybV9kaW1lbnNpb25fdmFsdWUpLAoJICAoZ3N0X3ZpZGVvX2Nyb3BfdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X3ZpZGVvX2Nyb3Bfc2V0X2NhcHMpLAoJICAoZ3N0X3ZpZGVvX2Nyb3Bfc2V0X3Byb3BlcnR5KSwgKGdzdF92aWRlb19jcm9wX2dldF9wcm9wZXJ0eSksCgkgIChwbHVnaW5faW5pdCk6CgkgIFBvcnQvcmV3cml0ZSB2aWRlb2Nyb3AgZnJvbSBzY3JhdGNoIGZvciBHU3RyZWFtZXItMC4xMCwgYW5kIG1ha2UKCSAgaXQgc3VwcG9ydCBhbGwgZm9ybWF0cyB2aWRlb3NjYWxlIHN1cHBvcnRzICgjMzQ1NjUzKS4KCjIwMDYtMDktMDIgMTQ6NDU6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHN5cy92NGwyLzogV2hpdGVzcGFjZSBjbGVhbnVwcywgZGFzaGlmeSBwcm9wZXJ0eS1uYW1lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMi5jOgoJICAqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuYzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6CgkgIChnc3RfdjRsMl9vYmplY3RfaW5zdGFsbF9wcm9wZXJ0aWVzX2hlbHBlcik6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJICBXaGl0ZXNwYWNlIGNsZWFudXBzLCBkYXNoaWZ5IHByb3BlcnR5LW5hbWVzLgoKMjAwNi0wOS0wMiAxNDoyODo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgc3lzL3Y0bDIvOiBDbGVhbnVwIGVycm9yIG1lc3NhZ2VzIGFuZCB1bmlmeSBoZWFkZXIgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMi5jOgoJICAqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuYzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmg6CgkgICogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5jOgoJICAqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuaDoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5oOgoJICAqIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5jOiAoZ3N0X3Y0bDJfeG92ZXJsYXlfb3Blbik6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5Lmg6CgkgICogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOiAoZ3N0X3Y0bDJfZ2V0X2NhcGFiaWxpdGllcyksCgkgIChnc3RfdjRsMl9vcGVuKToKCSAgKiBzeXMvdjRsMi92NGwyX2NhbGxzLmg6CgkgICogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOiAoZ3N0X3Y0bDJzcmNfcXVldWVfZnJhbWUpLAoJICAoZ3N0X3Y0bDJzcmNfY2FwdHVyZV9pbml0KToKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmg6CgkgIENsZWFudXAgZXJyb3IgbWVzc2FnZXMgYW5kIHVuaWZ5IGhlYWRlciBjb21tZW50cwoKMjAwNi0wOC0zMCAxODowMTo1MiArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBBbm90aGVyIHNtYWxsIGZpeCB0byBzZXRfY2FwcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFub3RoZXIgc21hbGwgZml4IHRvIHNldF9jYXBzIGZ1bmN0aW9uLgoKMjAwNi0wOC0zMCAxMzozMDoxMyArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBTZW5kIG5ld19zZWdtZW50IGluIEdTVF9GT1JNQVRfVElNRSBpbnN0ZWFkIG9mIGluIEdTVF9GT1JNQVRfQllURVMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTZW5kIG5ld19zZWdtZW50IGluIEdTVF9GT1JNQVRfVElNRSBpbnN0ZWFkIG9mIGluIEdTVF9GT1JNQVRfQllURVMuCgoyMDA2LTA4LTMwIDExOjM2OjA2ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIEEgc21hbGwgZml4IHRvIHNldF9jYXBzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQSBzbWFsbCBmaXggdG8gc2V0X2NhcHMgZnVuY3Rpb24uCgoyMDA2LTA4LTMwIDExOjI3OjQwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBSZXNldCBlYWNoIHN0cmVhbXMgbGFzdF9mbG93IHRvIEdTVF9GTE9XX09LLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIChnc3RfcXRkZW11eF9kb19zZWVrKToKCSAgUmVzZXQgZWFjaCBzdHJlYW1zIGxhc3RfZmxvdyB0byBHU1RfRkxPV19PSy4KCSAgKGdzdF9xdGRlbXV4X2FjdGl2YXRlX3NlZ21lbnQpOgoJICBSZW1vdmluZyBteXN0aWMgbW9kaWZpY2F0aW9ucyBmb3IgZ29vZC4KCjIwMDYtMDgtMzAgMTE6MDc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogcHV0IGJhY2sgJ3NlZ21lbnQgc3RhcnQ8PXN0b3AnIGNoYW5nZSB0aGF0IHdhcyBteXN0aWNhbGx5IHJldmVydGVkIGJ5IHRoZSBsYXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9hY3RpdmF0ZV9zZWdtZW50KSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJlZSk6CgkgIHB1dCBiYWNrICdzZWdtZW50IHN0YXJ0PD1zdG9wJyBjaGFuZ2UgdGhhdCB3YXMgbXlzdGljYWxseSByZXZlcnRlZCBieQoJICB0aGUgbGFzdCBjb21taXQKCjIwMDYtMDgtMzAgMTA6NDM6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IHRoZSBidWlsZCBmb3IgZGlzYWJsZWQgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCksCgkgIChxdGRlbXV4X3BhcnNlX3RyZWUpOgoJICBGaXggdGhlIGJ1aWxkIGZvciBkaXNhYmxlZCBkZWJ1ZwoKMjAwNi0wOC0yOSAyMDo1OTo0NyArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgRml4ZWQgZnJhbWVyYXRlIG5lZ290aWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4ZWQgZnJhbWVyYXRlIG5lZ290aWF0aW9uLgoKMjAwNi0wOC0yOCAxNzo0NzoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogTWFrZSBzdXJlIHNlZ21lbnQgc3RhcnQ8PXN0b3AgaW4gd2VpcmQgcXVpY2t0aW1lIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9hY3RpdmF0ZV9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X2FkZF9zdHJlYW0pLCAocXRkZW11eF9wYXJzZV90cmFrKSwKCSAgKHF0ZGVtdXhfdmlkZW9fY2Fwcyk6CgkgIE1ha2Ugc3VyZSBzZWdtZW50IHN0YXJ0PD1zdG9wIGluIHdlaXJkIHF1aWNrdGltZSBmaWxlcy4KCjIwMDYtMDgtMjggMTY6NTk6MTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jIChnc3RfZHYxMzk0c3JjX2Zyb21fcmF3MTM5NGhhbmRsZSk6IE5ldyBoZWxwZXIgZnVuY3Rpb24gdG8gbGVzc2VuIHRoZSBpZmRlZnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA4LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jIChnc3RfZHYxMzk0c3JjX2Zyb21fcmF3MTM5NGhhbmRsZSk6CgkgIE5ldyBoZWxwZXIgZnVuY3Rpb24gdG8gbGVzc2VuIHRoZSBpZmRlZnMuCgkgIChHU1RfSU5GT19PQkpFQ1QpOgoJICAoZ3N0X2R2MTM5NHNyY19pc29fcmVjZWl2ZSk6IFVzZSBpdC4KCSAgKGdzdF9kdjEzOTRzcmNfY3JlYXRlKTogQWxzbyB1c2UgdGhlIGNvbnRyb2wgc29ja2V0cyBpbiBpZWM2MTg4MwoJICBtb2RlLgoJICAoZ3N0X2R2MTM5NHNyY19zdGFydCwgZ3N0X2R2MTM5NHNyY19zdG9wKTogQWx3YXlzIHVzZSBhIHNlcGFyYXRlCgkgIGhhbmRsZSBmb3IgQVZDIG9wZXJhdGlvbnM7IGZpeGVzICMzNDgyMzMuCgoyMDA2LTA4LTI4IDE0OjU5OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvdjRsMi92NGwyX2NhbGxzLmM6IGFkZCBjb21tZW50cyBhbmQgbW9yZSBkZWJ1ZyBsb2dnaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzogKGdzdF92NGwyX2ZpbGxfbGlzdHMpOgoJICBhZGQgY29tbWVudHMgYW5kIG1vcmUgZGVidWcgbG9nZ2luZwoKMjAwNi0wOC0yNyAxNzoxNDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVuYW1lIGFnYWluIChhdWRpb2Z4Z29vZCAtPiBhdWRpb2Z4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVkaW9meGdvb2QueG1sOgoJICAqIGdzdC9hdWRpb2Z4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdWRpb2Z4L2F1ZGlvZnguYzoKCSAgKiBnc3QvYXVkaW9meGdvb2QvLmN2c2lnbm9yZToKCSAgKiBnc3QvYXVkaW9meGdvb2QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZnhnb29kL2F1ZGlvZnguYzoKCSAgKiBnc3QvYXVkaW9meGdvb2QvYXVkaW9wYW5vcmFtYS5jOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmg6CgkgIFJlbmFtZSBhZ2FpbiAoYXVkaW9meGdvb2QgLT4gYXVkaW9meCkuCgoyMDA2LTA4LTI3IDEzOjEyOjUyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEluaXRpYWx6ZSB2YXJpYWJsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfbmV4dF9kYXRhX2J1ZmZlciksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9zY2FuKToKCSAgSW5pdGlhbHplIHZhcmlhYmxlcy4KCjIwMDYtMDgtMjUgMTY6MjE6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4Lio6IE1vcmUgYXR0ZW1wdHMgdG8gdHVybiB0aGlzIGludG8gcmVhZGFibGUgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9jbGFzc19pbml0KSwKCSAgKGdzdF9hdmlfZGVtdXhfaW5pdCksIChnc3RfYXZpX2RlbXV4X2ZpbmFsaXplKSwKCSAgKGdzdF9hdmlfZGVtdXhfcmVzZXQpLCAoZ3N0X2F2aV9kZW11eF9pbmRleF9sYXN0KSwKCSAgKGdzdF9hdmlfZGVtdXhfaW5kZXhfbmV4dCksIChnc3RfYXZpX2RlbXV4X2luZGV4X2VudHJ5X2Zvcl90aW1lKSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3ViaW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9wYXJzZV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9pbmRleCksIChnc3RfYXZpX2RlbXV4X3BlZWtfdGFnKSwKCSAgKGdzdF9hdmlfZGVtdXhfbmV4dF9kYXRhX2J1ZmZlciksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9zY2FuKSwKCSAgKGdzdF9hdmlfZGVtdXhfbWFzc2FnZV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X2NhbGN1bGF0ZV9kdXJhdGlvbnNfZnJvbV9pbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXJfcHVsbCksIChnc3RfYXZpX2RlbXV4X2RvX3NlZWspLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAoZ3N0X2F2aV9kZW11eF9sb29wKSwKCSAgKGdzdF9hdmlfZGVtdXhfY2hhaW4pLCAoZ3N0X2F2aV9kZW11eF9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9hdmlfZGVtdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIE1vcmUgYXR0ZW1wdHMgdG8gdHVybiB0aGlzIGludG8gcmVhZGFibGUgY29kZS4KCSAgRG9uJ3QgbGVhayBhZGFwdGVycy4KCSAgQ2FsY3VsYXRlIGR1cmF0aW9uIGFjY29yZGluZyB0byBpbmRleCBtb3JlIGVmZmljaWVudGx5LgoJICBEb24ndCB0cnkgdG8gYWN0IGxpa2Ugd2UgZHJpdmUgdGhlIHBpcGVsaW5lIGluIGNoYWluIG1vZGUuCgoyMDA2LTA4LTI1IDA5OjUzOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2Fubm9kZXgvZ3N0Y21tbHV0aWxzLmM6IEZpeCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHV0aWxzLmM6IChnc3RfY21tbF9jbG9ja190aW1lX2Zyb21fbnB0KToKCSAgRml4IGJ1aWxkLgoKMjAwNi0wOC0yNSAwOTo0Mjo0MyArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBleHQvYW5ub2RleC9nc3Rhbm5vZGV4LmM6IERvIHNvbWUgZXh0cmEgc2FuaXR5IGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRybyBhdCBubnZhIGRvdCBvcmc+CgkgICogZXh0L2Fubm9kZXgvZ3N0YW5ub2RleC5jOiAoZ3N0X2Fubm9kZXhfZ3JhbnVsZV90b190aW1lKToKCSAgRG8gc29tZSBleHRyYSBzYW5pdHkgY2hlY2tzLgoJICBGaXhlcyAjMzUwMzQwLgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzogKGdzdF9jbW1sX2VuY19jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2NtbWxfZW5jX3BhcnNlX3RhZ19oZWFkKSwgKGdzdF9jbW1sX2VuY19wYXJzZV90YWdfY2xpcCksCgkgIChnc3RfY21tbF9lbmNfcHVzaF9jbGlwKSwgKGdzdF9jbW1sX2VuY19wdXNoKToKCSAgQ2hlY2sgaWYgY2xpcC0+c3RhcnRfdGltZSBpcyB2YWxpZCBiZWZvcmUgYWRkaW5nIHRoZSBjbGlwIHRvIHRoZQoJICB0cmFjayBsaXN0LgoJICBSZXNldCBlbmMtPnByZWFtYmxlIGdvaW5nIGZyb20gUEFVU0VEIHRvIFJFQURZLgoJICBEb24ndCB1c2UgR1NUX0ZMT1dfVU5FWFBFQ1RFRCBmb3Igd3JvbmcgdXNhZ2Ugb2YgdGhlIGVsZW1lbnQsIGl0IGlzCgkgIG9ubHkgdXNlZCBmb3IgRU9TLgoJICBPbmx5IHBvc3QgYW4gZXJyb3IgbWVzc2FnZSBpZiB3ZSB3ZXJlIHRoZSBvbmUgdGhhdCBjcmVhdGVkIHRoZSBmYXRhbAoJICBHc3RGbG93UmV0dXJuIHZhbHVlLgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWx1dGlscy5jOiAoZ3N0X2NtbWxfY2xvY2tfdGltZV9mcm9tX25wdCksCgkgIChnc3RfY21tbF9jbG9ja190aW1lX3RvX2dyYW51bGUpLCAoZ3N0X2NtbWxfdHJhY2tfbGlzdF9oYXNfY2xpcCk6CgkgIFBhcnNlIHRoZSBzZWNvbmRzIGZpZWxkIG9mIHRoZSBucHQtc2VjIHRpbWUgZm9ybWF0IHVzaW5nICVsbHUgcmF0aGVyIHRoYW4KCSAgJWQgYW5kIGNoZWNrIHRoYXQgdGhlIHZhbHVlIHNjYWxlZCBieSBHU1RfU0VDT05EIGRvZXNuJ3Qgb3ZlcmZsb3cuCgkgIFVzZSBndWludDY0KHMpIHRvIHJlcHJlc2VudCB0aGUga2V5aW5kZXggYW5kIGtleW9mZnNldCBmaWVsZHMgb2YgYSBncmFudWxlcG9zLgoJICBMb29rdXAgYSBjbGlwJ3MgdHJhY2sgd2l0aCBjbGlwLT50cmFjayByYXRoZXIgdGhhbiBjbGlwLT5pZCB3aGljaAoJICBtYWtlcyBubyBzZW5zZS4KCSAgSWRlbnRpZnkgYSBjbGlwIGJ5IGl0cyB0cmFjayBhbmQgc3RhcnQgdGltZSBhbmQgbm90IGl0cyB4bWwgaWQuCgkgIGRvIHNvbWUgbW9yZSBpbnB1dCBjaGVja2luZyBhbmQgbWFrZSBzdXJlIHdlIGRvbid0IGRvIHVuZGVmaW5lZCBzaGlmdHMuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGRlYy5jOiAoc2V0dXBfY21tbGRlYyksCgkgICh0ZWFyZG93bl9jbW1sZGVjKSwgKGNoZWNrX291dHB1dF9idWZmZXJfaXNfZXF1YWwpLCAocHVzaF9kYXRhKSwKCSAgKGNtbWxfdGFnX21lc3NhZ2VfcG9wKSwgKGNoZWNrX2hlYWRlcnMpLCAocHVzaF9jbGlwX2Z1bGwpLAoJICAocHVzaF9jbGlwKSwgKHB1c2hfZW1wdHlfY2xpcCksIChjaGVja19vdXRwdXRfY2xpcCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChjbW1sZGVjX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6IChzZXR1cF9jbW1sZW5jKSwKCSAgKHRlYXJkb3duX2NtbWxlbmMpLCAoY2hlY2tfb3V0cHV0X2J1ZmZlcl9pc19lcXVhbCksIChwdXNoX2RhdGEpLAoJICAoY2hlY2tfaGVhZGVycyksIChwdXNoX2NsaXApLCAoY2hlY2tfY2xpcF90aW1lcyksIChjaGVja19jbGlwKSwKCSAgKGNoZWNrX2VtcHR5X2NsaXApLCAoR1NUX1NUQVJUX1RFU1QpLCAoY21tbGVuY19zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSBjaGVja3MuCgoyMDA2LTA4LTI0IDE5OjAwOjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWtlIGFsc28gdGhlIHBhbi1wcm9wZXJ0eSBmbG9hdCAoc2F2ZXMgc2NhbGluZyBhbmQgeWllbGRzIGJldHRlciByZXNvbHV0aW9uKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVkaW9meGdvb2QvYXVkaW9wYW5vcmFtYS5jOiAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fbTJzX2ludCksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtX3Myc19pbnQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9tMnNfZmxvYXQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9zMnNfZmxvYXQpOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmg6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9wYW5vcmFtYS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGFsc28gdGhlIHBhbi1wcm9wZXJ0eSBmbG9hdCAoc2F2ZXMgc2NhbGluZyBhbmQgeWllbGRzIGJldHRlcgoJICByZXNvbHV0aW9uKQoKMjAwNi0wOC0yNCAxODoyMzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F1ZGlvZnhnb29kL2F1ZGlvcGFub3JhbWEuYzogQ2hhbmdlTG9nIHN1cmdlcnkgdG8gYWRkIGN5bWF4J3MgcmVhbCBuYW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmM6IChnc3RfYXVkaW9fcGFub3JhbWFfc2V0X2NhcHMpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9tMnNfZmxvYXQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9zMnNfZmxvYXQpOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgY3ltYXgncyByZWFsIG5hbWUKCjIwMDYtMDgtMjQgMTg6MTc6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLio6IEFkZGVkIGZsb2F0IHN1cHBvcnQgKHRoYW5rcyBjeW1heCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1ZGlvZnhnb29kL2F1ZGlvcGFub3JhbWEuYzogKGdzdF9hdWRpb19wYW5vcmFtYV9zZXRfY2FwcyksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtX20yc19pbnQpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3RyYW5zZm9ybV9zMnNfaW50KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fbTJzX2Zsb2F0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fczJzX2Zsb2F0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm0pOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmg6CgkgIEFkZGVkIGZsb2F0IHN1cHBvcnQgKHRoYW5rcyBjeW1heCkKCjIwMDYtMDgtMjQgMTQ6MTY6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmM6IEZpeCBkb2NzICYgZGVidWcgY2F0ZWdvcnkuIEFkZCBGaXhtZSBmb3Igdm9sdW1lIHBhbiBsZXZlbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmM6CgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtX20ycyk6CgkgIEZpeCBkb2NzICYgZGVidWcgY2F0ZWdvcnkuIEFkZCBGaXhtZSBmb3Igdm9sdW1lIHBhbiBsZXZlbHMuCgoyMDA2LTA4LTI0IDEzOjUxOjE1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IHVuYnJlYWsgQVZJIGluZGV4IGhhbmRsaW5nLCBzb21lIG1vcmUgZGVidWcsIHJlbW92ZSBhbiBvYnNvbGV0ZSBhZGFwdGVyX2ZsdXNoIHRoYXQgY2F1c2VkIHN0cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9yZWFkX3N1YmluZGV4ZXNfcHVsbCksCgkgIChnc3RfYXZpX2RlbXV4X3N5bmMpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyX3B1c2gpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyX3B1bGwpLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksCgkgIChnc3RfYXZpX2RlbXV4X2NoYWluKToKCSAgdW5icmVhayBBVkkgaW5kZXggaGFuZGxpbmcsIHNvbWUgbW9yZSBkZWJ1ZywgcmVtb3ZlIGFuIG9ic29sZXRlCgkgIGFkYXB0ZXJfZmx1c2ggdGhhdCBjYXVzZWQgc3RyZWFtaW5nIHRvIHdhbmRlciBvZmYgaW4gdGhlIHdpbGQKCjIwMDYtMDgtMjQgMTE6MjE6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4Lio6IFNvbWUgbW9yZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3VwZXJpbmRleCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1YmluZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfb2RtbCksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX2luZGV4KSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfY2FsY3VsYXRlX2R1cmF0aW9uc19mcm9tX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcl9wdXNoKSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcl9wdWxsKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIFNvbWUgbW9yZSBjbGVhbnVwcy4KCSAgRml4IHRvdGFsRnJhbWVzIHBhcnNpbmcgaW4gT0RNTC4KCSAgRGlzYWJsZSB1c2Ugb2YgaW5kZXggZm9yIGxlbmd0aCBjYWxjdWxhdGlvbiBpbiBjYXNlIG9mIE9ETUwgYXMgdGhpcyBpcwoJICBicm9rZW4gbm93LgoKMjAwNi0wOC0yNCAxMDowMzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogVXNlIGxpYmdzdHRhZyBoZWxwZXIgZnVuY3Rpb24gaGVyZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY191cGRhdGVfbWV0YWRhdGEpOgoJICBVc2UgbGliZ3N0dGFnIGhlbHBlciBmdW5jdGlvbiBoZXJlIHRvby4KCjIwMDYtMDgtMjQgMDk6MjQ6MTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzogUG9zdCBhdWRpbyBjb2RlYyBhbmQgYXZlcmFnZSBiaXRyYXRlIHRhZ3Mgb24gYnVzICgjMzQ0NDcyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBhdCBjaXJjdWxhci1jaGFvcy5vcmc+CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX3Bvc3RfdGFncyksCgkgIChnc3Rfd2F2cGFja19kZWNfY2hhaW4pOgoJICBQb3N0IGF1ZGlvIGNvZGVjIGFuZCBhdmVyYWdlIGJpdHJhdGUgdGFncyBvbiBidXMgKCMzNDQ0NzIpLgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfYmFzZV9pbml0KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NyY19xdWVyeSk6CgkgIEZvcndhcmQgcXVlcmllcyBpbiBvdGhlciBmb3JtYXRzIChCWVRFIGZvcm1hdCBpbiBwYXJ0aWN1bGFyKQoJICB1cHN0cmVhbTsgYWRkIFNlYmFzdGlhbiB0byBhdXRob3JzLgoKMjAwNi0wOC0yNCAwMDo0MDowNyArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgRml4IHNldF9jYXBzIHRvIHNldCB3aWR0aCBhbmQgaGVpZ2h0IHRvIHRoZSB2YWx1ZXMgdGhlIGRyaXZlciBpcyByZWFsbHkgd29ya2luZyB3aXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHNldF9jYXBzIHRvIHNldCB3aWR0aCBhbmQgaGVpZ2h0IHRvIHRoZSB2YWx1ZXMgdGhlIGRyaXZlciBpcyByZWFsbHkgd29ya2luZyB3aXRoLgoKMjAwNi0wOC0yMyAxNTozMzo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC4qOiBJbml0aWFsIHN0cmVhbWluZyBzdXBwb3J0IGZvciBhdmlkZW11eCAoZml4ZXMgIzMzNjQ2NSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9jbGFzc19pbml0KSwKCSAgKGdzdF9hdmlfZGVtdXhfaW5pdCksIChnc3RfYXZpX2RlbXV4X2Rpc3Bvc2UpLAoJICAoZ3N0X2F2aV9kZW11eF9yZXNldCksIChnc3RfYXZpX2RlbXV4X2luZGV4X25leHQpLAoJICAoZ3N0X2F2aV9kZW11eF9pbmRleF9lbnRyeV9mb3JfdGltZSksIChnc3RfYXZpX2RlbXV4X3NyY19jb252ZXJ0KSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X2F2aV9kZW11eF9wZWVrX2NodW5rX2luZm8pLCAoZ3N0X2F2aV9kZW11eF9wZWVrX2NodW5rKSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2luaXRfcHVzaCksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9pbml0X3B1bGwpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdWJpbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X3JlYWRfc3ViaW5kZXhlc19wdXNoKSwKCSAgKGdzdF9hdmlfZGVtdXhfcmVhZF9zdWJpbmRleGVzX3B1bGwpLCAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdHJlYW0pLAoJICAoc29ydCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX2luZGV4KSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3luYyksIChnc3RfYXZpX2RlbXV4X3BlZWtfdGFnKSwKCSAgKGdzdF9hdmlfZGVtdXhfbWFzc2FnZV9pbmRleCksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXJfcHVzaCksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXJfcHVsbCksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKSwKCSAgKHB1c2hfdGFnX2xpc3RzKSwgKGdzdF9hdmlfZGVtdXhfbG9vcCksIChnc3RfYXZpX2RlbXV4X2NoYWluKSwKCSAgKGdzdF9hdmlfZGVtdXhfc2lua19hY3RpdmF0ZSksIChnc3RfYXZpX2RlbXV4X2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2F2aV9kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgSW5pdGlhbCBzdHJlYW1pbmcgc3VwcG9ydCBmb3IgYXZpZGVtdXggKGZpeGVzICMzMzY0NjUpCgoyMDA2LTA4LTIzIDEwOjMwOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiBGaXggbWVtIGxlYWssIHNlbmQgbmV3c2VnbWVudCBldmVudCBvbiBjb3JyZWN0aW9uIHBhZCBhcyB3ZWxsICgjMzUyNDc2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX3B1c2hfYmxvY2spOgoJICBGaXggbWVtIGxlYWssIHNlbmQgbmV3c2VnbWVudCBldmVudCBvbiBjb3JyZWN0aW9uIHBhZAoJICBhcyB3ZWxsICgjMzUyNDc2KS4KCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX2Jhc2VfaW5pdCk6CgkgIFJlc3RvcmUgb3JpZ2luYWwgYXV0aG9yIChvbiBTZWJhc3RpYW4ncyByZXF1ZXN0KS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QtcGx1Z2lucy1iYWQuc3VwcDoKCSAgQWRkIChzbyBmYXIgZW1wdHkpIHN1cHByZXNzaW9uIGZpbGUgZm9yIC1iYWQuIFJlbW92ZQoJICB3YXZwYWNrZW5jIHRlc3QgZnJvbSBWQUxHUklORF9UT19GSVggbm93IHRoYXQgdGhlIGxlYWsKCSAgaXMgZml4ZWQuCgoyMDA2LTA4LTIzIDA5OjIyOjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay86IEFkZCB1bml0IHRlc3RzIGZvciB3YXZwYWNrIGVsZW1lbnRzICgjMzUyNDc2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBhdCBjaXJjdWxhci1jaGFvcy5vcmc+CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy93YXZwYWNrZGVjLmM6IChzZXR1cF93YXZwYWNrZGVjKSwKCSAgKGNsZWFudXBfd2F2cGFja2RlYyksIChHU1RfU1RBUlRfVEVTVCksICh3YXZwYWNrZGVjX3N1aXRlKSwgKG1haW4pOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3dhdnBhY2tlbmMuYzogKHNldHVwX3dhdnBhY2tlbmMpLAoJICAoY2xlYW51cF93YXZwYWNrZW5jKSwgKEdTVF9TVEFSVF9URVNUKSwgKHdhdnBhY2tlbmNfc3VpdGUpLCAobWFpbik6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvd2F2cGFja3BhcnNlLmM6ICh3YXZwYWNrcGFyc2VfZm91bmRfcGFkKSwKCSAgKHNldHVwX3dhdnBhY2twYXJzZSksIChjbGVhbnVwX3dhdnBhY2twYXJzZSksIChHU1RfU1RBUlRfVEVTVCksCgkgICh3YXZwYWNrcGFyc2Vfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB1bml0IHRlc3RzIGZvciB3YXZwYWNrIGVsZW1lbnRzICgjMzUyNDc2KS4KCjIwMDYtMDgtMjMgMDg6NTI6NTAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFkZCBkb2NzIGZvciB3YXZwYWNrIGVsZW1lbnRzICgjMzUyNDc2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBhdCBjaXJjdWxhci1jaGFvcy5vcmc+CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYWNrLnhtbDoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIEFkZCBkb2NzIGZvciB3YXZwYWNrIGVsZW1lbnRzICgjMzUyNDc2KS4KCjIwMDYtMDgtMjIgMjA6Mzk6MjYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBGaXhlZCBxdWVyeSBzaXplIHRvIHdvcmsgd2l0aCBkcml2ZXJzIHRoYXQgdXNlcyBpbnRlcm1lZGlhdGUgc3RlcCBsaWtlICJ3aWR0aCAqIGhlaWdodCIgdG8gZmluZCBjbG9zZXN0IHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlZCBxdWVyeSBzaXplIHRvIHdvcmsgd2l0aCBkcml2ZXJzIHRoYXQgdXNlcyBpbnRlcm1lZGlhdGUgc3RlcCBsaWtlICJ3aWR0aCAqIGhlaWdodCIgdG8gZmluZCBjbG9zZXN0IHNpemUuCgoyMDA2LTA4LTIyIDE3OjIwOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6IFRoZXJlIGlzIG5vIHRhZ2xpYm11eCBlbGVtZW50IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgVGhlcmUgaXMgbm8gdGFnbGlibXV4IGVsZW1lbnQgLi4uCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICBVc2UgJyUnIHJhdGhlciB0aGFuICcmcGVyYzsnIGluIGd0ay1kb2MgYmx1cmIsIGRvY3MgYnVpbGQKCSAgd2FzIGNvbXBsYWluaW5nIGFib3V0IHVua25vd24gZW50aXR5IGhlcmUuCgoyMDA2LTA4LTIyIDE3OjAyOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC4qOiBNYXJrIERJU0NPTlQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwKCSAgKGdzdF9hdmlfZGVtdXhfZG9fc2VlayksIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zZWVrKSwKCSAgKGdzdF9hdmlfZGVtdXhfcHJvY2Vzc19uZXh0X2VudHJ5KToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIE1hcmsgRElTQ09OVC4KCSAgUmVtb3ZlIG9sZCB1bnVzZWQgZmllbGRzIGFuZCByZW9yZGVyIHRoZSBzdHJ1Y3QgYSBiaXQuCgoyMDA2LTA4LTIyIDE2OjQ1OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX3NlbmQpLCAoZ3N0X3J0c3BzcmNfY2xvc2UpLCAoZ3N0X3J0c3BzcmNfcGxheSksCgkgIChnc3RfcnRzcHNyY19wYXVzZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiAoZ3N0X29zc19zaW5rX29wZW4pLAoJICAoZ3N0X29zc19zaW5rX3ByZXBhcmUpLCAoZ3N0X29zc19zaW5rX3VucHJlcGFyZSk6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDgtMjIgMTY6NDI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4Lio6IFByZWNhbGMgbW9zdCBvZiB0aGUgZHVyYXRpb24gcXVlcnkgZm9yIGVhY2ggc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9hdmlfZGVtdXhfaW5kZXhfZW50cnlfZm9yX3RpbWUpLAoJICAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9pbml0KSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2luZGV4KSwgKGdzdF9hdmlfZGVtdXhfcGVla190YWcpLAoJICAoZ3N0X2F2aV9kZW11eF9uZXh0X2RhdGFfYnVmZmVyKSwKCSAgKGdzdF9hdmlfZGVtdXhfY2FsY3VsYXRlX2R1cmF0aW9uc19mcm9tX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksIChnc3RfYXZpX2RlbXV4X2RvX3NlZWspLAoJICAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc2VlayksIChnc3RfYXZpX2RlbXV4X2FnZ3JlZ2F0ZWRfZmxvdyksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksIChnc3RfYXZpX2RlbXV4X2xvb3ApLAoJICAoZ3N0X2F2aV9kZW11eF9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2F2aV9kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgUHJlY2FsYyBtb3N0IG9mIHRoZSBkdXJhdGlvbiBxdWVyeSBmb3IgZWFjaCBzdHJlYW0uCgkgIE1ha2Ugc2Vla2luZyBtb3JlIGNvcnJlY3QuCgkgIFVzZSBHc3RTZWdtZW50IHRvIHRyYWNrIHBvc2l0aW9uIGFuZCBkdXJhdGlvbi4KCSAgQ29kZSBjbGVhbnVwcyBhbmQgbGVhayBmaXhlcy4KCSAgQ2FsY3VsYXRlIGNvcnJlY3QgdG90YWwgZHVyYXRpb24gYmFzZWQgb24gaW5kZXggbGVuZ3RoLgoKMjAwNi0wOC0yMiAxMzo1MzozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogSWYgc3RyaW5ncyBpbiB0ZXh0IGZpZWxkcyBhcmUgbWFya2VkIElTTzg4NTktMSwgYnV0IGNvbnRhaW4gdmFsaWQgVVRGLTggYWxyZWFkeSwgdGhlbiBoYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChwYXJzZV90ZXh0X2lkZW50aWZpY2F0aW9uX2ZyYW1lKSwKCSAgKHBhcnNlX2luc2VydF9zdHJpbmdfZmllbGQpOgoJICBJZiBzdHJpbmdzIGluIHRleHQgZmllbGRzIGFyZSBtYXJrZWQgSVNPODg1OS0xLCBidXQgY29udGFpbgoJICB2YWxpZCBVVEYtOCBhbHJlYWR5LCB0aGVuIGhhbmRsZSB0aGVtIGFzIFVURi04IGFuZCBpZ25vcmUKCSAgdGhlIGVuY29kaW5nLiAoIzM1MTc5NCkKCjIwMDYtMDgtMjIgMTI6Mjg6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLio6IE1ha2UgZmxhYy1pbi1vZ2cgd29yayAoIzM1MjEwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19zY2FuX2dvdF9mcmFtZSksCgkgIChnc3RfZmxhY19kZWNfd3JpdGUpLCAoZ3N0X2ZsYWNfZGVjX2xvb3ApLAoJICAoZ3N0X2ZsYWNfZGVjX3NpbmtfZXZlbnQpLCAoZ3N0X2ZsYWNfZGVjX2NoYWluKSwKCSAgKGdzdF9mbGFjX2RlY19zcmNfcXVlcnkpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSAgTWFrZSBmbGFjLWluLW9nZyB3b3JrICgjMzUyMTAwKS4KCjIwMDYtMDgtMjIgMTI6MTA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbW9ub3Njb3BlL2dzdG1vbm9zY29wZS5jOiBEb24ndCB1bnJlZiBidWZmZXJzIG9mIHdoaWNoIHdlJ3ZlIGFscmVhZHkgZ2l2ZW4gYXdheSBvd25lcnNoaXAgdG8gdGhlIGFkYXB0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6IChnc3RfbW9ub3Njb3BlX2NoYWluKToKCSAgRG9uJ3QgdW5yZWYgYnVmZmVycyBvZiB3aGljaCB3ZSd2ZSBhbHJlYWR5IGdpdmVuIGF3YXkKCSAgb3duZXJzaGlwIHRvIHRoZSBhZGFwdGVyLgoKMjAwNi0wOC0yMiAxMDozMjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiBNYWtlIG1ldGFkYXRhIGV4dHJhY3Rpb24gYWN0dWFsbHkgd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfY2hhaW5fcGFyc2VfY29tbWVudHMpOgoJICBNYWtlIG1ldGFkYXRhIGV4dHJhY3Rpb24gYWN0dWFsbHkgd29yay4KCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogKGdzdF9zcGVleGVuY19iYXNlX2luaXQpLAoJICAoZ3N0X3NwZWV4ZW5jX2luaXQpLCAoZ3N0X3NwZWV4ZW5jX2NyZWF0ZV9tZXRhZGF0YV9idWZmZXIpLAoJICAoZ3N0X3NwZWV4ZW5jX2NoYWluKToKCSAgRml4IG1ldGFkYXRhIHdyaXRpbmc6IHJlcGxhY2Ugb2xkIGNvZGUgd2hpY2ggd3JvdGUgY29tcGxldGVseQoJICBicm9rZW4gdGFncyB3aXRoIGxpYmdzdHRhZy1iYXNlZCBjb2RlLiBQbHVzIG1pc2NlbGxhbmVvdXMKCSAgY29kZSBjbGVhbnVwcyAodXNlIHN0YXRpYyBwYWQgdGVtcGxhdGVzIGV0Yy4pIGFuZCBhIGJ1bmNoCgkgIG9mIGxlYWsgZml4ZXMuCgoyMDA2LTA4LTIxIDE5OjM0OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXVkaW9wYW5vcmFtYS86IGRpZSEgZGllISBkaWUhIHlvdSBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVuIHRoZXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdWRpb3Bhbm9yYW1hLy5jdnNpZ25vcmU6CgkgICogZ3N0L2F1ZGlvcGFub3JhbWEvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvcGFub3JhbWEvYXVkaW9meC5jOgoJICAqIGdzdC9hdWRpb3Bhbm9yYW1hL2F1ZGlvcGFub3JhbWEuYzoKCSAgKiBnc3QvYXVkaW9wYW5vcmFtYS9hdWRpb3Bhbm9yYW1hLmg6CgkgIGRpZSEgZGllISBkaWUhIHlvdSBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVuIHRoZXJlCgoyMDA2LTA4LTIxIDE2OjI0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBTb21lIG1vcmUgY29uc3RpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2FkZF9zdHJlYW0pLCAocXRkZW11eF9wYXJzZSksCgkgIChxdGRlbXV4X25vZGVfZHVtcF9mb3JlYWNoKSwgKHF0ZGVtdXhfcGFyc2VfdHJhayksCgkgIChxdGRlbXV4X3ZpZGVvX2NhcHMpLCAocXRkZW11eF9hdWRpb19jYXBzKToKCSAgU29tZSBtb3JlIGNvbnN0aWZpY2F0aW9uLgoJICBGaXggc29tZSBwYWxldHRlZCBkYXRhIGZvcm1hdHMgYWdhaW4uCgkgIEZpeCB1bGF3L2FsYXcgaW4gcXQuCgkgIFNldCBjb3JyZWN0IGNhcHMgZm9yIHJhdyBSR0IuCgkgIEFkZCBzdXBwb3J0IGZvciB5dXYyLCB3aGljaCBpcyBsaWtlIFl1djIuCgkgIEFkZCBzdXBwb3J0IGZvciByYXcgYXVkaW8gd2l0aCB0aGUgTk9ORSBmb3VyY2MsIHdoaWNoIGlzIGxpa2UgcmF3LgoKMjAwNi0wOC0yMSAxMzo1OTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC93YXZwYWNrLzogTW9yZSBjbGVhbi11cHM6IHVzZSBzaG9ydGVyIHZhcmlhYmxlIG5hbWVzIHRvIG1ha2UgY29kZSBlYXNpZXIgdG8gcmVhZDsgcHJlZml4IHN0cnVjdHVyZXMgd2UgZGVmaW5lIHdpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IChnc3Rfd2F2cGFja19lbmNfaW5pdCksCgkgIChnc3Rfd2F2cGFja19lbmNfZmluYWxpemUpLCAoZ3N0X3dhdnBhY2tfZW5jX3Npbmtfc2V0X2NhcHMpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3NldF93cF9jb25maWcpLCAoZ3N0X3dhdnBhY2tfZW5jX2Zvcm1hdF9zYW1wbGVzKSwKCSAgKGdzdF93YXZwYWNrX2VuY19wdXNoX2Jsb2NrKSwgKGdzdF93YXZwYWNrX2VuY19jaGFpbiksCgkgIChnc3Rfd2F2cGFja19lbmNfcmV3cml0ZV9maXJzdF9ibG9jayksCgkgIChnc3Rfd2F2cGFja19lbmNfc2lua19ldmVudCksIChnc3Rfd2F2cGFja19lbmNfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19zZXRfcHJvcGVydHkpLCAoZ3N0X3dhdnBhY2tfZW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc3JjX3F1ZXJ5KSwgKGdzdF93YXZwYWNrX3BhcnNlX3NyY19ldmVudCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbml0KSwgKGdzdF93YXZwYWNrX3BhcnNlX2dldF91cHN0cmVhbV9sZW5ndGgpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfbG9vcCk6CgkgIE1vcmUgY2xlYW4tdXBzOiB1c2Ugc2hvcnRlciB2YXJpYWJsZSBuYW1lcyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvCgkgIHJlYWQ7IHByZWZpeCBzdHJ1Y3R1cmVzIHdlIGRlZmluZSB3aXRoICdHc3QnIHRvIG1ha2UgaXQgY2xlYXJlcgoJICB3aGVyZSB0aGV5IGNvbWUgZnJvbS4KCjIwMDYtMDgtMjEgMTM6MjY6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLmM6IEZpeCBjYXBzIHNldCBvbiBidWZmZXJzIGFuZCB0ZW1wbGF0ZSBjYXBzIChvdXRwdXQgaXMgZnJhbWVkKSBhbmQgbWFrZSB0aGVtIG1hdGNoICgjMzUxNjYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5jOiAoZ3N0X3dhdnBhY2tfZW5jX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3NldF93cF9jb25maWcpLCAoZ3N0X3dhdnBhY2tfZW5jX3B1c2hfYmxvY2spLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2NoYWluKSwgKGdzdF93YXZwYWNrX2VuY19yZXdyaXRlX2ZpcnN0X2Jsb2NrKSwKCSAgKGdzdF93YXZwYWNrX2VuY19zaW5rX2V2ZW50KToKCSAgRml4IGNhcHMgc2V0IG9uIGJ1ZmZlcnMgYW5kIHRlbXBsYXRlIGNhcHMgKG91dHB1dCBpcyBmcmFtZWQpCgkgIGFuZCBtYWtlIHRoZW0gbWF0Y2ggKCMzNTE2NjMpOyB1c2UgR1NUX1dBUk5JTkdfT0JKRUNUIGluc3RlYWQgb2YKCSAgR1NUX0VMRU1FTlRfV0FSTklORzsgc2ltcGxpZnkgcHVzaF9ibG9jaygpOyBkbyBzb21lIHNtYWxsCgkgIGNsZWFuLXVwcyBoZXJlIGFuZCB0aGVyZTsgZml4IG1lbWxlYWsgKCMzNTE2NjMpLgoKMjAwNi0wOC0yMSAxMzoxMjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6IEZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gYXVkaW9wYW5vcmFtYSB0ZXN0IHN1aXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9hdWRpb3Bhbm9yYW1hLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gYXVkaW9wYW5vcmFtYSB0ZXN0IHN1aXRlLgoKMjAwNi0wOC0yMSAxMTozNDo0MSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IGlnbm9yZSBidWlsdCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBidWlsdCBmaWxlCgoyMDA2LTA4LTIxIDEwOjQ2OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9NYWtlZmlsZS5hbTogRml4IHRoZSBidWlsZCBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgRml4IHRoZSBidWlsZCBhZ2Fpbi4KCjIwMDYtMDgtMjEgMDk6MjE6MjcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hdWRpb2Z4Z29vZC86IHJlc3VibWl0IHdpdGggdGhlIGRlc2lyZWQgbmFtZSAqYWdhaW4qCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC8uY3ZzaWdub3JlOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYXVkaW9meGdvb2QvYXVkaW9meC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmM6IChnc3RfYXVkaW9fcGFub3JhbWFfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9jbGFzc19pbml0KSwgKGdzdF9hdWRpb19wYW5vcmFtYV9pbml0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3NldF9jYXBzKSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fbTJzKSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fczJzKSwgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm0pOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmg6CgkgIHJlc3VibWl0IHdpdGggdGhlIGRlc2lyZWQgbmFtZSAqYWdhaW4qCgoyMDA2LTA4LTIwIDEzOjA5OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB1c2UgZ19hc3NlcnQgaW4gX2dldF91bml0X3NpemUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzogKGdzdF9waXhidWZzY2FsZV9nZXRfdW5pdF9zaXplKToKCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogKGdzdF92aWRlb19ib3hfZ2V0X3VuaXRfc2l6ZSk6CgkgIHVzZSBnX2Fzc2VydCBpbiBfZ2V0X3VuaXRfc2l6ZQoKMjAwNi0wOC0yMCAxMzowNjo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogY2xlYW51cCAtdW51c2VkLnR4dCB0byBtYWtlIGl0IHVzZWZ1bCwgYWRkIHByZXZpb3VzbHkgbWlzc2luZyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb2Z4Z29vZC54bWw6CgkgIGNsZWFudXAgLXVudXNlZC50eHQgdG8gbWFrZSBpdCB1c2VmdWwsIGFkZCBwcmV2aW91c2x5IG1pc3NpbmcgZG9jcwoJICAqIGV4dC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZXNkL2VzZG1vbi5jOgoJICAqIGV4dC9lc2QvZXNkc2luay5jOgoJICAqIGV4dC9lc2QvZ3N0ZXNkLmM6IChwbHVnaW5faW5pdCk6CgkgIHJlZmxvdyB0byBnZXQgcmlkIG9mIHR3byBleHRlcm5hbCBzeW1ib2xzCgkgICogZ3N0L2F1ZGlvZnhnb29kL2F1ZGlvZnguYzogKHBsdWdpbl9pbml0KToKCSAgcmUtYWRkCgoyMDA2LTA4LTIwIDEyOjA5OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXVkaW9meGdvb2QvYXVkaW9meC5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvYXVkaW9meGdvb2QvLmN2c2lnbm9yZToKCSAgKiBnc3QvYXVkaW9meGdvb2QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1ZGlvZnhnb29kL2F1ZGlvZnguYwoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmM6IChnc3RfYXVkaW9fcGFub3JhbWFfYmFzZV9pbml0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9jbGFzc19pbml0KSwgKGdzdF9hdWRpb19wYW5vcmFtYV9pbml0KSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYXVkaW9fcGFub3JhbWFfdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X2F1ZGlvX3Bhbm9yYW1hX3NldF9jYXBzKSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fbTJzKSwKCSAgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm1fczJzKSwgKGdzdF9hdWRpb19wYW5vcmFtYV90cmFuc2Zvcm0pOgoJICAqIGdzdC9hdWRpb2Z4Z29vZC9hdWRpb3Bhbm9yYW1hLmg6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXVkaW9wYW5vcmFtYS5jOiAoc2V0dXBfcGFub3JhbWFfbSksCgkgIChzZXR1cF9wYW5vcmFtYV9zKSwgKGNsZWFudXBfcGFub3JhbWEpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAocGFub3JhbWFfc3VpdGUpLCAobWFpbik6CgkgIEFkZCBhdWRpb2Z4Z29vZCBwbHVnaW4gd2l0aCBhdWRpb3Bhbm9yYW1hIGVsZW1lbnQKCjIwMDYtMDgtMTggMjE6Mzk6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiBGaXggcmVzeW5jaW5nIGluIHB1c2ggbW9kZSBub3Qgc3RvcHBpbmcgcmUtc3luY2luZyBhdCBlbWJlZGRlZCB6ZXJvZXM7IHNraXAgZ2FyYmFnZSBiZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vIGF0IGNpcmN1bGFyLWNoYW9zLm9yZz4KCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfZ2V0X3Vwc3RyZWFtX2xlbmd0aCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9maW5kX21hcmtlciksIChnc3Rfd2F2cGFja19wYXJzZV9yZXN5bmNfbG9vcCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9sb29wKSwgKGdzdF93YXZwYWNrX3BhcnNlX3Jlc3luY19hZGFwdGVyKToKCSAgRml4IHJlc3luY2luZyBpbiBwdXNoIG1vZGUgbm90IHN0b3BwaW5nIHJlLXN5bmNpbmcgYXQgZW1iZWRkZWQKCSAgemVyb2VzOyBza2lwIGdhcmJhZ2UgYmV0d2VlbiBmcmFtZXMgaW4gcHVsbCBtb2RlIGFzIHdlbGwgaWYKCSAgbmVjZXNzYXJ5OyB1c2UgZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uKCk7IHB1c2ggRU9TIGFuZAoJICBORVdTRUdNRU5UIGV2ZW50IGluIHJpZ2h0IGRpcmVjdGlvbiAoIzM1MTY1OSkuCgoyMDA2LTA4LTE4IDE3OjAwOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOiBNb3JlIE9zcyBkb2NzIGZpeGFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBNb3JlIE9zcyBkb2NzIGZpeGFnZS4KCjIwMDYtMDgtMTggMTY6NTI6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogQWRkZWQgZXhwZXJpbWVudGFsIFNWUTMgZGVwYXlsb2FkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5jOiAoZ3N0X3J0cF9zdjN2X2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX3N2M3ZfZGVwYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX3N2M3ZfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX3N2M3ZfZGVwYXlfZmluYWxpemUpLCAoZ3N0X3J0cF9zdjN2X2RlcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9zdjN2X2RlcGF5X3Byb2Nlc3MpLCAoZ3N0X3J0cF9zdjN2X2RlcGF5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX3N2M3ZfZGVwYXlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfc3Yzdl9kZXBheV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3J0cF9zdjN2X2RlcGF5X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHN2M3ZkZXBheS5oOgoJICBBZGRlZCBleHBlcmltZW50YWwgU1ZRMyBkZXBheWxvYWRlci4KCjIwMDYtMDgtMTggMTM6MjU6MDYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBleHQvZHYvZ3N0ZHZkZW11eC4qOiBXaGVuIGhhbmRsaW5nIHNlZWsgcmVxdWVzdHMsIGRvbid0IHNlbmQgdGhlIG5ld3NlZ21lbnQgZXZlbnQgZnJvbSB0aGUgY2FsbGluZyB0aHJlYWQuIEluc3RlYWQgc2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2hhbmRsZV9wdWxsX3NlZWspLAoJICAoZ3N0X2R2ZGVtdXhfbG9vcCksIChnc3RfZHZkZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4Lmg6CgkgIFdoZW4gaGFuZGxpbmcgc2VlayByZXF1ZXN0cywgZG9uJ3Qgc2VuZCB0aGUgbmV3c2VnbWVudCBldmVudCBmcm9tIHRoZQoJICBjYWxsaW5nIHRocmVhZC4gSW5zdGVhZCBzYXZlIGl0IHNvIGl0IGNhbiBiZSBzZW50IGZyb20gdGhlIHN0cmVhbWluZwoJICB0aHJlYWQuCgoyMDA2LTA4LTE3IDE1OjUxOjUwICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IEFjY2VwdCBsZWFkaW5nIHdoaXRlc3BhY2UgYmVmb3JlIHRoZSBib3VuZGFyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOiAobXVsdGlwYXJ0X3BhcnNlX2hlYWRlcik6CgkgIEFjY2VwdCBsZWFkaW5nIHdoaXRlc3BhY2UgYmVmb3JlIHRoZSBib3VuZGFyeQoJICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBkZW11eGVyIGFsbG93IHNvbWUgd2hpdGVzcGFjZSBiZWZvcmUgdGhlIGFjdHVhbAoJICBib3VuZGFyeS4gVGhpcyBtYWtlcyB0aGUgZGVtdXhlciB3b3JrIHdpdGggdGhlIGBgb2xkJycgZ3N0cmVhbWVyCgkgIG11bHRpcGFydG11eGVyIGFnYWluICh3aGljaCBwbGFjZWQgYW4gZXh0cmEgXG4gYmVmb3JlIHRoZSBzdGFydAoJICBvZiB0aGUgc3RyZWFtKSBGaXhlcyAjMzQ5MDY4LgoKMjAwNi0wOC0xNyAxNTo0NzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IEVycm9yIG91dCBvbiBub24taW1wbGVtZW50ZWQgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5LmM6IChnc3RfcnRwX2gyNjRfZGVwYXlfcHJvY2Vzcyk6CgkgIEVycm9yIG91dCBvbiBub24taW1wbGVtZW50ZWQgc3R1ZmYuCgoyMDA2LTA4LTE2IDE2OjUwOjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOiBNYWtlIGxhZHNwYSBlbGVtZW50cyByZXVzYWJsZS4gRml4ZXMgIzM1MDAwNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbmR5IFdpbmdvIDx3aW5nbyBhdCBwb2JveCBkb3QgY29tPgoJICAqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmM6IChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zZXR1cCksCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zdGFydCksIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zdG9wKSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2NsZWFudXApLCAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2V0Y2FwcyksCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9wZW5fYnVmZmVyKSwgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2ZsdXNoKSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2RvX3B1bGxzKSwgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2RvX3B1c2hlcyksCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIGxhZHNwYSBlbGVtZW50cyByZXVzYWJsZS4gRml4ZXMgIzM1MDAwNi4KCjIwMDYtMDgtMTYgMTU6MzM6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvbGFkc3BhL2dzdGxhZHNwYS5jOiBDb252ZXJ0ICcgJyBpbnRvICdfJy4gVHJ5IHRvIGtlZXAgYXMgbWFueSBjaGFyYWN0ZXJzIGluIHRoZSBwYWR0ZW1wbGF0ZSBuYW1lcyBhcyBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xhZHNwYS9nc3RsYWRzcGEuYzogKGdzdF9sYWRzcGFfYmFzZV9pbml0KToKCSAgQ29udmVydCAnICcgaW50byAnXycuIFRyeSB0byBrZWVwIGFzIG1hbnkgY2hhcmFjdGVycyBpbiB0aGUgcGFkdGVtcGxhdGUKCSAgbmFtZXMgYXMgcG9zc2libGUuCgoyMDA2LTA4LTE2IDE0OjQ3OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYzogQSBwdXNoKCkgZ2l2ZXMgYXdheSBvdXIgcmVmY291bnQgc28gd2Ugc2hvdWxkIG5vdCB1c2UgdGhlIGJ1ZmZlciBvbiB0aGUgcGVuIGFueW1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmM6IChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9mbHVzaCksCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9kb19wdXNoZXMpOgoJICBBIHB1c2goKSBnaXZlcyBhd2F5IG91ciByZWZjb3VudCBzbyB3ZSBzaG91bGQgbm90IHVzZSB0aGUgYnVmZmVyIG9uIHRoZQoJICBwZW4gYW55bW9yZS4KCjIwMDYtMDgtMTYgMTM6NDg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOiBEb24ndCBsZWFrIGRldmljZSBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6IChnc3Rfb3NzX21peGVyX2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3Rfb3NzX21peGVyX2VsZW1lbnRfZmluYWxpemUpOgoJICBEb24ndCBsZWFrIGRldmljZSBzdHJpbmcuCgoyMDA2LTA4LTE2IDEzOjAxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBSZXF1aXJlIENWUyBvZiBHU3RyZWFtZXIgY29yZSBhbmQgLWJhc2UgKGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgQ1ZTIG9mIEdTdHJlYW1lciBjb3JlIGFuZCAtYmFzZSAoZm9yCgkgIEdTVF9UQUdfRVhURU5ERURfQ09NTUVOVCBhbmQgZ3N0X3RhZ19wYXJzZV9leHRlbmRlZF9jb21tZW50KCkpLgoJICAqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkgIFdyaXRlIGV4dGVuZGVkIGNvbW1lbnQgdGFncyBwcm9wZXJseSAoIzM0ODc2MikuCgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSksCgkgIChwYXJzZV9jb21tZW50X2ZyYW1lKToKCSAgRXh0cmFjdCBDT01NIGZyYW1lcyBpbnRvIGV4dGVuZGVkIGNvbW1lbnRzLCB3aGljaCBtYWtlcyBpdAoJICBlYXNpZXIgdG8gcHJvcGVybHkgcmV0YWluIHRoZSBkZXNjcmlwdGlvbiBiaXQgb2YgdGhlIHRhZwoJICBhbmQgbWFpbnRhaW4gdGhpcyBpbmZvcm1hdGlvbiB3aGVuIHJlLXRhZ2dpbmcgKCMzNDg3NjIpLgoKMjAwNi0wOC0xNiAxMjowMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBEb24ndCB0cnkgdG8gcnVuIGFubm9kZXggdW5pdCB0ZXN0cyBpZiB0aGUgYW5ub2RleCBwbHVnaW4gaGFzIG5vdCBiZWVuIGJ1aWx0IChGaXhlcyAjMzUxMTE2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIERvbid0IHRyeSB0byBydW4gYW5ub2RleCB1bml0IHRlc3RzIGlmIHRoZSBhbm5vZGV4CgkgIHBsdWdpbiBoYXMgbm90IGJlZW4gYnVpbHQgKEZpeGVzICMzNTExMTYpLgoKMjAwNi0wOC0xNiAxMDo1MzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzogV2hlbiB3ZSBjYW4ndCBmaW5kIGEgdXNhYmxlIGF1ZGlvc2luaywgZG9uJ3QgZXJyb3Igb3V0LCBidXQgdXNlIGEgZmFrZSBzaW5rIGluc3RlYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2ZpbmRfYmVzdCk6CgkgIFdoZW4gd2UgY2FuJ3QgZmluZCBhIHVzYWJsZSBhdWRpb3NpbmssIGRvbid0IGVycm9yIG91dCwKCSAgYnV0IHVzZSBhIGZha2Ugc2luayBpbnN0ZWFkIGFuZCBwb3N0IGEgd2FybmluZyBtZXNzYWdlCgkgIG9uIHRoZSBidXMgKCMzNDEyNzgpLgoKMjAwNi0wOC0xNiAxMDo0MDowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svOiBJbiBwdXNoIG1vZGUsIHJlLXN5bmMgdG8gbmV4dCB3YXZwYWNrIGhlYWRlciBpZiBzeW5jIGlzIGxvc3QgKCMzNTE1NTcpLiBBbHNvIHVzZSBoeXBoZW5zIGluc3RlYWQgb2YgdW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW8gYXQgY2lyY3VsYXItY2hhb3Mub3JnPgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3Jlc3luY19hZGFwdGVyKSwgKGdzdF93YXZwYWNrX3BhcnNlX2NoYWluKToKCSAgSW4gcHVzaCBtb2RlLCByZS1zeW5jIHRvIG5leHQgd2F2cGFjayBoZWFkZXIgaWYgc3luYyBpcyBsb3N0CgkgICgjMzUxNTU3KS4gQWxzbyB1c2UgaHlwaGVucyBpbnN0ZWFkIG9mIHVuZGVyc2NvcmVzIGluCgkgIEdPYmplY3QgcHJvcGVydHkgbmFtZXMuCgoyMDA2LTA4LTE2IDEwOjIyOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL29zcy86IERvY3VtZW50IE9TUyBlbGVtZW50czsgYWRkIGd0ay1kb2MgYmx1cmIgd2l0aCAnU2luY2UgMC4xMC41JyBmb3Igb3NzbWl4ZXIncyBuZXcgZGV2aWNlIHByb3BlcnR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOiAoZ3N0X29zc19taXhlcl9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6CgkgIERvY3VtZW50IE9TUyBlbGVtZW50czsgYWRkIGd0ay1kb2MgYmx1cmIgd2l0aCAnU2luY2UgMC4xMC41JyBmb3IKCSAgb3NzbWl4ZXIncyBuZXcgZGV2aWNlIHByb3BlcnR5LgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBBZGQgZG9jcyBmb3IgT1NTIGVsZW1lbnRzLgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSAgVXBkYXRlIHRvIENWUyB2ZXJzaW9uLgoKMjAwNi0wOC0xNiAxMDowNTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBDYXBzIGV4dHJhIHByb3BlcnRpZXMgbXVzdCBiZSBkZWZpbmVkIGFzIHN0cmluZ3MgZm9yIGRlcGF5bG9hZGVycyBiZWNhdXNlIHRoZXkgYXJlIGdlbmVyYXRlZCBmcm9tIGFuIFNEUC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6CgkgIENhcHMgZXh0cmEgcHJvcGVydGllcyBtdXN0IGJlIGRlZmluZWQgYXMgc3RyaW5ncyBmb3IKCSAgZGVwYXlsb2FkZXJzIGJlY2F1c2UgdGhleSBhcmUgZ2VuZXJhdGVkIGZyb20gYW4gU0RQLgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjRkZXBheS5jOiAoZ3N0X3J0cF9oMjY0X2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX2gyNjRfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfZmluYWxpemUpLCAoZGVjb2RlX2Jhc2U2NCksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX2gyNjRfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfaDI2NF9kZXBheV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9oMjY0X2RlcGF5X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRwX2gyNjRfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2NGRlcGF5Lmg6CgkgIEFkZGVkIGJhc2ljLCBub3QgY29tcGxldGVseSBmdW5jdGlvbmFsIFJGQyAzOTg0IEgyNjQgZGVwYXlsb2FkZXIuCgoyMDA2LTA4LTE2IDA5OjQ4OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IEFkZCBwYWRzIGFmdGVyIHNldHRpbmcgdGhlbSB1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IChnc3RfcnRwZGVjX2luaXQpLCAoZ3N0X3J0cGRlY19nZXRjYXBzKToKCSAgQWRkIHBhZHMgYWZ0ZXIgc2V0dGluZyB0aGVtIHVwLgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0c3BzcmNfaW5pdCksIChnc3RfcnRzcHNyY19maW5hbGl6ZSksCgkgIChnc3RfcnRzcHNyY19mcmVlX3N0cmVhbSksIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9zZXR1cF9ydHApLAoJICAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpLAoJICAoZ3N0X3J0c3BzcmNfY29tYmluZV9mbG93cyksIChnc3RfcnRzcHNyY19sb29wKSwKCSAgKGdzdF9ydHNwc3JjX29wZW4pLCAoZ3N0X3J0c3BzcmNfY2xvc2UpLCAoZ3N0X3J0c3BzcmNfcGxheSksCgkgIChnc3RfcnRzcHNyY19wYXVzZSk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICBGaXggaW50ZXJsZWF2ZWQgbW9kZS4KCSAgLSBQcm90ZWN0IHN0cmVhbWluZyB3aXRoIGxvY2suCgkgIC0gQ29tYmluZSBmbG93cwoJICAtIHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgkgIC0gc3RyaXAgdHJhaWxpbmcgXDAgZnJvbSBkYXRhIHBhY2tldHMuCgkgIC0gQ29uZmlndXJlIFJUUC9SVENQIGluIHN0cmVhbS4KCSAgVXNlIERFQlVHX09CSkVDVCBtb3JlLgoKMjAwNi0wOC0xNiAwOToyOToyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6IFR1cm4gYSBnX3ByaW50IGludG8gYSBERUJVRyBsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19hZGQpOgoJICBUdXJuIGEgZ19wcmludCBpbnRvIGEgREVCVUcgbGluZS4KCjIwMDYtMDgtMTYgMDk6MjU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvb3NzLzogU21hbGwgY2xlYW51cHMuIEJldHRlciBlcnJvciByZXBvcnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3NzbWl4ZXIuYzogKGdzdF9vc3NtaXhlcl9vcGVuKSwgKGdzdF9vc3NtaXhlcl9uZXcpOgoJICAqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6IChnc3Rfb3NzX21peGVyX2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3Rfb3NzX21peGVyX2VsZW1lbnRfaW5pdCksIChnc3Rfb3NzX21peGVyX2VsZW1lbnRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9vc3NfbWl4ZXJfZWxlbWVudF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X29zc19taXhlcl9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogc3lzL29zcy9nc3Rvc3NtaXhlcmVsZW1lbnQuaDoKCSAgU21hbGwgY2xlYW51cHMuIEJldHRlciBlcnJvciByZXBvcnRpbmcuCgkgIEFkZCBkZXZpY2UgcHJvcGVydHkgZm9yIHRoZSBtaXhlciBpbnN0ZWFkIG9mIHRoZSBoYXJkY29kZWQKCSAgL2Rldi9taXhlci4gRml4ZXMgIzM1MDc4NS4KCSAgQVBJOiBHc3RPc3NNaXhlckVsZW1lbnQ6OmRldmljZSBwcm9wZXJ0eQoKMjAwNi0wOC0xNSAyMjo0NDoyNyArMDAwMCAgSmVucyBHcmFuc2V1ZXIgPGplbnNnckBnbXgubmV0PgoKCSAgZ2NvbmYvTWFrZWZpbGUuYW06IE1ha2UgLS1kaXNhYmxlLXNjaGVtYXMgd29yayByaWdodCAodGhleSBzdGlsbCBuZWVkIHRvIGJlIGNvcGllZCB0byB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwganVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVucyBHcmFuc2V1ZXIgPGplbnNnciBhdCBnbXggbmV0PgoJICAqIGdjb25mL01ha2VmaWxlLmFtOgoJICBNYWtlIC0tZGlzYWJsZS1zY2hlbWFzIHdvcmsgcmlnaHQgKHRoZXkgc3RpbGwgbmVlZAoJICB0byBiZSBjb3BpZWQgdG8gdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGp1c3Qgbm90CgkgIGFwcGxpZWQpLiBGaXhlcyAjMzUxMzQ3IChhbHNvICMzNDQxMDApLgoKMjAwNi0wOC0xNSAyMDoyOTo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLio6IE1ha2Ugd2F2cGFja3BhcnNlIGFsc28gd29yayBpbiBwdXNoLW1vZGUgKG5vdCBzZWVrYWJsZSB5ZXQgdGhvdWdoKTsgc29tZSBzbWFsbCBjbGVhbi11Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfY2xhc3NfaW5pdCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9yZXNldCksIChnc3Rfd2F2cGFja19wYXJzZV9nZXRfc3JjX3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NyY19xdWVyeSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9oYW5kbGVfc2Vla19ldmVudCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9zaW5rX2V2ZW50KSwgKGdzdF93YXZwYWNrX3BhcnNlX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfY3JlYXRlX3NyY19wYWQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfcHVzaF9idWZmZXIpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfbG9vcCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9jaGFpbiksIChnc3Rfd2F2cGFja19wYXJzZV9zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBhdCBjaXJjdWxhci1jaGFvcy5vcmc+CgkgIE1ha2Ugd2F2cGFja3BhcnNlIGFsc28gd29yayBpbiBwdXNoLW1vZGUgKG5vdCBzZWVrYWJsZSB5ZXQgdGhvdWdoKTsKCSAgc29tZSBzbWFsbCBjbGVhbi11cHMgYWxvbmcgdGhlIHdheTsgYWRkIHN1cHBvcnQgZm9yIFNFRUtJTkcgcXVlcnkKCSAgYW5kIHF1ZXJ5IHR5cGVzIGZ1bmN0aW9uLiAoIzM1MTQ5NSkuCgoyMDA2LTA4LTE0IDExOjM3OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgoyMDA2LTA4LTE0IDExOjE0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYW5ub2RleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWlyby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2RrcGl4YnVmLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWN5ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taWQzZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuNAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuNAoKMjAwNi0wOC0xNCAxMDowNjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRXh0cmFjdCBhbGwgcmVmZXJlbmNlcy9yZWRpcmVjdGlvbnMgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBhbmQgc29ydCB0aGVtOyBhbHNvIGV4dHJhY3QgbWluaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3JlZGlyZWN0c19zb3J0X2Z1bmMpLAoJICAocXRkZW11eF9wcm9jZXNzX3JlZGlyZWN0cyksIChxdGRlbXV4X3BhcnNlX3RyZWUpOgoJICBFeHRyYWN0IGFsbCByZWZlcmVuY2VzL3JlZGlyZWN0aW9ucyBpZiB0aGVyZSBpcyBtb3JlCgkgIHRoYW4gb25lIGFuZCBzb3J0IHRoZW07IGFsc28gZXh0cmFjdCBtaW5pbXVtIHJlcXVpcmVkCgkgIGJpdHJhdGUgaW5mb3JtYXRpb24gaWYgYXZhaWxhYmxlLiAoIzM1MDM5OSkKCjIwMDYtMDgtMTAgMTQ6MTA6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBmbHVlbmRvLmNvbT4KCgkgIFNlbmQgdGhlIG5ld3NlZ21lbnQgZXZlbnQgaW4gdGhlIHN0cmVhbWluZyB0aHJlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGZsdWVuZG8uY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLAoJICAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKToKCSAgU2VuZCB0aGUgbmV3c2VnbWVudCBldmVudCBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgRml4ZXMgIzM0NzUyOQoKMjAwNi0wOC0xMCAxNDowMjo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJ1bXBlZCBmb3IgcHJlcmVsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBidW1wZWQgZm9yIHByZXJlbAoKMjAwNi0wOC0xMCAxMzoxMDozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NzLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDYtMDgtMDggMTQ6NTU6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBzaWxseSB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyZWUpOgoJICBGaXggc2lsbHkgdHlwby4KCjIwMDYtMDgtMDggMTQ6NDY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGJ1ZyBudW1iZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGJ1ZyBudW1iZXIKCjIwMDYtMDgtMDggMTQ6NDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvanBlZy86IFJlZnVzZSBzaW5rIGNhcHMgaW4gdGhlIGVuY29kZXIgaWYgd2lkdGggb3IgaGVpZ2h0IGlzIG5vdCBhIG11bHRpcGxlIG9mIDE2LCB0aGUgZW5jb2RlciBkb2VzIG5vdCBzdXBwb3J0IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0c21va2VkZWMuYzogKGdzdF9zbW9rZWRlY19jaGFpbik6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19zZXRjYXBzKSwKCSAgKGdzdF9zbW9rZWVuY19yZXN5bmMpLCAoZ3N0X3Ntb2tlZW5jX2NoYWluKToKCSAgUmVmdXNlIHNpbmsgY2FwcyBpbiB0aGUgZW5jb2RlciBpZiB3aWR0aCBvciBoZWlnaHQgaXMgbm90IGEKCSAgbXVsdGlwbGUgb2YgMTYsIHRoZSBlbmNvZGVyIGRvZXMgbm90IHN1cHBvcnQgdGhhdCB5ZXQ7IGFsb25nIHRoZQoJICBzYW1lIGxpbmVzLCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBlbmNvZGVyIHNldHVwIGZ1bmN0aW9uOwoJICBhbHNvIHJlbW92ZSBzb21lIGRlYnVnIGxvZyBjbHV0dGVyLgoKMjAwNi0wOC0wNCAxMTozODo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuaDogQWRkIGluZnJhc3RydWN0dXJlIGZvciBzdG9yaW5nIHdoZXRoZXIgYSBwcm9jZXNzb3IgY2FuIHdvcmsgaW4gcGxhY2Ugb3Igbm90LCBhbmQgZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA4LTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmg6IEFkZCBpbmZyYXN0cnVjdHVyZSBmb3Igc3RvcmluZwoJICB3aGV0aGVyIGEgcHJvY2Vzc29yIGNhbiB3b3JrIGluIHBsYWNlIG9yIG5vdCwgYW5kIGZvciBrZWVwaW5nCgkgIHRyYWNrIG9mIGl0cyBzdGF0ZS4gQ2hhbmdlIHRoZSBGbG93UmV0dXJuIGluc3RhbmNlIHZhcmlhYmxlIGZyb20KCSAgInN0YXRlIiB0byAiZmxvd19zdGF0ZSIsIGFsbCBjYWxsZXJzIGNoYW5nZWQuCgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYyAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2V0dXApCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zdGFydCwgZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc3RvcCkKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2NsZWFudXApOiBOZXcgZnVuY3Rpb25zIHRvIG1hbmFnZSB0aGUKCSAgcHJvY2Vzc29yJ3Mgc3RhdGUuCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zZXRjYXBzKTogc3RhcnQoKSBhcyB3ZWxsIGFzIHNldHVwKCkgaGVyZS4KCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3ByZXBhcmUpOiBSZXNwZWN0IENBTl9QUk9DRVNTX0lOX1BMQUNFLgoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfY2hhbmdlX3N0YXRlKTogU3RvcCBhbmQgY2xlYW51cCB0aGUKCSAgcHJvY2Vzc29yIGFzIHdlIGdvIHRvIE5VTEwuCgkgICogZXh0L2xhZHNwYS9nc3RsYWRzcGEuYyAoZ3N0X2xhZHNwYV9iYXNlX2luaXQpOiBSZXVzZSBidWZmZXJzIGlmCgkgIElOUExBQ0VfQlJPS0VOIGlzIG5vdCBzZXQuCgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYyAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJlcGFyZSk6CgkgIERvIHRoZSBhbGxvY19idWZmZXIgaW4gYnl0ZXMsIG5vdCBmcmFtZXMuCgoyMDA2LTA4LTA0IDEwOjIxOjI2ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgc3lzL3hpbWFnZS94aW1hZ2V1dGlsLmM6IEZpeCByZ2IgbWFza3Mgd2hlbiByZWNvcmRpbmcgaW4gPCAyNGJwcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDgtMDQgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMveGltYWdlL3hpbWFnZXV0aWwuYzogKHhpbWFnZXV0aWxfeGNvbnRleHRfZ2V0KToKCSAgRml4IHJnYiBtYXNrcyB3aGVuIHJlY29yZGluZyBpbiA8IDI0YnBwLgoKMjAwNi0wOC0wNCAwOToyMDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOgoJICBCUEIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zcmNfYWN0aXZhdGVfcHVsbCk6IEJQQgoKMjAwNi0wOC0wNCAwOTowNTo1MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOgoJICBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9zZXRjYXBzKSAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJlcGFyZSkgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDgtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYyAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2V0Y2FwcykKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3ByZXBhcmUpCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl91cGRhdGVfaW5wdXRzKQoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJvY2VzcywgZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcGVuX2J1ZmZlcikKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2ZsdXNoKQoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc3JjX2FjdGl2YXRlX3B1bGwpCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9jaGFuZ2Vfc3RhdGUpOiBSZW1vdmUgdGhlIGxhc3Qgb2YgdGhlIGNvZGUKCSAgdGhhdCBhc3N1bWVzIHRoYXQgd2UgcHJvY2VzcyB3aG9sZSBidWZmZXJzIGF0IGEgdGltZS4gRml4IHNvbWUKCSAgZGVidWdnaW5nLiBTZWVtcyB0byB3b3JrIG5vdyBpbiBzb21lIGNhc2VzLgoKMjAwNi0wNy0zMSAyMjoyNzoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYyAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJvY2Vzcyk6IEZpeCBuZnJhbWVzLWNob29zaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wOC0wMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9wcm9jZXNzKToKCSAgRml4IG5mcmFtZXMtY2hvb3NpbmcuCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9pbml0KTogSW5pdCBwZW5kaW5nX2luIGFuZCBwZW5kaW5nX291dC4KCjIwMDYtMDctMzEgMjI6MDM6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmMgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2luaXQpOiBObyBtb3JlIGRlZmF1bHQgc2FtcGxlIHJhdGUsIGFsdGhvdWdoIHdlIG5ldmVyIGNoZWNrIHRoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wOC0wMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9pbml0KTogTm8KCSAgbW9yZSBkZWZhdWx0IHNhbXBsZSByYXRlLCBhbHRob3VnaCB3ZSBuZXZlciBjaGVjayB0aGF0IHRoZSBzYW1wbGUKCSAgcmF0ZSBhY3R1YWxseSBnZXRzIHNldC4gU29tZXRoaW5nIGZvciB0aGUgZnV0dXJlLgoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2V0Y2Fwcyk6IFNvbWUgcmVmY291bnQgZml4ZXMsIGZsb3cgZml4ZXMuCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9ldmVudCk6IFJlZmNvdW50IGZpeGVuLgoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJvY2Vzcyk6IFB1bGwgdGhlIG51bWJlciBvZiBmcmFtZXMgdG8KCSAgcHJvY2VzcyBmcm9tIHRoZSBzaXplcyBvZiB0aGUgYnVmZmVycyBpbiB0aGUgaW5wdXQgcGVucy4KCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3Blbl9idWZmZXIpOiBSZW1vdmUgYW4gaW5jb3JyZWN0IEZJWE1FIDopCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9kb19wdWxscyk6IEFkZCBhbiBuZnJhbWVzIGFyZ3VtZW50LCBhbmQgdXNlCgkgIGl0IGluc3RlYWQgb2YgYnVmZmVyX2ZyYW1lcy4KCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2dldHJhbmdlKTogUmVmY291bnQgZml4ZW4sIHBhc3MgbmZyYW1lcyBvbgoJICB0byBkb19wdWxscy4KCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2NoYWluKQoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc3JjX2FjdGl2YXRlX3B1bGwpOiAgUmVmY291bnQgZml4ZW4uCgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuaDogTm8gbW9yZSBidWZmZXJfZnJhbWVzLCB5YXkuCgoyMDA2LTA3LTMxIDE5OjQ0OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOiBkb24ndCBxdWVyeSBidWZmZXItZnJhbWVzIGZyb20gY2FwcywgYWRkIGxvdHMgb2YgZGVidWctbG9nLCB0cnkgZml4IGZvciBhc3NlcnQgKCMzNDkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYzogKGdzdF9zaWduYWxfcHJvY2Vzc29yX3NldGNhcHMpLAoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJvY2Vzcyk6CgkgIGRvbid0IHF1ZXJ5IGJ1ZmZlci1mcmFtZXMgZnJvbSBjYXBzLCBhZGQgbG90cyBvZiBkZWJ1Zy1sb2csCgkgIHRyeSBmaXggZm9yIGFzc2VydCAoIzM0OTE4OSkKCjIwMDYtMDctMzEgMTU6NTg6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgRml4IGRvY3MuCgoyMDA2LTA3LTI5IDE2OjMyOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOiBBZGQgZGVidWdzIGxvZ3MgaGVyZSBhbmQgdGhlcmUsIGFkZCBtb3JlIGVycm9yIGhhbmRsaW5nLCBhZGQgc29tZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOgoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfYWRkX3BhZF9mcm9tX3RlbXBsYXRlKSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2luaXQpLCAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2V0Y2FwcyksCgkgIChnc3Rfc2lnbmFsX3Byb2Nlc3Nvcl9wcm9jZXNzKSwgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3Blbl9idWZmZXIpLAoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfZG9fcHVsbHMpLCAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfZ2V0cmFuZ2UpLAoJICAoZ3N0X3NpZ25hbF9wcm9jZXNzb3Jfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2NoYW5nZV9zdGF0ZSk6CgkgIEFkZCBkZWJ1Z3MgbG9ncyBoZXJlIGFuZCB0aGVyZSwgYWRkIG1vcmUgZXJyb3IgaGFuZGxpbmcsIGFkZCBzb21lCgkgIEZJWE1FIGNvbW1lbnRzLCBmaWxlZCAjMzQ5MTg5CgoyMDA2LTA3LTI5IDExOjIyOjQ3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogU2V0IGNhcHMgb24gYnVmZmVyIGNvcnJlY3RseS4gIEZpeGVzIGJ1ZyAjMzQ5MTU1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0yOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6IChnc3Rfc21va2VlbmNfZ2V0Y2FwcyksCgkgIChnc3Rfc21va2VlbmNfc2V0Y2FwcyksIChnc3Rfc21va2VlbmNfY2hhaW4pOgoJICBTZXQgY2FwcyBvbiBidWZmZXIgY29ycmVjdGx5LiAgRml4ZXMgYnVnICMzNDkxNTUuCgoyMDA2LTA3LTI4IDE2OjE3OjE3ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IFVzZXMgR3N0QWRhcHRlciBpbnN0ZWFkIG9mIG93biBidWZmZXJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IChnc3RfbXVsdGlwYXJ0X2RlbXV4X2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NsYXNzX2luaXQpLCAoZ3N0X211bHRpcGFydF9kZW11eF9pbml0KSwKCSAgKGdzdF9tdWx0aXBhcnRfZGVtdXhfZmluYWxpemUpLCAoZ2V0X2xpbmVfZW5kKSwKCSAgKG11bHRpcGFydF9wYXJzZV9oZWFkZXIpLCAobXVsdGlwYXJ0X2ZpbmRfYm91bmRhcnkpLAoJICAoZ3N0X211bHRpcGFydF9kZW11eF9jaGFpbiksIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfbXVsdGlwYXJ0X3NldF9wcm9wZXJ0eSksIChnc3RfbXVsdGlwYXJ0X2dldF9wcm9wZXJ0eSk6CgkgIFVzZXMgR3N0QWRhcHRlciBpbnN0ZWFkIG9mIG93biBidWZmZXJpbmcuCgkgIEFjdHVhbGx5IHBhcnNlcyB0aGUgbWltZS10eXBlIGNvcnJlY3RseSAoSW4gdGVzdHMgdGhlIG1pbWUtdHlwZSB3YXMKCSAgYWx3YXlzICIiIHdpdGggdGhlIG9sZCB2ZXJzaW9uKS4KCSAgVXNlcyB0aGUgQ29udGVudC1sZW5ndGggaGVhZGVyIGlmIGF2YWlsYWJsZSB0byBzcGVlZCB1cCB0aGluZ3MuCgkgIFJlbGlhYmx5IGF1dG9zY2FucyB0aGUgYm91bmRhcnkgbmFtZSBieSBkZWZhdWx0LgoJICBGaXhlcyAjMzQ5MDY4LgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICBEb24ndCBzdGFydCB0aGUgc3RyZWFtIHdpdGggYSBcbi4KCjIwMDYtMDctMjggMDg6MzI6NDcgKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy5jOiBPcGVuIHNvdXJjZSB3aXRoIE9fTk9OQkxPQ0sgKCMzNDkwMTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJyaWFuIENhbWVyb24gPGJyaWFuIGRvdCBjYW1lcm9uIGF0IHN1biBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc3JjLmM6IChnc3Rfc3VuYXVkaW9zcmNfb3Blbik6CgkgIE9wZW4gc291cmNlIHdpdGggT19OT05CTE9DSyAoIzM0OTAxNSkuCgoyMDA2LTA3LTI4IDA4OjIxOjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4Lio6IFdoaXRlc3BhY2UgZml4ZXMgYW5kIG1vcmUgZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9tYXNzYWdlX2luZGV4KToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIFdoaXRlc3BhY2UgZml4ZXMgYW5kIG1vcmUgZGVidWcKCjIwMDYtMDctMjcgMTE6MjE6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6IEdldCByaWQgb2Ygb2xkIGFuZCB1bnVzZWQgbWFnaWMgc291bmQtc2VydmVyIHByb3BlcnRpZXMgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfY3JlYXRlX2VsZW1lbnRfd2l0aF9wcmV0dHlfbmFtZSksCgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2ZpbmRfYmVzdCksCgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEdldCByaWQgb2Ygb2xkIGFuZCB1bnVzZWQgbWFnaWMgc291bmQtc2VydmVyIHByb3BlcnRpZXMgc3R1ZmYuCgkgIEFkZCBzdWZmaXggdG8gY2hpbGQgc2luaydzIG5hbWUgdGhhdCBtYWtlcyBpdCBlYXN5IHRvIHNlZSBmcm9tCgkgIHRoZSBuYW1lIGFsb25lIHdoaWNoIHR5cGUgaXQgYWN0dWFsbHkgaXMgKGFsc2EsIG9zcywgZXNkLCBldGMuKS4KCjIwMDYtMDctMjcgMTA6MDU6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy4qOiBSZW5hbWUgImJ1ZmZlciIgdG8gImJ1ZmZlci1zaXplIiB0byBtYWtlIGNsZWFyIGl0IGlzIGEgc2l6ZSB3ZSBzZXQgYW5kIG5vdCBzb21lIHNvcnQgb2YgZmVhdHVyZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksIChnc3RfdWRwc3JjX2luaXQpLAoJICAoZ3N0X3VkcHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3VkcHNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3VkcHNyY19zdGFydCk6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgUmVuYW1lICJidWZmZXIiIHRvICJidWZmZXItc2l6ZSIgdG8gbWFrZSBjbGVhciBpdCBpcyBhIHNpemUgd2Ugc2V0IGFuZAoJICBub3Qgc29tZSBzb3J0IG9mIGZlYXR1cmUgd2UgZW5hYmxlLgoKMjAwNi0wNy0yNyAxMDowMTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IFVzZSBDTE9TRV9TT0NLRVQoKSBoZXJlIGluc3RlYWQgb2YgY2xvc2UoKSB0byBtYWludGFpbiB3aW4zMiB3b3JraW5lc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX3N0YXJ0KToKCSAgVXNlIENMT1NFX1NPQ0tFVCgpIGhlcmUgaW5zdGVhZCBvZiBjbG9zZSgpIHRvIG1haW50YWluCgkgIHdpbjMyIHdvcmtpbmVzcy4KCjIwMDYtMDctMjcgMDk6MDQ6NTEgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzLnZlcm1laXJAYmFyY28uY29tPgoKCSAgZ3N0L3VkcC9nc3R1ZHBzcmMuKjogQWRkZWQgImJ1ZmZlciIgcHJvcGVydHkgdG8gY29udHJvbCB0aGUga2VybmVsIHJlY2VpdmUgYnVmZmVyIHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVGhpanMgVmVybWVpciA8dGhpanMgZG90IHZlcm1laXIgYXQgYmFyY28gZG90IGNvbT4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19jbGFzc19pbml0KSwgKGdzdF91ZHBzcmNfaW5pdCksCgkgIChnc3RfdWRwc3JjX2NyZWF0ZSksIChnc3RfdWRwc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdWRwc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfdWRwc3JjX3N0YXJ0KToKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5oOgoJICBBZGRlZCAiYnVmZmVyIiBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBrZXJuZWwgcmVjZWl2ZSBidWZmZXIgc2l6ZS4KCSAgVXBkYXRlIGRvY3VtZW50YXRpb24uCgkgIFNtYWxsIGNsZWFudXBzLiBGaXhlcyAjMzQ4NzUyLgoJICBBUEk6IGJ1ZmZlciBwcm9wZXJ0eQoKMjAwNi0wNy0yNiAxNjozNjo1OSArMDAwMCAgS2FpIFZlaG1hbmVuIDxrdjIwMDRAZWNhLmN4PgoKCSAgZ3N0L3J0cC86IEZpeCB0aW1lc3RhbXAgY2FsY3VsYXRpb24gb24gb3V0Z29pbmcgUlRQIHBhY2tldHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogS2FpIFZlaG1hbmVuIDxrdjIwMDQgYXQgZWNhIGRvdCBjeD4KCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbWFwYXkuYzogKGdzdF9ydHBfcGNtYV9wYXlfZmx1c2gpLAoJICAoZ3N0X3J0cF9wY21hX3BheV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzogKGdzdF9ydHBfcGNtdV9wYXlfZmx1c2gpLAoJICAoZ3N0X3J0cF9wY211X3BheV9oYW5kbGVfYnVmZmVyKToKCSAgRml4IHRpbWVzdGFtcCBjYWxjdWxhdGlvbiBvbiBvdXRnb2luZyBSVFAgcGFja2V0cy4KCSAgRml4ZXMgIzM0ODY3NS4KCjIwMDYtMDctMjYgMTA6MDc6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOiBpcyBzdGlsbCBzdWItb3B0aW1hbCB0aG91Z2gsIHNpbmNlIHdlIGRvbid0IHJldGFpbiBvciBleHRyYWN0IHRoZSBjb21tZW50IGRlc2NyaXB0aW9ucyBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgRml4IHdyaXRpbmcgb2YgY29tbWVudCBmcmFtZXMgKHNob3VsZCBiZSBDT01NIG5vdCBUQ09NKSwKCSAgaXMgc3RpbGwgc3ViLW9wdGltYWwgdGhvdWdoLCBzaW5jZSB3ZSBkb24ndCByZXRhaW4gb3IKCSAgZXh0cmFjdCB0aGUgY29tbWVudCBkZXNjcmlwdGlvbnMgcHJvcGVybHkgKCMzMzQzNzUsCgkgIGFsc28gc2VlICMzMzQzNzUpLgoKMjAwNi0wNy0yNiAwOTowMjo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAjZGVmaW5lICdmYWN0JyBSSUZGIGNodW5rIGlmIHdlIGFyZSBub3QgY29tcGlsaW5nIGFnYWluc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgICNkZWZpbmUgJ2ZhY3QnIFJJRkYgY2h1bmsgaWYgd2UgYXJlIG5vdCBjb21waWxpbmcgYWdhaW5zdAoJICAtYmFzZSBDVlMgKHdlIGRvbid0IHdhbnQgdG8gZGVwZW5kIG9uIC1iYXNlIENWUyBmb3IgdGhpcwoJICBvbmUgZGVmaW5lIG9ubHksIGFuZCBhbHNvIG5vdCBmb3IgcmVsZWFzZSBvcmRlciByZWFzb25zKS4KCjIwMDYtMDctMjYgMDg6MTc6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOiBIYW5kbGUgbXVsdGlwbGUgdGFncyBvZiB0aGUgc2FtZSB0eXBlIHByb3Blcmx5LiBSZS1pbmplY3QgdW5wYXJzZWQgSUQzdjIgZnJhbWVzIHRoYXQgd2UgZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgSGFuZGxlIG11bHRpcGxlIHRhZ3Mgb2YgdGhlIHNhbWUgdHlwZSBwcm9wZXJseS4gUmUtaW5qZWN0CgkgIHVucGFyc2VkIElEM3YyIGZyYW1lcyB0aGF0IHdlIGdldCBhcyBiaW5hcnkgYmxvYnMgZnJvbQoJICBpZDNkZW11eCBpbnRvIHRoZSB0YWcgYWdhaW4gc28gd2UgZG9uJ3QgbG9zZSBpbmZvcm1hdGlvbgoJICB3aGVuIHJldGFnZ2luZyAoIzMzNDM3NSkuCgoyMDA2LTA3LTI1IDE3OjU0OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzogRG9jdW1lbnQgbmV3bHktYWRkZWQgcHJvcGVydGllcyBwcm9wZXJseSwgc28gdGhhdCB0aGVyZSBpcyBhICdTaW5jZTogMC4xMC40JyBpbiB0aGUgcGx1Z2luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6IChnc3RfeGltYWdlX3NyY19jbGFzc19pbml0KToKCSAgRG9jdW1lbnQgbmV3bHktYWRkZWQgcHJvcGVydGllcyBwcm9wZXJseSwgc28gdGhhdCB0aGVyZSBpcyBhCgkgICdTaW5jZTogMC4xMC40JyBpbiB0aGUgcGx1Z2luIGRvY3MuIENvbnZlcnQgc29tZSBwcm9wZXJ0eQoJICBuYW1lcyBpbnRvIGNhbm9uaWNhbCBHT2JqZWN0IHN0eWxlIChHT2JqZWN0IHdpbGwgZG8gdGhhdAoJICBpbnRlcm5hbGx5IGFueXdheSkuCgoyMDA2LTA3LTI1IDE2OjQ3OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzogRXh0cmFjdCBmcmFtZXMgZm9yIElEM3YyIHZlcnNpb25zIHByaW9yIHRvIElEM3YyLjMuMCBwcm9wZXJseSBhcyB3ZWxsLCBhbmQgYWRkIHRoZSB2ZXJzaW9uIHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6CgkgIChpZDNkZW11eF9hZGRfaWQzdjJfZnJhbWVfYmxvYl90b190YWdsaXN0KToKCSAgRXh0cmFjdCBmcmFtZXMgZm9yIElEM3YyIHZlcnNpb25zIHByaW9yIHRvIElEM3YyLjMuMCBwcm9wZXJseSBhcwoJICB3ZWxsLCBhbmQgYWRkIHRoZSB2ZXJzaW9uIHRvIHRoZSBibG9iJ3MgYnVmZmVyIGNhcHMsIHNpbmNlIHRoYXQKCSAgaW5mb3JtYXRpb24gd2lsbCBiZSBuZWVkZWQgZm9yIGRlc2VyaWFsaXNhdGlvbiBsYXRlciBvbiAoIzM0ODY0NCkuCgoyMDA2LTA3LTI1IDEzOjE0OjA1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IE1vdmVkIHdpbjMyIHZhcmlhbnQgb2YgR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTiB0byBnc3RpbmZvLmguIEZpeGVkIGluZGVudGF0aW9uIGFuZCBzcGFjaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3JlYWRfc3ViaW5kZXhlcyksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSk6CgkgIE1vdmVkIHdpbjMyIHZhcmlhbnQgb2YgR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTiB0byBnc3RpbmZvLmguIEZpeGVkCgkgIGluZGVudGF0aW9uIGFuZCBzcGFjaW5nLgoKMjAwNi0wNy0yNCAyMTo0MzowNiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay4qOiBBZGQgYW4gYXR0ZW51YXRpb24gcHJvcGVydHkgdGhhdCB3aWxsIGRpcmVjdGx5IGF0dGVudWF0ZSB0aGUgZGlyZWN0c291bmQgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmg6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICBBZGQgYW4gYXR0ZW51YXRpb24gcHJvcGVydHkgdGhhdCB3aWxsIGRpcmVjdGx5IGF0dGVudWF0ZSB0aGUKCSAgZGlyZWN0c291bmQgYnVmZmVyLgoJICBDaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGRpcmVjdHNvdW5kIHNlY29uZGFyeSBidWZmZXIgdG8gYSBoYWxmIHNlY29uZC4KCSAgQWRkIG1vcmUgZGVidWcgbG9ncy4KCSAgQWRkIGEgbG9jayB0byBwcm90ZWN0IGRzb3VuZCBidWZmZXIgd3JpdGUgYWNjZXNzLgoJICBGaXggYSBiYWQgaW1wbGVtZW50YXRpb24gb2YgcmVzZXQuCgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdGRyYXdzaW5rLmg6CgkgIEFkZCBhIGtlZXBfYXNwZWN0X3JhdGlvIHByb3BlcnR5LgoJICBEbyBub3QgdXNlIG92ZXJsYXkgaWYgbm90IHN1cHBvcnRlZC4KCSAgQWRkIG1vcmUgZGVidWcgbG9ncy4KCSAgUmVtb3ZlIG92ZXJ3cml0ZSBvZiBXTV9FUkFTRUJLR05EIG1lc3NhZ2UgaGFuZGxpbmcuIEl0IHdhcyBub3QKCSAgcmVkcmF3aW5nIGJvcmRlciB3aGVuIGtlZXBfYXNwZWN0X3JhdGlvIHdhcyBlbmFibGVkLgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHZlcnNpb24gd2FpdGluZyBhbiBhdXRvLWdlbmVyYXRlZCBjb25maWcuaAoKMjAwNi0wNy0yNCAxNToyNTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBmaWxlcyB0byBDVlMvUHJlcmVsZWFzZSB2ZXJzaW9uLCBhZGQgZXNkc2luayBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hcGV0YWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZGlvLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4taGFsZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXhpbWFnZXNyYy54bWw6CgkgIFVwZGF0ZSBmaWxlcyB0byBDVlMvUHJlcmVsZWFzZSB2ZXJzaW9uLCBhZGQgZXNkc2luayBkb2NzLgoJICAqIGV4dC9lc2QvZXNkc2luay5jOgoJICBBZGQgZ3RrLWRvYyBibHVyYi4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSAgRml4IHR5cG8gaW4gZWxlbWVudCBkZXNjcmlwdGlvbi4KCjIwMDYtMDctMjQgMTQ6NTQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggU3RlZmFuJ3MgZS1tYWlsIGFkZHJlc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBmaXggU3RlZmFuJ3MgZS1tYWlsIGFkZHJlc3MKCjIwMDYtMDctMjQgMTQ6NDk6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZXNkL2VzZHNpbmsuYzogUHJldmVudCBsaWJlc2QgZnJvbSBhdXRvLXNwYXduaW5nIGEgc291bmQgZGFlbW9uIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJ1bm5pbmcuIE5vdyB0aGF0IHdlIGRvbid0IGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua19vcGVuKSwKCSAgKGdzdF9lc2RzaW5rX2ZhY3RvcnlfaW5pdCk6CgkgIFByZXZlbnQgbGliZXNkIGZyb20gYXV0by1zcGF3bmluZyBhIHNvdW5kIGRhZW1vbiBpZiBpdAoJICBpcyBub3QgYWxyZWFkeSBydW5uaW5nLiBOb3cgdGhhdCB3ZSBkb24ndCBkbyBldmlsIHN0dWZmCgkgIGxpa2UgdGhhdCBhbnkgbG9uZ2VyIHdlIGNhbiBnaXZlIGVzZHNpbmsgYSByYW5rIHNvIHRoYXQKCSAgYXV0b2F1ZGlvc2luayB3aWxsIHRyeSBpdCBhcyB3ZWxsIGlmIGFsbCBvdGhlciBhdWRpbwoJICBzaW5rcyBmYWlsICgjMzQzMDUxKS4KCjIwMDYtMDctMjQgMTQ6NDI6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZXNkL01ha2VmaWxlLmFtOiBPb3BzLCBuZWVkIHRvIHJlbW92ZSBSRUFETUUgZnJvbSBFWFRSQV9ESVNUIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9lc2QvTWFrZWZpbGUuYW06CgkgIE9vcHMsIG5lZWQgdG8gcmVtb3ZlIFJFQURNRSBmcm9tIEVYVFJBX0RJU1QgYXMgd2VsbC4KCjIwMDYtMDctMjQgMTQ6Mzc6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZXNkL1JFQURNRTogUmVtb3ZlLCBpdCBjb250YWlucyBub3RoaW5nIHVzZWZ1bCBhbnl3YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9lc2QvUkVBRE1FOgoJICBSZW1vdmUsIGl0IGNvbnRhaW5zIG5vdGhpbmcgdXNlZnVsIGFueXdheS4KCSAgKiBleHQvZXNkL2VzZHNpbmsuYzogKGdzdF9lc2RzaW5rX2luaXQpLCAoZ3N0X2VzZHNpbmtfcHJlcGFyZSksCgkgIChnc3RfZXNkc2lua19kZWxheSk6CgkgIFNvbWUgc21hbGwgY2xlYW4tdXBzOyB1c2UgR1NUX0JPSUxFUlBMQVRFIGV0Yy4KCjIwMDYtMDctMjQgMTQ6MTY6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbGF3LzogRml4IG5lZ290aWF0aW9uIHRvIGRlYWwgd2l0aCBBTlkvRU1QVFkgY2FwcyBpbnN0ZWFkIG9mIGxlYWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzogKGFsYXdkZWNfZ2V0Y2Fwcyk6CgkgICogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOiAoYWxhd2VuY19nZXRjYXBzKSwgKGdzdF9hbGF3ZW5jX2NoYWluKToKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOiAobXVsYXdkZWNfZ2V0Y2Fwcyk6CgkgICogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzogKG11bGF3ZW5jX2dldGNhcHMpOgoJICBGaXggbmVnb3RpYXRpb24gdG8gZGVhbCB3aXRoIEFOWS9FTVBUWSBjYXBzIGluc3RlYWQgb2YgbGVha2luZy4KCjIwMDYtMDctMjQgMTM6NDA6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS4qOiBVc2UgaW5mb3JtYXRpb24gZnJvbSAnZmFjdCcgY2h1bmsgZm9yIGxlbmd0aCBjYWxjdWxhdGlvbiBvZiBjb21wcmVzc2VkIHNhbXBsZXMuIENhbGN1bGF0ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9yZXNldCksCgkgIChnc3Rfd2F2cGFyc2Vfb3RoZXIpLCAoZ3N0X3dhdnBhcnNlX3BlcmZvcm1fc2VlayksCgkgIChnc3Rfd2F2cGFyc2VfZ2V0X3Vwc3RyZWFtX3NpemUpLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwKCSAgKGdzdF93YXZwYXJzZV9hZGRfc3JjX3BhZCksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X3dhdnBhcnNlX3BhZF9xdWVyeSk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmg6CgkgIFVzZSBpbmZvcm1hdGlvbiBmcm9tICdmYWN0JyBjaHVuayBmb3IgbGVuZ3RoIGNhbGN1bGF0aW9uIG9mIGNvbXByZXNzZWQKCSAgc2FtcGxlcy4gQ2FsY3VsYXRlIGJwcyBpZiBib2d1cyB2YWx1ZSBpcyBmb3VuZCBpbiB3YXYgaGVhZGVyIChlbWJlZGVkCgkgIG1wMi9tcDMpLgoKMjAwNi0wNy0yNCAxMTo0ODowMyArMDAwMCAgSm9uaSBWYWx0YW5lbiA8am9uaS52YWx0YW5lbkBtb3ZpYWwuZmk+CgoJICBQb3J0IHVkcCBwbHVnaW4gdG8gd2luMzIgKCMzNDUyODgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEpvbmkgVmFsdGFuZW4gIDxqb25pIGRvdCB2YWx0YW5lbiBhdCBtb3ZpYWwgZmk+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC91ZHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3VkcC9nc3RkeW51ZHBzaW5rLmM6IChnc3RfZHludWRwc2lua19pbml0KSwKCSAgKGdzdF9keW51ZHBzaW5rX2ZpbmFsaXplKSwgKGdzdF9keW51ZHBzaW5rX2Nsb3NlKToKCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuaDoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19pbml0KSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfZmluYWxpemUpLCAoZ3N0X211bHRpdWRwc2lua19jbG9zZSk6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuaDoKCSAgKiBnc3QvdWRwL2dzdHVkcC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC91ZHAvZ3N0dWRwc2luay5oOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2luaXQpLCAoZ3N0X3VkcHNyY19jcmVhdGUpLAoJICAoZ3N0X3VkcHNyY19zdGFydCksIChnc3RfdWRwc3JjX3N0b3ApOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmg6CgkgICogZ3N0L3VkcC9nc3R1ZHBuZXR1dGlscy5jOiAoZ3N0X3VkcF9uZXRfdXRpbHNfd2luMzJfaW5ldF9hdG9uKSwKCSAgKGdzdF91ZHBfbmV0X3V0aWxzX3dpbjMyX3dzYV9zdGFydHVwKToKCSAgKiBnc3QvdWRwL2dzdHVkcG5ldHV0aWxzLmg6CgkgIFBvcnQgdWRwIHBsdWdpbiB0byB3aW4zMiAoIzM0NTI4OCkuCgoyMDA2LTA3LTI0IDExOjAwOjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzogUmVtb3ZlIHVud2FudGVkIERFQlVHIGxpbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChydHNwX2Nvbm5lY3Rpb25fc2VuZCk6CgkgIFJlbW92ZSB1bndhbnRlZCBERUJVRyBsaW5lLgoKMjAwNi0wNy0yMyAxMTozMzo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC86IE9uIHNlY29uZCB0aG91Z2h0LCBpdCBtaWdodCBiZSB3aXNlciBhbmQgbW9yZSBlZmZpY2llbnQgbm90IHRvIGRvIHRhZyByZWdpc3RyYXRpb24gZnJvbSBhIHN0cmVhbWluZyB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOgoJICAoaWQzZGVtdXhfYWRkX2lkM3YyX2ZyYW1lX2Jsb2JfdG9fdGFnbGlzdCk6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuaDoKCSAgT24gc2Vjb25kIHRob3VnaHQsIGl0IG1pZ2h0IGJlIHdpc2VyIGFuZCBtb3JlIGVmZmljaWVudAoJICBub3QgdG8gZG8gdGFnIHJlZ2lzdHJhdGlvbiBmcm9tIGEgc3RyZWFtaW5nIHRocmVhZC4KCjIwMDYtMDctMjMgMTA6NTY6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOiBQdXQgSUQzdjIgZnJhbWVzIHdlIGNhbid0IHBhcnNlIGFzIGJpbmFyeSBibG9icyBpbnRvIHByaXZhdGUgdGFncywgc28gdGhhdCB0aGV5IGFyZSBub3QgbG9zdCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzoKCSAgKGlkM2RlbXV4X2FkZF9pZDN2Ml9mcmFtZV9ibG9iX3RvX3RhZ2xpc3QpLAoJICAoaWQzZGVtdXhfaWQzdjJfZnJhbWVzX3RvX3RhZ19saXN0KToKCSAgUHV0IElEM3YyIGZyYW1lcyB3ZSBjYW4ndCBwYXJzZSBhcyBiaW5hcnkgYmxvYnMgaW50byBwcml2YXRlCgkgIHRhZ3MsIHNvIHRoYXQgdGhleSBhcmUgbm90IGxvc3Qgd2hlbiByZXRhZ2dpbmcsIGF0IGxlYXN0IG9uY2UKCSAgaWQzdjJtdXggaGFzIGJlZW4gdGF1Z2h0IHRvIHJlLWluamVjdCB0aG9zZSBmcmFtZXMgYWdhaW4uCgkgIFNlZSBidWcgIzMzNDM3NS4KCjIwMDYtMDctMjEgMTA6NTc6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCBzb21lIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSk6CgkgIEZpeCBzb21lIGxlYWtzLgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6IChpZDNkZW11eF9pZDN2Ml9mcmFtZXNfdG9fdGFnX2xpc3QpOgoJICBEb24ndCB1c2UgXG4gaW4gZGVidWcgbGluZXMuCgoyMDA2LTA3LTIwIDE4OjQ4OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGQgYW5ub2RleCBhbmQgaWN5ZGVtdXgsIGNsZWFudXAgdGhlIHNlY3Rpb25zIGEgYml0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBBZGQgYW5ub2RleCBhbmQgaWN5ZGVtdXgsIGNsZWFudXAgdGhlIHNlY3Rpb25zIGEgYml0CgoyMDA2LTA3LTE5IDE0OjM2OjAwICswMDAwICBNYXJ0aW4gU3p1bGVja2kgPGNvbXBpekBzdWtpbWFzaGl0YS5jb20+CgoJICBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6IElmICJkZXZpY2UtbmFtZSIgaXMgcmVxdWVzdGVkIGFuZCB0aGUgZGV2aWNlIGlzIG5vdCBvcGVuLCB0cnkgdG8gdGVtcG9yYXJpbHkgb3BlbiBpdCB0byBvYnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJ0aW4gU3p1bGVja2kKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6IChnc3RfdjRsMl9vYmplY3RfZ2V0X3Byb3BlcnR5X2hlbHBlcik6CgkgIElmICJkZXZpY2UtbmFtZSIgaXMgcmVxdWVzdGVkIGFuZCB0aGUgZGV2aWNlIGlzIG5vdAoJICBvcGVuLCB0cnkgdG8gdGVtcG9yYXJpbHkgb3BlbiBpdCB0byBvYnRhaW4gdGhpcwoJICBpbmZvcm1hdGlvbiAoIzM0MjQ5NCkuCgoyMDA2LTA3LTE5IDExOjUyOjUzICswMDAwICBBbGV4IExhbmNhc3RlciA8YWxleGxAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzogV3JpdGUgR1NUX1RBR19FTkNPREVSIGFuZCBHU1RfVEFHX0VOQ09ERVJfVkVSU0lPTiBhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXggTGFuY2FzdGVyIDxhbGV4bCBhdCB1c2VycyBzb3VyY2Vmb3JnZSBuZXQ+CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgV3JpdGUgR1NUX1RBR19FTkNPREVSIGFuZCBHU1RfVEFHX0VOQ09ERVJfVkVSU0lPTiBhcwoJICBJRDN2MiBUU1NFIGZyYW1lcyAoIzM0Nzg5OCkuCgoyMDA2LTA3LTE5IDA3OjQwOjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogbWVudGlvbiBmaXhlZCBidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGZpeGVkIGJ1ZwoKMjAwNi0wNy0xOCAxOTo1OTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguYzogUmVzcGVjdCBtcGVndmVyc2lvbiBmb3IgInZpZGVvL21wZWciIGFuZCBnaXZlIG1lc3NhZ2UgaW4gY2FzZSBvZiB1bmhhbmRsZWQgdmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpX211eF92aWRzaW5rX3NldF9jYXBzKToKCSAgUmVzcGVjdCBtcGVndmVyc2lvbiBmb3IgInZpZGVvL21wZWciIGFuZCBnaXZlIG1lc3NhZ2UgaW4gY2FzZSBvZgoJICB1bmhhbmRsZWQgdmVyc2lvbnMuCgoyMDA2LTA3LTE4IDE4OjA1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiBGaXggY2FwcyBhZnRlciBwcmV2aW91cyBjaGFuZ2UgdG8gYnl0ZSBvcmRlciBlbmRpYW5uZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfY2hhaW4pOgoJICBGaXggY2FwcyBhZnRlciBwcmV2aW91cyBjaGFuZ2UgdG8gYnl0ZSBvcmRlciBlbmRpYW5uZXNzLgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOiAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc2lua19ldmVudCksIChnc3Rfd2F2cGFja19wYXJzZV9pbml0KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2xvb3ApOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICBRdWV1ZSBpbmNvbWluZyBldmVudHMgaWYgdGhlcmUncyBubyBzb3VyY2UgcGFkIHlldCBhbmQKCSAgc2VuZCB0aGVtIGRvd25zdHJlYW0gbGF0ZXIgd2hlbiB0aGUgcGFkIGlzIHRoZXJlLgoKMjAwNi0wNy0xOCAxNjo0NzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuKjogT3V0cHV0IGF1ZGlvIGluIG5hdGl2ZSBieXRlIG9yZGVyICh3aGljaCBpcyBhbHNvIGhvdyB3ZSBnZXQgc2FtcGxlcyBmcm9tIHdhdnBhY2spOyBvdXRwdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfaW5pdCksCgkgIChnc3Rfd2F2cGFja19kZWNfZm9ybWF0X3NhbXBsZXMpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX2NsaXBfb3V0Z29pbmdfYnVmZmVyKSwgKGdzdF93YXZwYWNrX2RlY19jaGFpbiksCgkgIChnc3Rfd2F2cGFja19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmg6CgkgIE91dHB1dCBhdWRpbyBpbiBuYXRpdmUgYnl0ZSBvcmRlciAod2hpY2ggaXMgYWxzbyBob3cgd2UgZ2V0CgkgIHNhbXBsZXMgZnJvbSB3YXZwYWNrKTsgb3V0cHV0IHNhbXBsZXMgd2l0aCAyMS0yNCBiaXQgZGVwdGgKCSAgd2l0aCAzMiBiaXQgd2lkdGggKG1ha2VzIHRoaW5ncyBlYXNpZXIgZm9yIHVzKS4KCjIwMDYtMDctMTggMTU6NTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLio6IE1vcmUgY2xlYW4tdXBzOiByZW1vdmUgbW9zdCBvZiB0aGUgZGlzZnVuY3Rpb25hbCBjb3JyZWN0aW9uIHBhZCBzdHVmZiBmb3Igbm93LCBpZiBpdCBldmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2Jhc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFja19kZWNfY2xhc3NfaW5pdCksIChnc3Rfd2F2cGFja19kZWNfaW5pdCksCgkgIChnc3Rfd2F2cGFja19kZWNfZmluYWxpemUpLCAoZ3N0X3dhdnBhY2tfZGVjX2Zvcm1hdF9zYW1wbGVzKSwKCSAgKGdzdF93YXZwYWNrX2RlY19jbGlwX291dGdvaW5nX2J1ZmZlciksIChnc3Rfd2F2cGFja19kZWNfY2hhaW4pLAoJICAoZ3N0X3dhdnBhY2tfZGVjX3NpbmtfZXZlbnQpLCAoZ3N0X3dhdnBhY2tfZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJICBNb3JlIGNsZWFuLXVwczogcmVtb3ZlIG1vc3Qgb2YgdGhlIGRpc2Z1bmN0aW9uYWwgY29ycmVjdGlvbgoJICBwYWQgc3R1ZmYgZm9yIG5vdywgaWYgaXQgZXZlciBnZXRzIGltcGxlbWVudGVkIGEgbG90IG9mIHN0dWZmCgkgIHdpbGwgaGF2ZSB0byBiZSByZXdyaXR0ZW4gYW55d2F5OyByZWRvIGNoYWluIGZ1bmN0aW9uLCBtb3ZlCgkgIGVycm9ycyB0byBlbmQsIGVycm9yIG91dCBpbnN0ZWFkIG9mIGdfYXNzZXJ0KClpbmcuIEFsc28gcmVuYW1lCgkgIG92ZXJseSBsb25nIHZhcmlhYmxlICd3YXZwYWNrZGVjJyB0byBqdXN0ICdkZWMnOyBtaXNjZWxsYW5lb3VzCgkgIG90aGVyIHNtYWxsIHN0dWZmLgoKMjAwNi0wNy0xOCAxNDowODowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBDaGVjayBmb3Igd2F2cGFjayB2ZXJzaW9uIGFuZCBkZWZpbmUgV0FWUEFDS19PTERfQVBJIGlmIG5lY2Vzc2FyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tbyBhdCBjaXJjdWxhci1jaGFvcy5vcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBmb3Igd2F2cGFjayB2ZXJzaW9uIGFuZCBkZWZpbmUgV0FWUEFDS19PTERfQVBJIGlmCgkgIG5lY2Vzc2FyeS4KCSAgKiBleHQvd2F2cGFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrY29tbW9uLmM6IChnc3Rfd2F2cGFja19yZWFkX2hlYWRlciksCgkgIChnc3Rfd2F2cGFja19yZWFkX21ldGFkYXRhKToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrY29tbW9uLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2Jhc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFja19kZWNfY2xhc3NfaW5pdCksIChnc3Rfd2F2cGFja19kZWNfaW5pdCksCgkgIChnc3Rfd2F2cGFja19kZWNfZmluYWxpemUpLCAoZ3N0X3dhdnBhY2tfZGVjX2Zvcm1hdF9zYW1wbGVzKSwKCSAgKGdzdF93YXZwYWNrX2RlY19jbGlwX291dGdvaW5nX2J1ZmZlciksIChnc3Rfd2F2cGFja19kZWNfY2hhaW4pLAoJICAoZ3N0X3dhdnBhY2tfZGVjX3NpbmtfZXZlbnQpLCAoZ3N0X3dhdnBhY2tfZGVjX2NoYW5nZV9zdGF0ZSksCgkgIChnc3Rfd2F2cGFja19kZWNfcmVxdWVzdF9uZXdfcGFkKSwgKGdzdF93YXZwYWNrX2RlY19wbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19jbGFzc19pbml0KSwKCSAgKGdzdF93YXZwYWNrX2VuY19pbml0KSwgKGdzdF93YXZwYWNrX2VuY19maW5hbGl6ZSksCgkgIChnc3Rfd2F2cGFja19lbmNfc2V0X3dwX2NvbmZpZyk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9iYXNlX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfZmluYWxpemUpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfY2xhc3NfaW5pdCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9nZXRfZW50cnlfZnJvbV9zYW1wbGUpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc2Nhbl90b19maW5kX3NhbXBsZSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9oYW5kbGVfc2Vla19ldmVudCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9jcmVhdGVfc3JjX3BhZCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3N0cmVhbXJlYWRlci5jOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tzdHJlYW1yZWFkZXIuaDoKCSAgUG9ydCB0byBuZXcvb2ZmaWNpYWwgd2F2cGFjayBBUEksIGRvbid0IHVzZSBBUEkgdGhhdCB3YXMgZXhwb3J0ZWQKCSAgaW4gd2F2cGFjayBoZWFkZXIgZmlsZXMgYW5kIGluIHRoZSBsaWIgYnV0IG1lYW50IHRvIGJlIHByaXZhdGUsIGF0CgkgIGxlYXN0IG5vdCBmb3IgcmVjZW50IHdhdnBhY2sgdmVyc2lvbnM7IG1pc2MuICdjbGVhbnVwcycgKCMzNDc0NDMpLgoKMjAwNi0wNy0xNyAxMDoyNTo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogU3RvcmUgZHVyYXRpb24gaW4gdWludDY0IHRvbyBpbnN0ZWFkIG9mIGNsaXBwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9wZXJmb3JtX3NlZWspLAoJICAoZ3N0X3F0ZGVtdXhfcHJlcGFyZV9jdXJyZW50X3NhbXBsZSksCgkgIChnc3RfcXRkZW11eF9sb29wX3N0YXRlX21vdmllKToKCSAgU3RvcmUgZHVyYXRpb24gaW4gdWludDY0IHRvbyBpbnN0ZWFkIG9mIGNsaXBwaW5nLgoJICBXaGVuIHdlIGRvIGEga2V5ZnJhbWUgc2VlayBhbmQgdGhlIHJlcXVlc3RlZCB0aW1lIGlzIGF0IHRoZQoJICBrZXlmcmFtZSwgZG9uJ3Qgc2VlayBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGtleWZyYW1lLgoJICBGaXhlcyAjMzQ3NDM5LgoKMjAwNi0wNy0xNyAxMDoyMjo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLio6IFVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBzZWdtZW50IGluc3RlYWQgb2YgbGVha2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfaW5pdCksIChidWZmZXJfY2xpcCksCgkgIChnc3RfcG5nZGVjX2NhcHNfY3JlYXRlX2FuZF9zZXQpLCAoZ3N0X3BuZ2RlY190YXNrKSwKCSAgKGdzdF9wbmdkZWNfY2hhaW4pLCAoZ3N0X3BuZ2RlY19zaW5rX2V2ZW50KSwKCSAgKGdzdF9wbmdkZWNfbGlicG5nX2luaXQpLCAoZ3N0X3BuZ2RlY19jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BuZ2RlY19zaW5rX2FjdGl2YXRlX3B1c2gpOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmg6CgkgIFVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBzZWdtZW50IGluc3RlYWQgb2YgbGVha2luZy4KCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgRml4IGZsdXNoIGFuZCBzZWVrIGhhbmRsaW5nLgoKMjAwNi0wNy0xNiAxNDozMTo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBBZGRlZCBzaW1wbGUgZ2VuZXJpYyBtcGVnNCBkZXBheWxvYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z2RlcGF5LmM6IChnc3RfcnRwX21wNGdfZGVwYXlfYmFzZV9pbml0KSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfbXA0Z19kZXBheV9pbml0KSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9zZXRjYXBzKSwgKGdzdF9ydHBfbXA0Z19kZXBheV9wcm9jZXNzKSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9tcDRnX2RlcGF5X2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwX21wNGdfZGVwYXlfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9ydHBfbXA0Z19kZXBheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRnZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzogKGdzdF9ydHBfbXA0Z19wYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwX21wNGdfcGF5X3BhcnNlX2F1ZGlvX2NvbmZpZyksIChnc3RfcnRwX21wNGdfcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9mbHVzaCk6CgkgIEFkZGVkIHNpbXBsZSBnZW5lcmljIG1wZWc0IGRlcGF5bG9hZGVyLgoJICBGaXggZ2VuZXJpYyBtcGVnNCBwYXlsb2FkZXIuCgoyMDA2LTA3LTE1IDE1OjI1OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiBEb24ndCB0cnkgZG9pbmcgc3RhdGUgY2hhbmdlcyBvbiBhIE5VTEwgcG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2V0X3N0YXRlKToKCSAgRG9uJ3QgdHJ5IGRvaW5nIHN0YXRlIGNoYW5nZXMgb24gYSBOVUxMIHBvaW50ZXIuCgoyMDA2LTA3LTE1IDExOjUwOjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vOiBEbyBub3QgdXNlIGRlcHJlY2F0ZWQgZ3RrIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6IChtYWluKToKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogKG1haW4pOgoJICBEbyBub3QgdXNlIGRlcHJlY2F0ZWQgZ3RrIGZ1bmN0aW9ucy4KCjIwMDYtMDctMTQgMTM6MzM6NTQgKzAwMDAgIFNlYmFzdGllbiBDb3RlIDxzZWJhczY0MkB5YWhvby5jYT4KCgkgIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuKjogcnRwYW1yZGVjIGlzbid0IGEgc3ViY2xhc3Mgb2YgR3N0QmFzZVJ0cERlcGF5bG9hZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDIgYXQgeWFob28gZG90IGNhPgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogKGdzdF9ydHBfYW1yX2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX2Ftcl9kZXBheV9jbGFzc19pbml0KSwgKGdzdF9ydHBfYW1yX2RlcGF5X2luaXQpLAoJICAoZ3N0X3J0cF9hbXJfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX2Ftcl9kZXBheV9wcm9jZXNzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5Lmg6CgkgIHJ0cGFtcmRlYyBpc24ndCBhIHN1YmNsYXNzIG9mIEdzdEJhc2VSdHBEZXBheWxvYWQuCgkgIEZpeGVzICMzMjExOTEKCjIwMDYtMDctMTQgMTI6MDE6MDUgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiBGaXggc2VnZmF1bHQgd2hlbiBtb3ZpbmcgbW91c2UgcG9pbnRlciB0byB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMTQgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfeGltYWdlX2dldCksCgkgIChnc3RfeGltYWdlX3NyY19nZXRfY2FwcyksIChnc3RfeGltYWdlX3NyY19jbGFzc19pbml0KToKCSAgRml4IHNlZ2ZhdWx0IHdoZW4gbW92aW5nIG1vdXNlIHBvaW50ZXIgdG8gdGhlIGJvdHRvbSByaWdodCBjb3JuZXIuCgoyMDA2LTA3LTEzIDE1OjIyOjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF0ZGVtdXgueG1sOgoJICByZW1vdmUgc2RsdmlkZW9zaW5rIHBsdWdpbiBhbmQgdXBkYXRlIHRoZSByZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc2RsdmlkZW9zaW5rIHBsdWdpbiBhbmQgdXBkYXRlIHRoZSByZXN0CgoyMDA2LTA3LTEyIDA5OjM0OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEFkZGVkIG1wZWcyIFRTIGRlcGF5bG9hZGVyLiBDbG9zaW5nICMzNDcyMzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wMnRkZXBheS5jOiAoZ3N0X3J0cF9tcDJ0X2RlcGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfcnRwX21wMnRfZGVwYXlfY2xhc3NfaW5pdCksIChnc3RfcnRwX21wMnRfZGVwYXlfaW5pdCksCgkgIChnc3RfcnRwX21wMnRfZGVwYXlfc2V0Y2FwcyksIChnc3RfcnRwX21wMnRfZGVwYXlfcHJvY2VzcyksCgkgIChnc3RfcnRwX21wMnRfZGVwYXlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBfbXAydF9kZXBheV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9tcDJ0X2RlcGF5X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRwX21wMnRfZGVwYXlfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXAydGRlcGF5Lmg6CgkgIEFkZGVkIG1wZWcyIFRTIGRlcGF5bG9hZGVyLiBDbG9zaW5nICMzNDcyMzQuCgoyMDA2LTA3LTEyIDA5OjI4OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IEZpeCB0eXBvIGluIHByb3BlcnR5IG5pY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpOgoJICBGaXggdHlwbyBpbiBwcm9wZXJ0eSBuaWNrLgoKMjAwNi0wNy0xMSAyMjo0Njo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6IFJlbW92ZSBnX2Fzc2VydCB0aGF0IHNob3VsZG4ndCBiZSB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NkaW8vZ3N0Y2Rpb2NkZGFzcmMuYzogKGdzdF9jZGlvX2NkZGFfc3JjX2Nsb3NlKToKCSAgUmVtb3ZlIGdfYXNzZXJ0IHRoYXQgc2hvdWxkbid0IGJlIHRoZXJlLgoKMjAwNi0wNy0xMCAyMDoxMTozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogRG9uJ3QgcHVzaCB0YWcgZXZlbnRzIGZvdW5kIGJ5IGdzdF9yaWZmX3BhcnNlX2luZm8oKSBiZWZvcmUgb3V0cHV0dGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksIChwdXNoX3RhZ19saXN0cyk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBEb24ndCBwdXNoIHRhZyBldmVudHMgZm91bmQgYnkgZ3N0X3JpZmZfcGFyc2VfaW5mbygpIGJlZm9yZSBvdXRwdXR0aW5nCgkgIEdTVF9FVkVOVF9ORVdTRUdNRU5ULgoKMjAwNi0wNy0xMCAxNjo0MTo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwLzogcmVwbGFjZWQgY2xvc2Vzb2NrZXQgYW5kIGNsb3NlIGluIGNvZGUgd2l0aCBvbmUgQ0xPU0VfU09DS0VULgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocnRzcF9jb25uZWN0aW9uX3NlbmQpLAoJICAocnRzcF9jb25uZWN0aW9uX2Nsb3NlKToKCSAgKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJICByZXBsYWNlZCBjbG9zZXNvY2tldCBhbmQgY2xvc2UgaW4gY29kZSB3aXRoIG9uZSBDTE9TRV9TT0NLRVQuCgkgIFNvbWUgbW9yZSBjbGVhbnVwcy4gRml4ZXMgIzM0NTMwMS4KCjIwMDYtMDctMTAgMTU6MjY6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6IEZpeCBleGFtcGxlIHBpcGVsaW5lIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSAgRml4IGV4YW1wbGUgcGlwZWxpbmUgaW4gZG9jcy4KCjIwMDYtMDctMTAgMTQ6NDk6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZmlsdGVyLzogRG9uJ3QgZm9yZ2V0IG5ldyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmg6CgkgICogZ3N0L2ZpbHRlci9nc3RpaXIuaDoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuaDoKCSAgRG9uJ3QgZm9yZ2V0IG5ldyBmaWxlcy4KCjIwMDYtMDctMTAgMTQ6NDI6MTUgKzAwMDAgIE1hdGhpcyBIb2ZlciA8bWF0aGlzLmhvZmVyQGRyZWFtbGFiLm5ldD4KCgkgIFBvcnRlZCB0aGUgZ3N0ZmlsdGVyIHBsdWdpbiB0byBHU3RyZWFtZXIgMC4xMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXRoaXMgSG9mZXIgPG1hdGhpcyBkb3QgaG9mZXIgYXQgZHJlYW1sYWIgZG90IG5ldD4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2ZpbHRlci9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZmlsdGVyL2dzdGJwd3NpbmMuYzogKGdzdF9icHdzaW5jX2Rpc3Bvc2UpLAoJICAoZ3N0X2Jwd3NpbmNfYmFzZV9pbml0KSwgKGdzdF9icHdzaW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jwd3NpbmNfaW5pdCksIChicHdzaW5jX3NldF9jYXBzKSwgKGJwd3NpbmNfdHJhbnNmb3JtX2lwKSwKCSAgKGJwd3NpbmNfc2V0X3Byb3BlcnR5KSwgKGJwd3NpbmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZmlsdGVyL2dzdGZpbHRlci5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9maWx0ZXIvZ3N0ZmlsdGVyLmg6CgkgICogZ3N0L2ZpbHRlci9nc3RpaXIuYzogKGdzdF9paXJfZGlzcG9zZSksIChnc3RfaWlyX2Jhc2VfaW5pdCksCgkgIChnc3RfaWlyX2NsYXNzX2luaXQpLCAoZ3N0X2lpcl9pbml0KSwgKGlpcl9zZXRfY2FwcyksCgkgIChpaXJfdHJhbnNmb3JtX2lwKSwgKGlpcl9zZXRfcHJvcGVydHkpLCAoaWlyX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChnc3RfbHB3c2luY19kaXNwb3NlKSwKCSAgKGdzdF9scHdzaW5jX2Jhc2VfaW5pdCksIChnc3RfbHB3c2luY19jbGFzc19pbml0KSwKCSAgKGdzdF9scHdzaW5jX2luaXQpLCAobHB3c2luY19zZXRfY2FwcyksIChscHdzaW5jX3RyYW5zZm9ybV9pcCksCgkgIChscHdzaW5jX3NldF9wcm9wZXJ0eSksIChscHdzaW5jX2dldF9wcm9wZXJ0eSk6CgkgIFBvcnRlZCB0aGUgZ3N0ZmlsdGVyIHBsdWdpbiB0byBHU3RyZWFtZXIgMC4xMC4KCjIwMDYtMDctMTAgMTA6MjE6NTcgKzAwMDAgIFJvYiBUYXlsb3IgPHJvYnRheWxvckBmbG9vcGlseS5vcmc+CgoJICBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiBJZiBhIGRlc3RpbmF0aW9uIGlzIGFkZGVkIGJlZm9yZSB0aGUgc3RyZWFtIGlzIHNldCB0byBQQVVTRUQsIHRoZSBtdWx0aWNhc3QgZ3JvdXAgaXMgbm90IGouLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSb2IgVGF5bG9yIDxyb2J0YXlsb3IgYXQgZmxvb3BpbHkgZG90IG9yZz4KCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoam9pbl9tdWx0aWNhc3QpLAoJICAoZ3N0X211bHRpdWRwc2lua19pbml0X3NlbmQpLCAoZ3N0X211bHRpdWRwc2lua19hZGQpOgoJICBJZiBhIGRlc3RpbmF0aW9uIGlzIGFkZGVkIGJlZm9yZSB0aGUgc3RyZWFtIGlzIHNldCB0byBQQVVTRUQsIHRoZQoJICBtdWx0aWNhc3QgZ3JvdXAgaXMgbm90IGpvaW5lZCBhcyB0aGUgc29ja2V0IGlzIG5vdCBjcmVhdGVkIHlldC4KCSAgQWxzbyBUVEwgYW5kIExPT1Agc2hvdWxkIGFsc28gYmUgc2V0LiBGaXhlcyAjMzQ2OTIxLgoKMjAwNi0wNy0xMCAwOTo1NzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRXh0cmFjdCBjb21tZW50IGluZm9ybWF0aW9uISEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV91ZHRhKToKCSAgRXh0cmFjdCBjb21tZW50IGluZm9ybWF0aW9uISEKCjIwMDYtMDctMTAgMDk6NDY6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEV4dHJhY3QgeWVhci9kYXRlIGluZm9ybWF0aW9uIChmaXhlcyAjMzQ3MDc5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV91ZHRhKSwKCSAgKHF0ZGVtdXhfdGFnX2FkZF9kYXRlKToKCSAgRXh0cmFjdCB5ZWFyL2RhdGUgaW5mb3JtYXRpb24gKGZpeGVzICMzNDcwNzkpLgoKMjAwNi0wNy0wOCAyMjo0MToyNSArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLio6IEZpeCB1c2UtZGFtYWdlIHByb3BlcnR5IHRvIGFjdHVhbGx5IHdvcmsgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfeGltYWdlX2dldCksCgkgIChnc3RfeGltYWdlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3hpbWFnZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF94aW1hZ2Vfc3JjX2dldF9jYXBzKSwgKGdzdF94aW1hZ2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3hpbWFnZV9zcmNfaW5pdCk6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuaDoKCSAgRml4IHVzZS1kYW1hZ2UgcHJvcGVydHkgdG8gYWN0dWFsbHkgd29yayA6KQoJICBBZGQgc3RhcnR4LCBzdGFydHksIGVuZHgsIGVuZHkgcHJvcGVydGllcyBzbyBzY3JlZW5jYXN0cyBvdGhlciB0aGFuIGZ1bGwKCSAgc2NyZWVuIG9uZXMgY2FuIHdvcmsuCgoyMDA2LTA3LTA4IDE5OjAzOjU0ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuKjogQWRkIHVzZV9kYW1hZ2UgcHJvcGVydHkgdG8gb2ZmZXIgYWJpbGl0eSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMDggIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZV9zcmNfeGltYWdlX2dldCksCgkgIChnc3RfeGltYWdlX3NyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3hpbWFnZV9zcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF94aW1hZ2Vfc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3hpbWFnZV9zcmNfaW5pdCk6CgkgICogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuaDoKCSAgQWRkIHVzZV9kYW1hZ2UgcHJvcGVydHkgdG8gb2ZmZXIgYWJpbGl0eSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKCSAgWERhbWFnZSBvciBub3QuCgoyMDA2LTA3LTA3IDE1OjA0OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dvb20vZmlsdGVycy5jOiBBdm9pZCBnb29tIGNvcmVkdW1waW5nIGJ5IGNsZWFyaW5nIG1lbW9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dvb20vZmlsdGVycy5jOiAoem9vbUZpbHRlclNldFJlc29sdXRpb24pOgoJICBBdm9pZCBnb29tIGNvcmVkdW1waW5nIGJ5IGNsZWFyaW5nIG1lbW9yeS4KCSAgRml4ZXMgMzQ1Njc5LgoKMjAwNi0wNy0wNyAxNDozMDoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRG9uJ3QgY3Jhc2ggb24gdHdvcy9zb3d0L3JhdyBhdWRpby4gIzM0NTgzMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRG9uJ3QgY3Jhc2ggb24gdHdvcy9zb3d0L3JhdyBhdWRpby4gIzM0NTgzMC4KCjIwMDYtMDctMDUgMjA6MjE6MDIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNi9saWJnc3RpZDNkZW11eC5kc3A6IEFkZCBhIGxpbmsgdG8gbGliZ3N0dGFnLTAuMTAubGliLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvbGliZ3N0aWQzZGVtdXguZHNwOgoJICBBZGQgYSBsaW5rIHRvIGxpYmdzdHRhZy0wLjEwLmxpYi4KCjIwMDYtMDctMDUgMTQ6NTI6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBEb24ndCByZXR1cm4gRkxPV19VTkVYUEVDVEVEIHdoZW4gYSBidWZmZXIgaXMgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgc3RyZWFtICh3aGljaCBtaWdodCBoYXBwZW4gd2l0aCBsYXJnZSBJRDMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FwZXRhZy9nc3R0YWdkZW11eC5jOiAoZ3N0X3RhZ19kZW11eF90cmltX2J1ZmZlciksCgkgIChnc3RfdGFnX2RlbXV4X3JlYWRfcmFuZ2UpOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X3RyaW1fYnVmZmVyKSwKCSAgKGdzdF9pZDNkZW11eF9yZWFkX3JhbmdlKToKCSAgRG9uJ3QgcmV0dXJuIEZMT1dfVU5FWFBFQ1RFRCB3aGVuIGEgYnVmZmVyIGlzIGJlZm9yZQoJICB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbSAod2hpY2ggbWlnaHQgaGFwcGVuIHdpdGgKCSAgbGFyZ2UgSUQzdjIgdGFncyBpZiB0aGUgdGFnIHJlYWRpbmcgd2FzIGRvbmUgcHVsbHJhbmdlCgkgIGJhc2VkIGFuZCB3ZSB0aGVuIHN3aXRjaGVkIHRvIHB1c2ggbW9kZSBsYXRlciBvbikuCgkgIEZpeGVzIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBjb21taXQgZnJvbSBKdW5lIDI5dGguCgoyMDA2LTA3LTA1IDEwOjE0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzogTWFrZSBVVEYtOCB0aGUgZGVmYXVsdCBlbmNvZGluZyB3aGVuIHdyaXRpbmcgc3RyaW5nIHRhZ3MgKGJlZm9yZSwgb3VyIFVURi04IHN0cmluZ3Mgd291bGQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguY2M6CgkgIE1ha2UgVVRGLTggdGhlIGRlZmF1bHQgZW5jb2Rpbmcgd2hlbiB3cml0aW5nIHN0cmluZwoJICB0YWdzIChiZWZvcmUsIG91ciBVVEYtOCBzdHJpbmdzIHdvdWxkIGF1dG9tYXRpY2FsbHkKCSAgYmUgY29udmVydGVkIHRvIElTTy04ODU5LTEgYnkgdGFnbGliIGFuZCB3cml0dGVuIGFzCgkgIElTTy04ODU5LTEgZmllbGRzIGlmIHRoYXQgd2FzIHBvc3NpYmxlKS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDN2Mm11eC5jOiAodXRmOF9zdHJpbmdfaW5fYnVmKSwKCSAgKHRlc3RfdGFnbGliX2lkM211eF9jaGVja190YWdfYnVmZmVyKSwgKGlkZW50aXR5X2NiKSwKCSAgKHRlc3RfdGFnbGliX2lkM211eF93aXRoX3RhZ3MpOgoJICBBZGQgdGVzdCBjYXNlIHRoYXQgbWFrZXMgc3VyZSBvdXIgVVRGLTggc3RyaW5ncyBoYXZlCgkgIGFjdHVhbGx5IGJlZW4gd3JpdHRlbiBpbnRvIHRoZSB0YWcgYXMgVVRGLTguCgoyMDA2LTA3LTA0IDE2OjAwOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBMZXQncyB0cnkgdGhhdCBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBMZXQncyB0cnkgdGhhdCBhZ2Fpbi4KCjIwMDYtMDctMDQgMTU6NDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IERpc2FibGUgbW9ub3Njb3BlIHBsdWdpbiBmb3Igbm93IHVudGlsIGl0IGZ1bGZpbGxzIGFsbCB0aGUgcmVxdWlyZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERpc2FibGUgbW9ub3Njb3BlIHBsdWdpbiBmb3Igbm93IHVudGlsIGl0IGZ1bGZpbGxzCgkgIGFsbCB0aGUgcmVxdWlyZW1lbnRzLgoKMjAwNi0wNy0wMyAyMDozNTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFBvcnQgbW9ub3Njb3BlIHZpc3VhbGlzYXRpb24gdG8gMC4xMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9tb25vc2NvcGUvTWFrZWZpbGUuYW06CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzogKGdzdF9tb25vc2NvcGVfYmFzZV9pbml0KSwKCSAgKGdzdF9tb25vc2NvcGVfY2xhc3NfaW5pdCksIChnc3RfbW9ub3Njb3BlX2luaXQpLAoJICAoZ3N0X21vbm9zY29wZV9maW5hbGl6ZSksIChnc3RfbW9ub3Njb3BlX3Jlc2V0KSwKCSAgKGdzdF9tb25vc2NvcGVfc2lua19zZXRjYXBzKSwgKGdzdF9tb25vc2NvcGVfc3JjX3NldGNhcHMpLAoJICAoZ3N0X21vbm9zY29wZV9zcmNfbmVnb3RpYXRlKSwgKGdldF9idWZmZXIpLCAoZ3N0X21vbm9zY29wZV9jaGFpbiksCgkgIChnc3RfbW9ub3Njb3BlX3NpbmtfZXZlbnQpLCAoZ3N0X21vbm9zY29wZV9zcmNfZXZlbnQpLAoJICAoZ3N0X21vbm9zY29wZV9jaGFuZ2Vfc3RhdGUpLCAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmg6CgkgIFBvcnQgbW9ub3Njb3BlIHZpc3VhbGlzYXRpb24gdG8gMC4xMC4KCjIwMDYtMDctMDMgMjA6MDI6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBzaWxseSBjcmFzaGVyIGluIHN0YXRlIGNoYW5nZSBmdW5jdGlvbjsgYWRkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXRkZW11eF9sb29wX3N0YXRlX2hlYWRlciksIChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICBGaXggc2lsbHkgY3Jhc2hlciBpbiBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb247IGFkZAoJICBJVjQxIGZvdXJjYyAoc2VlIGJ1ZyAjMTcxMTExKTsgZG9uJ3Qgb3V0cHV0IGNvbmZ1c2luZwoJICBkZWJ1ZyBtZXNzYWdlIHdoZW4gc2tpcHBpbmcgYXRvbXMuCgoyMDA2LTA3LTAzIDE2OjQzOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogUmV0dXJuIEZMT1dfVU5FWFBFQ1RFRCB3aGVuIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUsIG5vdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X2NoYWluKToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9jaGFpbik6CgkgIFJldHVybiBGTE9XX1VORVhQRUNURUQgd2hlbiBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlLCBub3QKCSAgRkxPV19FUlJPUi4gRml4ZXMgJ2ludGVybmFsIHN0cmVhbSBlcnJvcicgZXJyb3JzIHRoYXQKCSAgd291bGQgc29tZXRpbWVzIG9jY3VyIGluIHRvdGVtIHdoZW4gc2NydWJiaW5nIHRvIHRoZQoJICBlbmQgb2YgYW4gSUQzdjEgdGFnZ2VkIG1wMyBmaWxlLgoKMjAwNi0wNy0wMyAxNTozMToyMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLio6IEltcGxlbWVudCBidWZmZXIgY2xpcHBpbmcvZHJvcHBpbmcgdXNpbmcgR3N0U2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfaW5pdCksICh1c2VyX2luZm9fY2FsbGJhY2spLAoJICAoYnVmZmVyX2NsaXApLCAodXNlcl9lbmRfY2FsbGJhY2spLCAoZ3N0X3BuZ2RlY19jaGFpbiksCgkgIChnc3RfcG5nZGVjX3NpbmtfZXZlbnQpLCAoZ3N0X3BuZ2RlY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmg6CgkgIEltcGxlbWVudCBidWZmZXIgY2xpcHBpbmcvZHJvcHBpbmcgdXNpbmcgR3N0U2VnbWVudC4KCSAgVGhpcyBwcm92aWRlcyBhY2N1cmF0ZSBzZWVraW5nLgoKMjAwNi0wNy0wMyAxNToyODo0OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogUHJvcGVyIGFnZ3JlZ2F0aW9uIG9mIGVhY2ggc3RyZWFtJ3MgR3N0Rmxvd1JldHVybiBpbiBvcmRlciB0byBmaWd1cmUgb3V0IHdoZXRoZXIgdGhlIHRhc2sgc2hvdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3Jlc2V0KSwKCSAgKGdzdF9hdmlfZGVtdXhfcmVhZF9zdWJpbmRleGVzKSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspLCAoZ3N0X2F2aV9kZW11eF9hZ2dyZWdhdGVkX2Zsb3cpLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAocHVzaF90YWdfbGlzdHMpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksIChnc3RfYXZpX2RlbXV4X2xvb3ApOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgUHJvcGVyIGFnZ3JlZ2F0aW9uIG9mIGVhY2ggc3RyZWFtJ3MgR3N0Rmxvd1JldHVybiBpbiBvcmRlciB0byBmaWd1cmUgb3V0CgkgIHdoZXRoZXIgdGhlIHRhc2sgc2hvdWxkIHN0b3Agb3Igbm90LgoJICBEb24ndCBzZW5kIGlubGluZSBldmVudHMgYmVmb3JlIHB1c2hpbmcgb3V0IGEgTkVXX1NFR01FTlQsIG1vcmUKCSAgc3BlY2lmaWNhbGx5IGZvciBHU1RfVEFHX0VWRU5ULgoJICBDaGFuZ2UgYSBHU1RfRVJST1IgdG8gYSBHU1RfV0FSTklORyBmb3IgYSBub24tZmF0YWwgc2l0dWF0aW9uIGluIHJlYWRpbmcKCSAgc3ViLWluZGV4ZXMuCgoyMDA2LTA2LTMwIDA3OjExOjI0ICswMDAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuYzogTW92ZSAiTW9uaXRvciIgc2xpZGVyIHRvIGlucHV0IHRhYiBzbyBpdCB3b3JrcyBtb3JlIGxpa2Ugc2R0YXVkaW9jb250cm9sLCB3aGljaCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBCcmlhbiBDYW1lcm9uICA8YnJpYW4gZG90IGNhbWVyb24gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX2J1aWxkX2xpc3QpOgoJICBNb3ZlICJNb25pdG9yIiBzbGlkZXIgdG8gaW5wdXQgdGFiIHNvIGl0IHdvcmtzIG1vcmUgbGlrZQoJICBzZHRhdWRpb2NvbnRyb2wsIHdoaWNoIGlzIHdoYXQgcGVvcGxlIG9uIFNvbGFyaXMgYXJlIHVzZWQKCSAgdG8gdXNpbmcgZm9yIHRoZWlyIG1peGVyIHByb2dyYW0gKCMzNDYyNTkpLgoKMjAwNi0wNi0yOSAxNDo1MDoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOiBmaXggYSBsZWFrLCBjbGVhbiB1cCBhdCB0aGUgZW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCBhIGxlYWssIGNsZWFuIHVwIGF0IHRoZSBlbmQKCjIwMDYtMDYtMjkgMTE6NDE6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvOiBTZW5kIHRhZyBldmVudCBhZnRlciBuZXdzZWdtZW50IGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wX3N0cmVhbV9wYXJzZV9pZCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBTZW5kIHRhZyBldmVudCBhZnRlciBuZXdzZWdtZW50IGV2ZW50LgoKMjAwNi0wNi0yOSAxMToxMTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiBNYWtlIHN1cmUgd2UgZG9uJ3QgcmV0dXJuIEdTVF9GTE9XX09LIHdpdGggYSBOVUxMIGJ1ZmZlciBpbiBjZXJ0YWluIGNhc2VzIHdoZXJlIGEgcmVhZCBiZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF90cmltX2J1ZmZlciksCgkgIChnc3RfaWQzZGVtdXhfcmVhZF9yYW5nZSk6CgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCByZXR1cm4gR1NUX0ZMT1dfT0sgd2l0aCBhIE5VTEwgYnVmZmVyIGluCgkgIGNlcnRhaW4gY2FzZXMgd2hlcmUgYSByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIGlzCgkgIHJlcXVlc3RlZC4gRml4ZXMgIzM0NTkzMC4KCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X3RyaW1fYnVmZmVyKSwKCSAgKGdzdF90YWdfZGVtdXhfcmVhZF9yYW5nZSk6CgkgIEZpeCBzYW1lIGlzc3VlIGhlcmUgYXMgd2VsbC4KCjIwMDYtMDYtMjkgMTE6MDU6MTQgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOiBGaXggaHlwb3RoZXRpY2FsIGNyYXNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNi0yOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6IChnc3RfeGltYWdlX3NyY194aW1hZ2VfZ2V0KToKCSAgRml4IGh5cG90aGV0aWNhbCBjcmFzaC4KCjIwMDYtMDYtMjggMDg6MzY6MzAgKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzogRG8gbm90IG1vZGlmeSB0aGUgcG9ydHMgdmFsdWUuIElmIHRoZSB1c2VyIGhhcyB0dXJuZWQgb2ZmIHRoZSBidWlsdC1pbiBzcGVha2VycywgdGhlbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEJyaWFuIENhbWVyb24gIDxicmlhbiBkb3QgY2FtZXJvbiBhdCBzdW4gZG90IGNvbT4KCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6IChnc3Rfc3VuYXVkaW9zaW5rX3ByZXBhcmUpOgoJICBEbyBub3QgbW9kaWZ5IHRoZSBwb3J0cyB2YWx1ZS4gSWYgdGhlIHVzZXIgaGFzIHR1cm5lZCBvZmYgdGhlCgkgIGJ1aWx0LWluIHNwZWFrZXJzLCB0aGVuIHdlIHNob3VsZCBub3QgcmVzZXQgaXQgaW4gdGhlIHByZXBhcmUKCSAgZnVuY3Rpb24sIHNpbmNlIHRoaXMgY2F1c2VzIHRoZSBidWlsdC1pbiBzcGVha2VycyB0byB0dXJuCgkgIGJhY2sgb24gYW55dGltZSB0aGUgdXNlciBjaGFuZ2VzIGEgdHJhY2sgaW4gdG90ZW0sIHJoeXRobWJveCwKCSAgZXRjLiAoIzM0NjA2NikuCgoyMDA2LTA2LTIzIDA5OjM1OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dvb20vZ3N0Z29vbS5jOiBGaXggZG91YmxlIGNhcHMgdW5yZWYgd2hlbiBuZWdvdGlhdGlvbiBmYWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dvb20vZ3N0Z29vbS5jOiAoZ3N0X2dvb21fc3JjX25lZ290aWF0ZSk6CgkgIEZpeCBkb3VibGUgY2FwcyB1bnJlZiB3aGVuIG5lZ290aWF0aW9uIGZhaWxzLgoKMjAwNi0wNi0yMiAxOTozMTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVzZSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIHdoZXJlIHBvc3NpYmxlICgjMzQyNTAzKSBwbHVzIHR3byBtaW5vciBtYWNybyBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1scGFyc2VyLmM6CgkgICogZXh0L2R2L2dzdGR2ZGVjLmM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5jOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzoKCSAgKiBleHQvanBlZy9nc3RzbW9rZWRlYy5jOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkgICogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguYzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydC5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICAqIGdzdC9ydHNwL2dzdHJ0cGRlYy5jOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICBVc2UgR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyB3aGVyZSBwb3NzaWJsZSAoIzM0MjUwMykKCSAgcGx1cyB0d28gbWlub3IgbWFjcm8gZml4ZXMuCgoyMDA2LTA2LTIyIDE2OjI3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thLzogVHJ5IHRvIGZpeCB1cCBicm9rZW4gbWF0cm9za2EgZmlsZXMgY29udGFpbmluZyBzdWJ0aXRsZSBzdHJlYW1zIHdpdGggbm9uLVVURjggY2hhcmFjdGVyIGVuY29kaW5ncyAoY291Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2NoZWNrX3N1YnRpdGxlX2J1ZmZlciksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2Fwcyk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jOgoJICAoZ3N0X21hdHJvc2thX3RyYWNrX2luaXRfc3VidGl0bGVfY29udGV4dCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBUcnkgdG8gZml4IHVwIGJyb2tlbiBtYXRyb3NrYSBmaWxlcyBjb250YWluaW5nIHN1YnRpdGxlCgkgIHN0cmVhbXMgd2l0aCBub24tVVRGOCBjaGFyYWN0ZXIgZW5jb2RpbmdzIChjb3VydGVzeSBvZgoJICBta3ZtZXJnZSkgdXNpbmcgZWl0aGVyIHRoZSBlbmNvZGluZyBzcGVjaWZpZWQgaW4gdGhlCgkgIEdTVF9TVUJUSVRMRV9FTkNPRElORyBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUKCSAgY3VycmVudCBsb2NhbGUncyBjaGFyYWN0ZXIgc2V0IGlmIGl0IGlzIG5vbi1VVEY4LgoJICBGaXhlcyAjMzM3MDc2LgoKMjAwNi0wNi0yMiAxMjoxNzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBTZXQgaW1hZ2UgdHlwZSBmcm9tIEFQSUMgZnJhbWUgYXMgImltYWdlLXR5cGUiIGZpZWxkIG9mIEdTVF9UQUdfSU1BR0UgYnVmZmVyIGNhcHMgKCMzNDQ2MDUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX3BpY3R1cmVfZnJhbWUpOgoJICBTZXQgaW1hZ2UgdHlwZSBmcm9tIEFQSUMgZnJhbWUgYXMgImltYWdlLXR5cGUiIGZpZWxkCgkgIG9mIEdTVF9UQUdfSU1BR0UgYnVmZmVyIGNhcHMgKCMzNDQ2MDUpLgoKMjAwNi0wNi0yMCAxOTo0MDoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9mbGFjLzogU3VwcG9ydCBjaGFpbi1iYXNlZCBvcGVyYXRpb24sIHNob3VsZCBtYWtlIGZsYWMtb3Zlci1EQUFQIHdvcmsgKCMzNDA0OTIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfaW5pdCksCgkgIChnc3RfZmxhY19kZWNfcmVzZXRfZGVjb2RlcnMpLAoJICAoZ3N0X2ZsYWNfZGVjX3NldHVwX3NlZWthYmxlX2RlY29kZXIpLAoJICAoZ3N0X2ZsYWNfZGVjX3NldHVwX3N0cmVhbV9kZWNvZGVyKSwgKGdzdF9mbGFjX2RlY19maW5hbGl6ZSksCgkgIChnc3RfZmxhY19kZWNfbWV0YWRhdGFfY2FsbGJhY2spLAoJICAoZ3N0X2ZsYWNfZGVjX21ldGFkYXRhX2NhbGxiYWNrX3NlZWthYmxlKSwKCSAgKGdzdF9mbGFjX2RlY19tZXRhZGF0YV9jYWxsYmFja19zdHJlYW0pLAoJICAoZ3N0X2ZsYWNfZGVjX2Vycm9yX2NhbGxiYWNrKSwKCSAgKGdzdF9mbGFjX2RlY19lcnJvcl9jYWxsYmFja19zZWVrYWJsZSksCgkgIChnc3RfZmxhY19kZWNfZXJyb3JfY2FsbGJhY2tfc3RyZWFtKSwgKGdzdF9mbGFjX2RlY19yZWFkX3NlZWthYmxlKSwKCSAgKGdzdF9mbGFjX2RlY19yZWFkX3N0cmVhbSksIChnc3RfZmxhY19kZWNfd3JpdGUpLAoJICAoZ3N0X2ZsYWNfZGVjX3dyaXRlX3NlZWthYmxlKSwgKGdzdF9mbGFjX2RlY193cml0ZV9zdHJlYW0pLAoJICAoZ3N0X2ZsYWNfZGVjX2xvb3ApLCAoZ3N0X2ZsYWNfZGVjX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZsYWNfZGVjX2NoYWluKSwgKGdzdF9mbGFjX2RlY19jb252ZXJ0X3NpbmspLAoJICAoZ3N0X2ZsYWNfZGVjX2dldF9zaW5rX3F1ZXJ5X3R5cGVzKSwgKGdzdF9mbGFjX2RlY19zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9mbGFjX2RlY19nZXRfc3JjX3F1ZXJ5X3R5cGVzKSwgKGdzdF9mbGFjX2RlY19zcmNfcXVlcnkpLAoJICAoZ3N0X2ZsYWNfZGVjX2hhbmRsZV9zZWVrX2V2ZW50KSwgKGdzdF9mbGFjX2RlY19zaW5rX2FjdGl2YXRlKSwKCSAgKGdzdF9mbGFjX2RlY19zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2ZsYWNfZGVjX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfZmxhY19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIFN1cHBvcnQgY2hhaW4tYmFzZWQgb3BlcmF0aW9uLCBzaG91bGQgbWFrZSBmbGFjLW92ZXItREFBUAoJICB3b3JrICgjMzQwNDkyKS4KCjIwMDYtMDYtMjAgMTU6MzU6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDogRG9jIHVwZGF0ZXMsIG1lcmdlIHNvbWUgdW51c2VkIHN5bWJvbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBEb2MgdXBkYXRlcywgbWVyZ2Ugc29tZSB1bnVzZWQgc3ltYm9scy4KCjIwMDYtMDYtMjAgMTQ6NTc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgcnRzcCBwbHVnaW4uIEZpeGVzICMzNDUzOTMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuYzogKGdzdF9ydHBkZWNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgQWRkZWQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHJ0c3AgcGx1Z2luLiBGaXhlcyAjMzQ1MzkzLgoKMjAwNi0wNi0yMCAxMjoxMDoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IFVzZSBiZXR0ZXIgR19PU18qIG1hY3Jvcy4gRml4ZXMgIzM0NTMwMSBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChpbmV0X2F0b24pLCAocnRzcF9jb25uZWN0aW9uX3NlbmQpLAoJICAocnRzcF9jb25uZWN0aW9uX2Nsb3NlKSwgKHJ0c3BfY29ubmVjdGlvbl9mcmVlKToKCSAgVXNlIGJldHRlciBHX09TXyogbWFjcm9zLiBGaXhlcyAjMzQ1MzAxIHNvbWUgbW9yZS4KCjIwMDYtMDYtMjAgMTA6MzU6NDggKzAwMDAgIEJyaWFuIENhbWVyb24gPGJyaWFuLmNhbWVyb25Ac3VuLmNvbT4KCgkgIHN5cy9zdW5hdWRpby86IEFkZCBhIFN1bkF1ZGlvIHNvdXJjZSBwbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQnJpYW4gQ2FtZXJvbiA8YnJpYW4gZG90IGNhbWVyb24gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpby5jOiAocGx1Z2luX2luaXQpOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOgoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfY3RybF9idWlsZF9saXN0KSwgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfbmV3KSwKCSAgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfbGlzdF90cmFja3MpLAoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfY3RybF9nZXRfdm9sdW1lKSwKCSAgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfc2V0X3ZvbHVtZSksCgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX3NldF9tdXRlKSwKCSAgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfc2V0X3JlY29yZCk6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmg6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5jOgoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfdHJhY2tfaW5pdCksIChnc3Rfc3VuYXVkaW9taXhlcl90cmFja19uZXcpOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVydHJhY2suaDoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zcmMuYzogKGdzdF9zdW5hdWRpb3NyY19kaXNwb3NlKSwKCSAgKGdzdF9zdW5hdWRpb3NyY19iYXNlX2luaXQpLCAoZ3N0X3N1bmF1ZGlvc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N1bmF1ZGlvc3JjX2luaXQpLCAoZ3N0X3N1bmF1ZGlvc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3VuYXVkaW9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9zdW5hdWRpb3NyY19nZXRjYXBzKSwKCSAgKGdzdF9zdW5hdWRpb3NyY19vcGVuKSwgKGdzdF9zdW5hdWRpb3NyY19jbG9zZSksCgkgIChnc3Rfc3VuYXVkaW9zcmNfcHJlcGFyZSksIChnc3Rfc3VuYXVkaW9zcmNfdW5wcmVwYXJlKSwKCSAgKGdzdF9zdW5hdWRpb3NyY19yZWFkKSwgKGdzdF9zdW5hdWRpb3NyY19kZWxheSksCgkgIChnc3Rfc3VuYXVkaW9zcmNfcmVzZXQpOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NyYy5oOgoJICBBZGQgYSBTdW5BdWRpbyBzb3VyY2UgcGx1Z2luLgoJICBTdXBwb3J0IHN0ZXJlbyBhbmQgcmlnaHQvbGVmdCBjaGFubmVsIGdhaW4gaW4gdGhlIG1peGVyIHBsdWdpbi4KCSAgU3VwcG9ydCB0aGUgUkVDT1JEIGZsYWcgc28gdGhhdCB5b3UgY2FuIHN3aXRjaCBiZXR3ZWVuIGxpbmUtaW5wdXQgYW5kCgkgIG1pY3JvcGhvbmUgaW4gZ25vbWUtdm9sdW1lLWNvbnRyb2wuCgkgIENvZGUgY2xlYW51cHMgbGlrZSB1c2luZyBhbiBlbnVtZXJhdG9yIGZvciB0cmFjayBudW1iZXIgaW5zdGVhZCBvZiBhbgoJICBpbnRlZ2VyLiBGaXhlcyAjMzQ0OTIzLgoKMjAwNi0wNi0yMCAxMDozMTo0MSArMDAwMCAgSm9uaSBWYWx0YW5lbiA8am9uaS52YWx0YW5lbkBtb3ZpYWwuZmk+CgoJICBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiBNYWtlIFJUU1AgcGx1Z2luIGNvbXBpbGUgb24gd2luZG93cy4gRml4ZXMgIzM0NTMwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25pIFZhbHRhbmVuIDxqb25pIGRvdCB2YWx0YW5lbiBhdCBtb3ZpYWwgZG90IGZpPgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChpbmV0X2F0b24pLCAocnRzcF9jb25uZWN0aW9uX3NlbmQpLAoJICAocnRzcF9jb25uZWN0aW9uX2Nsb3NlKToKCSAgTWFrZSBSVFNQIHBsdWdpbiBjb21waWxlIG9uIHdpbmRvd3MuIEZpeGVzICMzNDUzMDEuCgkgIFNvbWUgY2hhbmdlcyB0byBvcmlnaW5hbCBwYXRjaCB0byBjYXRjaCBlcnJvcnMgYmV0dGVyLgoJICB1c2UgaWZkZWYgV0lOMzIgaW5zdGVhZCBvZiBpZm5kZWYuCgoyMDA2LTA2LTE5IDEwOjAwOjE4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgY29uZmlndXJlLmFjOiBJZiB3ZSBoYXZlIGxpYnJhdzEzOTQgPj0gMS4yLjEsIHRoZW4gd2UgbmVlZCBsaWJpZWM2MTg4My4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDYtMTkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIElmIHdlIGhhdmUgbGlicmF3MTM5NCA+PSAxLjIuMSwgdGhlbiB3ZSBuZWVkIGxpYmllYzYxODgzLgoKMjAwNi0wNi0xOCAxNDowMDoxOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogQWZ0ZXIgYSBmYWlsZWQgYnVmZmVyIGFsbG9jLCB3ZSBuZWVkIHRvIGFib3J0IHRoZSBqcGVnIGRlY29kaW5nIChpdCBzdGFydGVkIHdoZW4gcGFyc2luZyBoZWFkZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6IChnc3RfanBlZ19kZWNfY2hhaW4pOgoJICBBZnRlciBhIGZhaWxlZCBidWZmZXIgYWxsb2MsIHdlIG5lZWQgdG8gYWJvcnQgdGhlIGpwZWcgZGVjb2RpbmcgKGl0CgkgIHN0YXJ0ZWQgd2hlbiBwYXJzaW5nIGhlYWRlcnMgdG8gZmlndXJlIG91dCBob3cgbWFueSBieXRlcyB3ZSBuZWVkCgkgIHRvIHJlcXVlc3QgZG93bnN0cmVhbSkuCgoyMDA2LTA2LTE4IDEyOjM3OjEyICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IE1ha2Ugc3VyZSB3ZSBkb24ndCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlICgjMzQ1MjMyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzICA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspOgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSAoIzM0NTIzMikuCgoyMDA2LTA2LTE3IDE0OjM1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggLS1kaXNhYmxlLWV4dGVybmFsIChjYW4ndCBzZXQgY29uZGl0aW9uYWxzIGNvbmRpdGlvbmFsbHksICMzNDM2MDIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCAtLWRpc2FibGUtZXh0ZXJuYWwgKGNhbid0IHNldCBjb25kaXRpb25hbHMgY29uZGl0aW9uYWxseSwKCSAgIzM0MzYwMikuCgoyMDA2LTA2LTE2IDEyOjM1OjA4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZ3N0L3NwZWN0cnVtL01ha2VmaWxlLmFtOiBGaXggYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA2LTE2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZ3N0L3NwZWN0cnVtL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGQuCgoyMDA2LTA2LTE2IDEwOjU2OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVXNlIEdTVF9QTFVHSU5fRE9DUywgLS1lbmFibGUtcGx1Z2luLWRvY3MgZXRjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBVc2UgR1NUX1BMVUdJTl9ET0NTLCAtLWVuYWJsZS1wbHVnaW4tZG9jcyBldGMuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJICBBZGQvZml4IGFwZXYybXV4IGRvY3MuCgoyMDA2LTA2LTE2IDA5OjQ5OjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vOiBwb3J0IHRvIHVzZSBtZXNzYWdlIHRvIGdldCByZXN1bHRzLCBjbGVhbmx5IGV4aXQgd2hlbiBjbG9zaW5nIHRoZSB3aW5kb3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL2RlbW8tYXVkaW90ZXN0LmM6IChvbl93aW5kb3dfZGVzdHJveSksCgkgIChkcmF3X3NwZWN0cnVtKSwgKG1lc3NhZ2VfaGFuZGxlciksIChtYWluKToKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1vc3NzcmMuYzogKG9uX3dpbmRvd19kZXN0cm95KSwgKGRyYXdfc3BlY3RydW0pLAoJICAobWVzc2FnZV9oYW5kbGVyKSwgKG1haW4pOgoJICBwb3J0IHRvIHVzZSBtZXNzYWdlIHRvIGdldCByZXN1bHRzLCBjbGVhbmx5IGV4aXQgd2hlbiBjbG9zaW5nIHRoZSB3aW5kb3cKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9jbGFzc19pbml0KSwKCSAgKGdzdF9zcGVjdHJ1bV9pbml0KSwgKGdzdF9zcGVjdHJ1bV9kaXNwb3NlKSwKCSAgKGdzdF9zcGVjdHJ1bV9zZXRfcHJvcGVydHkpLCAoZ3N0X3NwZWN0cnVtX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfc3BlY3RydW1fc2V0X2NhcHMpLCAoZ3N0X3NwZWN0cnVtX3N0YXJ0KSwKCSAgKGdzdF9zcGVjdHJ1bV9tZXNzYWdlX25ldyksIChnc3Rfc3BlY3RydW1fdHJhbnNmb3JtX2lwKToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgcG9ydCB0byBkZXJpdmUgZnJvbSBiYXNldHJhbnNmb3JtIGFuZCBzZW5kIHJlc3VsdHMgdmlhIG1lc3NhZ2VzCgkgIChsaWtlIGxldmVsIGVsZW1lbnQpCgoyMDA2LTA2LTE1IDE1OjU4OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBDb21iaW5lIHJldHVybiB2YWx1ZXMgZnJvbSBzcmMgcGFkIHB1c2hlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9xdGRlbXV4X2NvbWJpbmVfZmxvd3MpLCAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksCgkgIChnc3RfcXRkZW11eF9sb29wKSwgKGdzdF9xdGRlbXV4X2NoYWluKSwgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIENvbWJpbmUgcmV0dXJuIHZhbHVlcyBmcm9tIHNyYyBwYWQgcHVzaGVzLgoKMjAwNi0wNi0xNSAwODo1MDowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRG9uJ3QgY3Jhc2ggb24gZmlsZXMgd2l0aCAwIHNhbXBsZXMsIEVPUyBpbW1lZGlhdGx5IGluc3RlYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfaGVhZGVyKSwKCSAgKGdzdF9xdGRlbXV4X3ByZXBhcmVfY3VycmVudF9zYW1wbGUpLCAoZ3N0X3F0ZGVtdXhfYWR2YW5jZV9zYW1wbGUpLAoJICAoZ3N0X3F0ZGVtdXhfYWRkX3N0cmVhbSk6CgkgIERvbid0IGNyYXNoIG9uIGZpbGVzIHdpdGggMCBzYW1wbGVzLCBFT1MgaW1tZWRpYXRseSBpbnN0ZWFkLgoJICBGaXhlcyAjMzQ0OTQ0LgoKMjAwNi0wNi0xNCAxNTo1OTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9kdi9nc3RkdmRlYy5jOiBSZXNldCBzZWdtZW50IGluZm8gb24gZmx1c2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOiAoZ3N0X2R2ZGVjX2NsYXNzX2luaXQpLCAoZ3N0X2R2ZGVjX2luaXQpLAoJICAoZ3N0X2R2ZGVjX2ZpbmFsaXplKSwgKGdzdF9kdmRlY19zaW5rX2V2ZW50KSwKCSAgKGdzdF9kdmRlY19jaGFuZ2Vfc3RhdGUpOgoJICBSZXNldCBzZWdtZW50IGluZm8gb24gZmx1c2guCgkgIEFsbG9jIHNlZ21lbnQgaW4gX2luaXQsIGZyZWUgaW4gX2ZpbmFsaXplLgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9oYW5kbGVfcHVsbF9zZWVrKToKCSAgRG9uJ3Qgc2VuZCBzZWdtZW50cyB0d2ljZS4KCjIwMDYtMDYtMTQgMTU6MDc6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvZHYvZ3N0ZHZkZW11eC5jOiBSZXNwZWN0IHNlZ21lbnQuc3RvcC4gRml4ZXMgIzM0MjU5Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2RlbXV4X2ZyYW1lKToKCSAgUmVzcGVjdCBzZWdtZW50LnN0b3AuIEZpeGVzICMzNDI1OTIuCgoyMDA2LTA2LTE0IDExOjI4OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IE5vIGxhbmd1YWdlIHNwZWNpZmllZCBtZWFucyB0aGUgaW1wbGllZCBsYW5ndWFnZSBpcyBFbmdsaXNoIGFjY29yZGluZyB0byB0aGUgbWF0cm9za2EgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pOgoJICBObyBsYW5ndWFnZSBzcGVjaWZpZWQgbWVhbnMgdGhlIGltcGxpZWQgbGFuZ3VhZ2UgaXMgRW5nbGlzaAoJICBhY2NvcmRpbmcgdG8gdGhlIG1hdHJvc2thIHNwZWMgKHBhcnRpYWxseSBmaXhlcyAjMzQ0NzA4KTsKCSAgYWRkIHNvbWUgbW9yZSBkZWJ1ZyBvdXRwdXQuCgoyMDA2LTA2LTE0IDA5OjMyOjI3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZW5jLio6IFVzZSBiaXRyYXRlIHByb3BlcnR5IHNvbGVseSBmb3IgYml0cmF0ZXMgYW5kIGFkZCBuZXcgYml0cy1wZXItc2FtcGxlIHByb3BlcnR5IGZvciB0aGUgb3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW8gYXQgY2lyY3VsYXItY2hhb3Mgb3JnPgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19iYXNlX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2NsYXNzX2luaXQpLCAoZ3N0X3dhdnBhY2tfZW5jX3NldF93cF9jb25maWcpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2NoYWluKSwgKGdzdF93YXZwYWNrX2VuY19zaW5rX2V2ZW50KSwKCSAgKGdzdF93YXZwYWNrX2VuY19zZXRfcHJvcGVydHkpLCAoZ3N0X3dhdnBhY2tfZW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2VuYy5oOgoJICBVc2UgYml0cmF0ZSBwcm9wZXJ0eSBzb2xlbHkgZm9yIGJpdHJhdGVzIGFuZCBhZGQgbmV3CgkgIGJpdHMtcGVyLXNhbXBsZSBwcm9wZXJ0eSBmb3IgdGhlIG90aGVyIHN0dWZmLiBTZXQgZHVyYXRpb24KCSAgdG8gJ3Vua25vd24nIGluIGluaXRpYWwgaGVhZGVyIGFuZCByZXNlbmQgaGVhZGVyIHdpdGggcHJvcGVyCgkgIGR1cmF0aW9uIG9uIEVPUzsgdXBkYXRlIFNlYmFzdGlhbidzIGUtbWFpbCBhZGRyZXNzLgoKMjAwNi0wNi0xNCAwODowNjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBXaGVuIG9wZXJhdGluZyBjaGFpbi1iYXNlZCwgZG9uJ3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGNodW5raW5nIG9mIHRoZSBpbmNvbWluZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9wZWVrX2NodW5rX2luZm8pLAoJICAoZ3N0X3dhdnBhcnNlX3BlZWtfY2h1bmspLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwKCSAgKGdzdF93YXZwYXJzZV9jaGFpbik6CgkgIFdoZW4gb3BlcmF0aW5nIGNoYWluLWJhc2VkLCBkb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUKCSAgY2h1bmtpbmcgb2YgdGhlIGluY29taW5nIGRhdGEgYW5kIG1ha2Ugc3RyZWFtaW5nIHdvcmsgb24gZGF5cyBvdGhlcgoJICB0aGFuIHRoZSBzZWNvbmQgVGh1cnNkYXkgYWZ0ZXIgYSBmdWxsIG1vb24uIEFsc28gZml4IHVwIGRlYnVnCgkgIG1lc3NhZ2VzIGhlcmUgYW5kIHRoZXJlIGFuZCBtYWtlIHVzZSBvZiB0aGUgbW9zdCBleGNlbGxlbnQgbmV3CgkgIGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbigpIHV0aWxpdHkgZnVuY3Rpb24uCgkgIFNraXAgYW55ICdiZXh0JyBjaHVua3MgaW4gZnJvbnQgb2YgdGhlICdmbXQgJyBjaHVuay4gRml4ZXMgIzM0MzgzNy4KCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuaDoKCSAgUmVtb3ZlIHRyYWlsaW5nIGNvbW1hIGFmdGVyIGxhc3QgZW51bSB2YWx1ZSwgc29tZSBjb21waWxlcnMgZG9uJ3QKCSAgbGlrZSB0aGF0LgoKMjAwNi0wNi0xMyAxNzowNToyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBIYW5kbGUgcHJlbWF0dXJlIEVPUyBncmFjZWZ1bGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSk6CgkgIEhhbmRsZSBwcmVtYXR1cmUgRU9TIGdyYWNlZnVsbHkuCgoyMDA2LTA2LTEzIDA5OjU0OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBQcmV2ZW50IG91dCBvZiBib3VuZHMgYXJyYXkgYWNjZXNzIHdoZW4gc2NydWJiaW5nIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGUgZmlsZSBiZXR3ZWVuIHRoZSBsYXN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspOgoJICBQcmV2ZW50IG91dCBvZiBib3VuZHMgYXJyYXkgYWNjZXNzIHdoZW4gc2NydWJiaW5nIHRvd2FyZHMKCSAgdGhlIGVuZCBvZiB0aGUgZmlsZSBiZXR3ZWVuIHRoZSBsYXN0IGluZGV4IGVudHJ5IGFuZCB0aGUKCSAgZW5kLiBGaXhlcyBvY2Nhc2lvbmFsICdzdGFydCA8PSBzdG9wJyBuZXdzZWdtZW50IGV2ZW50CgkgIGFzc2VydGlvbnMgd2hlbiBzY3J1YmJpbmcgaW4gTUpQRUcgZmlsZXMuCgoyMDA2LTA2LTEyIDExOjEzOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogQW5kIGFub3RoZXIgb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICBBbmQgYW5vdGhlciBvbmUuCgoyMDA2LTA2LTEyIDExOjA0OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3NwZWN0cnVtLy5jdnNpZ25vcmU6IElnbm9yZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvc3BlY3RydW0vLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA2LTA2LTEyIDEwOjUzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2xpYm1tcy9nc3RtbXMuYzogU2V0IGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYm1tcy9nc3RtbXMuYzogKGdzdF9tbXNfY3JlYXRlKToKCSAgU2V0IGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOiAoZ3N0X2RpcmVjdGRyYXdzaW5rX2luaXQpOgoJICBDb21tZW50IG91dCB1bnVzZWQgZ2xvYmFsIGluc3RhbmNlIHZhcmlhYmxlLgoKMjAwNi0wNi0xMSAxOTozMToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBFeHRyYWN0IGltYWdlcyBmcm9tIElEM3YyIHRhZ3MgKEFQSUMgZnJhbWVzKS4gRml4ZXMgIzMzOTcwNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSksCgkgIChzY2FuX2VuY29kZWRfc3RyaW5nKSwgKHBhcnNlX3BpY3R1cmVfZnJhbWUpOgoJICBFeHRyYWN0IGltYWdlcyBmcm9tIElEM3YyIHRhZ3MgKEFQSUMgZnJhbWVzKS4gRml4ZXMgIzMzOTcwNC4KCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgY29yZSA+PSAwLjEwLjggKGZvciBHU1RfVEFHX0lNQUdFIGFuZAoJICBHU1RfVEFHX1BQRVZJRVdfSU1BR0UgdXNlZCBpbiB0aGUgcGF0Y2ggYWJvdmUpLgoKMjAwNi0wNi0xMSAxODo1NjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvcmF3MTM5NC8uZ2l0aWdub3JlOgoJKiBleHQvdGFnbGliLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2xldmVsLy5naXRpZ25vcmU6CgkgIG1vYXAgaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb2FwIGlnbm9yZQoKMjAwNi0wNi0xMSAxODo1MjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogZ3JhdHVpdG91cyBjb21tZW50IGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IChnc3RfZHYxMzk0c3JjX2Rpc2NvdmVyX2F2Y19ub2RlKToKCSAgZ3JhdHVpdG91cyBjb21tZW50IGNoYW5nZXMKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9sZXZlbC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggbGV2ZWwgdGVzdCBsZWFrcwoKMjAwNi0wNi0xMSAxODo0NDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiAuZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDYtMTEgMTg6MjA6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uKCkgdXRpbGl0eSBmdW5jdGlvbiBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X2dldF91cHN0cmVhbV9zaXplKToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGlkM2RlbXV4X2dldF91cHN0cmVhbV9zaXplKToKCSAgVXNlIGdzdF9wYWRfcXVlcnlfcGVlcl9kdXJhdGlvbigpIHV0aWxpdHkgZnVuY3Rpb24gaGVyZS4KCjIwMDYtMDYtMTEgMTM6NTc6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYXV0b2dlbi5zaDogcmVxdWlyZSBhbTE3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIHJlcXVpcmUgYW0xNwoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvYW5ub2RleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvY2Rpby9NYWtlZmlsZS5hbToKCSAgKiBleHQvZHYvTWFrZWZpbGUuYW06CgkgICogZXh0L2VzZC9NYWtlZmlsZS5hbToKCSAgKiBleHQvZmxhYy9NYWtlZmlsZS5hbToKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9NYWtlZmlsZS5hbToKCSAgKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9saWJjYWNhL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zcGVleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFnbGliL01ha2VmaWxlLmFtOgoJICAqIHN5cy9vc3MvTWFrZWZpbGUuYW06CgkgICogc3lzL3N1bmF1ZGlvL01ha2VmaWxlLmFtOgoJICAqIHN5cy94aW1hZ2UvTWFrZWZpbGUuYW06CgkgIGNsZWFuIHVwIGJ1aWxkIGZ1cnRoZXIKCjIwMDYtMDYtMTEgMTM6NTU6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlCgoyMDA2LTA2LTEwIDE1OjMzOjE4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxtYWlsQHNsb21vc25haWwuZGU+CgoJICBleHQvd2F2cGFjay86IEFkZCB3YXZwYWNrIGVuY29kZXIgZWxlbWVudCAoIzM0MzEzMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSAgPG1haWwgYXQgc2xvbW9zbmFpbCBkZT4KCSAgKiBleHQvd2F2cGFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2NvbW1vbi5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuYzogKGdzdF93YXZwYWNrX2VuY19tb2RlX2dldF90eXBlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19jb3JyZWN0aW9uX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2pvaW50X3N0ZXJlb19tb2RlX2dldF90eXBlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19iYXNlX2luaXQpLCAoZ3N0X3dhdnBhY2tfZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2luaXQpLCAoZ3N0X3dhdnBhY2tfZW5jX2Rpc3Bvc2UpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX3Npbmtfc2V0X2NhcHMpLCAoZ3N0X3dhdnBhY2tfZW5jX3NldF93cF9jb25maWcpLAoJICAoZ3N0X3dhdnBhY2tfZW5jX2Zvcm1hdF9zYW1wbGVzKSwgKGdzdF93YXZwYWNrX2VuY19wdXNoX2Jsb2NrKSwKCSAgKGdzdF93YXZwYWNrX2VuY19jaGFpbiksIChnc3Rfd2F2cGFja19lbmNfcmV3cml0ZV9maXJzdF9ibG9jayksCgkgIChnc3Rfd2F2cGFja19lbmNfc2lua19ldmVudCksIChnc3Rfd2F2cGFja19lbmNfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF93YXZwYWNrX2VuY19zZXRfcHJvcGVydHkpLCAoZ3N0X3dhdnBhY2tfZW5jX2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfd2F2cGFja19lbmNfcGx1Z2luX2luaXQpOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tlbmMuaDoKCSAgKiBleHQvd2F2cGFjay9tZDUuYzoKCSAgKiBleHQvd2F2cGFjay9tZDUuaDoKCSAgQWRkIHdhdnBhY2sgZW5jb2RlciBlbGVtZW50ICgjMzQzMTMxKS4KCjIwMDYtMDYtMDkgMjA6MzY6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnY29uZi9NYWtlZmlsZS5hbTogSG9ub3VyIC0tZGlzYWJsZS1zY2hlbWFzLWluc3RhbGwgY29uZmlndXJlIG9wdGlvbi4gRml4ZXMgIzM0NDEwMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ2NvbmYvTWFrZWZpbGUuYW06CgkgIEhvbm91ciAtLWRpc2FibGUtc2NoZW1hcy1pbnN0YWxsIGNvbmZpZ3VyZSBvcHRpb24uIEZpeGVzICMzNDQxMDAuCgoyMDA2LTA2LTA5IDE4OjMzOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvbGV2ZWwvTWFrZWZpbGUuYW06IEFkZCAtbG0gdG8gTElCUyBmb3IgcG93KCkgZnVuY3Rpb24sIGRvbid0IGFzc3VtZSBvbmUgb2Ygb3VyIGRlcGVuZGVuY2llcyAoc3VjaCBhcyBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xldmVsL01ha2VmaWxlLmFtOgoJICBBZGQgLWxtIHRvIExJQlMgZm9yIHBvdygpIGZ1bmN0aW9uLCBkb24ndCBhc3N1bWUgb25lIG9mIG91cgoJICBkZXBlbmRlbmNpZXMgKHN1Y2ggYXMgbGlieG1sLTIuMCkgZHJhZ3MgaXQgaW4gYXV0b21hdGljYWxseQoJICAoIzM0MzYwMykuCgoyMDA2LTA2LTA5IDE4OjE3OjIzICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogV2Ugc2hvdWxkIHVzZSAkU0VEIGFuZCBub3QgJChTRUQpIGluIGNvbmZpZ3VyZS5hYyAoIzM0MzY3OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIFdlIHNob3VsZCB1c2UgJFNFRCBhbmQgbm90ICQoU0VEKSBpbiBjb25maWd1cmUuYWMgKCMzNDM2NzgpLgoKMjAwNi0wNi0wOSAxNzozODoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIFggYmVmb3JlIHVzaW5nIFhfQ0ZMQUdTIGluIHRoZSBjaGVjayBmb3Igb3BlbmdsICgjMzQzODY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBmb3IgWCBiZWZvcmUgdXNpbmcgWF9DRkxBR1MgaW4gdGhlIGNoZWNrIGZvciBvcGVuZ2wgKCMzNDM4NjYpLgoJICAqIGV4dC9tdXNlcGFjay9NYWtlZmlsZS5hbToKCSAgKiBleHQvd2F2cGFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3BlZWQvTWFrZWZpbGUuYW06CgkgIEFkZCBtaXNzaW5nIEdTVF9MSUJTLCBmaXhlcyBidWlsZCBvbiBjeWd3aW4gKCMzNDM4NjYpLgoKMjAwNi0wNi0wOSAxNzoyOTowOCArMDAwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSAgc3lzL3N1bmF1ZGlvLzogQXR0YWNoZWQgZmluZCBhIHBhdGNoIHRoYXQgZml4ZXMgYSBudW1iZXIgb2YgYnVncyB3aXRoIHRoZSBTdW5BdWRpbyBtaXhlciBwbHVnaW4gYW5kIGZpeGVzICMzNDQxMDE6IDEuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQnJpYW4gQ2FtZXJvbiA8YnJpYW4gZG90IGNhbWVyb24gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX29wZW4pLCAoZ3N0X3N1bmF1ZGlvbWl4ZXJfY3RybF9idWlsZF9saXN0KSwKCSAgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfbmV3KSwgKGdzdF9zdW5hdWRpb21peGVyX2N0cmxfc2V0X3ZvbHVtZSksCgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX3NldF9tdXRlKToKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmM6IChnc3Rfc3VuYXVkaW9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N1bmF1ZGlvc2lua19pbml0KSwgKGdzdF9zdW5hdWRpb3NpbmtfcHJlcGFyZSksCgkgIChnc3Rfc3VuYXVkaW9zaW5rX3dyaXRlKToKCSAgQXR0YWNoZWQgZmluZCBhIHBhdGNoIHRoYXQgZml4ZXMgYSBudW1iZXIgb2YgYnVncyB3aXRoIHRoZSBTdW5BdWRpbyBtaXhlcgoJICBwbHVnaW4gYW5kIGZpeGVzICMzNDQxMDE6CgkgIDEuIFRoZSBnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX2J1aWxkX2xpc3Qga2VwdCBhcHBlbmRpbmcgdGhlIHNhbWUgMyB0cmFja3Mgb250bwoJICB0aGUgdHJhY2tsaXN0IGNhdXNpbmcgZ25vbWUtdm9sdW1lLWNvbnRyb2wncyBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gYmUgbWVzc2VkCgkgIHVwIGFuZCB3b3VsZCBjb3JlIGR1bXAgaWYgeW91IGNoZWNrZWQvdW5jaGVja2VkIGFueSBpdGVtLgoJICAyLiBXZSB3ZXJlbid0IHByZXZpb3VzbHkgc2V0dGluZyB0aGUgTVVURSBmbGFnIHByb3Blcmx5LiAgRml4aW5nIHRoaXMgbWFrZXMKCSAgZ25vbWUtdm9sdW1lLWNvbnRyb2wgd29yayBiZXR0ZXIuCgkgIDMuIE5vdyB3ZSBwcm9wZXJseSBkZWZpbmUgdGhlIGlucHV0IHRyYWNrIHRvIGJlIEdTVF9NSVhFUl9UUkFDS19JTlBVVCBhbmQKCSAgdGhlIG1vbml0b3IgdG8gYmUgR1NUX01JWEVSX1RSQUNLX09VVFBVVCwgc28gdGhhdCBtYWtlcyBnbm9tZS12b2x1bWUtY29udHJvbAoJICBsb29rIGJldHRlci4KCSAgQWxzbyBzb21lIG1pbm9yIGNsZWFudXAgaW4gZ3N0c3VuYXVkaW9zaW5rLmMuCgoyMDA2LTA2LTA5IDE3OjEyOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy4qOiBBUEk6IEFkZGVkIElEQ1QgbWV0aG9kIHByb3BlcnR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9pZGN0X21ldGhvZF9nZXRfdHlwZSksCgkgIChnc3RfanBlZ19kZWNfY2xhc3NfaW5pdCksIChnc3RfanBlZ19kZWNfaW5pdCksCgkgIChnc3RfanBlZ19kZWNfZGVjb2RlX2luZGlyZWN0KSwgKGdzdF9qcGVnX2RlY19kZWNvZGVfZGlyZWN0KSwKCSAgKGdzdF9qcGVnX2RlY19jaGFpbiksIChnc3RfanBlZ19kZWNfc2lua19ldmVudCksCgkgIChnc3RfanBlZ19kZWNfc2V0X3Byb3BlcnR5KSwgKGdzdF9qcGVnX2RlY19nZXRfcHJvcGVydHkpOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSAgQVBJOiBBZGRlZCBJRENUIG1ldGhvZCBwcm9wZXJ0eQoJICBTbWFsbCBjbGVhbnVwcy4KCSAgQXZvaWQgZHluYW1pYyBhbGxvY2F0aW9uIG9mIHRyaXZpYWwgZml4ZWQgc3RydWN0dXJlLgoJICBBbGxvY2F0ZSBlbm91Z2ggc3BhY2UgZm9yIHRlbXAgNDo0OjQgWVVWIGJ1ZmZlcnMuIEZpeGVzICMzNDM2NjEuCgoyMDA2LTA2LTA3IDA5OjI1OjE2ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgY29uZmlndXJlLmFjOiBXZSBub3cgcmVxdWlyZSBsaWJyYXcxMzk0ID49IDEuMS4wIGFuZCB0aGF0IHZlcnNpb24gb253YXJkcyBhbGwgaGF2ZSAucGMgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA2LTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBXZSBub3cgcmVxdWlyZSBsaWJyYXcxMzk0ID49IDEuMS4wIGFuZCB0aGF0IHZlcnNpb24gb253YXJkcyBhbGwKCSAgaGF2ZSAucGMgZmlsZXMuCgoyMDA2LTA2LTAyIDE1OjAyOjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2xhdy9hbGF3LWRlY29kZS5jOiBUcnlpbmcgdG8gZ2V0IGl0ZW1zIGZyb20gYW4gQU5ZIG9yIEVNUFRZIGNhcHMgaXMgLi4uIHN0dXBpZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOiAoYWxhd2RlY19nZXRjYXBzKToKCSAgVHJ5aW5nIHRvIGdldCBpdGVtcyBmcm9tIGFuIEFOWSBvciBFTVBUWSBjYXBzIGlzIC4uLiBzdHVwaWQuCgoyMDA2LTA2LTAyIDExOjMzOjE4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L2R2L2dzdGR2ZGVjLio6IEFkZGVkIEdzdFNlZ21lbnQgaGFuZGxpbmcsIG5vdyBpbXBsZW1lbnRzIGRyb3BwaW5nL2NsaXBwaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZHYvZ3N0ZHZkZWMuYzogKGdzdF9kdmRlY19pbml0KSwgKGdzdF9kdmRlY19zaW5rX2V2ZW50KSwKCSAgKGdzdF9kdmRlY19jaGFpbiksIChnc3RfZHZkZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvZHYvZ3N0ZHZkZWMuaDoKCSAgQWRkZWQgR3N0U2VnbWVudCBoYW5kbGluZywgbm93IGltcGxlbWVudHMgZHJvcHBpbmcvY2xpcHBpbmcuCgoyMDA2LTA2LTAxIDIyOjAwOjI2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggbW9yZSBnb2JqZWN0IG1hY3Jvczogb2JqPC0+a2xhc3MsIEdzdFhYWDwtPkdzdFhYWENsYXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbHNhc3BkaWYvYWxzYXNwZGlmc2luay5oOgoJICAqIGV4dC9hbXJ3Yi9nc3RhbXJ3YmRlYy5oOgoJICAqIGV4dC9hbXJ3Yi9nc3RhbXJ3YmVuYy5oOgoJICAqIGV4dC9hbXJ3Yi9nc3RhbXJ3YnBhcnNlLmg6CgkgICogZXh0L2FydHMvZ3N0X2FydHMuaDoKCSAgKiBleHQvYXJ0c2QvZ3N0YXJ0c2RzaW5rLmg6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnBhcnNlLmg6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNpbmsuaDoKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmc3JjLmg6CgkgICogZXh0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5oOgoJICAqIGV4dC9iejIvZ3N0YnoyZGVjLmg6CgkgICogZXh0L2J6Mi9nc3RiejJlbmMuaDoKCSAgKiBleHQvZGlyYWMvZ3N0ZGlyYWNkZWMuaDoKCSAgKiBleHQvZGlyZWN0ZmIvZGZidmlkZW9zaW5rLmg6CgkgICogZXh0L2RpdngvZ3N0ZGl2eGRlYy5oOgoJICAqIGV4dC9kaXZ4L2dzdGRpdnhlbmMuaDoKCSAgKiBleHQvZHRzL2dzdGR0c2RlYy5oOgoJICAqIGV4dC9mYWFjL2dzdGZhYWMuaDoKCSAgKiBleHQvZ3NtL2dzdGdzbWRlYy5oOgoJICAqIGV4dC9nc20vZ3N0Z3NtZW5jLmg6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZW5jLmg6CgkgICogZXh0L2xpYmZhbWUvZ3N0bGliZmFtZS5oOgoJICAqIGV4dC9uYXMvbmFzc2luay5oOgoJICAqIGV4dC9uZW9uL2dzdG5lb25odHRwc3JjLmg6CgkgICogZXh0L3BvbHlwL3BvbHlwc2luay5oOgoJICAqIGV4dC9zZGwvc2RsYXVkaW9zaW5rLmg6CgkgICogZXh0L3NkbC9zZGx2aWRlb3NpbmsuaDoKCSAgKiBleHQvc2hvdXQvZ3N0c2hvdXQuaDoKCSAgKiBleHQvc25hcHNob3QvZ3N0c25hcHNob3QuaDoKCSAgKiBleHQvc25kZmlsZS9nc3RzZi5oOgoJICAqIGV4dC9zd2ZkZWMvZ3N0c3dmZGVjLmg6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5kZWMuaDoKCSAgKiBleHQvdGFya2luL2dzdHRhcmtpbmVuYy5oOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5oOgoJICAqIGV4dC94aW5lL2dzdHhpbmUuaDoKCSAgKiBleHQveHZpZC9nc3R4dmlkZGVjLmg6CgkgICogZXh0L3h2aWQvZ3N0eHZpZGVuYy5oOgoJICAqIGdzdC9jZHhhcGFyc2UvZ3N0Y2R4YXBhcnNlLmg6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhc3RyaXAuaDoKCSAgKiBnc3QvY29sb3JzcGFjZS9nc3Rjb2xvcnNwYWNlLmg6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmg6CgkgICogZ3N0L2ZyZWV6ZS9nc3RmcmVlemUuaDoKCSAgKiBnc3QvZ2RwL2dzdGdkcGRlcGF5Lmg6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuaDoKCSAgKiBnc3QvbW9kcGx1Zy9nc3Rtb2RwbHVnLmg6CgkgICogZ3N0L21wZWcxc3lzL2dzdG1wZWcxc3lzdGVtZW5jb2RlLmg6CgkgICogZ3N0L21wZWcxdmlkZW9wYXJzZS9nc3RtcDF2aWRlb3BhcnNlLmg6CgkgICogZ3N0L21wZWcyc3ViL2dzdG1wZWcyc3VidC5oOgoJICAqIGdzdC9tcGVnYXVkaW9wYXJzZS9nc3RtcGVnYXVkaW9wYXJzZS5oOgoJICAqIGdzdC9tdWx0aWZpbGVzaW5rL2dzdG11bHRpZmlsZXNpbmsuaDoKCSAgKiBnc3Qvb3ZlcmxheS9nc3RvdmVybGF5Lmg6CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9nc3RwbGF5b25kZW1hbmQuaDoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgICogZ3N0L3J0anBlZy9nc3RydGpwZWdkZWMuaDoKCSAgKiBnc3QvcnRqcGVnL2dzdHJ0anBlZ2VuYy5oOgoJICAqIGdzdC9zbW9vdGgvZ3N0c21vb3RoLmg6CgkgICogZ3N0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5oOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5oOgoJICAqIGdzdC9zcGVlZC9nc3RzcGVlZC5oOgoJICAqIGdzdC9zdGVyZW8vZ3N0c3RlcmVvLmg6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guaDoKCSAgKiBnc3QvdHRhL2dzdHR0YWRlYy5oOgoJICAqIGdzdC90dGEvZ3N0dHRhcGFyc2UuaDoKCSAgKiBnc3QvdmlkZW9kcm9wL2dzdHZpZGVvZHJvcC5oOgoJICAqIGdzdC94aW5naGVhZGVyL2dzdHhpbmdtdXguaDoKCSAgKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5oOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuaDoKCSAgKiBzeXMvZHhyMy9keHIzYXVkaW9zaW5rLmg6CgkgICogc3lzL2R4cjMvZHhyM3NwdXNpbmsuaDoKCSAgKiBzeXMvZHhyMy9keHIzdmlkZW9zaW5rLmg6CgkgICogc3lzL3FjYW0vZ3N0cWNhbXNyYy5oOgoJICAqIHN5cy92Y2QvdmNkc3JjLmg6CgkgIEZpeCBtb3JlIGdvYmplY3QgbWFjcm9zOiBvYmo8LT5rbGFzcywgR3N0WFhYPC0+R3N0WFhYQ2xhc3MKCjIwMDYtMDYtMDEgMjE6MDc6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBtb3JlIGdvYmplY3QgbWFjcm9zOiBvYmo8LT5rbGFzcywgR3N0WFhYPC0+R3N0WFhYQ2xhc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2FhbGliL2dzdGFhc2luay5oOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuaDoKCSAgKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuaDoKCSAgKiBleHQvZHYvZ3N0ZHZkZWMuaDoKCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5oOgoJICAqIGV4dC9lc2QvZXNkbW9uLmg6CgkgICogZXh0L2VzZC9lc2RzaW5rLmg6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5oOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5oOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmg6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmg6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zcmMuaDoKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGthbmltYXRpb24uaDoKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5oOgoJICAqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmg6CgkgICogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5oOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdlbmMuaDoKCSAgKiBleHQvanBlZy9nc3RzbW9rZWRlYy5oOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmg6CgkgICogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuaDoKCSAgKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5oOgoJICAqIGV4dC9saWJtbmcvZ3N0bW5nZW5jLmg6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuaDoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5oOgoJICAqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5oOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5oOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuaDoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmg6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICAqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmg6CgkgICogZ3N0L2RlYnVnL2VmZW5jZS5oOgoJICAqIGdzdC9kZWJ1Zy9nc3RuYXZpZ2F0aW9udGVzdC5oOgoJICAqIGdzdC9kZWJ1Zy9nc3RuYXZzZWVrLmg6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuaDoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmg6CgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4Lmg6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4Lmg6CgkgICogZ3N0L2xhdy9hbGF3LWRlY29kZS5oOgoJICAqIGdzdC9sYXcvYWxhdy1lbmNvZGUuaDoKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5oOgoJICAqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICAqIGdzdC9tZWRpYW4vZ3N0bWVkaWFuLmg6CgkgICogZ3N0L29sZGNvcmUvZ3N0YWdncmVnYXRvci5oOgoJICAqIGdzdC9vbGRjb3JlL2dzdGZkc2luay5oOgoJICAqIGdzdC9vbGRjb3JlL2dzdG1kNXNpbmsuaDoKCSAgKiBnc3Qvb2xkY29yZS9nc3RtdWx0aWZpbGVzcmMuaDoKCSAgKiBnc3Qvb2xkY29yZS9nc3RwaXBlZmlsdGVyLmg6CgkgICogZ3N0L29sZGNvcmUvZ3N0c2hhcGVyLmg6CgkgICogZ3N0L29sZGNvcmUvZ3N0c3RhdGlzdGljcy5oOgoJICAqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmg6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5Lmg6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmg6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5oOgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5oOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgICogZ3N0L3VkcC9nc3R1ZHBzaW5rLmg6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuaDoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmg6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5oOgoJICAqIHN5cy9vc3MvZ3N0b3NzZG1hYnVmZmVyLmg6CgkgICogc3lzL29zcy9nc3Rvc3NtaXhlcmVsZW1lbnQuaDoKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuaDoKCSAgKiBzeXMvb3NzL2dzdG9zc3NyYy5oOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlci5oOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuaDoKCSAgKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5oOgoJICBGaXggbW9yZSBnb2JqZWN0IG1hY3Jvczogb2JqPC0+a2xhc3MsIEdzdFhYWDwtPkdzdFhYWENsYXNzCgoyMDA2LTA1LTMxIDE2OjIzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dvb20vZ3N0Z29vbS4qOiBIYW5kbGUgUW9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9jbGFzc19pbml0KSwgKGdzdF9nb29tX2luaXQpLAoJICAoZ3N0X2dvb21fZmluYWxpemUpLCAoZ3N0X2dvb21fcmVzZXQpLCAoZ3N0X2dvb21fc2lua19zZXRjYXBzKSwKCSAgKGdzdF9nb29tX3NyY19zZXRjYXBzKSwgKGdzdF9nb29tX3NyY19ldmVudCksCgkgIChnc3RfZ29vbV9zaW5rX2V2ZW50KSwgKGdldF9idWZmZXIpLCAoZ3N0X2dvb21fY2hhaW4pLAoJICAoZ3N0X2dvb21fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmg6CgkgIEhhbmRsZSBRb1MuCgkgIEhhbmRsZSBmbHVzaGluZywgZGlzY29udCBhbmQgZXZlbnRzLgoJICBGaXggdGltZXN0YW1wcyBhbmQgdmFyaW91cyBvdGhlciBjbGVhbnVwcy4KCjIwMDYtMDUtMzEgMTU6Mzc6MTYgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogRml4IGJ1cyByZXNldCB3aGVuIHVzaW5nIGxpYmllYzYxODgzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTMxICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IChnc3RfZHYxMzk0c3JjX2J1c19yZXNldCk6CgkgIEZpeCBidXMgcmVzZXQgd2hlbiB1c2luZyBsaWJpZWM2MTg4MwoKMjAwNi0wNS0zMSAxMDozMToyMyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRGV0ZWN0IGxpYmllYzYxODgzIGFuZCBzZXQgbmVjZXNzYXJ5IENGTEFHUyBhbmQgTElCUyBmb3IgZHYxMzk0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0zMSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRGV0ZWN0IGxpYmllYzYxODgzIGFuZCBzZXQgbmVjZXNzYXJ5IENGTEFHUyBhbmQgTElCUyBmb3IgZHYxMzk0LgoJICAqIGV4dC9yYXcxMzk0L01ha2VmaWxlLmFtOgoJICBBZGQgQ0ZMQUdTLgoJICAqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOiAoZ3N0X2R2MTM5NHNyY19pZWM2MTg4M19yZWNlaXZlKSwKCSAgTmV3IG1ldGhvZCwgdG8gcmVjZWl2ZSB1c2luZyBsaWJpZWM2MTg4My4KCSAgKGdzdF9kdjEzOTRzcmNfaXNvX3JlY2VpdmUpLAoJICAjaWZkZWYnZCBvdXQgaWYgbGliaWVjNjE4ODMgaXMgcHJlc2VudC4KCSAgKGdzdF9kdjEzOTRzcmNfYnVzX3Jlc2V0KSwKCSAgR2V0IHVzZXJkYXRhIGNvcnJlY3RseSBpZiB1c2luZyBsaWJpZWM2MTg4My4KCSAgKGdzdF9kdjEzOTRzcmNfY3JlYXRlKSwKCSAgV2hlbiB1c2luZyBsaWJpZWM2MTg4Mywgb25seSBwb2xsIG9uZSBmZCBhbmQgbm8gbmVlZCB0byByZWFkLgoJICAoZ3N0X2R2MTM5NHNyY19kaXNjb3Zlcl9hdmNfbm9kZSksCgkgIFJlcGxhY2UgZ193YXJuaW5ncy4KCSAgKGdzdF9kdjEzOTRzcmNfc3RhcnQpLAoJICBDcmVhdGUgbmV3IGhhbmRsZSB3aGVuIHdlIGtub3cgd2hpY2ggZHYgcG9ydC4gIE1vcmUgcmVsaWFibGUKCSAgdGhhbiBzZXR0aW5nIHBvcnQgb24gYW4gZXhpc3RpbmcgaGFuZGxlLiAgSW5pdGlhbGlzZSBsaWJpZWM2MTg4My4KCSAgKGdzdF9kdjEzOTRzcmNfc3RvcCk6CgkgIElmIHVzaW5nIGxpYmllYzYxODgzLCB0aGVuIGNsZWFudXAgaXRzIGhhbmRsZSBwcm9wZXJseS4KCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuaDoKCSAgQWRkIGxpYmllYzYxODgzIGhhbmRsZS4KCjIwMDYtMDUtMzAgMjE6MDc6MzggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogYWRkIGFuIGV4cGxpY2l0IGRsbCBpbXBvcnRlZCBkZWNsYXJhdGlvbiBmb3IgR1NUX0NBVF9FVkVOVCtXSU4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6CgkgIGFkZCBhbiBleHBsaWNpdCBkbGwgaW1wb3J0ZWQgZGVjbGFyYXRpb24gZm9yIEdTVF9DQVRfRVZFTlQrV0lOMzIKCSAgKiB3aW4zMi9NQU5JRkVTVDoKCSAgc29ydCBmaWxlIGxpc3RpbmcKCSAgKiB3aW4zMi92czYvbGliZ3N0YXZpLmRzcDoKCSAgYWRkIGdzdGF2aW11eC5jIHRvIHRoZSBwcm9qZWN0CgkgICogd2luMzIvdnM2L2xpYmdzdGlkM2RlbXV4LmRzcDoKCSAgYWRkIGxpbmsgdG8gemxpYiBsaWJyYXJ5CgkgICogd2luMzIvdnM2L2xpYmdzdG1hdHJvc2thLmRzcDoKCSAgYWRkIG1hdHJvc2thLWlkcy5jIHRvIHRoZSBwcm9qZWN0CgoyMDA2LTA1LTMwIDE0OjM1OjE4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxtYWlsQHNsb21vc25haWwuZGU+CgoJICBBZGQgYXBldjJtdXggZWxlbWVudCAoIzM0MzEyMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyw7ZnZSAgPG1haWwgYXQgc2xvbW9zbmFpbCBkZSA+CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFnbGliL2dzdGFwZXYybXV4LmNjOgoJICAqIGV4dC90YWdsaWIvZ3N0YXBldjJtdXguaDoKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICAqIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4LmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguaDoKCSAgQWRkIGFwZXYybXV4IGVsZW1lbnQgKCMzNDMxMjIpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2FwZXYybXV4LmM6CgkgICh0ZXN0X3RhZ2xpYl9hcGV2Mm11eF9jcmVhdGVfdGFncyksCgkgICh0ZXN0X3RhZ2xpYl9hcGV2Mm11eF9jaGVja190YWdzKSwgKGZpbGxfbXAzX2J1ZmZlciksIChnb3RfYnVmZmVyKSwKCSAgKGRlbXV4X3BhZF9hZGRlZCksICh0ZXN0X3RhZ2xpYl9hcGV2Mm11eF9jaGVja19vdXRwdXRfYnVmZmVyKSwKCSAgKHRlc3RfdGFnbGliX2FwZXYybXV4X3dpdGhfdGFncyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChhcGV2Mm11eF9zdWl0ZSksIChtYWluKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgYXBldjJtdXggZWxlbWVudC4KCjIwMDYtMDUtMjggMTc6MzM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBHU1RfUFRSX0ZPUk1BVCBzaG91bGQgYmUgdXNlZCB0byBwcmludCBjYXBzIGluIGRlYnVnIHN0YXRlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6IChnc3RfYWxwaGFfY29sb3JfdHJhbnNmb3JtX2NhcHMpOgoJICAqIGdzdC9kZWJ1Zy9uZWdvdGlhdGlvbi5jOiAoZ3N0X25lZ290aWF0aW9uX3VwZGF0ZV9jYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5jOiAoZ3N0X3J0cF9pbGJjX2RlcGF5X3NldGNhcHMpOgoJICBHU1RfUFRSX0ZPUk1BVCBzaG91bGQgYmUgdXNlZCB0byBwcmludCBjYXBzIGluIGRlYnVnIHN0YXRlbWVudHMuCgoyMDA2LTA1LTI4IDE0OjM4OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0B1YnVudHUuY29tPgoKCSAgZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOiBTb21lIGNsZWFuLXVwcyBhbmQgYWRkaXRpb25zOiBtYXAgQVBFICdmaWxlJyB0YWcgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW8gYXQgdWJ1bnR1IGRvdCBjb20+CgkgICogZ3N0L2FwZXRhZy9nc3RhcGVkZW11eC5jOiAoYXBlX2RlbXV4X2dldF9nc3RfdGFnX2Zyb21fdGFnKSwKCSAgKGFwZV9kZW11eF9wYXJzZV90YWdzKToKCSAgU29tZSBjbGVhbi11cHMgYW5kIGFkZGl0aW9uczogbWFwIEFQRSAnZmlsZScgdGFnIHRvCgkgIEdTVF9UQUdfTE9DQVRJT04gKCMzNDMxMjMpOyBhZGQgc3VwcG9ydCBmb3IgZXh0cmFjdGluZwoJICB0aGUgdHJhY2sgY291bnQgYW5kIGNsZWFuIHVwIHBhcnNpbmcgYSBiaXQgKCMzNDMxMjcpLgoKMjAwNi0wNS0yOCAxMzo0OToxMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogSW5pdGlhbGl6ZSBzZWdtZW50IHRvIEdTVF9GT1JNQVRfVU5ERUZJTkVEIGluIFJFQURZLT5QQVVTRUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19jaGFuZ2Vfc3RhdGUpOgoJICBJbml0aWFsaXplIHNlZ21lbnQgdG8gR1NUX0ZPUk1BVF9VTkRFRklORUQgaW4gUkVBRFktPlBBVVNFRC4KCjIwMDYtMDUtMjggMTM6MzA6MTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBleHQvanBlZy9nc3RqcGVnZGVjLio6IENsaXAgb3V0Z29pbmcgYnVmZmVycyBhY2NvcmRpbmcgdG8gY3VycmVudGx5IGNvbmZpZ3VyZWQgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiAoZ3N0X2pwZWdfZGVjX2ZpbmFsaXplKSwKCSAgKGdzdF9qcGVnX2RlY19pbml0KSwgKGdzdF9qcGVnX2RlY19jaGFpbiksCgkgIChnc3RfanBlZ19kZWNfc2lua19ldmVudCksIChnc3RfanBlZ19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIENsaXAgb3V0Z29pbmcgYnVmZmVycyBhY2NvcmRpbmcgdG8gY3VycmVudGx5IGNvbmZpZ3VyZWQgc2VnbWVudC4KCjIwMDYtMDUtMjggMTA6Mzk6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOiBIYW5kbGUgIHdyaXRpbmcgb2YgdHJhY2stY291bnQgb3IgYWxidW0tdm9sdW1lLWNvdW50IHdpdGhvdXQgdHJhY2stbnVtYmVyIG9yIGFsYnVtZS12b2x1bWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgSGFuZGxlICB3cml0aW5nIG9mIHRyYWNrLWNvdW50IG9yIGFsYnVtLXZvbHVtZS1jb3VudCB3aXRob3V0CgkgIHRyYWNrLW51bWJlciBvciBhbGJ1bWUtdm9sdW1lLW51bWJlciAoaW4gdGhpcyBjYXNlIHRoZSBudW1iZXIKCSAgd2lsbCBqdXN0IGJlIHNldCB0byAwKS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZDN2Mm11eC5jOiAodGVzdF90YWdsaWJfaWQzbXV4X2NoZWNrX3RhZ3MpOgoJICBJdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGFjdHVhbGx5IGNoZWNrZWQgdGhlIHZhbHVlcyByZWNlaXZlZCBmb3IKCSAgdHJhY2svYWxidW0tdm9sdW1lIG51bWJlci9jb3VudCBpbiAgX2NoZWNrX3RhZ3MoKSwgcmF0aGVyIHRoYW4KCSAgc2V0dGluZyB0aGVtIGFnYWluIC4uLgoKMjAwNi0wNS0yOCAxMDowNTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBBIHRyYWNrL3ZvbHVtZSBudW1iZXIgb3IgY291bnQgb2YgMCBkb2VzIG5vdCBtYWtlIHNlbnNlLCBqdXN0IGlnbm9yZSBpdCBhbG9uZyB3aXRoIG5lZ2F0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGlkM3YyX3RhZ190b190YWdsaXN0KToKCSAgQSB0cmFjay92b2x1bWUgbnVtYmVyIG9yIGNvdW50IG9mIDAgZG9lcyBub3QgbWFrZSBzZW5zZSwKCSAganVzdCBpZ25vcmUgaXQgYWxvbmcgd2l0aCBuZWdhdGl2ZSBudW1iZXJzIChhIHRhZyBtaWdodAoJICBvbmx5IGNvbnRhaW4gYSB0cmFjayBjb3VudCB3aXRob3V0IGEgdHJhY2sgbnVtYmVyKS4KCjIwMDYtMDUtMjcgMTM6MTE6MzcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBleHQvanBlZy9nc3RqcGVnZGVjLmM6IEFib3J0IGRlY29tcHJlc3Npb24gd2hlbiByZWNlaXZpbmcgRkxVU0hfU1RPUC4gVGhpcyBzaG91bGQgYXZvaWQgaXNzdWVzIHdoZW4gaW50ZXJydXB0aW5nIGRlY28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiAoZ3N0X2pwZWdfZGVjX2luaXQpLAoJICAoZ3N0X2pwZWdfZGVjX3NpbmtfZXZlbnQpOgoJICBBYm9ydCBkZWNvbXByZXNzaW9uIHdoZW4gcmVjZWl2aW5nIEZMVVNIX1NUT1AuIFRoaXMgc2hvdWxkIGF2b2lkCgkgIGlzc3VlcyB3aGVuIGludGVycnVwdGluZyBkZWNvZGluZyB3aXRoIGZsdXNoZXMuCgoyMDA2LTA1LTI3IDEyOjEwOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhYy5jOiBEb24ndCAjaW5jbHVkZSBmaWxlIHdlIGRvbid0IGRpc3QgYW55IGxvbmdlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhYy5jOgoJICBEb24ndCAjaW5jbHVkZSBmaWxlIHdlIGRvbid0IGRpc3QgYW55IGxvbmdlci4KCjIwMDYtMDUtMjcgMTE6Mjc6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSRUFETUU6IFJlcGxhY2UgY3VycmVudCBSRUFETUUgKGNvbnRhaW5pbmcgdGhlIHJlbGVhc2Ugbm90ZXMgZnJvbSBzb21lIDAuOS54IHZlcnNpb24pIHdpdGggYSBwcm9wZXIgUkVBRE1FIHRha2VuIGZyb20uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogUkVBRE1FOgoJICBSZXBsYWNlIGN1cnJlbnQgUkVBRE1FIChjb250YWluaW5nIHRoZSByZWxlYXNlIG5vdGVzIGZyb20KCSAgc29tZSAwLjkueCB2ZXJzaW9uKSB3aXRoIGEgcHJvcGVyIFJFQURNRSB0YWtlbiBmcm9tIHRoZSBjb3JlLgoKMjAwNi0wNS0yNiAyMjozNTowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3NwZWN0cnVtLzogYWRkZWQgYW5vdGhlciBleGFtcGxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3BlY3RydW0vZGVtby1hdWRpb3Rlc3QuYzogKG9uX2ZyZXF1ZW5jeV9jaGFuZ2VkKSwKCSAgKHNwZWN0cnVtX2NoYWluKSwgKG1haW4pOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOgoJICBhZGRlZCBhbm90aGVyIGV4YW1wbGUKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIGZpeCB0eXBvCgoyMDA2LTA1LTI2IDEzOjE2OjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBDbGlwIHRoZSBvdXRwdXRlZCBORVdTRUdNRU5UIHN0b3AgdGltZSB0byB0aGUgY29uZmlndXJlZCBzZWdtZW50IHN0b3AgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfYWN0aXZhdGVfc2VnbWVudCk6CgkgIENsaXAgdGhlIG91dHB1dGVkIE5FV1NFR01FTlQgc3RvcCB0aW1lIHRvIHRoZSBjb25maWd1cmVkIHNlZ21lbnQgc3RvcAoJICB0aW1lLgoKMjAwNi0wNS0yNiAxMTo0ODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRG9uJ3QgY2xlYXIgdGhlIHJ1bm5pbmcgdmFyaWFibGUgaW4gdGhlIHNlZWsgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZG9fc2Vlayk6CgkgIERvbid0IGNsZWFyIHRoZSBydW5uaW5nIHZhcmlhYmxlIGluIHRoZSBzZWVrIGNvZGUuCgoyMDA2LTA1LTI0IDE2OjAzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2R2L2dzdGR2ZGVtdXguYzogSW1wbGVtZW50IEVPUyBjb3JyZWN0bHkgYnkgZWl0aGVyIHBvc3RpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2xvb3ApOgoJICBJbXBsZW1lbnQgRU9TIGNvcnJlY3RseSBieSBlaXRoZXIgcG9zdGluZwoJICBTRUdNRU5UX0RPTkUgb3IgcHVzaGluZyBhbiBFT1MgbWVzc2FnZSBkZXBlbmRpbmcKCSAgb24gdGhlIHNlZWsgdHlwZS4gRml4ZXMgIzM0MjU5MgoKMjAwNi0wNS0yNCAxMTo1Njo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRGV0ZWN0IFFDRUxQIGluIG1wNGEgZGVzY3JpcHRvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2hhbmRsZV9lc2RzKToKCSAgRGV0ZWN0IFFDRUxQIGluIG1wNGEgZGVzY3JpcHRvcnMuCgoyMDA2LTA1LTI0IDEwOjAwOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2xhdy86IFNvbWUgY2xlYW51cHMgaW4gdGhlIGNoYWluIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xhdy9hbGF3LWRlY29kZS5jOiAoZ3N0X2FsYXdkZWNfY2hhaW4pOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuaDoKCSAgKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6IChnc3RfYWxhd2VuY19jaGFpbik6CgkgICogZ3N0L2xhdy9hbGF3LWVuY29kZS5oOgoJICAqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmM6IChnc3RfbXVsYXdkZWNfY2hhaW4pOgoJICAqIGdzdC9sYXcvbXVsYXctZGVjb2RlLmg6CgkgICogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzogKGdzdF9tdWxhd2VuY19jaGFpbik6CgkgICogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuaDoKCSAgU29tZSBjbGVhbnVwcyBpbiB0aGUgY2hhaW4gZnVuY3Rpb25zLgoJICBSZW1vdmUgc29tZSBHU3RyZWFtZXIgMC4wLjIgYml0cy4KCjIwMDYtMDUtMjMgMjA6MTU6MDQgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IGdzdF9jb2xsZWN0X3BhZHNfc3RvcCgpIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgY2hhaW5pbmcgdXAgdG8gdGhlIHBhcmVudCBjbGFzcyAoIzM0MjcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzICA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X2NoYW5nZV9zdGF0ZSk6CgkgIGdzdF9jb2xsZWN0X3BhZHNfc3RvcCgpIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgY2hhaW5pbmcgdXAKCSAgdG8gdGhlIHBhcmVudCBjbGFzcyAoIzM0MjczNCkuCgoyMDA2LTA1LTIzIDE2OjQ1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvOiBSZW1vdmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgY3J1ZnQgZm9yIGRlYWxpbmcgd2l0aCBGTEFDIEFQSSBjaGFuZ2VzIGluIHRoZSAxLjAueCBzZXJpZXMgLSB3ZSByZXF1aXJlIDEuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9mbGFjL2ZsYWNfY29tcGF0Lmg6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhYy5jOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19pbml0KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkgIFJlbW92ZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBjcnVmdCBmb3IgZGVhbGluZyB3aXRoIEZMQUMgQVBJCgkgIGNoYW5nZXMgaW4gdGhlIDEuMC54IHNlcmllcyAtIHdlIHJlcXVpcmUgMS4xLjEgb3IgbmV3ZXIgdGhlc2UgZGF5cy4KCjIwMDYtMDUtMjMgMTM6NDQ6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvOiBBZGQgc3VwcG9ydCBmb3IgbXV4aW5nL2RlbXV4aW5nIHRoZW9yYSB2aWRlbyAoIzM0MjQ0ODsgdG9vIGJhZCBub25lIG9mIHRoZSB1c3VhbCBsaW51eCBwbGF5ZXJzIGNhbiBhY3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3N0cmVhbSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF94aXBoX2NvZGVjX3ByaXZfZGF0YSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfdmlkZW9fY2FwcyksIChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2Fwcyk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfdmlkZW9fcGFkX3NldGNhcHMpLAoJICAoeGlwaDNfc3RyZWFtaGVhZGVyX3RvX2NvZGVjZGF0YSksCgkgICh2b3JiaXNfc3RyZWFtaGVhZGVyX3RvX2NvZGVjZGF0YSksCgkgICh0aGVvcmFfc3RyZWFtaGVhZGVyX3RvX2NvZGVjZGF0YSksCgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfd3JpdGVfZGF0YSk6CgkgIEFkZCBzdXBwb3J0IGZvciBtdXhpbmcvZGVtdXhpbmcgdGhlb3JhIHZpZGVvICgjMzQyNDQ4OyB0b28gYmFkCgkgIG5vbmUgb2YgdGhlIHVzdWFsIGxpbnV4IHBsYXllcnMgY2FuIGFjdHVhbGx5IHBsYXkgdGhpcykuIFBsYXliYWNrCgkgIGluIEdTdHJlYW1lciB3aWxsIHJlcXVpcmUgYWRkaXRpb25hbCBjaGFuZ2VzIHRvIHRoZW9yYWRlYyBpbiAtYmFzZS4KCSAgUmVmYWN0b3Igc3RyZWFtaGVhZGVycyA8PT4gQ29kZWNQcml2YXRlRGF0YSBjb2RlIGEgYml0OyBzb21lIHNtYWxsCgkgIGNsZWFudXBzLgoKMjAwNi0wNS0yMiAxODowMDo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogcG8vUE9URklMRVMuaW46CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2VfdHJhayksIChwbHVnaW5faW5pdCk6CgkgIHBvL1BPVEZJTEVTLmluOgoJICBUaHJvdyBhbiBlcnJvciB3aGVuIHRoZSBmaWxlIGlzIGVuY3J5cHRlZC4gTW92ZSBwbHVnaW5faW5pdCBzdHVmZgoJICB0byB0aGUgZW5kIG9mIHRoZSBmaWxlLCBhZGQgc3R1ZmYgZm9yIGkxOG4sIG1ha2UgZGVidWcgY2F0ZWdvcnkKCSAgc3RhdGljLgoKMjAwNi0wNS0yMiAxNToyMzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogRml4IGNyYXNoZXMgd2hlbiB0aGUgaG9yaXpvbnRhbCBzdWJzYW1wbGluZyBpcyAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6IChocmVzYW1wbGVjcHkxKSwKCSAgKGdzdF9qcGVnX2RlY19kZWNvZGVfaW5kaXJlY3QpLCAoZ3N0X2pwZWdfZGVjX2NoYWluKToKCSAgRml4IGNyYXNoZXMgd2hlbiB0aGUgaG9yaXpvbnRhbCBzdWJzYW1wbGluZyBpcyAxLgoJICBGaXhlcyAjMzQyMDk3LgoKMjAwNi0wNS0yMiAxNDo1NjoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5oOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDRncGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5Lmg6CgkgIGNvdmVyIHVwIHRoZSBkaXJ0eSB0cnV0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY292ZXIgdXAgdGhlIGRpcnR5IHRydXRoCgoyMDA2LTA1LTIyIDEzOjUzOjE4ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2F2aS9nc3RhdmltdXguKjogLSBhZGQgb2RtbCAobGFyZ2UgZmlsZSkgaW5kZXggc3VwcG9ydAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpX211eF9maW5hbGl6ZSksIChnc3RfYXZpX211eF9pbml0KSwKCSAgKGdzdF9hdmlfbXV4X3ZpZHNpbmtfc2V0X2NhcHMpLCAoZ3N0X2F2aV9tdXhfYXVkc2lua19zZXRfY2FwcyksCgkgIChnc3RfYXZpX211eF93cml0ZV90YWcpLCAoZ3N0X2F2aV9tdXhfcmlmZl9nZXRfYXZpX2hlYWRlciksCgkgIChnc3RfYXZpX211eF9yaWZmX2dldF9hdml4X2hlYWRlciksIChnc3RfYXZpX211eF93cml0ZV9hdml4X2luZGV4KSwKCSAgKGdzdF9hdmlfbXV4X2FkZF9pbmRleCksIChnc3RfYXZpX211eF9iaWdmaWxlKSwKCSAgKGdzdF9hdmlfbXV4X3N0YXJ0X2ZpbGUpLCAoZ3N0X2F2aV9tdXhfc3RvcF9maWxlKSwKCSAgKGdzdF9hdmlfbXV4X2hhbmRsZV9ldmVudCksIChnc3RfYXZpX211eF9kb19hdWRpb19idWZmZXIpLAoJICAoZ3N0X2F2aV9tdXhfZG9fdmlkZW9fYnVmZmVyKSwgKGdzdF9hdmlfbXV4X2RvX29uZV9idWZmZXIpLAoJICAoZ3N0X2F2aV9tdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICBTb21lIGVuaGFuY2VtZW50cyBmb3IgYXZpbXV4ICgjMzQyNTI2KToKCSAgLSBhZGQgb2RtbCAobGFyZ2UgZmlsZSkgaW5kZXggc3VwcG9ydAoJICAtIHN0b3JlIGNvZGVjIGluaXQgZGF0YSAoZS5nLiBodWZmeXV2KQoJICAtIG1pc2NlbGxhbmVvdXMgb3RoZXIgZml4ZXMvY2xlYW51cHMKCjIwMDYtMDUtMjIgMTM6NTE6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaWxiY3BheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJICBmaXggZGVzY3JpcHRpb25zIGFuZCBsaWNlbnNlIGJsb2NrcyBjdXQgYW5kIHBhc3RlIGFueW9uZSA/CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGVzY3JpcHRpb25zIGFuZCBsaWNlbnNlIGJsb2NrcwoJICBjdXQgYW5kIHBhc3RlIGFueW9uZSA/CgoyMDA2LTA1LTIxIDE2OjQxOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogVXNlIGJvaWxlcnBsYXRlIG1hY3JvLCBmaXggc3RyaW5ncyB0byBtYXRjaCBwbHVnaW4tbW92YWwtcmVxdWlyZW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOiAoZ3N0X3NwZWN0cnVtX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NwZWN0cnVtX2luaXQpLCAoZ3N0X3NwZWN0cnVtX3NldF9zaW5rX2NhcHMpLAoJICAoZ3N0X3NwZWN0cnVtX2dldF9zaW5rX2NhcHMpLCAoZ3N0X3NwZWN0cnVtX2NoYWluKToKCSAgVXNlIGJvaWxlcnBsYXRlIG1hY3JvLCBmaXggc3RyaW5ncyB0byBtYXRjaCBwbHVnaW4tbW92YWwtcmVxdWlyZW1lbnRzCgoyMDA2LTA1LTIxIDE2OjIzOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvc3BlY3RydW0vTWFrZWZpbGUuYW06IExpbmsgdG8gYmFzZSBsaWJyYXJpZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NwZWN0cnVtL01ha2VmaWxlLmFtOgoJICBMaW5rIHRvIGJhc2UgbGlicmFyaWVzCgkgICogZ3N0L3NwZWN0cnVtL2RlbW8tb3Nzc3JjLmM6IChtYWluKToKCSAgdXNlIG5ldyB0aHJlc2hob2xkIHByb3BlcnR5CgkgICogZ3N0L3NwZWN0cnVtL2dzdHNwZWN0cnVtLmM6IChnc3Rfc3BlY3RydW1fY2xhc3NfaW5pdCksCgkgIChnc3Rfc3BlY3RydW1faW5pdCksIChnc3Rfc3BlY3RydW1fZGlzcG9zZSksCgkgIChnc3Rfc3BlY3RydW1fc2V0X3Byb3BlcnR5KSwgKGdzdF9zcGVjdHJ1bV9zZXRfc2lua19jYXBzKSwKCSAgKGdzdF9zcGVjdHJ1bV9nZXRfc2lua19jYXBzKSwgKGdzdF9zcGVjdHJ1bV9jaGFpbiksCgkgIChnc3Rfc3BlY3RydW1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgVXNlIGdzdF9hZGFwdGVyLCBzdXBwb3J0IG11bHRpcGxlLWNoYW5uZWxzLCBhZGQgdGhyZXNob2xkIHByb3BlcnR5IGZvcgoJICByZXN1bHQsIGFkZCBkb2NzLCBmaXggcmVzdWx0aW5nIHNwZWN0cnVtIHJhbmdlICh3YXMgaW5jbHVkaW5nIG1pcnJvcmVkCgkgIHJlc3VsdHMpCgoyMDA2LTA1LTIwIDIyOjQyOjE1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJbml0aWFsIHBvcnQgb2YgdGhlIHNwZWN0cnVtIGVsZW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9zcGVjdHJ1bS9kZW1vLW9zc3NyYy5jOiAoc3BlY3RydW1fY2hhaW4pLCAobWFpbik6CgkgICogZ3N0L3NwZWN0cnVtL2ZpeF9mZnQuYzogKGdzdF9zcGVjdHJ1bV9maXhfZG90KToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9nZXRfdHlwZSksCgkgIChnc3Rfc3BlY3RydW1fYmFzZV9pbml0KSwgKGdzdF9zcGVjdHJ1bV9jbGFzc19pbml0KSwKCSAgKGdzdF9zcGVjdHJ1bV9pbml0KSwgKGdzdF9zcGVjdHJ1bV9kaXNwb3NlKSwKCSAgKGdzdF9zcGVjdHJ1bV9zZXRfcHJvcGVydHkpLCAoZ3N0X3NwZWN0cnVtX2NoYWluKToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uaDoKCSAgSW5pdGlhbCBwb3J0IG9mIHRoZSBzcGVjdHJ1bSBlbGVtZW50CgoyMDA2LTA1LTE5IDE4OjU4OjA1ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuYzoKCSAgSSBmb3JnZXQgdG8gYWRkIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5jIGluIGxhcyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEkgZm9yZ2V0IHRvIGFkZCBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuYyBpbiBsYXMgY29tbWl0CgoyMDA2LTA1LTE5IDE4OjMxOjI1ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIFNvbWUgY2xlYW4tdXBzIHJlcXVlc3RlZCBieSB3aW5nbyBpbiBidWcgIzMzODgxOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFNvbWUgY2xlYW4tdXBzIHJlcXVlc3RlZCBieSB3aW5nbyBpbiBidWcgIzMzODgxOC4KCjIwMDYtMDUtMTkgMTQ6MDU6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IERvbid0IG91dHB1dCBhbnkgdGFnIHdoZW4gd2UgZW5jb3VudGVyIGEgbmVnYXRpdmUgdHJhY2sgbnVtYmVyIC0gdGhlIHRhZyB0eXBlIGlzIHVpbnQsIHNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiAoaWQzdjJfdGFnX3RvX3RhZ2xpc3QpOgoJICBEb24ndCBvdXRwdXQgYW55IHRhZyB3aGVuIHdlIGVuY291bnRlciBhIG5lZ2F0aXZlIHRyYWNrIG51bWJlciAtIHRoZQoJICB0YWcgdHlwZSBpcyB1aW50LCBzbyB3ZSBlbmQgdXAgb3V0cHV0dGluZyBodWdlIHBvc2l0aXZlIG51bWJlcnMKCSAgaW5zdGVhZC4gKEZpeGVzOiAjMzQyMDI5KQoKMjAwNi0wNS0xOCAyMzowNDo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVwZGF0ZSBmb3IgbmV3IEdTVFBCX1BMVUdJTlNfRElSCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXBkYXRlIGZvciBuZXcgR1NUUEJfUExVR0lOU19ESVIKCjIwMDYtMDUtMTggMTk6MzQ6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIFgxMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIENoZWNrIGZvciBYMTEKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0LmM6IChnc3RfdjRsMl9jbGFzc19wcm9iZV9kZXZpY2VzKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyb2JqZWN0Lmg6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfaWZhY2Vfc3VwcG9ydGVkKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6IChnc3RfdjRsMl94b3ZlcmxheV9vcGVuKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuaDoKCSAgQ29kZSBjbGVhbnVwcywgZml4IGRlYnVnIG1hY3JvcwoKMjAwNi0wNS0xOCAxNDo0NTozMyArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIHJ0cC9nc3QvZ3N0cnRwaDI2M3BheS5jOiBQcm9wZXJseSBzZXQgc3RhdGljIGNhcHMgZm9yIEgyNjMgYXQgMzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA1LTE4ICBQaGlsaXBwZSBLYWxhZiAgPHBoaWxpcHBlLmthbGFmIGF0IGNvbGxhYm9yYS5jby51az4KCSAgKiBydHAvZ3N0L2dzdHJ0cGgyNjNwYXkuYzoKCSAgUHJvcGVybHkgc2V0IHN0YXRpYyBjYXBzIGZvciBIMjYzIGF0IDM0LgoKMjAwNi0wNS0xOCAxMjo0NjowOCArMDAwMCAgSmFtZXMgRG9jIExpdmluZ3N0b24gPGRvY2xpdmluZ3N0b25AZ21haWwuY29tPgoKCSAgZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzogTWVyZ2UgZXZlbnQgdGFncyBhbmQgdGFnIHNldHRlciB0YWdzIGNvcnJlY3RseSAoIzMzOTkxOCkuIEFsc28sIGRvbid0IGxlYWsgdGFnbGlzdCBpbiBjYXNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmFtZXMgIkRvYyIgTGl2aW5nc3RvbiAgPGRvY2xpdmluZ3N0b24gZ21haWwgY29tPgoJICAqIGV4dC90YWdsaWIvZ3N0dGFnbGlibXV4LmM6IChnc3RfdGFnX2xpYl9tdXhfcmVuZGVyX3RhZyk6CgkgIE1lcmdlIGV2ZW50IHRhZ3MgYW5kIHRhZyBzZXR0ZXIgdGFncyBjb3JyZWN0bHkgKCMzMzk5MTgpLiBBbHNvLAoJICBkb24ndCBsZWFrIHRhZ2xpc3QgaW4gY2FzZSBvZiBhbiBlcnJvci4KCjIwMDYtMDUtMTcgMTg6MDk6MDYgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJICBGaXhlZCBjYXBzIGZvciBIMjYzIChub3QgdGhlIHNhbWUgYXMgSDI2MyspCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlZCBjYXBzIGZvciBIMjYzIChub3QgdGhlIHNhbWUgYXMgSDI2MyspCgoyMDA2LTA1LTE3IDEyOjM2OjI2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzogV2UgY2FuIG9ubHkgZG8gY2FwcyBpbnRlcnNlY3Rpb24gaWYgdGhlIG90aGVyY2FwcyBhcmUgbm9uLWVtcHR5IGFuZCBub3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xhdy9tdWxhdy1kZWNvZGUuYzogKG11bGF3ZGVjX2dldGNhcHMpOgoJICBXZSBjYW4gb25seSBkbyBjYXBzIGludGVyc2VjdGlvbiBpZiB0aGUgb3RoZXJjYXBzIGFyZSBub24tZW1wdHkgYW5kIG5vdAoJICBBTlkuIEVsc2Ugd2UgcmV0dXJuIHRoZSBwYWQgdGVtcGxhdGUgKGJhc2VfY2FwcykuCgoyMDA2LTA1LTE3IDExOjIwOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiBGaXggY3Jhc2ggd2hlbiBvdXRwdXR0aW5nIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgY2VydGFpbiBwaWN0dXJlcyAoYWx3YXlzIGdvb2QgdG8gdXNlIHRoZSByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19jaGFpbik6CgkgIEZpeCBjcmFzaCB3aGVuIG91dHB1dHRpbmcgZGVidWdnaW5nIGluZm9ybWF0aW9uIGZvciBjZXJ0YWluCgkgIHBpY3R1cmVzIChhbHdheXMgZ29vZCB0byB1c2UgdGhlIHJpZ2h0IHN0cnVjdCBtZW1iZXIgZm9yCgkgIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiBhbiBhcnJheSkuCgoyMDA2LTA1LTE3IDA4OjEwOjMxICswMDAwICBKaW5kcmljaCBNYWtvdmlja2EgPGppbmRyaWNoLm1ha2l2aWNrYUBpdG9uaXMudHY+CgoJICBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IERvbid0IGNyZWF0ZSB1bm5lY2Vzc2FyeSBzdWItYnVmZmVycyBhbGwgdGhlIHRpbWUuIERyYW1hdGljYWxseSBpbXByb3ZlcyBwZXJmb3JtYW5jZSB3aXRoIG0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKaW5kcmljaCBNYWtvdmlja2EgIDxqaW5kcmljaC5tYWtpdmlja2EgYXQgaXRvbmlzIHR2PgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogKGdzdF9lYm1sX3JlYWRfcGVla19ieXRlcyksCgkgIChnc3RfZWJtbF9yZWFkX3B1bGxfYnl0ZXMpLCAoZ3N0X2VibWxfcmVhZF9lbGVtZW50X2lkKSwKCSAgKGdzdF9lYm1sX3JlYWRfZWxlbWVudF9sZW5ndGgpLCAoZ3N0X2VibWxfcmVhZF9idWZmZXIpLAoJICAoZ3N0X2VibWxfcmVhZF9ieXRlcyksIChnc3RfZWJtbF9yZWFkX3VpbnQpLCAoZ3N0X2VibWxfcmVhZF9zaW50KSwKCSAgKGdzdF9lYm1sX3JlYWRfZmxvYXQpLCAoZ3N0X2VibWxfcmVhZF9hc2NpaSksCgkgIChnc3RfZWJtbF9yZWFkX2JpbmFyeSk6CgkgIERvbid0IGNyZWF0ZSB1bm5lY2Vzc2FyeSBzdWItYnVmZmVycyBhbGwgdGhlIHRpbWUuIERyYW1hdGljYWxseQoJICBpbXByb3ZlcyBwZXJmb3JtYW5jZSB3aXRoIG11bHRpcGxlIGNvbmN1cnJlbnRseSBydW5uaW5nCgkgIG1hdHJvc2thZGVtdXggaW5zdGFuY2VzICgjMzQxODE4KSAoYW5kIGF2b2lkcyBkb2luZwoJICB1bm5lY2Vzc2FyaWx5IGluZWZmaWNpZW50IHRoaW5ncyBpbiB0aGUgZ2VuZXJhbCBjYXNlKS4KCjIwMDYtMDUtMTYgMTc6MjA6MDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOiBJbiBzbmFwc2hvdCBtb2RlLCB3ZSBhbHdheXMgcmV0dXJuIEdTVF9GTE9XX1VORVhQRUNURUQgd2hhdGV2ZXIgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX3AuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzogKGdzdF9wbmdlbmNfY2hhaW4pOgoJICBJbiBzbmFwc2hvdCBtb2RlLCB3ZSBhbHdheXMgcmV0dXJuIEdTVF9GTE9XX1VORVhQRUNURUQgd2hhdGV2ZXIgdGhlCgkgIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX3B1c2hfZXZlbnQoKS4KCjIwMDYtMDUtMTYgMTQ6MDc6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2F1dG9kZXRlY3QvOiBNYWtlIHRoZSBuYW1lIG9mIHRoZSBjaGlsZCBlbGVtZW50IGJlIGJhc2VkIG9uIHRoZSBuYW1lIG9mIHRoZSBwYXJlbnQsIHNvIHRoYXQgZGVidWcgb3V0cHV0IGlzIG1vcmUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZmluZF9iZXN0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkgIChnc3RfYXV0b192aWRlb19zaW5rX2ZpbmRfYmVzdCk6CgkgIE1ha2UgdGhlIG5hbWUgb2YgdGhlIGNoaWxkIGVsZW1lbnQgYmUgYmFzZWQgb24gdGhlIG5hbWUgb2YgdGhlCgkgIHBhcmVudCwgc28gdGhhdCBkZWJ1ZyBvdXRwdXQgaXMgbW9yZSB1c2VmdWwuCgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChmaW5kX3V0ZjE2X2JvbSksCgkgIChwYXJzZV9pbnNlcnRfc3RyaW5nX2ZpZWxkKSwgKHBhcnNlX3NwbGl0X3N0cmluZ3MpOgoJICBSZXdvcmsgc3RyaW5nIHBhcnNpbmcgdG8gYWx3YXlzIHdhbGsgb3ZlciBCT00gbWFya2VycyBpbiBVVEYxNgoJICBzdHJpbmdzLCB1c2luZyB0aGUgZW5kaWFubmVzcyBpbmRpY2F0ZWQgYnkgdGhlIGlubmVybW9zdCBvbmUsCgkgIHRoZW4gdHJ5aW5nIHRoZSBvcHBvc2l0ZSBlbmRpYW5uZXNzIGlmIHRoYXQgZmFpbHMgdG8gY29udmVydAoJICB0byB2YWxpZCBVVEYtOC4gRml4ZXMgIzM0MTc3NAoKMjAwNi0wNS0xNiAxMzozMTowMiArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGV4dC9saWJwbmcvTWFrZWZpbGUuYW06IEFkZCBMSUJQTkdfQ0ZMQUdTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0xNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBmcm9tOiBNYXR0aGlldSA8bWF0dGhpZXUgYXQgZmx1ZW5kbyBkb3QgY29tPgoJICAqIGV4dC9saWJwbmcvTWFrZWZpbGUuYW06CgkgIEFkZCBMSUJQTkdfQ0ZMQUdTLgoKMjAwNi0wNS0xNSAxMToyMDoyMSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICB1cGRhdGUgd2l0aCBsYXRlc3QgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpdGggbGF0ZXN0IGNoYW5nZXMKCjIwMDYtMDUtMTUgMDk6MDA6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOiBBZGQgc3VwcG9ydCBmb3Igd3JpdGluZyBpbWFnZXMgKEFQSUMgZnJhbWVzKSBpbnRvIElEM3YyIHRhZ3MgKHBpY3R1cmUgdHlwZSBhbHdheXMgc2V0IHRvICcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgQWRkIHN1cHBvcnQgZm9yIHdyaXRpbmcgaW1hZ2VzIChBUElDIGZyYW1lcykgaW50byBJRDN2MgoJICB0YWdzIChwaWN0dXJlIHR5cGUgYWx3YXlzIHNldCB0byAnb3RoZXInIGZvciBub3cgdGhvdWdoKS4KCjIwMDYtMDUtMTQgMTI6NTA6MDcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBVcGRhdGUgZG9jczsgd2F2cGFyc2UgaW1wbGVtZW50cyBwdXNoIGFuZCBwdWxsIG1vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSAgVXBkYXRlIGRvY3M7IHdhdnBhcnNlIGltcGxlbWVudHMgcHVzaCBhbmQgcHVsbCBtb2Rlcy4KCjIwMDYtMDUtMTIgMTg6MTA6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IE9vb3BzLCBiaXR0ZW4gYnkgdGhlIGNvcHktYW5kLXBhc3RlIGRlc2lnbiBwYXJhZGlnbSwgZml4ZXMgc2VlayBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9pbmRleF9uZXh0KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9tYXNzYWdlX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspLCAoZ3N0X2F2aV9kZW11eF9sb29wKToKCSAgT29vcHMsIGJpdHRlbiBieSB0aGUgY29weS1hbmQtcGFzdGUgZGVzaWduIHBhcmFkaWdtLCBmaXhlcwoJICBzZWVrIGFnYWluLgoKMjAwNi0wNS0xMiAxODowNDoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogU29tZSBjbGVhbnVwcywgcHJlcGFyZSB0byB1c2UgR3N0U2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9yZXNldCksCgkgIChnc3RfYXZpX2RlbXV4X2luZGV4X25leHQpLCAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19ldmVudCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1YmluZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwgKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fc2NhbiksCgkgIChnc3RfYXZpX2RlbXV4X21hc3NhZ2VfaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9jYWxjdWxhdGVfZHVyYXRpb25zX2Zyb21faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9wdXNoX2V2ZW50KSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksCgkgIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zZWVrKSwgKGdzdF9hdmlfZGVtdXhfcHJvY2Vzc19uZXh0X2VudHJ5KSwKCSAgKGdzdF9hdmlfZGVtdXhfbG9vcCk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBTb21lIGNsZWFudXBzLCBwcmVwYXJlIHRvIHVzZSBHc3RTZWdtZW50LgoJICBGaXggZXJyb3IgaW4gZW50cnkgd2Fsa2luZyBjb2RlLgoJICBGaXggVkJSIGRldGVjdGlvbi4KCSAgU21hcnRlciB0aW1lc3RhbXAgY2FsY3VsYXRpb24gY29kZS4KCSAgVW5pZm9ybSBlcnJvci9lb3MgaGFuZGxpbmcuCgoyMDA2LTA1LTEyIDE3OjQ0OjE1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogRml4IHVzZSBvZiB1bmluaXRpYWxpc2VkIHZhbHVlcyBpZiB3ZSdyZSBOT1Qgc2Vla2luZyBpbiByZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfZm10KSwKCSAgKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKToKCSAgRml4IHVzZSBvZiB1bmluaXRpYWxpc2VkIHZhbHVlcyBpZiB3ZSdyZSBOT1Qgc2Vla2luZyBpbiByZWFkeS4KCSAgRml4IHR5cG9zLgoKMjAwNi0wNS0xMiAwODoyMzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC93YXZwYXJzZS9NYWtlZmlsZS5hbTogQWRkIENGTEFHUyBhbmQgTElCUyBmb3IgbGliZ3N0YmFzZSwgZml4ZXMgYnVpbGQgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL01ha2VmaWxlLmFtOgoJICBBZGQgQ0ZMQUdTIGFuZCBMSUJTIGZvciBsaWJnc3RiYXNlLCBmaXhlcyBidWlsZCBvbgoJICBDeWd3aW4gKCMzNDE0ODkpLgoKMjAwNi0wNS0xMiAwODoyMTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBTb21lIG1vcmUgZGVidWcgaW5mby4gTm8gbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkgZ19jb252ZXJ0KCkgaXMgcmVhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX2luc2VydF9zdHJpbmdfZmllbGQpOgoJICBTb21lIG1vcmUgZGVidWcgaW5mby4gTm8gbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBzdHJpbmcKCSAgcmV0dXJuZWQgYnkgZ19jb252ZXJ0KCkgaXMgcmVhbGx5IFVURi04IC0gZWl0aGVyIGl0IGlzIG9yCgkgIHdlIGdldCBOVUxMIHJldHVybmVkLgoKMjAwNi0wNS0xMSAxNzo1OTo1OSArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvTWFrZWZpbGUuYW06CgkqIHN5cy92NGwyL2dzdHY0bDIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmNvbG9yYmFsYW5jZS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJlbGVtZW50LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJlbGVtZW50Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJvYmplY3QuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMm9iamVjdC5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5oOgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5Lmg6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5oOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgQ2hhbmdlcyBwcm9wb3NlZCBieSBXaW5nbyBpbiBidWcgIzMzODgxOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZXMgcHJvcG9zZWQgYnkgV2luZ28gaW4gYnVnICMzMzg4MTguCgoyMDA2LTA1LTExIDA5OjA5OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBGaWd1cmUgb3V0IHRoZSByZWFsIGF1ZGlvIHR5cGUgaW4gbXA0YSBib3hlcyBieSBwYXJzaW5nIHRoZSBvcHRpb25hbCBkZXNjcmlwdG9ycyBpbiB0aGUgb3B0aW9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2UpLCAocXRkZW11eF9wYXJzZV90cmFrKSwKCSAgKGdzdF9xdGRlbXV4X2hhbmRsZV9lc2RzKToKCSAgRmlndXJlIG91dCB0aGUgcmVhbCBhdWRpbyB0eXBlIGluIG1wNGEgYm94ZXMgYnkgcGFyc2luZyB0aGUKCSAgb3B0aW9uYWwgZGVzY3JpcHRvcnMgaW4gdGhlIG9wdGlvbmFsIGVzZHMgYm94LiBQcm9tb3RlIHRoZQoJICBkZWZhdWx0IEFBQyB0byBtcDMgd2hlbiBpbmRpY2F0ZWQuIEZpeGVzICMzMzA2MzIuCgoyMDA2LTA1LTEwIDE3OjQ0OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBQYXJzZSB2ZXJzaW9uIDIgc2FtcGxlIGRlc2NyaXB0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZSksIChxdGRlbXV4X2R1bXBfdW5rbm93biksCgkgIChxdGRlbXV4X3BhcnNlX3RyYWspLCAoZ3N0X3F0ZGVtdXhfaGFuZGxlX2VzZHMpOgoJICBQYXJzZSB2ZXJzaW9uIDIgc2FtcGxlIGRlc2NyaXB0aW9ucy4KCSAgRG9uJ3QgI2RlZmluZSBnc3RfdXRpbF9kdW1wX21lbSgpLCB1c2Ugc29tZXRoaW5nIG1vcmUKCSAgc3BlY2lmaWMgaW5zdGVhZCB0byBhdm9pZCBjb25mdXNpb24uCgoyMDA2LTA1LTEwIDEzOjUxOjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBGaXggcGFyc2luZyBvZiBudW1lcmljIGdlbnJlIHN0cmluZ3Mgc29tZSBtb3JlLCBieSBlbnN1cmluZyB0aGF0IHdlIG9ubHkgdHJ5IGFuZCBwYXJzZSBzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGlkM3YyX2dlbnJlX2ZpZWxkc190b190YWdsaXN0KToKCSAgRml4IHBhcnNpbmcgb2YgbnVtZXJpYyBnZW5yZSBzdHJpbmdzIHNvbWUgbW9yZSwgYnkgZW5zdXJpbmcgdGhhdAoJICB3ZSBvbmx5IHRyeSBhbmQgcGFyc2Ugc3RyaW5ncyB0aGF0IGEpIFN0YXJ0IHdpdGggJygnIGFuZCBiKSBDb25zaXN0CgkgIG9ubHkgb2YgZGlnaXRzLgoJICBBbHNvLCB3aGVuIGZpbmRpbmcgYW4gZXNjYXBpbmcgJygoJyBzZXF1ZW5jZSwgYnVzdCBpdCBiYWNrIHRvICcoJyBieQoJICBzd2FsbG93aW5nIHRoZSBmaXJzdCBwYXJlbnRoZXNpcwoKMjAwNi0wNS0xMCAxMToxNzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9lc2QvZXNkc2luay4qOiBNb3ZlIHRoZSBlc2RfZ2V0X3NlcnZlcl9pbmZvKCkgaW50byBnc3RfZXNkc2lua19vcGVuKCkgYW5kIGZhaWwgd2l0aCBhIGRlY2VudCBlcnJvciBtZXNzYWdlIG9uIGVyci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZXNkL2VzZHNpbmsuYzogKGdzdF9lc2RzaW5rX2ZpbmFsaXplKSwgKGdzdF9lc2RzaW5rX2dldGNhcHMpLAoJICAoZ3N0X2VzZHNpbmtfb3BlbiksIChnc3RfZXNkc2lua19jbG9zZSk6CgkgICogZXh0L2VzZC9lc2RzaW5rLmg6CgkgIE1vdmUgdGhlIGVzZF9nZXRfc2VydmVyX2luZm8oKSBpbnRvIGdzdF9lc2RzaW5rX29wZW4oKSBhbmQgZmFpbAoJICB3aXRoIGEgZGVjZW50IGVycm9yIG1lc3NhZ2Ugb24gZXJyb3JzLgoKMjAwNi0wNS0xMCAxMDoyOTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENvbnN0LWlmeSBHRW51bVZhbHVlIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2Rtb24uYzogKGdzdF9lc2Rtb25fZGVwdGhzX2dldF90eXBlKSwKCSAgKGdzdF9lc2Rtb25fY2hhbm5lbHNfZ2V0X3R5cGUpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOiAoZ3N0X2djb25mX3Byb2ZpbGVfZ2V0X3R5cGUpOgoJICAqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6IChnc3RfcGl4YnVmc2NhbGVfbWV0aG9kX2dldF90eXBlKToKCSAgKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOiAoZ3N0X2NhY2FzaW5rX2RpdGhlcl9nZXRfdHlwZSk6CgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzogKGdzdF9zaG91dDJzZW5kX3Byb3RvY29sX2dldF90eXBlKToKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzogKGdzdF9hbHBoYV9tZXRob2RfZ2V0X3R5cGUpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5LmM6IChnc3RfaWxiY19tb2RlX2dldF90eXBlKToKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcF9wcm90b19nZXRfdHlwZSk6CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IChnc3RfdmlkZW9fYm94X2ZpbGxfZ2V0X3R5cGUpOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzogKGdzdF92aWRlb19mbGlwX21ldGhvZF9nZXRfdHlwZSk6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICAoZ3N0X3ZpZGVvX21peGVyX2JhY2tncm91bmRfZ2V0X3R5cGUpOgoJICBDb25zdC1pZnkgR0VudW1WYWx1ZSBhcnJheXMuCgoyMDA2LTA1LTA5IDE0OjA4OjE1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJldD4KCgkgIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IFdvcmsgYXJvdW5kIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGJ1ZyB0aGF0IHJlc3VsdHMgaW4gYXZpbXV4IG1hcmtpbmcgYWxsIGZyYW1lcyBpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGJldD4KCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOiAoZ3N0X2F2aV9tdXhfZG9fYXVkaW9fYnVmZmVyKSwKCSAgKGdzdF9hdmlfbXV4X2RvX3ZpZGVvX2J1ZmZlcik6CgkgIFdvcmsgYXJvdW5kIGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGJ1ZyB0aGF0CgkgIHJlc3VsdHMgaW4gYXZpbXV4IG1hcmtpbmcgYWxsIGZyYW1lcyBpbiB0aGUgaW5kZXggYXMKCSAga2V5ZnJhbWVzICgjMzQwODU5KS4KCjIwMDYtMDUtMDggMTk6MjE6MTggKzAwMDAgIE1hcnRpbiBSdWJsaSA8bWFydGluX3J1YmxpQGxvZ2l0ZWNoLmNvbT4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBGaXggZm91cmNjIG5hbWUgcHJpbnRlZCBvdXQuIFBhdGNoIGZyb20gTWFydGluIFJ1YmxpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IGZvdXJjYyBuYW1lIHByaW50ZWQgb3V0LiBQYXRjaCBmcm9tIE1hcnRpbiBSdWJsaS4KCjIwMDYtMDUtMDggMTU6MjA6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IERvbid0IGNhdXNlIHNpZGUgZWZmZWN0cyBpbiBhIGRlYnVnZ2luZyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksCgkgIChxdGRlbXV4X2R1bXBfbXZoZCk6CgkgIERvbid0IGNhdXNlIHNpZGUgZWZmZWN0cyBpbiBhIGRlYnVnZ2luZyBmdW5jdGlvbi4KCSAgQWxzbyByZXBvcnQgZHVyYXRpb24gaW4gcHVzaCBtb2RlIHNpbmNlIHdlIGNhbi4KCjIwMDYtMDUtMDggMTQ6MzU6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9ydHNwdXJsLmM6IE1ha2UgcGFyc2luZyBvZiB1cmxzIHN1Y2sgc2xpZ2h0bHkgbGVzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvcnRzcHVybC5jOiAocnRzcF91cmxfcGFyc2UpOgoJICBNYWtlIHBhcnNpbmcgb2YgdXJscyBzdWNrIHNsaWdodGx5IGxlc3MuCgoyMDA2LTA1LTA4IDExOjUzOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgYXV0b2dlbi5zaDogbGlidG9vbGl6ZSBvbiBEYXJ3aW4vTWFjT1NYIGlzIGNhbGxlZCBnbGlidG9vbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDogKENPTkZJR1VSRV9ERUZfT1BUKToKCSAgbGlidG9vbGl6ZSBvbiBEYXJ3aW4vTWFjT1NYIGlzIGNhbGxlZCBnbGlidG9vbGl6ZS4KCjIwMDYtMDUtMDggMTA6NTk6MDUgKzAwMDAgIEplbnMgR3JhbnNldWVyIDxqZW5zZ3JAZ214Lm5ldD4KCgkgIEM4OSBjb21wbGlhbmNlIGZpeGVzLiBGaXhlcyAjMzQwOTgwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVucyBHcmFuc2V1ZXIgPGplbnNnciBhdCBnbXggZG90IG5ldD4KCSAgKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5jOiAoZ3N0X3BpeGJ1ZnNjYWxlX2luaXQpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2Rpc3Bvc2UpOgoJICBDODkgY29tcGxpYW5jZSBmaXhlcy4gRml4ZXMgIzM0MDk4MAoKMjAwNi0wNS0wNiAwOTowMTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuKjogSGFuZGxlIHNlZ21lbnQgc2Vla3MgdGhhdCBpbmNsdWRlIHRoZSBlbmQgb2YgdGhlIGZpbGUgYXMgc3RvcCBwb2ludCBwcm9wZXJseTogd2hlbiB0aGUgZGVjb2Rlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfbG9vcCk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBIYW5kbGUgc2VnbWVudCBzZWVrcyB0aGF0IGluY2x1ZGUgdGhlIGVuZCBvZiB0aGUgZmlsZSBhcyBzdG9wIHBvaW50CgkgIHByb3Blcmx5OiB3aGVuIHRoZSBkZWNvZGVyIGhpdHMgRU9TIHdlIHdhbnQgdG8gc2VuZCBhIFNFR01FTlRfRE9ORQoJICBtZXNzYWdlIGluc3RlYWQgb2YgYW4gRU9TIGV2ZW50IGluIGNhc2Ugd2UncmUgaW4gc2VnbWVudCBzZWVrCgkgIG1vZGUgKGZpeGVzICMzNDA2OTkpLgoKMjAwNi0wNS0wNiAwMDoxNDowOSArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5jOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6CgkqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSogZ3N0L2RlYnVnL2JyZWFrbXlkYXRhLmM6CgkqIGdzdC9kZWJ1Zy90ZXN0cGx1Z2luLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSAgQWRkIHNlbWljb2xvbnMgYWZ0ZXIgR1NUX0JPSUxFUlBMQVRFW19GVUxMXSBzbyB0aGF0IGluZGVudCBkb2Vzbid0IG1lc3MgdXAgZm9sbG93aW5nIGxpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIHNlbWljb2xvbnMgYWZ0ZXIgR1NUX0JPSUxFUlBMQVRFW19GVUxMXSBzbyB0aGF0IGluZGVudCBkb2Vzbid0IG1lc3MgdXAgZm9sbG93aW5nIGxpbmVzLgoKMjAwNi0wNS0wNSAyMDoxMjo1OSArMDAwMCAgTWFydGluIFJ1YmxpIDxtYXJ0aW5fcnVibGlAbG9naXRlY2guY29tPgoKCSogc3lzL3Y0bDIvZ3N0djRsMmVsZW1lbnQuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmVsZW1lbnQuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmg6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJKiB0ZXN0cy9pY2xlcy92NGwyc3JjLXRlc3QuYzoKCSAgU29tZSBjaGFuZ2VzIHByb3Bvc2VkIGJ5IHdpbmdvIGluIGJ1ZyAjMzM4ODE4IChidXQgbm90IGV2ZXJ5dGhpbmcgeWV0KS4gUGF0Y2ggZnJvbSBNYXJ0aW4gUnVibGkgdG8gZml4IGZyYW1lcmF0ZSBkZXRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTb21lIGNoYW5nZXMgcHJvcG9zZWQgYnkgd2luZ28gaW4gYnVnICMzMzg4MTggKGJ1dCBub3QgZXZlcnl0aGluZyB5ZXQpLiBQYXRjaCBmcm9tIE1hcnRpbiBSdWJsaSB0byBmaXggZnJhbWVyYXRlIGRldGVjdGlvbi4KCjIwMDYtMDUtMDQgMTc6Mjc6MjcgKzAwMDAgIE1pY2hhbCBCZW5lcyA8bWljaGFsLmJlbmVzQHhlcmlzLmN6PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IERvbid0IGxlYWsgY2FwcyB3aGVuIGZyZWVpbmcgdGhlIHN0cmVhbSBjb250ZXh0ICgjMzQwNjIzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNaWNoYWwgQmVuZXMgIDxtaWNoYWwgZG90IGJlbmVzIGF0IHhlcmlzIGRvdCBjej4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCk6CgkgIERvbid0IGxlYWsgY2FwcyB3aGVuIGZyZWVpbmcgdGhlIHN0cmVhbSBjb250ZXh0ICgjMzQwNjIzKS4KCjIwMDYtMDUtMDQgMTU6NDA6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjMgPT09CgoyMDA2LTA1LTA0IDE1OjM2OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbm5vZGV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nZGtwaXhidWYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1oYWxlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pY3lkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1pZDNkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi10YWdsaWIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYmFsYW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teGltYWdlc3JjLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWFsbHkgcmVsZWFzZSAwLjEwLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlYWxseSByZWxlYXNlIDAuMTAuMwoKMjAwNi0wNS0wNCAxNToyODo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXRkZW11eC54bWw6CgkgIFJlYWxseSByZWxlYXNlIDAuMTAuMyB0aGlzIHRpbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlYWxseSByZWxlYXNlIDAuMTAuMyB0aGlzIHRpbWUKCjIwMDYtMDUtMDQgMTU6MDU6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Rpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGFkc3BhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcXRkZW11eC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9iYWxhbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMwoKMjAwNi0wNS0wMyAxODo0NDozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NzLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDUtMDMgMTg6NDE6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IERvbid0IHN0cmNtcCgpIE5VTEwgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICAoZ3N0X21hdHJvc2thX211eF9zdHJlYW1faXNfdm9yYmlzX2hlYWRlciksCgkgIChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX2RhdGEpOgoJICBEb24ndCBzdHJjbXAoKSBOVUxMIHN0cmluZ3MuCgkgIE9ubHkgc3RhcnQgbmV3IGNsdXN0ZXJzIG9uIHZpZGVvIGtleWZyYW1lcywgbm90IG9uIGFueQoJICByYW5kb20gYXVkaW8gYnVmZmVyIHRoYXQgZG9lc24ndCBoYXZlIHRoZSBERUxUQV9VTklUCgkgIGZsYWcgc2V0IChmaXhlcyAnbWFrZSBjaGVjaycgYWdhaW4pLgoKMjAwNi0wNS0wMyAxNDo1MTo1MCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogRG9uJ3QgbWlzaW50ZXJwcmV0IEdTVF9DTE9DS19USU1FX05PTkUgYXMgdmVyeSBoaWdoIHRpbWVzdGFtcCB2YWx1ZSBhbmQgdGhlbiBkZWFkLWxvY2sgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfYmVzdF9wYWQpLAoJICAoZ3N0X21hdHJvc2thX211eF9zdHJlYW1faXNfdm9yYmlzX2hlYWRlciksCgkgIChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX2RhdGEpOgoJICBEb24ndCBtaXNpbnRlcnByZXQgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyB2ZXJ5IGhpZ2ggdGltZXN0YW1wCgkgIHZhbHVlIGFuZCB0aGVuIGRlYWQtbG9jayB3aGVuIG11eGluZyB2b3JiaXMgYXVkaW8gc3RyZWFtcwoJICAodGhlIHRocmVlIHZvcmJpcyBoZWFkZXIgYnVmZmVycyBjYXJyeSBubyB0aW1lc3RhbXAsIGFuZCBpdAoJICB3b3VsZCB0cnkgdG8gbXV4IHRoZXNlIGFmdGVyIGFsbCB2aWRlbyBidWZmZXJzKS4gRml4ZXMgIzM0MDM0Ni4KCSAgSW1wcm92ZSBjbHVzdGVyaW5nOiBzdGFydCBhIG5ldyBjbHVzdGVyIGFsc28gd2hlbmV2ZXIgd2UgZ2V0CgkgIGEga2V5ZnJhbWUuCgoyMDA2LTA1LTAzIDE0OjMwOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQ2xlYW4gdXAgb25lIHBpZWNlIG9mIGxvZ2ljIHNsaWdodGx5IGFuZCByZW1vdmUgYSBkZWFkIGNvZGUgYmxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIENsZWFuIHVwIG9uZSBwaWVjZSBvZiBsb2dpYyBzbGlnaHRseSBhbmQgcmVtb3ZlIGEKCSAgZGVhZCBjb2RlIGJsb2NrLgoKMjAwNi0wNS0wMyAxNDoyODo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgd2luMzIgc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkIHdpbjMyIHN0dWZmCgoyMDA2LTA1LTAzIDE0OjI2OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZCB3aW4zMiBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBhZGQgd2luMzIgc3R1ZmYKCjIwMDYtMDUtMDIgMjI6MzQ6NTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOiBGaXggdGltZW92ZXJsYXkgZm9yIG5vbi1tdWx0aXBsZS1vZi00IHdpZHRocy4gVGhpcyBmb3VyY2MgY3JhcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuYzogKGdzdF9jYWlyb190aW1lX292ZXJsYXlfdHJhbnNmb3JtKToKCSAgRml4IHRpbWVvdmVybGF5IGZvciBub24tbXVsdGlwbGUtb2YtNCB3aWR0aHMuIFRoaXMgZm91cmNjIGNyYXAKCSAgU1VDS1MuCgoyMDA2LTA1LTAyIDIxOjUyOjQ4ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIEZpeCBnZXRfY2FwcyBmdW5jIHRvIHdvcmsgd2hlbiBubyBmcmFtZXJhdGUgaXMgYXZhaWxhYmxlIGFuZCB0aGUgY2FwcyBpc24ndCBzaW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggZ2V0X2NhcHMgZnVuYyB0byB3b3JrIHdoZW4gbm8gZnJhbWVyYXRlIGlzIGF2YWlsYWJsZSBhbmQgdGhlIGNhcHMgaXNuJ3Qgc2ltcGxlLgoKMjAwNi0wNS0wMiAxODo1MDoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogZG9uJ3QgbGVhayBjYXBzLXN0cmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOiAoZ3N0X2FscGhhX2NvbG9yX3RyYW5zZm9ybV9jYXBzKToKCSAgKiBnc3QvZGVidWcvbmVnb3RpYXRpb24uYzogKGdzdF9uZWdvdGlhdGlvbl91cGRhdGVfY2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzogKGdzdF9ydHBfaWxiY19kZXBheV9zZXRjYXBzKToKCSAgZG9uJ3QgbGVhayBjYXBzLXN0cmluZwoKMjAwNi0wNS0wMiAxNTo0NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiBMZXQgY29yZSBpbnNlcnQgZGVmYXVsdCBlcnJvciBtZXNzYWdlIGZvciBUWVBFX05PVF9GT1VORCBlcnJvcnMsIGl0J3MganVzdCBhcyBnb29kIGFzIG91ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9jaGFpbiksCgkgIChnc3RfaWQzZGVtdXhfc2lua19hY3RpdmF0ZSk6CgkgIExldCBjb3JlIGluc2VydCBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgZm9yIFRZUEVfTk9UX0ZPVU5ECgkgIGVycm9ycywgaXQncyBqdXN0IGFzIGdvb2QgYXMgb3VyIG93biBhbmQgaGFzIHRoZSBhZGRlZAoJICBib251cyBvZiBiZWluZyB0cmFuc2xhdGVkLgoKMjAwNi0wNS0wMiAxNTo0MDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFBvc3QgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIHdlIGdldCBhbiBFT1MgZXZlbnQgYW5kIHdlcmUgbm90IGFibGUgdG8gZmluZCBvdXQgdGhlIHR5cGUgb2Ygc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X2luaXQpLAoJICAoZ3N0X3RhZ19kZW11eF9zaW5rX2V2ZW50KToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9pbml0KSwKCSAgKGdzdF9pZDNkZW11eF9zaW5rX2V2ZW50KToKCSAgUG9zdCBhbiBlcnJvciBtZXNzYWdlIHdoZW4gd2UgZ2V0IGFuIEVPUyBldmVudCBhbmQgd2VyZSBub3QKCSAgYWJsZSB0byBmaW5kIG91dCB0aGUgdHlwZSBvZiBzdHJlYW0uCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzogKGZpbGxfbXAzX2J1ZmZlciksIChnb3RfYnVmZmVyKSwKCSAgKHRlc3RfdGFnbGliX2lkM211eF93aXRoX3RhZ3MpOgoJICBEZWNyZWFzZSBudW0tYnVmZmVycyB0byAxNiBwZXIgaXRlcmF0aW9uIGFnYWluLCBvdGhlcndpc2UgdGhlCgkgIG1hbnkgbWVtY3B5KClzIGFuZCByZWFsbG9jYXRpb25zIGluIHRoZSB0ZXN0IHdpbGwgaGFtbWVyIHNsb3cKCSAgQ1BVcyBjb21wbGV0ZWx5IGFuZCBtYWtlIHRoZSB0ZXN0IHRpbWVvdXQuCgoyMDA2LTA1LTAyIDEzOjI0OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogZmlndXJlIG91dCB3aGVyZSBwbHVnaW5zLWJhc2UgcGx1Z2lucyBhcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBmaWd1cmUgb3V0IHdoZXJlIHBsdWdpbnMtYmFzZSBwbHVnaW5zIGFyZQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICB1c2UgcGx1Z2lucy1iYXNlIHBsdWdpbnMsIHNvIHdlIGhhdmUgdHlwZWZpbmQgZnVuY3Rpb25zCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzogKHRlc3RfdGFnbGliX2lkM211eF93aXRoX3RhZ3MpOgoJICBpbmNyZWFzZSBudW0tYnVmZmVycywgdGhpcyBtYWtlcyBzdXJlIHRoZSB0ZXN0IGVycm9ycyBvdXQgaW5zdGVhZAoJICBvZiB0aW1pbmcgb3V0IHdoZW4gbm8gdHlwZWZpbmQgZnVuY3Rpb25zIGFyZSBwcmVzZW50CgoyMDA2LTA1LTAyIDEzOjAxOjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOgoJICBmaXggZG9jcyBmb3Igd2F2cGFyc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzIGZvciB3YXZwYXJzZQoKMjAwNi0wNS0wMSAyMTozNzo1MSArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvTWFrZWZpbGUuYW06CgkqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5LmM6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSogdGVzdHMvaWNsZXMvdjRsMnNyYy10ZXN0LmM6CgkgIEZldyBpbXByb3ZlbWVudHMgdG8gbW92ZSB0byBnb29kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRmV3IGltcHJvdmVtZW50cyB0byBtb3ZlIHRvIGdvb2QuCgoyMDA2LTA1LTAxIDExOjQ2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbTogYWxzbyBjaGVjayAuY2MgZmlsZXMgZm9yIGd0ay1kb2MgbWFya3VwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgYWxzbyBjaGVjayAuY2MgZmlsZXMgZm9yIGd0ay1kb2MgbWFya3VwCgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM3YybXV4LmM6IChpZDN2Mm11eF9zdWl0ZSksIChtYWluKToKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4Lmg6CgkgICogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYm11eC5oOgoJICBtb3ZlIHRhZ2xpYi1iYXNlZCBpZDN2Mm11eGVyIHRvIC1nb29kLiAgRml4ZXMgIzMzNjExMC4KCjIwMDYtMDUtMDEgMTE6NDU6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWljeWRlbXV4LnhtbDoKCSAgYWRkIGljeWRlbXV4IGluc3BlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBpY3lkZW11eCBpbnNwZWN0aW9uCgoyMDA2LTA1LTAxIDExOjQzOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL1BPVEZJTEVTLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NzLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL29yLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZCB4aW1hZ2VzcmMgZm9yIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgeGltYWdlc3JjIGZvciB0cmFuc2xhdGlvbgoKMjAwNi0wNC0zMCAxNjoxNjo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJKiBleHQvdGFnbGliL2dzdHRhZ2xpYm11eC5jOgoJICBzbWFsbCBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc21hbGwgY2xlYW51cHMKCjIwMDYtMDQtMzAgMTU6MzI6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L3RhZ2xpYi9nc3RpZDN2Mm11eC5jYzoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA2LTA0LTMwIDE0OjU1OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdGRlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXRhZ2xpYi54bWw6CgkgIHVwZGF0ZSB0byBsYXRlc3QgdmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRvIGxhdGVzdCB2ZXJzaW9uCgoyMDA2LTA0LTI5IDE4OjQ2OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi9nc3R0YWdsaWIuY2M6IFBvc3QgYW4gZXJyb3IgbWVzc2FnZSBvbiB0aGUgYnVzIGluIHRoZSAoZXh0cmVtZWx5IHVubGlrZWx5KSBjYXNlIG9mIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5jYzoKCSAgUG9zdCBhbiBlcnJvciBtZXNzYWdlIG9uIHRoZSBidXMgaW4gdGhlIChleHRyZW1lbHkgdW5saWtlbHkpCgkgIGNhc2Ugb2YgYW4gZXJyb3IuCgoyMDA2LTA0LTI5IDE4OjE4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi86IFNwbGl0IHRoZSBhY3R1YWwgSUQzdjIgdGFnIHJlbmRlcmluZyBjb2RlIGludG8gaXRzIG93biBzdWJjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFnbGliL2dzdGlkM3YybXV4LmNjOgoJICAqIGV4dC90YWdsaWIvZ3N0aWQzdjJtdXguaDoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5jYzoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5oOgoJICBTcGxpdCB0aGUgYWN0dWFsIElEM3YyIHRhZyByZW5kZXJpbmcgY29kZSBpbnRvCgkgIGl0cyBvd24gc3ViY2xhc3MuCgoyMDA2LTA0LTI5IDE2OjE0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IC4uLiBhbmQgZml4IG11bHRpY2hhbm5lbC9XQVZGT1JNQVRFWCBzdXBwb3J0IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyk6CgkgIC4uLiBhbmQgZml4IG11bHRpY2hhbm5lbC9XQVZGT1JNQVRFWCBzdXBwb3J0IGFnYWluLgoKMjAwNi0wNC0yOCAyMzowOToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IEFkZCBwdXNoIChzdHJlYW1pbmcpIG1vZGUgdG8gd2F2cGFyc2UgKGZpeGVzICMzMzc2MjUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2Jhc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFyc2VfY2xhc3NfaW5pdCksIChnc3Rfd2F2cGFyc2VfZGlzcG9zZSksCgkgIChnc3Rfd2F2cGFyc2VfcmVzZXQpLCAoZ3N0X3dhdnBhcnNlX2luaXQpLAoJICAoZ3N0X3dhdnBhcnNlX2NyZWF0ZV9zb3VyY2VwYWQpLCAoZ3N0X3dhdnBhcnNlX3BhcnNlX2FkdGwpLAoJICAoZ3N0X3dhdnBhcnNlX3BhcnNlX2N1ZXMpLCAoZ3N0X3dhdnBhcnNlX3BhcnNlX2ZpbGVfaGVhZGVyKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faW5pdCksIChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9wZWVrX2NodW5rX2luZm8pLCAoZ3N0X3dhdnBhcnNlX3BlZWtfY2h1bmspLAoJICAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwgKGdzdF93YXZwYXJzZV9wYXJzZV9zdHJlYW1faW5pdCksCgkgIChnc3Rfd2F2cGFyc2Vfc2VuZF9ldmVudCksIChnc3Rfd2F2cGFyc2VfYWRkX3NyY19wYWQpLAoJICAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKSwgKGdzdF93YXZwYXJzZV9sb29wKSwKCSAgKGdzdF93YXZwYXJzZV9jaGFpbiksIChnc3Rfd2F2cGFyc2Vfc3JjcGFkX2V2ZW50KSwKCSAgKGdzdF93YXZwYXJzZV9zaW5rX2FjdGl2YXRlKSwgKGdzdF93YXZwYXJzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X3dhdnBhcnNlX2NoYW5nZV9zdGF0ZSksIChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmg6CgkgIEFkZCBwdXNoIChzdHJlYW1pbmcpIG1vZGUgdG8gd2F2cGFyc2UgKGZpeGVzICMzMzc2MjUpCgoyMDA2LTA0LTI4IDIxOjQzOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkM3YybXV4LmM6CgkgIGVsZW1lbnQgcmVuYW1lZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZWxlbWVudCByZW5hbWVkCgoyMDA2LTA0LTI4IDE5OjIyOjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzcmMueG1sOgoJICBhZGQgcGx1Z2luIGRvY3MgZm9yIHhpbWFnZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHBsdWdpbiBkb2NzIGZvciB4aW1hZ2VzcmMKCjIwMDYtMDQtMjggMTk6MTU6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIHhpbWFnZXNyYyBpY2xlcyB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgYWRkIHhpbWFnZXNyYyBpY2xlcyB0ZXN0CgoyMDA2LTA0LTI4IDE4OjU3OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1vdmUgeGltYWdlc3JjIHBsdWctaW4gdG8gZ29vZCBhZnRlciByZXZpZXcuICBGaXhlcyAjMzM2NzU2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzogKGdzdF9jbW1sX2VuY19jbGFzc19pbml0KSwKCSAgKGdzdF9jbW1sX2VuY19wdXNoX2NsaXApOgoJICAqIHN5cy9NYWtlZmlsZS5hbToKCSAgKiBzeXMveGltYWdlL01ha2VmaWxlLmFtOgoJICAqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIE1vdmUgeGltYWdlc3JjIHBsdWctaW4gdG8gZ29vZCBhZnRlciByZXZpZXcuICBGaXhlcyAjMzM2NzU2LgoKMjAwNi0wNC0yOCAxNjo1MTozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5oOgoJICBib3JnaWZ5IG5hbWluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYm9yZ2lmeSBuYW1pbmcKCjIwMDYtMDQtMjggMTY6NDY6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc3lzL3hpbWFnZS9nc3R4aW1hZ2VzcmMuYzoKCSAgZG9jIHR3ZWFrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jIHR3ZWFrcwoKMjAwNi0wNC0yOCAxNjoxNToyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzeXMveGltYWdlL01ha2VmaWxlLmFtOgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICBjbGVhbiB1cCBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgTWFrZWZpbGUuYW0KCjIwMDYtMDQtMjggMTU6MzM6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguaDoKCSAgcGVkYW50aWMgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBlZGFudGljIGNsZWFudXBzCgoyMDA2LTA0LTI4IDE0OjU3OjU3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguKjogRml4IGV2ZW50IGhhbmRsaW5nOiBjYWNoZSBldmVudHMgd2hlbiB0eXBlZmluZGluZyBhbmQgZm9yd2FyZCBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6IChnc3RfaWN5ZGVtdXhfcmVzZXQpLCAgICAgICAgIChnc3RfaWN5ZGVtdXhfaW5pdCksIChnc3RfaWN5ZGVtdXhfc2lua19zZXRjYXBzKSwKCSAgKGdzdF9pY3lkZW11eF9hZGRfc3JjcGFkKSwgKGdzdF9pY3lkZW11eF9wYXJzZV9hbmRfc2VuZF90YWdzKSwKCSAgKGdzdF9pY3lkZW11eF9oYW5kbGVfZXZlbnQpLCAoZ3N0X2ljeWRlbXV4X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfaWN5ZGVtdXhfdHlwZWZpbmRfb3JfZm9yd2FyZCksIChnc3RfaWN5ZGVtdXhfYWRkX21ldGEpLAoJICAoZ3N0X2ljeWRlbXV4X2NoYWluKSwgKGdzdF9pY3lkZW11eF9zZW5kX3RhZ19ldmVudCk6CgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4Lmg6CgkgIEZpeCBldmVudCBoYW5kbGluZzogY2FjaGUgZXZlbnRzIHdoZW4gdHlwZWZpbmRpbmcgYW5kIGZvcndhcmQgbGF0ZXIuCgoyMDA2LTA0LTI4IDE0OjU1OjIwICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOiBSZWdpc3RlciBvc3hhdWRpb3NyYyB0byB0aGUgcGx1Z2luLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0yOCAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSAgKHBsdWdpbl9pbml0KToKCSAgUmVnaXN0ZXIgb3N4YXVkaW9zcmMgdG8gdGhlIHBsdWdpbi4KCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzoKCSAgKGdzdF9vc3hfYXVkaW9fc3JjX29zeGVsZW1lbnRfZG9faW5pdCksCgkgIChnc3Rfb3N4X2F1ZGlvX3NyY19iYXNlX2luaXQpLCAoZ3N0X29zeF9hdWRpb19zcmNfY2xhc3NfaW5pdCksCgkgIChnc3Rfb3N4X2F1ZGlvX3NyY19pbml0KSwgKGdzdF9vc3hfYXVkaW9fc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfb3N4X2F1ZGlvX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X29zeF9hdWRpb19zcmNfY3JlYXRlX3JpbmdidWZmZXIpLCAoZ3N0X29zeF9hdWRpb19zcmNfaW9fcHJvYyksCgkgIChnc3Rfb3N4X2F1ZGlvX3NyY19vc3hlbGVtZW50X2luaXQpOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5oOgoJICBQb3J0IG9mIG9zeGF1ZGlvc3JjIHRvIDAuMTAuCgkgICogc3lzL29zeGF1ZGlvL01ha2VmaWxlLmFtOgoJICBBZGQgb3N4YXVkaW9zcmMKCjIwMDYtMDQtMjggMTI6MDA6MzkgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGNvbW1pdCBDaGFuZ2Vsb2cgZm9yIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IENoYW5nZWxvZyBmb3IgcHJldmlvdXMgY29tbWl0CgoyMDA2LTA0LTI4IDExOjU3OjM5ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeHJpbmdidWZmZXIuaDoKCSAgRm9yZ290IHRvIGNvbW1pdCwgcXVpY2sgY29tbWl0IGJlNCBhcHBsZSBkaWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdG8gY29tbWl0LCBxdWljayBjb21taXQgYmU0IGFwcGxlIGRpZXMKCjIwMDYtMDQtMjggMTE6Mzc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogUmVjb2duaXNlIGFuZCBza2lwIGFueSBieXRlIG9yZGVyIG1hcmtlciAoQk9NKSBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGhhc191dGYxNl9ib20pLAoJICAocGFyc2Vfc3BsaXRfc3RyaW5ncyk6CgkgIFJlY29nbmlzZSBhbmQgc2tpcCBhbnkgYnl0ZSBvcmRlciBtYXJrZXIgKEJPTSkgaW4KCSAgVVRGLTE2IHN0cmluZ3MuCgoyMDA2LTA0LTI3IDE2OjA1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIGRvY3MgZm9yIGJvdGggYXZpZGVtdXggYW5kIGF2aW11eC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuaGllcmFyY2h5OgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJICBBZGQgZG9jcyBmb3IgYm90aCBhdmlkZW11eCBhbmQgYXZpbXV4LgoKMjAwNi0wNC0yNyAxNDo1MTowNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9hdmkvOiBQb3J0IEFWSSBtdXhlciB0byBHU3RyZWFtZXItMC4xMCAoIzMzMjAzMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyAgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGdzdC9hdmkvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F2aS9nc3RhdmkuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOiAoZ3N0X2F2aV9tdXhfZ2V0X3R5cGUpLAoJICAoZ3N0X2F2aV9tdXhfYmFzZV9pbml0KSwgKGdzdF9hdmlfbXV4X2ZpbmFsaXplKSwKCSAgKGdzdF9hdmlfbXV4X2NsYXNzX2luaXQpLCAoZ3N0X2F2aV9tdXhfaW5pdCksCgkgIChnc3RfYXZpX211eF92aWRzaW5rX3NldF9jYXBzKSwgKGdzdF9hdmlfbXV4X2F1ZHNpbmtfc2V0X2NhcHMpLAoJICAoZ3N0X2F2aV9tdXhfcGFkX2xpbmspLCAoZ3N0X2F2aV9tdXhfcGFkX3VubGluayksCgkgIChnc3RfYXZpX211eF9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X2F2aV9tdXhfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X2F2aV9tdXhfd3JpdGVfdGFnKSwgKGdzdF9hdmlfbXV4X3JpZmZfZ2V0X2F2aV9oZWFkZXIpLAoJICAoZ3N0X2F2aV9tdXhfcmlmZl9nZXRfYXZpeF9oZWFkZXIpLAoJICAoZ3N0X2F2aV9tdXhfcmlmZl9nZXRfdmlkZW9faGVhZGVyKSwKCSAgKGdzdF9hdmlfbXV4X3JpZmZfZ2V0X2F1ZGlvX2hlYWRlciksIChnc3RfYXZpX211eF9hZGRfaW5kZXgpLAoJICAoZ3N0X2F2aV9tdXhfd3JpdGVfaW5kZXgpLCAoZ3N0X2F2aV9tdXhfYmlnZmlsZSksCgkgIChnc3RfYXZpX211eF9zdGFydF9maWxlKSwgKGdzdF9hdmlfbXV4X3N0b3BfZmlsZSksCgkgIChnc3RfYXZpX211eF9yZXN0YXJ0X2ZpbGUpLCAoZ3N0X2F2aV9tdXhfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9hdmlfbXV4X2ZpbGxfcXVldWUpLCAoZ3N0X2F2aV9tdXhfc2VuZF9wYWRfZGF0YSksCgkgIChnc3RfYXZpX211eF9zdHJpcF9idWZmZXIpLCAoZ3N0X2F2aV9tdXhfZG9fYXVkaW9fYnVmZmVyKSwKCSAgKGdzdF9hdmlfbXV4X2RvX3ZpZGVvX2J1ZmZlciksIChnc3RfYXZpX211eF9kb19vbmVfYnVmZmVyKSwKCSAgKGdzdF9hdmlfbXV4X2xvb3ApLCAoZ3N0X2F2aV9tdXhfY29sbGVjdF9wYWRzKSwKCSAgKGdzdF9hdmlfbXV4X2dldF9wcm9wZXJ0eSksIChnc3RfYXZpX211eF9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2F2aV9tdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5oOgoJICBQb3J0IEFWSSBtdXhlciB0byBHU3RyZWFtZXItMC4xMCAoIzMzMjAzMSkuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvYXZpbXV4LmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgQVZJIG11eGVyLgoKMjAwNi0wNC0yNiAyMToyOTo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IHJldmVydGVkIHBhdGNoICMzMzc2MjUgZm9yIHRoZSBwcmljZSBvZiAxIGhvdXIgc2xlZXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfYmFzZV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9jbGFzc19pbml0KSwgKGdzdF93YXZwYXJzZV9yZXNldCksCgkgIChnc3Rfd2F2cGFyc2VfaW5pdCksIChnc3Rfd2F2cGFyc2VfY3JlYXRlX3NvdXJjZXBhZCksCgkgIChnc3Rfd2F2cGFyc2VfcGFyc2VfZmlsZV9oZWFkZXIpLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwKCSAgKGdzdF93YXZwYXJzZV9zZW5kX2V2ZW50KSwgKGdzdF93YXZwYXJzZV9hZGRfc3JjX3BhZCksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLCAoZ3N0X3dhdnBhcnNlX2xvb3ApLAoJICAoZ3N0X3dhdnBhcnNlX3NyY3BhZF9ldmVudCksIChnc3Rfd2F2cGFyc2Vfc2lua19hY3RpdmF0ZSksCgkgIChnc3Rfd2F2cGFyc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwgKGdzdF93YXZwYXJzZV9jaGFuZ2Vfc3RhdGUpLAoJICAocGx1Z2luX2luaXQpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICByZXZlcnRlZCBwYXRjaCAjMzM3NjI1IGZvciB0aGUgcHJpY2Ugb2YgMSBob3VyIHNsZWVwCgoyMDA2LTA0LTI2IDIwOjExOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuKjogY29ycmVjdCBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHB1c2ggbW9kZSAoZnJvbSBteSBsYXN0IGNvbW1pdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfYmFzZV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9jbGFzc19pbml0KSwgKGdzdF93YXZwYXJzZV9yZXNldCksCgkgIChnc3Rfd2F2cGFyc2VfaW5pdCksIChnc3Rfd2F2cGFyc2VfY3JlYXRlX3NvdXJjZXBhZCksCgkgIChnc3Rfd2F2cGFyc2VfcGFyc2VfYWR0bCksIChnc3Rfd2F2cGFyc2VfcGFyc2VfY3VlcyksCgkgIChnc3Rfd2F2cGFyc2VfcGFyc2VfZmlsZV9oZWFkZXIpLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9oZWFkZXJzKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSksIChnc3Rfd2F2cGFyc2VfbG9vcCksCgkgIChnc3Rfd2F2cGFyc2VfY2hhaW4pLCAocGx1Z2luX2luaXQpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICBjb3JyZWN0IHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgcHVzaCBtb2RlCgkgIChmcm9tIG15IGxhc3QgY29tbWl0KQoKMjAwNi0wNC0yNiAxNzozNzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9lc2QvZXNkc2luay5jOiBGaXggY29tcGlsZSBwcm9ibGVtIGJ5IGRlZmluaW5nIEVTRF9NQVhfV1JJVEVfU0laRSBpZiBpdCBpcyBub3QgaW4gZXNkLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6CgkgIEZpeCBjb21waWxlIHByb2JsZW0gYnkgZGVmaW5pbmcgRVNEX01BWF9XUklURV9TSVpFIGlmCgkgIGl0IGlzIG5vdCBpbiBlc2QuaAoKMjAwNi0wNC0yNiAxNzowODoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuKjogUmV3cml0ZSBhdXBhcnNlIHRvIHN1Y2sgYSBsaXR0bGUgYml0IGxlc3M6IG1ha2Ugc291cmNlIHBhZCBkeW5hbWljLCBzbyBkZWNvZGViaW4vcGxheWJpbiB3by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfYmFzZV9pbml0KSwKCSAgKGdzdF9hdV9wYXJzZV9jbGFzc19pbml0KSwgKGdzdF9hdV9wYXJzZV9pbml0KSwKCSAgKGdzdF9hdV9wYXJzZV9yZXNldCksIChnc3RfYXVfcGFyc2VfYWRkX3NyY3BhZCksCgkgIChnc3RfYXVfcGFyc2VfcmVtb3ZlX3NyY3BhZCksIChnc3RfYXVfcGFyc2VfcGFyc2VfaGVhZGVyKSwKCSAgKGdzdF9hdV9wYXJzZV9jaGFpbiksIChnc3RfYXVfcGFyc2Vfc3JjX2NvbnZlcnQpLAoJICAoZ3N0X2F1X3BhcnNlX3NyY19xdWVyeSksIChnc3RfYXVfcGFyc2VfaGFuZGxlX3NlZWspLAoJICAoZ3N0X2F1X3BhcnNlX3NpbmtfZXZlbnQpLCAoZ3N0X2F1X3BhcnNlX3NyY19ldmVudCksCgkgIChnc3RfYXVfcGFyc2VfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkgIFJld3JpdGUgYXVwYXJzZSB0byBzdWNrIGEgbGl0dGxlIGJpdCBsZXNzOiBtYWtlIHNvdXJjZSBwYWQKCSAgZHluYW1pYywgc28gZGVjb2RlYmluL3BsYXliaW4gd29yayB3aXRoIG5vbi1yYXcgZm9ybWF0cwoJICBsaWtlIGFsYXcvbXVsYXc7IGFkZCBxdWVyeSBmdW5jdGlvbiBmb3IgZHVyYXRpb24vcG9zaXRpb24KCSAgcXVlcmllczsgY2hlY2sgd2hldGhlciB3ZSBoYXZlIGVub3VnaCBkYXRhIGJlZm9yZSBhdHRlbXB0aW5nCgkgIHRvIHBhcnNlIHRoZSBoZWFkZXIgKGluc3RlYWQgb2YgY3Jhc2hpbmcgd2hlbiB0aGF0IGlzIG5vdCB0aGUKCSAgY2FzZSk7IHdvcmsgYXJvdW5kIGF1ZGlvY29udmVydCBzdWNraW5nIGJ5IHN3YXBwaW5nIGVuZGlhbm5lc3MKCSAgdG8gdGhlIG5hdGl2ZSBlbmRpYW5uZXNzIG91cnNlbHZlcyBmb3IgZmxvYXQgZm9ybWF0czsgc2VuZAoJICBpbml0aWFsIG5ld3NlZ21lbnQgZXZlbnQuIEZpeGVzICMxNjE3MTIuCgoyMDA2LTA0LTI2IDE2OjI5OjM4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgc3lzL29zeGF1ZGlvLzogUG9ydCBvZiBvc3hhdWRpb3NpbmsgdG8gMC4xMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0yNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHN5cy9vc3hhdWRpby9NYWtlZmlsZS5hbToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9lbGVtZW50LmM6CgkgIChnc3Rfb3N4X2F1ZGlvX2VsZW1lbnRfZ2V0X3R5cGUpLAoJICAoZ3N0X29zeF9hdWRpb19lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb2VsZW1lbnQuaDoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6CgkgIChnc3Rfb3N4X2F1ZGlvX3Npbmtfb3N4ZWxlbWVudF9kb19pbml0KSwKCSAgKGdzdF9vc3hfYXVkaW9fc2lua19iYXNlX2luaXQpLCAoZ3N0X29zeF9hdWRpb19zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X29zeF9hdWRpb19zaW5rX2luaXQpLCAoZ3N0X29zeF9hdWRpb19zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfb3N4X2F1ZGlvX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9vc3hfYXVkaW9fc2lua19nZXRjYXBzKSwKCSAgKGdzdF9vc3hfYXVkaW9fc2lua19jcmVhdGVfcmluZ2J1ZmZlciksCgkgIChnc3Rfb3N4X2F1ZGlvX3NpbmtfaW9fcHJvYyksIChnc3Rfb3N4X2F1ZGlvX3Npbmtfb3N4ZWxlbWVudF9pbml0KSwKCSAgKHBsdWdpbl9pbml0KToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmg6CgkgIFBvcnQgb2Ygb3N4YXVkaW9zaW5rIHRvIDAuMTAKCjIwMDYtMDQtMjYgMDg6NTU6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvZXNkL2VzZHNpbmsuYzogQWx3YXlzIHdyaXRlIEVTRF9CVUZfU0laRSBieXRlcyBhbmQgdXNlIEVTRF9NQVhfV1JJVEVfU0laRSBhcyB0aGUgc2l6ZSBvZiB0aGUgcmluZ2J1ZmZlci4gVGhpcyBzaG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua19wcmVwYXJlKSwgKGdzdF9lc2RzaW5rX2RlbGF5KToKCSAgQWx3YXlzIHdyaXRlIEVTRF9CVUZfU0laRSBieXRlcyBhbmQgdXNlIEVTRF9NQVhfV1JJVEVfU0laRSBhcwoJICB0aGUgc2l6ZSBvZiB0aGUgcmluZ2J1ZmZlci4gVGhpcyBzaG91bGQgZml4IGhhbmdzIHdpdGggb2xkZXIKCSAgZXNkIHNvdW5kIHNlcnZlcnMuCgoyMDA2LTA0LTI1IDIxOjU2OjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEZWZpbmUgR3N0RWxlbWVudERldGFpbHMgYXMgY29uc3QgYW5kIGFsc28gc3RhdGljICh3aGVuIGRlZmluZWQgYXMgZ2xvYmFsKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JkZWMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JlbmMuYzoKCSAgKiBleHQvYW1yd2IvZ3N0YW1yd2JwYXJzZS5jOgoJICAqIGV4dC9hcnRzL2dzdF9hcnRzLmM6CgkgICogZXh0L2FydHNkL2dzdGFydHNkc2luay5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZwYXJzZS5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzaW5rLmM6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNyYy5jOgoJICAqIGV4dC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKiBleHQvYnoyL2dzdGJ6MmRlYy5jOgoJICAqIGV4dC9iejIvZ3N0YnoyZW5jLmM6CgkgICogZXh0L2NkYXVkaW8vZ3N0Y2RhdWRpby5jOgoJICAqIGV4dC9kaXJlY3RmYi9kZmJ2aWRlb3NpbmsuYzoKCSAgKiBleHQvZGl2eC9nc3RkaXZ4ZGVjLmM6CgkgICogZXh0L2RpdngvZ3N0ZGl2eGVuYy5jOgoJICAqIGV4dC9kdHMvZ3N0ZHRzZGVjLmM6IChnc3RfZHRzZGVjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2ZhYWMvZ3N0ZmFhYy5jOiAoZ3N0X2ZhYWNfYmFzZV9pbml0KToKCSAgKiBleHQvZmFhZC9nc3RmYWFkLmM6CgkgICogZXh0L2dzbS9nc3Rnc21kZWMuYzoKCSAgKiBleHQvZ3NtL2dzdGdzbWVuYy5jOgoJICAqIGV4dC9oZXJtZXMvZ3N0aGVybWVzY29sb3JzcGFjZS5jOgoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2ZpbGUuYzoKCSAgKiBleHQvbGNzL2dzdGNvbG9yc3BhY2UuYzoKCSAgKiBleHQvbGliZmFtZS9nc3RsaWJmYW1lLmM6CgkgICogZXh0L2xpYm1tcy9nc3RtbXMuYzogKGdzdF9tbXNfYmFzZV9pbml0KToKCSAgKiBleHQvbXVzZXBhY2svZ3N0bXVzZXBhY2tkZWMuYzogKGdzdF9tdXNlcGFja2RlY19iYXNlX2luaXQpOgoJICAqIGV4dC9tdXNpY2JyYWluei9nc3R0cm0uYzogKGdzdF9tdXNpY2JyYWluel9iYXNlX2luaXQpOgoJICAqIGV4dC9uYXMvbmFzc2luay5jOiAoZ3N0X25hc3NpbmtfYmFzZV9pbml0KToKCSAgKiBleHQvbmVvbi9nc3RuZW9uaHR0cHNyYy5jOgoJICAqIGV4dC9zZGwvc2RsYXVkaW9zaW5rLmM6CgkgICogZXh0L3NkbC9zZGx2aWRlb3NpbmsuYzoKCSAgKiBleHQvc2hvdXQvZ3N0c2hvdXQuYzoKCSAgKiBleHQvc25hcHNob3QvZ3N0c25hcHNob3QuYzoKCSAgKiBleHQvc25kZmlsZS9nc3RzZi5jOgoJICAqIGV4dC9zd2ZkZWMvZ3N0c3dmZGVjLmM6CgkgICogZXh0L3Rhcmtpbi9nc3R0YXJraW5kZWMuYzoKCSAgKiBleHQvdGFya2luL2dzdHRhcmtpbmVuYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2Jhc2VfaW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9iYXNlX2luaXQpOgoJICAqIGV4dC94dmlkL2dzdHh2aWRkZWMuYzoKCSAgKiBleHQveHZpZC9nc3R4dmlkZW5jLmM6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhcGFyc2UuYzogKGdzdF9jZHhhX3BhcnNlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2NkeGFwYXJzZS9nc3RjZHhhc3RyaXAuYzogKGdzdF9jZHhhc3RyaXBfYmFzZV9pbml0KToKCSAgKiBnc3QvY2hhcnQvZ3N0Y2hhcnQuYzoKCSAgKiBnc3QvY29sb3JzcGFjZS9nc3Rjb2xvcnNwYWNlLmM6CgkgICogZ3N0L2RlaW50ZXJsYWNlL2dzdGRlaW50ZXJsYWNlLmM6CgkgICogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzogKGdzdF9paXJfZXF1YWxpemVyX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RicHdzaW5jLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RpaXIuYzoKCSAgKiBnc3QvZmlsdGVyL2dzdGxwd3NpbmMuYzoKCSAgKiBnc3QvZnJlZXplL2dzdGZyZWV6ZS5jOgoJICAqIGdzdC9nYW1lcy9nc3RwdXp6bGUuYzogKGdzdF9wdXp6bGVfYmFzZV9pbml0KToKCSAgKiBnc3QvbGlicmZiL2dzdHJmYnNyYy5jOgoJICAqIGdzdC9taXhtYXRyaXgvbWl4bWF0cml4LmM6CgkgICogZ3N0L21wZWcxc3lzL2dzdG1wZWcxc3lzdGVtZW5jb2RlLmM6CgkgICogZ3N0L21wZWcxdmlkZW9wYXJzZS9nc3RtcDF2aWRlb3BhcnNlLmM6CgkgICogZ3N0L21wZWcyc3ViL2dzdG1wZWcyc3VidC5jOgoJICAqIGdzdC9tcGVnYXVkaW9wYXJzZS9nc3RtcGVnYXVkaW9wYXJzZS5jOgoJICAqIGdzdC9tdWx0aWZpbGVzaW5rL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgKiBnc3Qvb3ZlcmxheS9nc3RvdmVybGF5LmM6CgkgICogZ3N0L3Bhc3N0aHJvdWdoL2dzdHBhc3N0aHJvdWdoLmM6CgkgICogZ3N0L3BsYXlvbmRlbWFuZC9nc3RwbGF5b25kZW1hbmQuYzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgICogZ3N0L3J0anBlZy9nc3RydGpwZWdkZWMuYzoKCSAgKiBnc3QvcnRqcGVnL2dzdHJ0anBlZ2VuYy5jOgoJICAqIGdzdC9zbW9vdGgvZ3N0c21vb3RoLmM6CgkgICogZ3N0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5jOgoJICAqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJICAqIGdzdC9zcGVlZC9nc3RzcGVlZC5jOgoJICAqIGdzdC9zdGVyZW8vZ3N0c3RlcmVvLmM6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guYzoKCSAgKiBnc3QvdHRhL2dzdHR0YWRlYy5jOiAoZ3N0X3R0YV9kZWNfYmFzZV9pbml0KToKCSAgKiBnc3QvdHRhL2dzdHR0YXBhcnNlLmM6IChnc3RfdHRhX3BhcnNlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L3ZiaWRlYy9nc3R2YmlkZWMuYzoKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJICAqIGdzdC92aWRlb2Ryb3AvZ3N0dmlkZW9kcm9wLmM6CgkgICogZ3N0L3ZpcnR1YWxkdWIvZ3N0eHNoYXJwZW4uYzoKCSAgKiBnc3QveGluZ2hlYWRlci9nc3R4aW5nbXV4LmM6IChnc3RfeGluZ19tdXhfYmFzZV9pbml0KToKCSAgKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOgoJICAqIHN5cy9jZHJvbS9nc3RjZHBsYXllci5jOgoJICAqIHN5cy9kaXJlY3RkcmF3L2dzdGRpcmVjdGRyYXdzaW5rLmM6CgkgICogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJICAqIHN5cy9nbHNpbmsvZ2xpbWFnZXNpbmsuYzoKCSAgKiBzeXMvcWNhbS9nc3RxY2Ftc3JjLmM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICAqIHN5cy92Y2QvdmNkc3JjLmM6IChnc3RfdmNkc3JjX2Jhc2VfaW5pdCk6CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuYzoKCSAgRGVmaW5lIEdzdEVsZW1lbnREZXRhaWxzIGFzIGNvbnN0IGFuZCBhbHNvIHN0YXRpYyAod2hlbiBkZWZpbmVkIGFzCgkgIGdsb2JhbCkKCjIwMDYtMDQtMjUgMjE6Mzk6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERlZmluZSBHc3RFbGVtZW50RGV0YWlscyBhcyBjb25zdCBhbmQgYWxzbyBzdGF0aWMgKHdoZW4gZGVmaW5lZCBhcyBnbG9iYWwpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJICAqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmM6CgkgICogZXh0L2R2L2dzdGR2ZGVjLmM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSAgKiBleHQvZXNkL2VzZG1vbi5jOgoJICAqIGV4dC9lc2QvZXNkc2luay5jOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkgICogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zaW5rLmM6IChnc3RfZ2NvbmZfYXVkaW9fc2lua19iYXNlX2luaXQpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmM6IChnc3RfZ2NvbmZfYXVkaW9fc3JjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6IChnc3RfZ2NvbmZfdmlkZW9fc2lua19iYXNlX2luaXQpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6IChnc3RfZ2NvbmZfdmlkZW9fc3JjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc2luay5jOiAoZ3N0X2hhbF9hdWRpb19zaW5rX2Jhc2VfaW5pdCk6CgkgICogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5jOiAoZ3N0X2hhbF9hdWRpb19zcmNfYmFzZV9pbml0KToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZGVjLmM6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzoKCSAgKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOgoJICAqIGV4dC9saWJtbmcvZ3N0bW5nZGVjLmM6CgkgICogZXh0L2xpYm1uZy9nc3RtbmdlbmMuYzoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgICogZXh0L21pa21vZC9nc3RtaWttb2QuYzoKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSAgKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOiAoZ3N0X3Nob3V0MnNlbmRfaW5pdCk6CgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuaDoKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzoKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOgoJICAqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19iYXNlX2luaXQpOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfYmFzZV9pbml0KToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2Jhc2VfaW5pdCk6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmltdXhfYmFzZV9pbml0KToKCSAgKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJICAqIGdzdC9kZWJ1Zy9icmVha215ZGF0YS5jOgoJICAqIGdzdC9kZWJ1Zy9lZmVuY2UuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2c2Vlay5jOgoJICAqIGdzdC9kZWJ1Zy9uZWdvdGlhdGlvbi5jOgoJICAqIGdzdC9kZWJ1Zy9wcm9ncmVzc3JlcG9ydC5jOgoJICAqIGdzdC9kZWJ1Zy90ZXN0cGx1Z2luLmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RkaWNlLmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0ZWRnZS5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0c2hhZ2FkZWxpYy5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSAgKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuYzoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzogKGdzdF9hbGF3ZGVjX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOiAoZ3N0X2FsYXdlbmNfYmFzZV9pbml0KToKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOiAoZ3N0X211bGF3ZGVjX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzogKGdzdF9tdWxhd2VuY19iYXNlX2luaXQpOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2Jhc2VfaW5pdCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9iYXNlX2luaXQpOgoJICAqIGdzdC9tZWRpYW4vZ3N0bWVkaWFuLmM6CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSAgKiBnc3Qvb2xkY29yZS9nc3RhZ2dyZWdhdG9yLmM6CgkgICogZ3N0L29sZGNvcmUvZ3N0ZmRzaW5rLmM6CgkgICogZ3N0L29sZGNvcmUvZ3N0bWQ1c2luay5jOgoJICAqIGdzdC9vbGRjb3JlL2dzdG11bHRpZmlsZXNyYy5jOgoJICAqIGdzdC9vbGRjb3JlL2dzdHBpcGVmaWx0ZXIuYzoKCSAgKiBnc3Qvb2xkY29yZS9nc3RzaGFwZXIuYzoKCSAgKiBnc3Qvb2xkY29yZS9nc3RzdGF0aXN0aWNzLmM6CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzoKCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0Z2FtbWEuYzogKGdzdF9nYW1tYV9iYXNlX2luaXQpOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmM6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvdGVtcGxhdGUuYzoKCSAgKGdzdF92aWRlb3RlbXBsYXRlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2Jhc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFyc2VfY2xhc3NfaW5pdCksIChnc3Rfd2F2cGFyc2VfZGlzcG9zZSksCgkgIChnc3Rfd2F2cGFyc2VfcmVzZXQpLCAoZ3N0X3dhdnBhcnNlX2luaXQpLAoJICAoZ3N0X3dhdnBhcnNlX3BlcmZvcm1fc2VlayksIChnc3Rfd2F2cGFyc2VfcGVla19jaHVua19pbmZvKSwKCSAgKGdzdF93YXZwYXJzZV9wZWVrX2NodW5rKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksCgkgIChnc3Rfd2F2cGFyc2VfcGFyc2Vfc3RyZWFtX2luaXQpLCAoZ3N0X3dhdnBhcnNlX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3dhdnBhcnNlX2FkZF9zcmNfcGFkKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSksCgkgIChnc3Rfd2F2cGFyc2VfY2hhaW4pLCAoZ3N0X3dhdnBhcnNlX3NyY3BhZF9ldmVudCksCgkgIChnc3Rfd2F2cGFyc2Vfc2lua19hY3RpdmF0ZSksIChnc3Rfd2F2cGFyc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF93YXZwYXJzZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICAqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6CgkgICogc3lzL29zcy9nc3Rvc3NzaW5rLmM6CgkgICogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9lbGVtZW50LmM6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NyYy5jOgoJICAqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOgoJICBEZWZpbmUgR3N0RWxlbWVudERldGFpbHMgYXMgY29uc3QgYW5kIGFsc28gc3RhdGljICh3aGVuIGRlZmluZWQgYXMKCSAgZ2xvYmFsKQoKMjAwNi0wNC0yNSAxNzo1NzoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogU291cmNlIHBhZCBoYXMgZml4ZWQgY2Fwcy4gSWYgd2UgZG9uJ3Qgc2V0IHRoaXMsIGJhZCB0aGluZ3MgaGFwcGVuIHdoZW4gdGhlIHdpbmRvdyBpcyByZXNpemVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6IChnc3RfanBlZ19kZWNfY2hhaW4pOgoJICBTb3VyY2UgcGFkIGhhcyBmaXhlZCBjYXBzLiBJZiB3ZSBkb24ndCBzZXQgdGhpcywgYmFkCgkgIHRoaW5ncyBoYXBwZW4gd2hlbiB0aGUgd2luZG93IGlzIHJlc2l6ZWQuCgoyMDA2LTA0LTI1IDE2OjM4OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thLzogSGFuZGxlIGNhc2Ugd2hlcmUgdGhlIFRyYWNrVHlwZSBlYm1sIGNodW5rIGRvZXMgbm90IGNvbWUgYmVmb3JlIHRoZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfYWRkX3N0cmVhbSksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NyY19ldmVudCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jOgoJICAoZ3N0X21hdHJvc2thX3RyYWNrX2luaXRfdmlkZW9fY29udGV4dCksCgkgIChnc3RfbWF0cm9za2FfdHJhY2tfaW5pdF9hdWRpb19jb250ZXh0KSwKCSAgKGdzdF9tYXRyb3NrYV90cmFja19pbml0X3N1YnRpdGxlX2NvbnRleHQpLAoJICAoZ3N0X21hdHJvc2thX3RyYWNrX2luaXRfY29tcGxleF9jb250ZXh0KToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgIEhhbmRsZSBjYXNlIHdoZXJlIHRoZSBUcmFja1R5cGUgZWJtbCBjaHVuayBkb2VzIG5vdCBjb21lIGJlZm9yZSB0aGUKCSAgVHJhY2tJbmZvQXVkaW8gb3IgVHJhY2tJbmZvVmlkZW8gZWJtbCBjaHVuayAoIzMzOTQ0NikuIElnbm9yZSBRb1MKCSAgZXZlbnRzLgoKMjAwNi0wNC0yNSAxNjowOTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvOiBJdCdzIGNvZGVjX2RhdGEsIG5vdCBjb2RlY19pbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzogKGdzdF9ydHBfbXA0Z19wYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IChnc3RfcnRwX21wNHZfcGF5X3NldGNhcHMpOgoJICBJdCdzIGNvZGVjX2RhdGEsIG5vdCBjb2RlY19pbmZvLgoKMjAwNi0wNC0yNSAxMTo0NTowMCArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBIYW5kbGUgY29kZWNfZGF0YSBmb3IgVmZXIGNvbXBhdGliaWxpdHkgY29kZWMgSURzICgjMzM5NDUxKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF92aWRlb19jYXBzKToKCSAgSGFuZGxlIGNvZGVjX2RhdGEgZm9yIFZmVyBjb21wYXRpYmlsaXR5IGNvZGVjIElEcyAoIzMzOTQ1MSkKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKToKCSAgU2FtZSBoZXJlLCBoYW5kbGUgY29kZWNfZGF0YSBhbmQgYWRkIGFkZGl0aW9uYWwgY2FwcyB3ZSBjYW4gaGFuZGxlCgkgIG5vdyB0byB0aGUgcGFkIHRlbXBsYXRlIChodWZmeXV2LCBkdiBhbmQgaDI2MyB2aWRlbykgKCMzMzk0NTEpCgoyMDA2LTA0LTI1IDExOjA5OjI0ICswMDAwICBKb3NlZiBabG9tZWsgPGpvc2VmLnpsb21la0BpdG9uaXMudHY+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEZpeCB0aW1lc3RhbXBpbmcgb2YgQi1mcmFtZXMsIHVzZSBzaWduZWQgaW50ZWdlcnMsIGRvIHNvbWUgcm91bmRpbmcgKCMzMzk2NzgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEpvc2VmIFpsb21layAgPGpvc2VmIGRvdCB6bG9tZWsgYXQgaXRvbmlzIGRvdCB0dj4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X2NyZWF0ZV9idWZmZXJfaGVhZGVyKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfd3JpdGVfZGF0YSk6CgkgIEZpeCB0aW1lc3RhbXBpbmcgb2YgQi1mcmFtZXMsIHVzZSBzaWduZWQgaW50ZWdlcnMsIGRvCgkgIHNvbWUgcm91bmRpbmcgKCMzMzk2NzgpLgoKMjAwNi0wNC0yNCAxODozMDo1NSArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvYW5ub2RleC9nc3RjbW1scGFyc2VyLmM6CgkgIGp1c3QgbWFrZSBpdCBjb21waWxlIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGp1c3QgbWFrZSBpdCBjb21waWxlIHdpdGggLS1kaXNhYmxlLWdzdC1kZWJ1Zy4KCjIwMDYtMDQtMjMgMTU6NTU6MzAgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBGaXggYSBiYWQgY29udmVyc2lvbiB1c2luZyBnc3RfZ3VpbnQ2NF90b19nZG91YmxlLiBmYWJzICgoZ2RvdWJsZSkgZGVtdXgtPmluZGV4W2VudHJ5XS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYWRlbXV4X2RvX2luZGV4X3NlZWspOgoJICBGaXggYSBiYWQgY29udmVyc2lvbiB1c2luZyBnc3RfZ3VpbnQ2NF90b19nZG91YmxlLgoJICBmYWJzICgoZ2RvdWJsZSkgZGVtdXgtPmluZGV4W2VudHJ5XS50aW1lIC0gKGdkb3VibGUpIHNlZWtfcG9zKSBjYW4gbm90IGJlCgkgIHJlcGxhY2VkIGJ5IGZhYnMgKGdzdF9ndWludDY0X3RvX2dkb3VibGUgKGRlbXV4LT5pbmRleFtlbnRyeV0udGltZSAtIHNlZWtfcG9zKSkgYXMgdGhlCgkgIGRpZmZlcmVuY2UgY291bGQgYmUgbmVnYXRpdmUuIGZhYnMgKGdzdF9ndWludDY0X3RvX2dkb3VibGUgKGRlbXV4LT5pbmRleFtlbnRyeV0udGltZSkgLQoJICBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIChzZWVrX3BvcykpIGlzIHRoZSBnb29kIHNvbHV0aW9uLiBUaGFua3MgdG8gVGltIHdobyBoYXMgc2VlbiBteQoJICBtaXN0YWtlLgoKMjAwNi0wNC0yMiAxNTozMjo0OCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IFVzZSBnc3RfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYWRlbXV4X2RvX2luZGV4X3NlZWspOgoJICBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbnMKCSAgKiB3aW4zMi92czYvZ3N0X3BsdWdpbnNfZ29vZC5kc3c6CgkgICogd2luMzIvdnM2L2xpYmdzdGljeWRlbXV4LmRzcDoKCSAgQWRkIGEgcHJvamVjdCBmaWxlIGZvciBpY3lkZW11eAoKMjAwNi0wNC0yMSAxODowNzoxMCArMDAwMCAgRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8uZ2VAdGlzY2FsaS5pdD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogV2hlbiBzcGxpdHRpbmcgYXVkaW8gY2h1bmtzLCB0aGUgYmxvY2sgYWxpZ25tZW50IGlzIG5vdCB0YWtlbiBpbiBjb25zaWRlcmF0aW9uLCBzbyB0aGUgc21hbGxlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvIGRvdCBnZSBhdCB0aXNjYWxpIGRvdCBpdD4KCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX2luZGV4KSwgKGdzdF9hdmlfZGVtdXhfbWFzc2FnZV9pbmRleCk6CgkgIFdoZW4gc3BsaXR0aW5nIGF1ZGlvIGNodW5rcywgdGhlIGJsb2NrIGFsaWdubWVudCBpcyBub3QgdGFrZW4gaW4KCSAgY29uc2lkZXJhdGlvbiwgc28gdGhlIHNtYWxsZXIgY2h1bmtzIGNvdWxkIGJlIG9mIHNpemUgd2hpY2ggaXMKCSAgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGJsb2NrIGFsaWdubWVudC4gRml4ZXMgIzMzNjkwNAoKMjAwNi0wNC0yMSAxNzo1OTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOiBVc2Ugc2NhbGUgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOiAoZ3N0X2R2MTM5NHNyY19jb252ZXJ0KToKCSAgVXNlIHNjYWxlIGZ1bmN0aW9ucwoKMjAwNi0wNC0yMSAxNzoyNzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9kdi9nc3Rkdi5jOiBGaXggYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3Rkdi5jOiAocGx1Z2luX2luaXQpOgoJICBGaXggYnVpbGQuCgoyMDA2LTA0LTIxIDE3OjE1OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2RlYnVnL3Byb2dyZXNzcmVwb3J0LmM6IEFkZCAnZm9ybWF0JyBwcm9wZXJ0eSB0byBmb3JjZSBxdWVyeWluZyB0byBhIHBhcnRpY3VsYXIgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuYzogKGdzdF9wcm9ncmVzc19yZXBvcnRfZmluYWxpemUpLAoJICAoZ3N0X3Byb2dyZXNzX3JlcG9ydF9jbGFzc19pbml0KSwgKGdzdF9wcm9ncmVzc19yZXBvcnRfaW5pdCksCgkgIChnc3RfcHJvZ3Jlc3NfcmVwb3J0X2RvX3F1ZXJ5KSwgKGdzdF9wcm9ncmVzc19yZXBvcnRfcmVwb3J0KSwKCSAgKGdzdF9wcm9ncmVzc19yZXBvcnRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wcm9ncmVzc19yZXBvcnRfZ2V0X3Byb3BlcnR5KToKCSAgQWRkICdmb3JtYXQnIHByb3BlcnR5IHRvIGZvcmNlIHF1ZXJ5aW5nIHRvIGEgcGFydGljdWxhciBmb3JtYXQuCgoyMDA2LTA0LTIxIDE1OjUwOjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBleHQvZHYvZ3N0ZHYuYyAocGx1Z2luX2luaXQpOiBsaWJkdiBpcyBhIG1hcmdpbmFsIGRlY29kZXIsIGF0IGJlc3QsIG9uIGJpZyBlbmRpYW4gc3lzdGVtcy4gRHJvcCBpdHMgcmFuayBpbiB0aGF0IGNhc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDQtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZXh0L2R2L2dzdGR2LmMgKHBsdWdpbl9pbml0KTogbGliZHYgaXMgYSBtYXJnaW5hbCBkZWNvZGVyLCBhdAoJICBiZXN0LCBvbiBiaWcgZW5kaWFuIHN5c3RlbXMuIERyb3AgaXRzIHJhbmsgaW4gdGhhdCBjYXNlLiBPVE9IIG9uCgkgIHg4NiBpdCdzIHF1aXRlIGZpbmUuIFNlZSBjaGFuZ2VzIGZyb20gdG9kYXkgaW4gZ3N0LWZmbXBlZyBhcyB3ZWxsLgoKMjAwNi0wNC0yMSAwOToyNzoxMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgQWRkIGljeWRlbXV4LCBhbmQgdGVzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvaWN5ZGVtdXgvTWFrZWZpbGUuYW06CgkgICogZ3N0L2ljeWRlbXV4L2dzdGljeWRlbXV4LmM6IChnc3RfaWN5ZGVtdXhfZ2V0X3R5cGUpLAoJICAoZ3N0X2ljeWRlbXV4X2Jhc2VfaW5pdCksIChnc3RfaWN5ZGVtdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfaWN5ZGVtdXhfcmVzZXQpLCAoZ3N0X2ljeWRlbXV4X2luaXQpLAoJICAoZ3N0X2ljeWRlbXV4X3Npbmtfc2V0Y2FwcyksIChnc3RfaWN5ZGVtdXhfZGlzcG9zZSksCgkgIChnc3RfaWN5ZGVtdXhfYWRkX3NyY3BhZCksIChnc3RfaWN5ZGVtdXhfcmVtb3ZlX3NyY3BhZCksCgkgICh1bmljb2RpZnkpLCAoZ3N0X2ljeWRlbXV4X3VuaWNvZGlmeSksCgkgIChnc3RfaWN5ZGVtdXhfcGFyc2VfYW5kX3NlbmRfdGFncyksCgkgIChnc3RfaWN5ZGVtdXhfdHlwZWZpbmRfb3JfZm9yd2FyZCksIChnc3RfaWN5ZGVtdXhfYWRkX21ldGEpLAoJICAoZ3N0X2ljeWRlbXV4X2NoYWluKSwgKGdzdF9pY3lkZW11eF9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2ljeWRlbXV4X3NlbmRfdGFnX2V2ZW50KSwgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvaWN5ZGVtdXgvZ3N0aWN5ZGVtdXguaDoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pY3lkZW11eC5jOiAodHlwZWZpbmRfc3VjY2VlZCksCgkgIChwbHVnaW5faW5pdCksIChpY3lkZW11eF9mb3VuZF9wYWQpLCAoY3JlYXRlX2ljeWRlbXV4KSwKCSAgKGNsZWFudXBfaWN5ZGVtdXgpLCAocHVzaF9kYXRhKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGljeWRlbXV4X3N1aXRlKSwgKG1haW4pOgoJICBBZGQgaWN5ZGVtdXgsIGFuZCB0ZXN0cy4KCjIwMDYtMDQtMjAgMTc6NDg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IFBvc3QgU0VHTUVOVF9ET05FIG1lc3NhZ2UgaW4gVElNRSBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19sb29wKToKCSAgUG9zdCBTRUdNRU5UX0RPTkUgbWVzc2FnZSBpbiBUSU1FIGZvcm1hdC4KCjIwMDYtMDQtMjAgMTc6Mjk6NTYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSAgQWRkZWQgYSBjb3VwbGUgb2YgaWZkZWZzIHRvIG1ha2UgaXQgY29tcGlsZSB3aXRoIG90aGVyIGtlcm5lbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBhIGNvdXBsZSBvZiBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIHdpdGggb3RoZXIga2VybmVscy4KCjIwMDYtMDQtMjAgMTY6MzM6NTUgKzAwMDAgIEZhYnJpemlvIEdlbm5hcmkgPGZhYnJpemlvLmdlQHRpc2NhbGkuaXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCBpbmRleCBjcmVhdGlvbiB3aGVuIHdlIGhhdmUgdG8gc2NhbiB0aGUgZmlsZSB0byBjcmVhdGUgYW4gaW5kZXguIFRoZXJlIG1heSBiZSBvdGhlciB0eXBlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGYWJyaXppbyBHZW5uYXJpICA8ZmFicml6aW8gZG90IGdlIGF0IHRpc2NhbGkgZG90IGl0PgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGVla190YWcpLAoJICAoZ3N0X2F2aV9kZW11eF9uZXh0X2RhdGFfYnVmZmVyKSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX3NjYW4pOgoJICBGaXggaW5kZXggY3JlYXRpb24gd2hlbiB3ZSBoYXZlIHRvIHNjYW4gdGhlIGZpbGUgdG8gY3JlYXRlCgkgIGFuIGluZGV4LiBUaGVyZSBtYXkgYmUgb3RoZXIgdHlwZXMgb2YgUklGRiAnTElTVCcgY2h1bmtzIHRoYW4KCSAgJ21vdmknIGFuZCB3ZSBuZWVkIHRvIHNraXAgdGhlbSBwcm9wZXJseSBhcyB3ZWxsIG9yIHdlJ2xsIGVuZCB1cAoJICByZWFkaW5nIGdhcmJhZ2UgKCMzMzY4ODkpLiBTb21lIG90aGVyIGNvc21ldGljIGNoYW5nZXMuCgoyMDA2LTA0LTIwIDE0OjIxOjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiBBZGQgc3VwcG9ydCBmb3Igc2VnbWVudCBzZWVrcyAoZml4ZXMgIzMzODI5MCkuIEFsc28gZGVtb3RlIHNvbWUgcmVjdXJyaW5nIGRlYnVnIG1lc3NhZ2UgZnJvbSBELi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGdzdF9mbGFjX2RlY19sb29wKSwKCSAgKGdzdF9mbGFjX2RlY19oYW5kbGVfc2Vla19ldmVudCk6CgkgIEFkZCBzdXBwb3J0IGZvciBzZWdtZW50IHNlZWtzIChmaXhlcyAjMzM4MjkwKS4gQWxzbyBkZW1vdGUKCSAgc29tZSByZWN1cnJpbmcgZGVidWcgbWVzc2FnZSBmcm9tIERFQlVHIHRvIExPRyBsZXZlbC4KCjIwMDYtMDQtMjAgMTM6MjM6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvOiBTZXQgRElTQ09OVCBmbGFnIG9uIGZpcnN0IGJ1ZmZlciBhZnRlciBhIGRpc2NvbnRpbnVpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pLAoJICAoZ3N0X21hdHJvc2thZGVtdXhfZG9faW5kZXhfc2VlayksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZlbnQpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2spOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgU2V0IERJU0NPTlQgZmxhZyBvbiBmaXJzdCBidWZmZXIgYWZ0ZXIgYSBkaXNjb250aW51aXR5LgoJICBGaXggbmV3c2VnbWVudCBldmVudHMgc2VudCB3aGVuIHNlZWtpbmcgYW5kIGhvbm91ciBLRVlfVU5JVAoJICBzZWVrIGZsYWcuIENyZWF0ZSBwYWQgd2l0aCBib2d1cyBjYXBzIGlmIHdlIGRvbid0IHJlY29nbmlzZQoJICB0aGUgc3RyZWFtIGNvZGVjIGlkLgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5oOgoJICBGaXggR09iamVjdCBtYWNyb3MuCgoyMDA2LTA0LTIwIDExOjAwOjE2ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IEhhbmRsZSBlbmQgb2Ygc2VnbWVudCBwcm9wZXJseSB3aGVuIHNldDsgZG9uJ3QgZGVhZC1sb2NrIHdoZW4gcG9zdGluZyBzdGFydCBvZiBzZWdtZW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyAgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOgoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2hhbmRsZV9zZWVrX2V2ZW50KSwgKGdzdF9tYXRyb3NrYV9kZW11eF9sb29wKToKCSAgSGFuZGxlIGVuZCBvZiBzZWdtZW50IHByb3Blcmx5IHdoZW4gc2V0OyBkb24ndCBkZWFkLWxvY2sgd2hlbgoJICBwb3N0aW5nIHN0YXJ0IG9mIHNlZ21lbnQgbWVzc2FnZSB3aGVuIGRvaW5nIGEgc2VnbWVudCBzZWVrLgoJICBGaXhlcyAjMzM4ODEwLgoKMjAwNi0wNC0yMCAwOTo0ODowNSArMDAwMCAgal4gPGpAYm9vdGxhYi5vcmc+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IE5ldmVyIHRyZWF0IHZpZGVvIHN0cmVhbXMgYXMgYW4gYXVkaW8gc3RyZWFtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpeIDxqIGF0IGJvb3RsYWIgZG90IG9yZz4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyYWspLAoJICAocXRkZW11eF92aWRlb19jYXBzKToKCSAgTmV2ZXIgdHJlYXQgdmlkZW8gc3RyZWFtcyBhcyBhbiBhdWRpbyBzdHJlYW0uCgkgIEFkZCBxdGRydyBtaW1lIHR5cGUuCgkgIEZpeGVzICMzMzkwNDEKCjIwMDYtMDQtMjAgMDk6MTE6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogTWFrZSBtcGVnMiBhYWMgYXVkaW8gd29yazogY3JlYXRlIGFydGlmaWNpYWwgcHJpdmF0ZSBjb2RlYyBkYXRhIGNodW5rIHdoaWNoIGZhYWQyIHNlZW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGx1Z2luX2luaXQpOgoJICBNYWtlIG1wZWcyIGFhYyBhdWRpbyB3b3JrOiBjcmVhdGUgYXJ0aWZpY2lhbCBwcml2YXRlIGNvZGVjIGRhdGEKCSAgY2h1bmsgd2hpY2ggZmFhZDIgc2VlbXMgdG8gcmVxdWlyZSwganVzdCBhcyB3ZSBkbyBmb3IgbXBlZzQgYWFjLgoJICBBbHNvIGNhbGwgZ3N0X3JpZmZfaW5pdCgpLiBQYXJ0aWFsbHkgZml4ZXMgIzMzODc2Ny4KCjIwMDYtMDQtMTkgMTU6MTY6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy4qOiBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIsIHNvIHRoYXQgaXQgZG9lc24ndCBlcnJvciBvdXQgaW1tZWRpYXRlbHkgd2l0aCBhIG5vbi1uZWdvdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfYmFzZV9pbml0KSwKCSAgKGdzdF93YXZlbmNfY2xhc3NfaW5pdCksIChnc3Rfd2F2ZW5jX2luaXQpLAoJICAoZ3N0X3dhdmVuY19jcmVhdGVfaGVhZGVyX2J1ZiksIChnc3Rfd2F2ZW5jX3B1c2hfaGVhZGVyKSwKCSAgKGdzdF93YXZlbmNfc2lua19zZXRjYXBzKSwgKGdldF9pZF9mcm9tX25hbWUpLCAoZ3N0X3dhdmVuY19ldmVudCksCgkgIChnc3Rfd2F2ZW5jX2NoYWluKSwgKGdzdF93YXZlbmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5oOgoJICBTZXQgY2FwcyBvbiBmaXJzdCBvdXRnb2luZyBidWZmZXIsIHNvIHRoYXQgaXQgZG9lc24ndCBlcnJvciBvdXQKCSAgaW1tZWRpYXRlbHkgd2l0aCBhIG5vbi1uZWdvdGlhdGVkIGVycm9yICgjMzM4NzE2KS4gUmV3cml0ZSBhbmQKCSAgY2xlYW4gdXAgYSBiaXQ7IGZpeCBzZXRjYXBzIGZ1bmN0aW9uIHRvIHBhcnNlIHRoaW5ncyBwcm9wZXJseTsKCSAgZml4IHNpbmsgY2FwcyAoOGJpdCBhdWRpbyBpcyB1bnNpZ25lZCBhbmQgZG9lc24ndCBoYXZlIGRlcHRoKTsKCSAgdXNlIGJvaWxlcnBsYXRlIG1hY3JvczsgcmVtb3ZlIHVudXNlZCBwcm9wZXJ0aWVzIHN0dWZmLgoKMjAwNi0wNC0xOSAwOToyNzowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRm9yIFZCUiBhdWRpbywgZG9uJ3QgdHJ5IHRvIGNhbGN1bGF0ZSB0aGUgc2FtcGxlc19wZXJfZnJhbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIEZvciBWQlIgYXVkaW8sIGRvbid0IHRyeSB0byBjYWxjdWxhdGUgdGhlIHNhbXBsZXNfcGVyX2ZyYW1lLgoJICBGaXhlcyAjMzM4OTM1LgoKMjAwNi0wNC0xOCAxODoxNDozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOiBMZWF2ZSBKUEVHIGRlY29kaW5nIHRvIG91ciBqcGVnZGVjIHBsdWdpbi4gZ2RrcGl4YnVmZGVjIGNhbm5vdCBoYW5kbGUgTUpQRUcgc3RyZWFtcyBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSAgTGVhdmUgSlBFRyBkZWNvZGluZyB0byBvdXIganBlZ2RlYyBwbHVnaW4uIGdka3BpeGJ1ZmRlYyBjYW5ub3QKCSAgaGFuZGxlIE1KUEVHIHN0cmVhbXMgYW5kIG1pZ2h0IGJlIGF1dG9wbHVnZ2VkIGZvciB0aG9zZSBpZiB0aGUKCSAgdXNlciBkb2Vzbid0IGhhdmUganBlZ2RlYyBpbnN0YWxsZWQgKHJlc3VsdGluZyBpbiBhIGNyeXB0aWMgZXJyb3IKCSAgbWVzc2FnZSBhYm91dCBodWZmbWFuIHRhYmxlcykuIEJldHRlciB0byBkaXNhYmxlIEpQRUcgZGVjb2RpbmcgaGVyZQoJICBhbmQgbGV0IHRoZSB1c2VyIGZpZ3VyZSBvdXQgdGhhdCBzaGUgbmVlZHMgdG8gaW5zdGFsbCBqcGVnZGVjLgoKMjAwNi0wNC0xOCAxODowNDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi4qOiBNYWtlIHdvcmsgd2l0aCBwYWNrZXRpc2VkL2ZyYW1lZCBpbnB1dCAoZS5nLiBwbmctaW4tcXVpY2t0aW1lKS4gVXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOiAoZ3N0X2dka19waXhidWZfc2lua19zZXRjYXBzKSwKCSAgKGdzdF9nZGtfcGl4YnVmX2NsYXNzX2luaXQpLCAoZ3N0X2dka19waXhidWZfaW5pdCksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9mbHVzaCksIChnc3RfZ2RrX3BpeGJ1Zl9jaGFpbik6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmg6CgkgIE1ha2Ugd29yayB3aXRoIHBhY2tldGlzZWQvZnJhbWVkIGlucHV0IChlLmcuIHBuZy1pbi1xdWlja3RpbWUpLiBVc2UKCSAgR1NUX0VMRU1FTlRfRVJST1Igd2hlbiB3ZSByZXR1cm4gR1NUX0ZMT1dfRVJST1IuIEFkZCBzb21lCgkgIEdTVF9ERUJVR19GVU5DUFRSIGhlcmUgYW5kIHRoZXJlLiBVc2UgR1NUX0xPRyBmb3IgcmVjdXJyaW5nCgkgIGRlYnVnIG1lc3NhZ2VzLiBGaXggYm9pbGVycGxhdGUgbWFjcm9zLgoKMjAwNi0wNC0xOCAxNzoyOTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOiBObyBuZWVkIHRvIHNwZWNpYWwtY2FzZSBmb3IgR2RrLTIuMCBhbnkgbG9uZ2VyLCB3ZSByZXF1aXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOiAoZ3N0X2dka19waXhidWZfZ2V0X2NhcHNsaXN0KSwKCSAgKGdzdF9nZGtfcGl4YnVmX3NldF9wcm9wZXJ0eSksIChnc3RfZ2RrX3BpeGJ1Zl9nZXRfcHJvcGVydHkpOgoJICBObyBuZWVkIHRvIHNwZWNpYWwtY2FzZSBmb3IgR2RrLTIuMCBhbnkgbG9uZ2VyLCB3ZSByZXF1aXJlCgkgIEdkayAyLjIgb3IgbmV3ZXI7IG1pbm9yIGNsZWFuLXVwcy4KCjIwMDYtMDQtMTggMTc6MTc6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSZXdyaXRlIGEgYml0OiB1c2UgR3N0QmFzZVNpbms6OnN0YXJ0IGFuZCBzdG9wIGluc3RlYWQgb2YgYSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb247IHVzZSBHU1RfRUxFTUVOVF9FUlJPUiBmb3IgZXJyb3IgcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzogKGdzdF9zaG91dDJzZW5kX2Jhc2VfaW5pdCksCgkgIChnc3Rfc2hvdXQyc2VuZF9jbGFzc19pbml0KSwgKGdzdF9zaG91dDJzZW5kX2luaXQpLAoJICAoc2V0X3Nob3V0X21ldGFkYXRhKSwgKGdzdF9zaG91dDJzZW5kX3NldF9tZXRhZGF0YSksCgkgIChnc3Rfc2hvdXQyc2VuZF9ldmVudCksIChnc3Rfc2hvdXQyc2VuZF9zdGFydCksCgkgIChnc3Rfc2hvdXQyc2VuZF9jb25uZWN0KSwgKGdzdF9zaG91dDJzZW5kX3N0b3ApLAoJICAoZ3N0X3Nob3V0MnNlbmRfcmVuZGVyKSwgKGdzdF9zaG91dDJzZW5kX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2hvdXQyc2VuZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3Nob3V0MnNlbmRfc2V0Y2FwcyksCgkgIChwbHVnaW5faW5pdCk6CgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuaDoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgUmV3cml0ZSBhIGJpdDogdXNlIEdzdEJhc2VTaW5rOjpzdGFydCBhbmQgc3RvcCBpbnN0ZWFkIG9mIGEgc3RhdGUKCSAgY2hhbmdlIGZ1bmN0aW9uOyB1c2UgR1NUX0VMRU1FTlRfRVJST1IgZm9yIGVycm9yIHJlcG9ydGluZywgbm90CgkgIGdfZXJyb3IoKSBvciBHU1RfRVJST1IoKTsgZG9uJ3QgdW5yZWYgY2FwcyBpbiBzZXRjYXBzIGZ1bmN0aW9uLAoJICB3aWxsIGNhdXNlIGNyYXNoZXMgb3IgYXNzZXJ0aW9uIGZhaWx1cmVzOyByZW1vdmUgKHVudXNlZCkgInN5bmMiCgkgIHByb3BlcnR5LCBiYXNlc2luayBhbHJlYWR5IGhhcyBzdWNoIGEgcHJvcGVydHk7IG1pc2MuIG90aGVyCgkgIG1pbm9yIGZpeGVzIGFuZCBjbGVhbnVwcy4KCjIwMDYtMDQtMTggMTQ6MTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgdHJhbnNsYXRhYmxlIGVycm9yIG1lc3NhZ2UgZm9yIHdoZW4gd2UgY2Fubm90IGNvbm5lY3QgdG8gdGhlIHNvdW5kIHNlcnZlciwgYXMgIkNhbm5vdCBvcGVuIHJlc291cmNlIGZvciB3cml0aW5nIiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua19vcGVuKSwgKGdzdF9lc2RzaW5rX3ByZXBhcmUpOgoJICAqIGV4dC9lc2QvZ3N0ZXNkLmM6IChwbHVnaW5faW5pdCk6CgkgICogcG8vUE9URklMRVMuaW46CgkgIEFkZCB0cmFuc2xhdGFibGUgZXJyb3IgbWVzc2FnZSBmb3Igd2hlbiB3ZSBjYW5ub3QKCSAgY29ubmVjdCB0byB0aGUgc291bmQgc2VydmVyLCBhcyAiQ2Fubm90IG9wZW4gcmVzb3VyY2UKCSAgZm9yIHdyaXRpbmciIGlzbid0IHJlYWxseSBhbiBhY2NlcHRhYmxlIG1lc3NhZ2UgdG8gc2hvdwoJICB0byB0aGUgdXNlciBpbiB0aGlzIGNhc2UuCgoyMDA2LTA0LTE4IDEzOjMyOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL29zcy9nc3QtaTE4bi1wbHVnaW4uaDogUmVtb3ZlIGJvZ3VzIGZpbGUgdGhhdCBkb2Vzbid0IGJlbG9uZyBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdC1pMThuLXBsdWdpbi5oOgoJICBSZW1vdmUgYm9ndXMgZmlsZSB0aGF0IGRvZXNuJ3QgYmVsb25nIGhlcmUuCgoyMDA2LTA0LTE3IDE5OjU3OjEwICswMDAwICBQaGlsaXBwZSBWYWxlbWJvaXMgPGxlcGhpbG91c29waGVAdXNlcnMuc2YubmV0PgoKCSAgZXh0L3Nob3V0Mi9nc3RzaG91dDIuKjogSGFuZGxlIHRhZ3MgYmVpbmcgcmVjZWl2ZWQgYmVmb3JlIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaXMgZXN0YWJsaXNoZWQgcHJvcGVybHkgKHNlZSAjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGhpbGlwcGUgVmFsZW1ib2lzCgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzogKGdzdF9zaG91dDJzZW5kX2luaXQpLAoJICAoZ3N0X3Nob3V0MnNlbmRfc2V0X21ldGFkYXRhKSwgKGdzdF9zaG91dDJzZW5kX2V2ZW50KSwKCSAgKGdzdF9zaG91dDJzZW5kX3JlbmRlciksIChnc3Rfc2hvdXQyc2VuZF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmg6CgkgIEhhbmRsZSB0YWdzIGJlaW5nIHJlY2VpdmVkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiB0bwoJICB0aGUgc2VydmVyIGlzIGVzdGFibGlzaGVkIHByb3Blcmx5IChzZWUgIzMzODYzNikuCgoyMDA2LTA0LTE3IDE5OjQzOjMyICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIEp1c3QgYWRkZWQgYSBndGstZG9jIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBKdXN0IGFkZGVkIGEgZ3RrLWRvYyBjb21tZW50LgoKMjAwNi0wNC0xNyAxOToxMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6IERvbid0IGNyYXNoIGluIGNhc2UgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBmYWlsczogZG9uJ3Qgc2V0IHBvaW50ZXIgdG8gTlVMTCBieSBhc3NpZ25pbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOiAoZ3N0X3Nob3V0MnNlbmRfcmVuZGVyKToKCSAgRG9uJ3QgY3Jhc2ggaW4gY2FzZSB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGZhaWxzOgoJICBkb24ndCBzZXQgcG9pbnRlciB0byBOVUxMIGJ5IGFzc2lnbmluZyBGQUxTRTsgZXJyb3Igb3V0CgkgIHByb3Blcmx5IGJ5IHVzaW5nIEdTVF9FTEVNRU5UX0VSUk9SIGFuZCByZXR1cm5pbmcKCSAgR1NUX0ZMT1dfRVJST1IgKGZpeGVzICMzMzg2MzYpLiBMYXN0bHksIGZyZWUgY29ubmVjdGlvbgoJICBiZWZvcmUgcmVzZXR0aW5nIHRoZSBwb2ludGVyLgoKMjAwNi0wNC0xNyAxMDowMTo1MSArMDAwMCAgQWxleCBMYW5jYXN0ZXIgPGFsZXhsYW5AZmVkb3JhcHJvamVjdC5vcmc+CgoJICBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOiAoRml4ZXMgIzMzODcxMykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzoKCSAgUmVjb2duaXNlIFRDTyAoR2VucmUpIHRhZ3MgaW4gSUQzdjIuMi4gUGF0Y2ggYnkgQWxleCBMYW5jYXN0ZXIKCSAgKEZpeGVzICMzMzg3MTMpCgoyMDA2LTA0LTEzIDIxOjQ1OjU3ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSAgRml4ZWQgc29tZSBtZW1vcnkgbGVha3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlZCBzb21lIG1lbW9yeSBsZWFrcy4KCjIwMDYtMDQtMTMgMDk6MTU6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5oOgoJKiBnc3QvcnRwL2dzdHJ0cC5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBwY21hZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBwY211cGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5Lmg6CgkgIHJldmVydGluZyBydHAgcGF0Y2hlcyB0byBmaXggZnJlZXplIGJyZWFrIG9uIC1iYXNlIGFzIGV4cGxhaW5lZCBvbiB0aGUgbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0aW5nIHJ0cCBwYXRjaGVzIHRvIGZpeCBmcmVlemUgYnJlYWsgb24gLWJhc2UgYXMgZXhwbGFpbmVkIG9uIHRoZSBsaXN0CgoyMDA2LTA0LTEzIDA5OjAxOjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3J0cC86IEZpeCBHT2JqZWN0IG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwaWxiY2RlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcGFwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdWRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBwY211cGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5oOgoJICBGaXggR09iamVjdCBtYWNyb3MuCgoyMDA2LTA0LTEzIDAzOjQyOjUxICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0L3J0cC86IFBvcnRlZCBtdWxhdyBhbmQgYWxhdyBwYXlsb2FkZXJzIHRvIHVzZSBuZXcgYmFzZSBjbGFzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0xMiBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5oOgoJICBQb3J0ZWQgbXVsYXcgYW5kIGFsYXcgcGF5bG9hZGVycyB0byB1c2UgbmV3IGJhc2UgY2xhc3MKCSAgKiBnc3QvcnRwL01ha2VmaWxlLmFtOgoJICAqIGdzdC9ydHAvZ3N0cnRwLmM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjcGF5Lmg6CgkgICogZ3N0L3J0cC9nc3RydHBpbGJjZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGlsYmNkZXBheS5oOgoJICBBZGRlZCBuZXcgaUxCQyBwYXlsb2FkZXIvZGVwYXlsb2FkZXIuIFBheWxvYWRlciB1c2VzIG5ldyBhdWRpbyBwYXlsb2FkIGJhc2UKCSAgY2xhc3MuCgoyMDA2LTA0LTEyIDIxOjU3OjAyICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIEZpeCB0byB3b3JrIGluIHJlYWQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB0byB3b3JrIGluIHJlYWQgbW9kZS4KCjIwMDYtMDQtMTIgMDk6NDI6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogU29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6IChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X2dka19waXhidWZfZ2V0X2NhcHNsaXN0KSwgKGdzdF9nZGtfcGl4YnVmX3NpbmtfZ2V0Y2FwcyksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9jbGFzc19pbml0KSwgKGdzdF9nZGtfcGl4YnVmX2luaXQpLAoJICAoZ3N0X2dka19waXhidWZfZmx1c2gpLCAoZ3N0X2dka19waXhidWZfc2lua19ldmVudCksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9jaGFpbik6CgkgIFNvbWUgY2xlYW51cHMuCgkgIEFkZGVkIFJHQkEgYXMgYSBwb3NzaWJsZSBvdXRwdXQgZm9ybWF0LgoJICBDb3JyZWN0bHkgZnJlZSB0aGUgc3VwcG9ydGVkIG1pbWV0eXBlcy4KCSAgZGVwcmVjYXRlIHNpbGVudCBhcmcsIGl0J3Mgbm90IHVzZWQuCgkgIFJldHVybiByZXN1bHQgZnJvbSBfYWxsb2NfYnVmZmVyIHRvIHBlZXIuCgoyMDA2LTA0LTExIDE4OjAzOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzogRG9uJ3QgbGVhayBtZW1vcnkgYWxsb2NhdGVkIGJ5IGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYygpIGJ5IG92ZXJ3cml0aW5nIEdTVF9CVUZGRVJfTUFMTE9DLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6IChnc3RfcnRwX21wNHZfZGVwYXlfcHJvY2Vzcyk6CgkgIERvbid0IGxlYWsgbWVtb3J5IGFsbG9jYXRlZCBieSBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MoKSBieQoJICBvdmVyd3JpdGluZyBHU1RfQlVGRkVSX01BTExPQ0RBVEEuCgoyMDA2LTA0LTExIDE1OjI3OjMxICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIGZpeCB2ZXJzaW9uIG51bWJlciBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHZlcnNpb24gbnVtYmVyIG1hY3JvCgoyMDA2LTA0LTExIDA5OjM1OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2xpYnBuZy9nc3RwbmdkZWMuKjogSGFuZGxlIG1vcmUgdGhhbiBvbmUgZnJhbWUgaWYgdGhlIGNvbnRlbnQgaXMgZnJhbWVkLCBsaWtlIHdpdGggcG5nLWluLXF1aWNrdGltZSAoIzMzMTkxNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IChnc3RfcG5nZGVjX2luaXQpLAoJICAodXNlcl9lbmRyb3dfY2FsbGJhY2spLCAodXNlcl9lbmRfY2FsbGJhY2spLAoJICAoZ3N0X3BuZ2RlY19jYXBzX2NyZWF0ZV9hbmRfc2V0KSwgKGdzdF9wbmdkZWNfY2hhaW4pLAoJICAoZ3N0X3BuZ2RlY19zaW5rX3NldGNhcHMpLCAoZ3N0X3BuZ2RlY19zaW5rX2V2ZW50KSwKCSAgKGdzdF9wbmdkZWNfbGlicG5nX2NsZWFyKSwgKGdzdF9wbmdkZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5oOgoJICBIYW5kbGUgbW9yZSB0aGFuIG9uZSBmcmFtZSBpZiB0aGUgY29udGVudCBpcyBmcmFtZWQsCgkgIGxpa2Ugd2l0aCBwbmctaW4tcXVpY2t0aW1lICgjMzMxOTE3KS4KCjIwMDYtMDQtMTAgMTk6NTU6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc3lzL29zcy86IC0gdGhlIHVzZXItdmlzaWJsZSBlcnJvciBzdHJpbmdzIHdlcmUgaW4gdGhlIHdyb25nIGNhdGVnb3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvTWFrZWZpbGUuYW06CgkgICogc3lzL29zcy9jb21tb24uaDoKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzogKGdzdF9vc3Nfc2lua19pbml0KSwgKGdzdF9vc3Nfc2lua19vcGVuKSwKCSAgKGdzdF9vc3Nfc2lua19wcmVwYXJlKSwgKGdzdF9vc3Nfc2lua191bnByZXBhcmUpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IChnc3Rfb3NzX3NyY19wcmVwYXJlKSwKCSAgKGdzdF9vc3Nfc3JjX3VucHJlcGFyZSk6CgkgIC0gdGhlIHVzZXItdmlzaWJsZSBlcnJvciBzdHJpbmdzIHdlcmUgaW4gdGhlIHdyb25nIGNhdGVnb3J5CgkgIC0gYW5kIHRoZSBtZXNzYWdlcyB3ZXJlIG5vdCBtYXJrZWQgZm9yIHRyYW5zbGF0aW9uCgkgIC0gd2hpY2ggaXMgYWN0dWFsbHkgYSBnb29kIHRoaW5nLCBiZWNhdXNlIHRoZXkgd2VyZSBleGFjdGx5CgkgIHRoZSBraW5kIG9mIG1lc3NhZ2UgeW91IHdvdWxkIG5ldmVyIHdhbnQgYW55b25lIHRvIHNlZQoJICAtIHRoZSBtYWNyb3Mgd2VyZSB1c2luZyB2YXJpYWJsZXMgdGhhdCBkaWRuJ3QgZXhpc3QgaW4gdGhlIG1hY3JvCgkgIGFyZ3VtZW50cwoJICAtIGFuZCB0aGV5IHdlcmUgb2J2aW91c2x5IGNvcGllZCBmcm9tIGVhY2ggb3RoZXIgYW5kIHRoZW4gbW9kaWZpZWQKCSAgLSBzbyBhIGNvbW1vbiBoZWFkZXIgbWFrZXMgc2Vuc2UKCjIwMDYtMDQtMTAgMTc6MTY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBwYXJzaW5nIG9mIG5ld2VyIHN0c2QgY2h1bmtzIGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBGaXggcGFyc2luZyBvZiBuZXdlciBzdHNkIGNodW5rcyBhZ2Fpbi4KCjIwMDYtMDQtMTAgMTY6MDk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IERvbid0IHRyeSB0byBtb2RpZnkgcmVhZC1vbmx5IGRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogKGdzdF9lYm1sX3JlYWRfc2ludCk6CgkgIERvbid0IHRyeSB0byBtb2RpZnkgcmVhZC1vbmx5IGRhdGEuCgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfYmxvY2tncm91cF9vcl9zaW1wbGVibG9jayk6CgkgIEZpeCBjb21tZW50ICh3b24ndCBjcmFzaCBhbnkgbG9uZ2VyIG5vdykuCgoyMDA2LTA0LTEwIDE1OjQ4OjU1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmM6IFVzZSBjb3BpZXMgb2YgaGVhZGVyIGJ1ZmZlcnMgZm9yIGNhcHMgdG8gYXZvaWQgY2lyY3VsYXIgcmVmY291bnRpbmcgcHJvYmxlbXMgKGFzIGluIHRoZW9yYWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOiAoZ3N0X2NtbWxfZW5jX3NldF9oZWFkZXJfb25fY2Fwcyk6CgkgIFVzZSBjb3BpZXMgb2YgaGVhZGVyIGJ1ZmZlcnMgZm9yIGNhcHMgdG8gYXZvaWQgY2lyY3VsYXIgcmVmY291bnRpbmcKCSAgcHJvYmxlbXMgKGFzIGluIHRoZW9yYWRlYywgdm9yYmlzZGVjKS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZGVjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhIHR5cG8gaW4gdGVzdCB0aGF0IG1lYW50IGl0IHdhcyB0ZXN0aW5nIHRoZSB3cm9uZyB0aGluZy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6IChjaGVja19oZWFkZXJzKToKCSAgRml4IHJlZmNvdW50IGNoZWNrcyBub3cgdGhhdCB3ZSB1c2UgYnVmZmVyLWNvcGllcyBmb3IgY2Fwcy4KCjIwMDYtMDQtMTAgMTU6NDM6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogVXNlIHN0YXRpYyBwYWQgdGVtcGxhdGVzIHdpdGggQU5ZIGNhcHMgZm9yIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2UgcGFkcyBhbmQgZ2V0IHJpZCBvZiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IChnc3RfbWF0cm9za2FfZGVtdXhfYmFzZV9pbml0KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfdmlkZW9fY2FwcyksIChnc3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2FwcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcGx1Z2luX2luaXQpOgoJICBVc2Ugc3RhdGljIHBhZCB0ZW1wbGF0ZXMgd2l0aCBBTlkgY2FwcyBmb3IgYXVkaW8gYW5kIHZpZGVvCgkgIHNvdXJjZSBwYWRzIGFuZCBnZXQgcmlkIG9mIGEgbG90IG9mIHVubmVjZXNzYXJ5IChhbmQgcGFydGlhbGx5CgkgIGJyb2tlbikgY29kZSBmb3IgdGhlIHRlbXBsYXRlIGNhcHMuIENsZWFuIHVwIGNhcHMgZmluZGluZwoJICBmdW5jdGlvbnMuIEZpeGVzIHBsYXliYWNrIG9mIGF1ZGlvIGZpbGVzL3N0cmVhbXMgdGhhdCBkbyBub3QKCSAgY29udGFpbiB0aGUgc2FtcGxlIHJhdGUgYW5kL29yIG51bWJlciBvZiBjaGFubmVscyBpbiB0aGUgYXVkaW8KCSAgY29udGV4dCAoaGFwcGVucyBhIGxvdCB3aXRoIHZvcmJpcy9tcDMgLm1rYSBmaWxlcyBpdCBzZWVtcykuCgkgIEZpeGVzICMzMzcxODMuCgkgIEFsc28gYWRkIG15c2VsZiB0byBjb3B5cmlnaHQgaG9sZGVycy4KCjIwMDYtMDQtMTAgMTU6Mjk6MjEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGV4dC9hbm5vZGV4L2dzdGNtbWx1dGlscy5jOiBVc2UgZ19saXN0X2RlbGV0ZV9saW5rICgpIGluc3RlYWQgb2YgZ19saXN0X3JlbW92ZV9saW5rICgpIHNvIHRoYXQgd2UgZnJlZSB0aGUgbGluayBhcyB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sdXRpbHMuYzogKGdzdF9jbW1sX3RyYWNrX2xpc3RfZGVsX2NsaXApOgoJICBVc2UgZ19saXN0X2RlbGV0ZV9saW5rICgpIGluc3RlYWQgb2YgZ19saXN0X3JlbW92ZV9saW5rICgpIHNvIHRoYXQKCSAgd2UgZnJlZSB0aGUgbGluayBhcyB3ZWxsIGFzIHRoZSBjb250YWluZWQgZGF0YS4KCjIwMDYtMDQtMTAgMTQ6MjA6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEZpeCBmcmFtZXJhdGUgY2FsY3VsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2FkZF9zdHJlYW0pLAoJICAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRml4IGZyYW1lcmF0ZSBjYWxjdWxhdGlvbi4KCjIwMDYtMDQtMTAgMTA6MTA6NTUgKzAwMDAgIFJ5YW4gTG9ydGllIChkZXNydCkgPGRlc3J0QGRlc3RyLmNhPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBGaXggc29tZSBjcmFzaGVycyB3aXRoIGVtcHR5IGNodW5rcy4gKEZpeGVzICMzMzc3NDkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUnlhbiBMb3J0aWUgKGRlc3J0KSA8ZGVzcnQgYXQgZGVzdHIgZG90IGNhPgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3VwZXJpbmRleCksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksIChnc3RfYXZpX2RlbXV4X3BhcnNlX2luZGV4KSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcik6CgkgIEZpeCBzb21lIGNyYXNoZXJzIHdpdGggZW1wdHkgY2h1bmtzLiAoRml4ZXMgIzMzNzc0OSkKCjIwMDYtMDQtMTAgMDg6MzE6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IGZvcmNlIG1vbm8gODAwMCBIeiBvbiBBTVIgc2FtcGxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgZm9yY2UgbW9ubyA4MDAwIEh6IG9uIEFNUiBzYW1wbGVzLgoKMjAwNi0wNC0wOSAxODozMDo1MSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZXh0L25lb24vZ3N0bmVvbmh0dHBzcmMuYzogcmVtb3ZlIGF0b2xsIGJ5IHVzaW5nIGdfYXNjaWlfc3RydG91bGwgKGF0b2xsIGlzIG5vdCBzdXBwb3J0ZWQgb24gV0lOMzIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9uZW9uL2dzdG5lb25odHRwc3JjLmM6IChnc3RfbmVvbmh0dHBfc3JjX3N0YXJ0KToKCSAgcmVtb3ZlIGF0b2xsIGJ5IHVzaW5nIGdfYXNjaWlfc3RydG91bGwgKGF0b2xsIGlzIG5vdCBzdXBwb3J0ZWQgb24gV0lOMzIpCgkgICogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3NpbmsuYzoKCSAgKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmM6CgkgIGRvbmUgc29tZSBjbGVhbnMgaW4gc291cmNlcwoJICAqIHdpbjMyL3ZzNjoKCSAgYWRkIHByb2plY3QgZmlsZXMgZm9yIG5lb24sIHF0ZGVtdXgKCjIwMDYtMDQtMDkgMTc6MzE6MzcgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIElOVDY0IGNvbnN0YW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9zZXRfY2FwcyksKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICB1c2UgR19HSU5UNjRfQ09OU1RBTlQgZm9yIElOVDY0IGNvbnN0YW50cwoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgZGVmaW5lIHJpbnQgZm9yIFdJTjMyICNkZWZpbmUgcmludCh4KSAoZmxvb3IoKHgpKzAuNSkpCgkgICogd2luMzIvdnM2L2xpYmdzdGF2aS5kc3A6CgkgIGFkZCBtaXNzaW5nIGxpYnJhcmllcyBmb3IgdGhlIGxpbmsgYW5kIHJlbW92ZSBhdmltdXguYyBmcm9tCgkgIHRoZSBwcm9qZWN0IGFzIGl0IGlzbid0IHBvcnRlZCB0byAwLjEwIHlldAoKMjAwNi0wNC0wOSAxNDowMDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogRXZlbiBiZXR0ZXIgd291bGQgYmUgaWYgd2UgYWN0dWFsbHkgZGlkIHRoZSByaWdodCB0aGluZyBoZXJlIChhbHNvLCBHX0dVSU5UNjRfQ09OU1RBTlQgb25seS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IChnc3RfZWJtbF9yZWFkX3NpbnQpOgoJICBFdmVuIGJldHRlciB3b3VsZCBiZSBpZiB3ZSBhY3R1YWxseSBkaWQgdGhlIHJpZ2h0IHRoaW5nCgkgIGhlcmUgKGFsc28sIEdfR1VJTlQ2NF9DT05TVEFOVCBvbmx5IGV4aXN0cyBzaW5jZSBHTGliLTIuMTApLgoKMjAwNi0wNC0wOSAxMzo1MjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzogQ2FuJ3QganVzdCByZXBsYWNlIDFMTCB3aXRoIDFMIGhlcmUganVzdCBiZWNhdXNlIE1TVkMgZG9lc24ndCBzdXBwb3J0IGl0LCBhcyBpdCBtaWdodCBsZWFkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmM6IChnc3RfZWJtbF9yZWFkX3NpbnQpOgoJICBDYW4ndCBqdXN0IHJlcGxhY2UgMUxMIHdpdGggMUwgaGVyZSBqdXN0IGJlY2F1c2UgTVNWQyBkb2Vzbid0CgkgIHN1cHBvcnQgaXQsIGFzIGl0IG1pZ2h0IGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMgd2hlbiBkb2luZyB0aGUKCSAgYml0c2hpZnRpbmcgaGVyZS4gVXNpbmcgR0xpYidzIEdfR1VJTlQ2NF9DT05TVEFOVCgpIG1hY3JvIHRvCgkgIGZvcmNlIGEgNjQtYml0IGNvbnN0YW50IGluIGEgd2F5IHRoYXQgYWxsIGNvbXBpbGVycyBhcmUgaGFwcHkgd2l0aC4KCjIwMDYtMDQtMDggMjE6NDg6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbXJ3Yi9nc3RhbXJ3YmRlYy5jOiAoZ3N0X2FtcndiZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbXJ3Yi9nc3RhbXJ3YmVuYy5jOiAoZ3N0X2FtcndiZW5jX2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbXJ3Yi9nc3RhbXJ3YnBhcnNlLmM6IChnc3RfYW1yd2JwYXJzZV9jbGFzc19pbml0KToKCSAgKiBleHQvYXJ0cy9nc3RfYXJ0cy5jOiAoZ3N0X2FydHNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2FydHNkL2dzdGFydHNkc2luay5jOiAoZ3N0X2FydHNkc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmc2luay5jOiAoZ3N0X2Fmc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmc3JjLmM6IChnc3RfYWZzcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAqIGV4dC9jZGF1ZGlvL2dzdGNkYXVkaW8uYzogKGdzdF9jZGF1ZGlvX2NsYXNzX2luaXQpOgoJICAqIGV4dC9kaXJlY3RmYi9kZmJ2aWRlb3NpbmsuYzogKGdzdF9kZmJ2aWRlb3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2RpdngvZ3N0ZGl2eGRlYy5jOiAoZ3N0X2RpdnhkZWNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2hlcm1lcy9nc3RoZXJtZXNjb2xvcnNwYWNlLmM6CgkgIChnc3RfaGVybWVzX2NvbG9yc3BhY2VfY2xhc3NfaW5pdCk6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZmlsZS5jOiAoZ3N0X2l2b3JiaXNmaWxlX2NsYXNzX2luaXQpOgoJICAqIGV4dC9qYWNrL2dzdGphY2suYzogKGdzdF9qYWNrX2NsYXNzX2luaXQpOgoJICAqIGV4dC9qYWNrL2dzdGphY2tiaW4uYzogKGdzdF9qYWNrX2Jpbl9jbGFzc19pbml0KToKCSAgKiBleHQvbGNzL2dzdGNvbG9yc3BhY2UuYzogKGdzdF9jb2xvcnNwYWNlX2NsYXNzX2luaXQpOgoJICAqIGV4dC9saWJmYW1lL2dzdGxpYmZhbWUuYzogKGdzdF9mYW1lZW5jX2NsYXNzX2luaXQpOgoJICAqIGV4dC9tdXNpY2JyYWluei9nc3R0cm0uYzogKGdzdF9tdXNpY2JyYWluel9jbGFzc19pbml0KToKCSAgKiBleHQvbmFzL25hc3NpbmsuYzogKGdzdF9uYXNzaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9zaG91dC9nc3RzaG91dC5jOiAoZ3N0X2ljZWNhc3RzZW5kX2NsYXNzX2luaXQpOgoJICAqIGV4dC9zbmFwc2hvdC9nc3RzbmFwc2hvdC5jOiAoZ3N0X3NuYXBzaG90X2NsYXNzX2luaXQpOgoJICAqIGV4dC9zbmRmaWxlL2dzdHNmLmM6IChnc3Rfc2ZfY2xhc3NfaW5pdCk6CgkgICogZXh0L3N3ZmRlYy9nc3Rzd2ZkZWMuYzogKGdzdF9zd2ZkZWNidWZmZXJfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3dmZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC90YXJraW4vZ3N0dGFya2luZGVjLmM6IChnc3RfdGFya2luZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC90YXJraW4vZ3N0dGFya2luZW5jLmM6IChnc3RfdGFya2luZW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC9jZHhhcGFyc2UvZ3N0Y2R4YXN0cmlwLmM6IChnc3RfY2R4YXN0cmlwX2NsYXNzX2luaXQpOgoJICAqIGdzdC9jaGFydC9nc3RjaGFydC5jOiAoZ3N0X2NoYXJ0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9jb2xvcnNwYWNlL2dzdGNvbG9yc3BhY2UuYzogKGdzdF9jb2xvcnNwYWNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOiAoZ3N0X2RlaW50ZXJsYWNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9mZXN0aXZhbC9nc3RmZXN0aXZhbC5jOiAoZ3N0X2Zlc3RpdmFsX2NsYXNzX2luaXQpOgoJICAqIGdzdC9maWx0ZXIvZ3N0YnB3c2luYy5jOiAoZ3N0X2Jwd3NpbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2ZpbHRlci9nc3RpaXIuYzogKGdzdF9paXJfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6IChnc3RfbHB3c2luY19jbGFzc19pbml0KToKCSAgKiBnc3QvbGlicmZiL2dzdHJmYnNyYy5jOiAoZ3N0X3JmYnNyY19jbGFzc19pbml0KToKCSAgKiBnc3QvbWl4bWF0cml4L21peG1hdHJpeC5jOiAoZ3N0X21peG1hdHJpeF9jbGFzc19pbml0KToKCSAgKiBnc3QvbXBlZzFzeXMvZ3N0bXBlZzFzeXN0ZW1lbmNvZGUuYzoKCSAgKGdzdF9zeXN0ZW1fZW5jb2RlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9tcGVnMXZpZGVvcGFyc2UvZ3N0bXAxdmlkZW9wYXJzZS5jOgoJICAoZ3N0X21wMXZpZGVvcGFyc2VfY2xhc3NfaW5pdCk6CgkgICogZ3N0L21wZWcyc3ViL2dzdG1wZWcyc3VidC5jOiAoZ3N0X21wZWcyc3VidF9jbGFzc19pbml0KToKCSAgKiBnc3QvbXBlZ2F1ZGlvcGFyc2UvZ3N0bXBlZ2F1ZGlvcGFyc2UuYzoKCSAgKGdzdF9tcDNwYXJzZV9jbGFzc19pbml0KToKCSAgKiBnc3Qvb3ZlcmxheS9nc3RvdmVybGF5LmM6IChnc3Rfb3ZlcmxheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcGFzc3Rocm91Z2gvZ3N0cGFzc3Rocm91Z2guYzogKHBhc3N0aHJvdWdoX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5b25kZW1hbmQvZ3N0cGxheW9uZGVtYW5kLmM6IChwbGF5X29uX2RlbWFuZF9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRqcGVnL2dzdHJ0anBlZ2RlYy5jOiAoZ3N0X3J0anBlZ2RlY19jbGFzc19pbml0KToKCSAgKiBnc3QvcnRqcGVnL2dzdHJ0anBlZ2VuYy5jOiAoZ3N0X3J0anBlZ2VuY19jbGFzc19pbml0KToKCSAgKiBnc3Qvc21vb3RoL2dzdHNtb290aC5jOiAoZ3N0X3Ntb290aF9jbGFzc19pbml0KToKCSAgKiBnc3Qvc21vb3Rod2F2ZS9nc3RzbW9vdGh3YXZlLmM6IChnc3Rfc21vb3Rod2F2ZV9jbGFzc19pbml0KToKCSAgKiBnc3Qvc3BlY3RydW0vZ3N0c3BlY3RydW0uYzogKGdzdF9zcGVjdHJ1bV9jbGFzc19pbml0KToKCSAgKiBnc3Qvc3RlcmVvL2dzdHN0ZXJlby5jOiAoZ3N0X3N0ZXJlb19jbGFzc19pbml0KToKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5jOiAoZ3N0X3N3aXRjaF9jbGFzc19pbml0KToKCSAgKiBnc3QvdHRhL2dzdHR0YWRlYy5jOiAoZ3N0X3R0YV9kZWNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3R0YS9nc3R0dGFwYXJzZS5jOiAoZ3N0X3R0YV9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmJpZGVjL2dzdHZiaWRlYy5jOiAoZ3N0X3ZiaWRlY19jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOiAoZ3N0X3ZpZGVvX2Nyb3BfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpcnR1YWxkdWIvZ3N0eHNoYXJwZW4uYzogKGdzdF94c2hhcnBlbl9jbGFzc19pbml0KToKCSAgKiBnc3QveTRtL2dzdHk0bWVuY29kZS5jOiAoZ3N0X3k0bWVuY29kZV9jbGFzc19pbml0KToKCSAgKiBzeXMvY2Ryb20vZ3N0Y2RwbGF5ZXIuYzogKGNkcGxheWVyX2NsYXNzX2luaXQpOgoJICAqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHNpbmsuYzoKCSAgKGdzdF9kaXJlY3Rzb3VuZHNpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL2R4cjMvZHhyM2F1ZGlvc2luay5jOiAoZHhyM2F1ZGlvc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvZHhyMy9keHIzc3B1c2luay5jOiAoZHhyM3NwdXNpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL2R4cjMvZHhyM3ZpZGVvc2luay5jOiAoZHhyM3ZpZGVvc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvcWNhbS9nc3RxY2Ftc3JjLmM6IChnc3RfcWNhbXNyY19jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmM6CgkgIChnc3RfdjRsMl9jb2xvcl9iYWxhbmNlX2NoYW5uZWxfY2xhc3NfaW5pdCk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmM6IChnc3RfdjRsMl90dW5lcl9jaGFubmVsX2NsYXNzX2luaXQpLAoJICAoZ3N0X3Y0bDJfdHVuZXJfbm9ybV9jbGFzc19pbml0KToKCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZXNyY19jbGFzc19pbml0KToKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCjIwMDYtMDQtMDggMjE6MjE6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCAjMzM3MzY1IChnX3R5cGVfY2xhc3NfcmVmIDwtPiBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzogKGdzdF9hYXNpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6IChnc3RfZmxhY190YWdfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6IChnc3RfZ2RrX3BpeGJ1Zl9jbGFzc19pbml0KToKCSAgKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6IChnc3RfanBlZ2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvanBlZy9nc3RzbW9rZWRlYy5jOiAoZ3N0X3Ntb2tlZGVjX2NsYXNzX2luaXQpOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6IChnc3Rfc21va2VlbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuYzogKGdzdF9jYWNhc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvbGlibW5nL2dzdG1uZ2RlYy5jOiAoZ3N0X21uZ2RlY19jbGFzc19pbml0KToKCSAgKiBleHQvbGlibW5nL2dzdG1uZ2VuYy5jOiAoZ3N0X21uZ2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiAoZ3N0X3BuZ2RlY19jbGFzc19pbml0KToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOiAoZ3N0X3BuZ2VuY19jbGFzc19pbml0KToKCSAgKiBleHQvbWlrbW9kL2dzdG1pa21vZC5jOiAoZ3N0X21pa21vZF9jbGFzc19pbml0KToKCSAgKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOiAoZ3N0X3Nob3V0MnNlbmRfY2xhc3NfaW5pdCk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IChnc3Rfc3BlZXhlbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2FscGhhL2dzdGFscGhhLmM6IChnc3RfYWxwaGFfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmltdXhfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2RlYnVnL2VmZW5jZS5jOiAoZ3N0X2VmZW5jZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZGVidWcvbmVnb3RpYXRpb24uYzogKGdzdF9uZWdvdGlhdGlvbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZmx4L2dzdGZseGRlYy5jOiAoZ3N0X2ZseGRlY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9jbGFzc19pbml0KToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9jbGFzc19pbml0KToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGRlaW50ZXJsZWF2ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IChpbnRlcmxlYXZlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzogKGdzdF9hbGF3ZGVjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzogKGdzdF9hbGF3ZW5jX2NsYXNzX2luaXQpOgoJICAqIGdzdC9sYXcvbXVsYXctZW5jb2RlLmM6IChnc3RfbXVsYXdlbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzogKGdzdF9tZWRpYW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzogKGdzdF9tb25vc2NvcGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzogKGdzdF9tdWx0aXBhcnRfbXV4X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6IChnc3RfYXN0ZXJpc2toMjYzX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzogKGdzdF9ydHBfTDE2ZGVwYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzogKGdzdF9ydHBMMTZwYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOiAoZ3N0X3J0cF9hbXJfZGVwYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzogKGdzdF9ydHBfYW1yX3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGRlcGF5LmM6IChnc3RfcnRwX2RlcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzogKGdzdF9ydHBfZ3NtX2RlcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6IChnc3RfcnRwX2dzbV9wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGF5LmM6IChnc3RfcnRwX2gyNjNfcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOiAoZ3N0X3J0cF9oMjYzcF9kZXBheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6IChnc3RfcnRwX2gyNjNwX3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzogKGdzdF9ydHBfbXA0Z19wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzogKGdzdF9ydHBfbXA0dl9kZXBheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzogKGdzdF9ydHBfbXA0dl9wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOiAoZ3N0X3J0cF9tcGFfZGVwYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzogKGdzdF9ydHBfbXBhX3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbWFkZXBheS5jOiAoZ3N0X3J0cF9wY21hX2RlcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYXBheS5jOiAoZ3N0X3J0cF9wY21hX3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVkZXBheS5jOiAoZ3N0X3J0cF9wY211X2RlcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtdXBheS5jOiAoZ3N0X3J0cF9wY211X3BheV9jbGFzc19pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzogKGdzdF9ydHBfc3BlZXhfZGVwYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOiAoZ3N0X3J0cF9zcGVleF9wYXlfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6IChnc3RfcnRwZGVjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOiAoZ3N0X2R5bnVkcHNpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3VkcC9nc3R1ZHBzaW5rLmM6IChnc3RfdWRwc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9jbGFzc19pbml0KToKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiAoZ3N0X3dhdmVuY19jbGFzc19pbml0KToKCSAgKiBzeXMvb3NzL2dzdG9zc2RtYWJ1ZmZlci5jOiAoZ3N0X29zc2RtYWJ1ZmZlcl9jbGFzc19pbml0KToKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzogKGdzdF9vc3Nfc2lua19jbGFzc19pbml0KToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9lbGVtZW50LmM6CgkgIChnc3Rfb3N4YXVkaW9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzogKGdzdF9vc3hhdWRpb3NpbmtfY2xhc3NfaW5pdCk6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6IChnc3Rfb3N4YXVkaW9zcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOiAoZ3N0X3N1bmF1ZGlvc2lua19jbGFzc19pbml0KToKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCjIwMDYtMDQtMDggMTk6MDY6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBtb3JlIGJyb2tlbiBHT2JqZWN0IG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvbWlrbW9kL2dzdG1pa21vZC5oOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5oOgoJICBGaXggbW9yZSBicm9rZW4gR09iamVjdCBtYWNyb3MKCjIwMDYtMDQtMDggMTg6NDE6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBicm9rZW4gR09iamVjdCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3hpbmUvZ3N0eGluZS5oOgoJICAqIGdzdC1saWJzL2dzdC9wbGF5L3BsYXkuaDoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyZWxlbWVudC5oOgoJICAqIHN5cy94aW1hZ2VzcmMveGltYWdldXRpbC5oOgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgoyMDA2LTA0LTA4IDE4OjI1OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuaDoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sZW5jLmg6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHRhZy5oOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5oOgoJICAqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmg6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5oOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvZWxlbWVudC5oOgoJICBGaXggYnJva2VuIEdPYmplY3QgbWFjcm9zCgoyMDA2LTA0LTA4IDE4OjIzOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBEb24ndCBtYWtlIHJvdW5kaW5nIGVycm9ycyBpbiB0aW1lc3RhbXAvZHVyYXRpb24gY2FsY3VsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9wcmVwYXJlX2N1cnJlbnRfc2FtcGxlKSwKCSAgKGdzdF9xdGRlbXV4X2NoYWluKSwgKGdzdF9xdGRlbXV4X2FkZF9zdHJlYW0pLCAocXRkZW11eF9kdW1wX3N0c3opLAoJICAocXRkZW11eF9kdW1wX3N0Y28pLCAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRG9uJ3QgbWFrZSByb3VuZGluZyBlcnJvcnMgaW4gdGltZXN0YW1wL2R1cmF0aW9uIGNhbGN1bGF0aW9ucy4KCSAgRml4IHRpbWVzdGFtcHMgZm9yIEFNUiBhbmQgSU1BNC4gIEZpeGVzICgjMzM3NDM2KS4KCSAgQ3JlYXRlIGEgZHVtbXkgc2VnbWVudCBldmVuIHdoZW4gdGhlcmUgaXMgbm8gZWRpdCBsaXN0LgoKMjAwNi0wNC0wOCAxMzowOTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogRG9uJ3QgdHJ5IHRvIHNlZWsgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGZpbGUgKHdvdWxkIG9jY2FzaW9uYWxseSBkaXNwbGF5IGVycm9yIGRpYWxvZ3MgaW4gdG90ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfaGFuZGxlX3NlZWtfZXZlbnQpOgoJICBEb24ndCB0cnkgdG8gc2VlayBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSAod291bGQKCSAgb2NjYXNpb25hbGx5IGRpc3BsYXkgZXJyb3IgZGlhbG9ncyBpbiB0b3RlbSB3aGVuIHNlZWtpbmcKCSAgdG8gdGhlIGVuZCkgKCMzMzU4NjkpLiBXaWxsIHN0aWxsIHRocm93IGFuIGVycm9yIHRob3VnaAoJICBpZiB0aGUgZmlsZSBpcyB0cnVuY2F0ZWQgYW5kIHRoZSB0b3RhbF9zYW1wbGVzIHZhbHVlIGluCgkgIHRoZSBzdHJlYW0gaGVhZGVyIGlzIHdyb25nLgoKMjAwNi0wNC0wNyAxODoxNTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuKjogSWYgdGhlIHN0cmVhbSBoZWFkZXIgZG9lc24ndCBjb250YWluIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2FtcGxlcywgc2VhcmNoIGZvciB0aGUgbGFzdCBmbGFjIGZyYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19jYWxjdWxhdGVfY3JjOCksCgkgIChnc3RfZmxhY19kZWNfc2Nhbl9nb3RfZnJhbWUpLCAoZ3N0X2ZsYWNfZGVjX3NjYW5fZm9yX2xhc3RfYmxvY2spLAoJICAoZ3N0X2ZsYWNfZGVjX21ldGFkYXRhX2NhbGxiYWNrKToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkgIElmIHRoZSBzdHJlYW0gaGVhZGVyIGRvZXNuJ3QgY29udGFpbiB0aGUgdG90YWwgbnVtYmVyIG9mIHNhbXBsZXMsCgkgIHNlYXJjaCBmb3IgdGhlIGxhc3QgZmxhYyBmcmFtZSBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlIGFuZCBjYWxjdWxhdGUKCSAgdGhlIHRvdGFsIGR1cmF0aW9uIGZyb20gdGhhdCBmcmFtZSdzIG9mZnNldCAoZml4ZXMgIzMzNzYwOSkuCgoyMDA2LTA0LTA3IDE1OjUzOjQzICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgVHlwbyBmaXgsIHMvWEZyZWU4Ni9YMTEgYW5kIGFkZGVkIGRvYyBibHVyYiBzYXlpbmcgdGhhdCBpdCBmaXhhdGVzIHRvIDI1ZnBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZXh0L2FtcndiL2FtcndiLWNvZGUvTWFrZWZpbGUuYW06CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuYzogKGdzdF94aW1hZ2VzcmNfcmVjYWxjKSwKCSAgKGdzdF94aW1hZ2VzcmNfY3JlYXRlKSwgKGdzdF94aW1hZ2VzcmNfc2V0X3Byb3BlcnR5KToKCSAgVHlwbyBmaXgsIHMvWEZyZWU4Ni9YMTEgYW5kIGFkZGVkIGRvYyBibHVyYiBzYXlpbmcgdGhhdCBpdCBmaXhhdGVzIHRvCgkgIDI1ZnBzCgoyMDA2LTA0LTA3IDE1OjQ3OjI3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgdGVzdHMvaWNsZXMveGltYWdlc3JjLXRlc3QuYzogQWN0dWFsbHkgYXNzZXJ0IHRoYXQgcGlwZWxpbmUgZ29lcyB0byBwbGF5aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogdGVzdHMvaWNsZXMveGltYWdlc3JjLXRlc3QuYzogKG1haW4pOgoJICBBY3R1YWxseSBhc3NlcnQgdGhhdCBwaXBlbGluZSBnb2VzIHRvIHBsYXlpbmcKCjIwMDYtMDQtMDcgMTU6Mjc6NDAgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBzeXMveGltYWdlc3JjL3hpbWFnZXNyYy5jOiBGaXggdHlwbywgQysrIHN0eWxlIGNvbW1lbnRzIGFuZCBvdGhlciBzbWFsbCBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0wNyAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIHN5cy94aW1hZ2VzcmMveGltYWdlc3JjLmM6IChnc3RfeGltYWdlc3JjX3JlY2FsYyksCgkgIChjb21wb3NpdGVfcGl4ZWwpLCAoZ3N0X3hpbWFnZXNyY194aW1hZ2VfZ2V0KSwKCSAgKGdzdF94aW1hZ2VzcmNfY3JlYXRlKSwgKGdzdF94aW1hZ2VzcmNfc2V0X3Byb3BlcnR5KToKCSAgRml4IHR5cG8sIEMrKyBzdHlsZSBjb21tZW50cyBhbmQgb3RoZXIgc21hbGwgY2xlYW51cHMKCjIwMDYtMDQtMDcgMTA6NDg6MTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IERvbid0IHVucmVmIHRoZSBHc3RQYWRUZW1wbGF0ZSByZXR1cm5lZCBieSBnc3RfZWxlbWVudF9jbGFzc19nZXRfcGFkX3RlbXBsYXRlKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKToKCSAgRG9uJ3QgdW5yZWYgdGhlIEdzdFBhZFRlbXBsYXRlIHJldHVybmVkIGJ5CgkgIGdzdF9lbGVtZW50X2NsYXNzX2dldF9wYWRfdGVtcGxhdGUoKS4KCjIwMDYtMDQtMDYgMTk6MTY6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZGVkIGZ1bGwgZWRpdCBsaXN0IHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2luaXQpLAoJICAoZ3N0X3F0ZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfcXRkZW11eF9maW5kX2luZGV4KSwKCSAgKGdzdF9xdGRlbXV4X2ZpbmRfa2V5ZnJhbWUpLCAoZ3N0X3F0ZGVtdXhfZmluZF9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X21vdmVfc3RyZWFtKSwgKGdzdF9xdGRlbXV4X3BlcmZvcm1fc2VlayksCgkgIChnc3RfcXRkZW11eF9kb19zZWVrKSwgKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXRkZW11eF9hY3RpdmF0ZV9zZWdtZW50KSwKCSAgKGdzdF9xdGRlbXV4X3ByZXBhcmVfY3VycmVudF9zYW1wbGUpLCAoZ3N0X3F0ZGVtdXhfYWR2YW5jZV9zYW1wbGUpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksIChnc3RfcXRkZW11eF9sb29wKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIEFkZGVkIGZ1bGwgZWRpdCBsaXN0IHN1cHBvcnQuCgkgIEF2b2lkIG92ZXJmbG93cyBpbiBwcm9sb2d1ZSBpbWFnZSBkZXRlY3Rpb24gY29kZS4KCSAgQXZvaWQgcm91bmRvZmYgZXJyb3JzIGluIHRpbWVzdGFtcCBjYWxjdWxhdGlvbnMuCgoyMDA2LTA0LTA2IDExOjM1OjI2ICswMDAwICBqXiA8akBib290bGFiLm9yZz4KCgkgIFVuaWZ5IHRoZSBsb25nIGRlc2NyaXB0aW9ucyBpbiB0aGUgcGx1Z2luIGRldGFpbHMgKCMzMzcyNjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IGpeICA8aiBhdCBib290bGFiIGRvdCBvcmc+CgkgICogZXh0L2FtcndiL2dzdGFtcndiZGVjLmM6CgkgICogZXh0L2FtcndiL2dzdGFtcndiZW5jLmM6CgkgICogZXh0L2FtcndiL2dzdGFtcndicGFyc2UuYzoKCSAgKiBleHQvYXJ0cy9nc3RfYXJ0cy5jOgoJICAqIGV4dC9hcnRzZC9nc3RhcnRzZHNpbmsuYzoKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmcGFyc2UuYzoKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmc2luay5jOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzcmMuYzoKCSAgKiBleHQvY2RhdWRpby9nc3RjZGF1ZGlvLmM6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOgoJICAqIGV4dC9kaXZ4L2dzdGRpdnhkZWMuYzoKCSAgKiBleHQvZGl2eC9nc3RkaXZ4ZW5jLmM6CgkgICogZXh0L2R0cy9nc3RkdHNkZWMuYzogKGdzdF9kdHNkZWNfYmFzZV9pbml0KToKCSAgKiBleHQvZmFhYy9nc3RmYWFjLmM6IChnc3RfZmFhY19iYXNlX2luaXQpOgoJICAqIGV4dC9mYWFkL2dzdGZhYWQuYzoKCSAgKiBleHQvZ3NtL2dzdGdzbWRlYy5jOgoJICAqIGV4dC9nc20vZ3N0Z3NtZW5jLmM6CgkgICogZXh0L2hlcm1lcy9nc3RoZXJtZXNjb2xvcnNwYWNlLmM6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZmlsZS5jOgoJICAqIGV4dC9sY3MvZ3N0Y29sb3JzcGFjZS5jOgoJICAqIGV4dC9saWJmYW1lL2dzdGxpYmZhbWUuYzoKCSAgKiBleHQvbGlibW1zL2dzdG1tcy5jOiAoZ3N0X21tc19iYXNlX2luaXQpOgoJICAqIGV4dC9tdXNpY2JyYWluei9nc3R0cm0uYzogKGdzdF9tdXNpY2JyYWluel9iYXNlX2luaXQpOgoJICAqIGV4dC9uYXMvbmFzc2luay5jOiAoZ3N0X25hc3NpbmtfYmFzZV9pbml0KToKCSAgKiBleHQvbmVvbi9nc3RuZW9uaHR0cHNyYy5jOgoJICAqIGV4dC9wb2x5cC9wb2x5cHNpbmsuYzogKGdzdF9wb2x5cHNpbmtfYmFzZV9pbml0KToKCSAgKiBleHQvc2RsL3NkbGF1ZGlvc2luay5jOgoJICAqIGV4dC9zZGwvc2RsdmlkZW9zaW5rLmM6CgkgICogZXh0L3Nob3V0L2dzdHNob3V0LmM6CgkgICogZXh0L3NuYXBzaG90L2dzdHNuYXBzaG90LmM6CgkgICogZXh0L3NuZGZpbGUvZ3N0c2YuYzoKCSAgKiBleHQvdGFya2luL2dzdHRhcmtpbmRlYy5jOgoJICAqIGV4dC90YXJraW4vZ3N0dGFya2luZW5jLmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfYmFzZV9pbml0KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX2Jhc2VfaW5pdCk6CgkgICogZXh0L3h2aWQvZ3N0eHZpZGRlYy5jOgoJICAqIGV4dC94dmlkL2dzdHh2aWRlbmMuYzoKCSAgKiBnc3QvY2R4YXBhcnNlL2dzdGNkeGFwYXJzZS5jOiAoZ3N0X2NkeGFfcGFyc2VfYmFzZV9pbml0KToKCSAgKiBnc3QvY2R4YXBhcnNlL2dzdGNkeGFzdHJpcC5jOiAoZ3N0X2NkeGFzdHJpcF9iYXNlX2luaXQpOgoJICAqIGdzdC9jaGFydC9nc3RjaGFydC5jOgoJICAqIGdzdC9lcXVhbGl6ZXIvZ3N0aWlyZXF1YWxpemVyLmM6IChnc3RfaWlyX2VxdWFsaXplcl9iYXNlX2luaXQpOgoJICAqIGdzdC9mZXN0aXZhbC9nc3RmZXN0aXZhbC5jOgoJICAqIGdzdC9maWx0ZXIvZ3N0aWlyLmM6CgkgICogZ3N0L2ZpbHRlci9nc3RscHdzaW5jLmM6CgkgICogZ3N0L2ZyZWV6ZS9nc3RmcmVlemUuYzoKCSAgKiBnc3QvZ2FtZXMvZ3N0cHV6emxlLmM6IChnc3RfcHV6emxlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L21peG1hdHJpeC9taXhtYXRyaXguYzoKCSAgKiBnc3QvbXBlZzFzeXMvZ3N0bXBlZzFzeXN0ZW1lbmNvZGUuYzoKCSAgKiBnc3QvbXBlZzF2aWRlb3BhcnNlL2dzdG1wMXZpZGVvcGFyc2UuYzoKCSAgKiBnc3QvbXBlZzJzdWIvZ3N0bXBlZzJzdWJ0LmM6CgkgICogZ3N0L21wZWdhdWRpb3BhcnNlL2dzdG1wZWdhdWRpb3BhcnNlLmM6CgkgICogZ3N0L211bHRpZmlsZXNpbmsvZ3N0bXVsdGlmaWxlc2luay5jOgoJICAqIGdzdC9vdmVybGF5L2dzdG92ZXJsYXkuYzoKCSAgKiBnc3QvcGFzc3Rocm91Z2gvZ3N0cGFzc3Rocm91Z2guYzoKCSAgKiBnc3QvcGxheW9uZGVtYW5kL2dzdHBsYXlvbmRlbWFuZC5jOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgKiBnc3QvcnRqcGVnL2dzdHJ0anBlZ2RlYy5jOgoJICAqIGdzdC9ydGpwZWcvZ3N0cnRqcGVnZW5jLmM6CgkgICogZ3N0L3Ntb290aC9nc3RzbW9vdGguYzoKCSAgKiBnc3QvdHRhL2dzdHR0YWRlYy5jOiAoZ3N0X3R0YV9kZWNfYmFzZV9pbml0KToKCSAgKiBnc3QvdHRhL2dzdHR0YXBhcnNlLmM6IChnc3RfdHRhX3BhcnNlX2Jhc2VfaW5pdCk6CgkgICogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSAgKiBnc3QvdmlkZW9kcm9wL2dzdHZpZGVvZHJvcC5jOgoJICAqIGdzdC92aXJ0dWFsZHViL2dzdHhzaGFycGVuLmM6CgkgICogZ3N0L3hpbmdoZWFkZXIvZ3N0eGluZ211eC5jOiAoZ3N0X3hpbmdfbXV4X2Jhc2VfaW5pdCk6CgkgICogZ3N0L3k0bS9nc3R5NG1lbmNvZGUuYzoKCSAgVW5pZnkgdGhlIGxvbmcgZGVzY3JpcHRpb25zIGluIHRoZSBwbHVnaW4gZGV0YWlscyAoIzMzNzI2MykuCgoyMDA2LTA0LTA2IDA5OjE0OjMwICswMDAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJICBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLio6IFVzZSBzcGVjLT5zZWdzaXplIGFuZCBzcGVjLT5zZWd0b3RhbCBpbiB0aGUgcHJlcGFyZSBmdW5jdGlvbiB0byBpbml0aWFsaXNlIHRoZSByaW5nIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBCcmlhbiBDYW1lcm9uICA8YnJpYW4gZG90IGNhbWVyb24gYXQgc3VuIGRvdCBjb20+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOiAoZ3N0X3N1bmF1ZGlvc2lua19pbml0KSwKCSAgKGdzdF9zdW5hdWRpb3NpbmtfcHJlcGFyZSksIChnc3Rfc3VuYXVkaW9zaW5rX3dyaXRlKToKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9zaW5rLmg6CgkgIFVzZSBzcGVjLT5zZWdzaXplIGFuZCBzcGVjLT5zZWd0b3RhbCBpbiB0aGUgcHJlcGFyZSBmdW5jdGlvbgoJICB0byBpbml0aWFsaXNlIHRoZSByaW5nIGJ1ZmZlciBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBidWZmZXItdGltZQoJICBwcm9wZXJ0eSAoIzMzNzQyMSkuCgoyMDA2LTA0LTA2IDA4OjUyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIGNvcmUgcmVxdWlyZW1lbnRzIHRvIENWUyBmb3IgZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uKCkgd2hpY2ggaXMgdXNlZCBieSBzcGVleGRlYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIGNvcmUgcmVxdWlyZW1lbnRzIHRvIENWUyBmb3IgZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uKCkKCSAgd2hpY2ggaXMgdXNlZCBieSBzcGVleGRlYy4KCjIwMDYtMDQtMDUgMTg6Mjc6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvc3BlZXgvOiBGaXggc2Vla2luZyBhbmQgZHVyYXRpb24gcXVlcmllcyAoIzMzNzAzMyk7IGNsZWFuIHVwIGFuZCByZWZhY3RvciBhIGJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4LmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChnc3Rfc3BlZXhfZGVjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NwZWV4X2RlY19yZXNldCksIChnc3Rfc3BlZXhfZGVjX2luaXQpLCAoc3BlZXhfZGVjX2NvbnZlcnQpLAoJICAoc3BlZXhfZ2V0X3NpbmtfcXVlcnlfdHlwZXMpLCAoc3BlZXhfZGVjX3NpbmtfcXVlcnkpLAoJICAoc3BlZXhfZ2V0X3NyY19xdWVyeV90eXBlcyksIChzcGVleF9kZWNfc3JjX3F1ZXJ5KSwKCSAgKHNwZWV4X2RlY19zcmNfZXZlbnQpLCAoc3BlZXhfZGVjX3NpbmtfZXZlbnQpLAoJICAoc3BlZXhfZGVjX2NoYWluX3BhcnNlX2hlYWRlciksIChzcGVleF9kZWNfY2hhaW5fcGFyc2VfY29tbWVudHMpLAoJICAoc3BlZXhfZGVjX2NoYWluX3BhcnNlX2RhdGEpLCAoc3BlZXhfZGVjX2NoYWluKSwKCSAgKGdzdF9zcGVleF9kZWNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9zcGVleF9kZWNfc2V0X3Byb3BlcnR5KSwKCSAgKHNwZWV4X2RlY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5oOgoJICBGaXggc2Vla2luZyBhbmQgZHVyYXRpb24gcXVlcmllcyAoIzMzNzAzMyk7IGNsZWFuIHVwIGFuZAoJICByZWZhY3RvciBhIGJpdC4KCjIwMDYtMDQtMDUgMTI6NDE6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IGRpc3Rpbmd1aXNoIGJldHdlZW4gZGV2aWNlIG5vdCBmb3VuZCBhbmQgY291bGQgbm90IG9wZW4gZm9yIHJlYWRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6CgkgIGRpc3Rpbmd1aXNoIGJldHdlZW4gZGV2aWNlIG5vdCBmb3VuZCBhbmQgY291bGQgbm90IG9wZW4gZm9yCgkgIHJlYWRpbmcKCjIwMDYtMDQtMDUgMDg6MzY6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFVzZSBkdXJhdGlvbiBhcyBzZWdtZW50IHN0b3AgcG9zaXRpb24gaWYgbm9uZSBpcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X3BlcmZvcm1fc2VlayksCgkgIChnc3RfcXRkZW11eF9kb19zZWVrKSwgKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcCk6CgkgIFVzZSBkdXJhdGlvbiBhcyBzZWdtZW50IHN0b3AgcG9zaXRpb24gaWYgbm9uZSBpcwoJICBleHBsaWNpdGx5IGNvbmZpZ3VyZWQuCgkgIEFsc28gcGVyZm9ybSBFT1Mgd2hlbiB3ZSBydW4gcGFzdCB0aGUgc2VnbWVudCBzdG9wLgoKMjAwNi0wNC0wNCAxMToyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogTW9yZSBjbGVhbnVwcywgYWRkZWQgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2dvX2JhY2spLAoJICAoZ3N0X3F0ZGVtdXhfcGVyZm9ybV9zZWVrKSwgKGdzdF9xdGRlbXV4X2RvX3NlZWspLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksIChnc3RfcXRkZW11eF9sb29wKSwKCSAgKGdzdF9xdGRlbXV4X2NoYWluKSwgKHF0ZGVtdXhfcGFyc2VfdHJlZSksIChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBNb3JlIGNsZWFudXBzLCBhZGRlZCBjb21tZW50cy4KCSAgTWFyayBkaXNjb250aW51aXRpZXMgb24gb3V0Z29pbmcgYnVmZmVycy4KCSAgUG9zdCBiZXR0ZXIgZXJyb3JzIHdoZW4gc29tZXRoaW5nIGdvZXMgd3JvbmcuCgkgIEhhbmRsZSBFT1MgYW5kIHNlZ21lbnQgZW5kIHByb3Blcmx5LgoKMjAwNi0wNC0wNCAwODozMToxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguKjogSGFuZGxlIHN0c3MgYm94ZXMgc28gd2UgY2FuIG1hcmsgYW5kIGZpbmQga2V5ZnJhbWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9pbml0KSwKCSAgKGdzdF9xdGRlbXV4X3B1c2hfZXZlbnQpLCAoZ3N0X3F0ZGVtdXhfZ29fYmFjayksCgkgIChnc3RfcXRkZW11eF9wZXJmb3JtX3NlZWspLCAoZ3N0X3F0ZGVtdXhfZG9fc2VlayksCgkgIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwgKHBsdWdpbl9pbml0KSwKCSAgKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSksIChnc3RfcXRkZW11eF9sb29wX3N0YXRlX21vdmllKSwKCSAgKGdzdF9xdGRlbXV4X2xvb3ApLCAoZ3N0X3F0ZGVtdXhfY2hhaW4pLAoJICAocXRkZW11eF9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3F0ZGVtdXhfYWRkX3N0cmVhbSksCgkgIChxdGRlbXV4X3BhcnNlKSwgKHF0ZGVtdXhfcGFyc2VfdHJlZSksIChxdGRlbXV4X3BhcnNlX3RyYWspLAoJICAocXRkZW11eF9wYXJzZV91ZHRhKSwgKHF0ZGVtdXhfdGFnX2FkZF9zdHIpLCAocXRkZW11eF90YWdfYWRkX251bSksCgkgIChxdGRlbXV4X3RhZ19hZGRfZ25yZSksIChnc3RfcXRkZW11eF9oYW5kbGVfZXNkcyk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5oOgoJICBIYW5kbGUgc3RzcyBib3hlcyBzbyB3ZSBjYW4gbWFyayBhbmQgZmluZCBrZXlmcmFtZXMuCgkgIEltcGxlbWVudCBjb3JyZWN0IGFjY3VyYXRlIGFuZCBrZXlmcmFtZSBzZWVraW5nLgoJICBVc2UgX0RFQlVHX09CSkVDVCB3aGVuIHBvc3NpYmxlLgoKMjAwNi0wNC0wMyAxMzoyOToyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDYtMDQtMDMgMTM6Mjg6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3QKCjIwMDYtMDQtMDMgMDk6MDI6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGEgLnBjIGZpbGUgc28gb3RoZXIgbW9kdWxlcyBjYW4gdXNlIGdvb2QgcGx1Z2lucyBpbiB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogcGtnY29uZmlnLy5jdnNpZ25vcmU6CgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItcGx1Z2lucy1nb29kLXVuaW5zdGFsbGVkLnBjLmluOgoJICBhZGQgYSAucGMgZmlsZSBzbyBvdGhlciBtb2R1bGVzIGNhbiB1c2UgZ29vZCBwbHVnaW5zIGluIHRlc3RzCgoyMDA2LTA0LTAxIDE2OjUwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF0ZGVtdXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGFnbGliLnhtbDoKCSogZXh0L3RhZ2xpYi9nc3R0YWdsaWJtdXguYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWQzdjJtdXguYzoKCSAgYWRkIHRhZ2xpYiBjaGVja3MgYW5kIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB0YWdsaWIgY2hlY2tzIGFuZCBkb2NzCgoyMDA2LTA0LTAxIDE1OjMwOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSAgZGlzYWJsZSB1c2Ugb2YgQVNfTElCVE9PTF9UQUdTLCBpdCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHVzZSBvZiBBU19MSUJUT09MX1RBR1MsIGl0IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkKCjIwMDYtMDQtMDEgMTQ6MDM6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFubm9kZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Rpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdka3BpeGJ1Zi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWhhbGVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWlkM2RlbXV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGFkc3BhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JhbGFuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgYWRkaW5nIGluc3BlY3QgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBpbnNwZWN0IGZpbGVzCgoyMDA2LTA0LTAxIDEwOjE1OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2ljbGVzL3hpbWFnZXNyYy10ZXN0LmM6CgkgIDUgc2Vjb25kIHRpbWVvdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDUgc2Vjb25kIHRpbWVvdXQKCjIwMDYtMDQtMDEgMTA6MTQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaWNsZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2ljbGVzL3hpbWFnZXNyYy10ZXN0LmM6CgkgIHJlbmFtZSB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW5hbWUgdGVzdAoKMjAwNi0wNC0wMSAxMDowOToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZXF1YWxpemVyL2dzdGlpcmVxdWFsaXplci5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkqIGdzdC9zcGVjdHJ1bS9nc3RzcGVjdHJ1bS5jOgoJKiBnc3QvdmlkZW9jcm9wL2dzdHZpZGVvY3JvcC5jOgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3cGx1Z2luLmM6CgkqIHN5cy9kaXJlY3Rzb3VuZC9nc3RkaXJlY3Rzb3VuZHBsdWdpbi5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyLmM6CgkqIHN5cy94aW1hZ2UvZ3N0eGltYWdlc3JjLmM6CgkgIHJld29yayBidWlsZDsgYWRkIHRyYW5zbGF0aW9ucyBmb3IgdjRsMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV3b3JrIGJ1aWxkOyBhZGQgdHJhbnNsYXRpb25zIGZvciB2NGwyCgoyMDA2LTA0LTAxIDA5OjU2OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogY2xlYW4gdXAsIHVzZSBBU19WRVJTSU9OIGFuZCBBU19OQU5PCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY2xlYW4gdXAsIHVzZSBBU19WRVJTSU9OIGFuZCBBU19OQU5PCgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9zdGFydCk6CgkgIHVzZSBQQUNLQUdFX1ZFUlNJT04gZGVmaW5lCgkgICogcG8vYWYucG86CgkgICogcG8vYXoucG86CgkgICogcG8vY3MucG86CgkgICogcG8vZW5fR0IucG86CgkgICogcG8vaHUucG86CgkgICogcG8vaXQucG86CgkgICogcG8vbmIucG86CgkgICogcG8vbmwucG86CgkgICogcG8vb3IucG86CgkgICogcG8vc3EucG86CgkgICogcG8vc3IucG86CgkgICogcG8vc3YucG86CgkgICogcG8vdWsucG86CgkgICogcG8vdmkucG86CgkgIHVwZGF0ZWQKCjIwMDYtMDMtMzEgMTc6NTI6MzYgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBBZGQgdGVzdHMgYW5kIGZpeCBQQVIgY2FwcyBpc3N1ZSB0byB4aW1hZ2VzcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDMtMzEgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuYzoKCSAgKGdzdF94aW1hZ2VzcmNfeGltYWdlX2dldCksCgkgIChnc3RfeGltYWdlc3JjX2dldF9jYXBzKSwgKGdzdF94aW1hZ2VzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2V1dGlsLmM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaWNsZXMveGltYWdlc3JjLXRlc3QuYzogKHRlcm1pbmF0ZV9wbGF5YmFjayksIChtYWluKToKCSAgQWRkIHRlc3RzIGFuZCBmaXggUEFSIGNhcHMgaXNzdWUgdG8geGltYWdlc3JjCgoyMDA2LTAzLTMxIDE2OjMyOjQ3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuYzogQWRkIGRvY3MgdG8geGltYWdlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAzLTMxICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuYzoKCSAgQWRkIGRvY3MgdG8geGltYWdlc3JjCgoyMDA2LTAzLTMxIDE1OjIxOjM1ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgc3lzL3hpbWFnZXNyYy86IEZpeCB4aW1hZ2VzcmMgc28gYSkgdGhlIGN1cnNvciBkb2VzbnQgdHJhaWwgYW5kIGIpIHRoZXJlIGFyZSBubyB5ZWxsb3cgcmVjdGFuZ2xlcyB3aXRoIHRoZSBjdXJzb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDMtMzEgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXNyYy5jOiAoY29tcG9zaXRlX3BpeGVsKSwKCSAgKGdzdF94aW1hZ2VzcmNfeGltYWdlX2dldCksIChnc3RfeGltYWdlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfeGltYWdlc3JjX2dldF9jYXBzKSwgKGdzdF94aW1hZ2VzcmNfY2xhc3NfaW5pdCk6CgkgICogc3lzL3hpbWFnZXNyYy94aW1hZ2VzcmMuaDoKCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXV0aWwuYzogKHhpbWFnZXV0aWxfeGNvbnRleHRfZ2V0KToKCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXV0aWwuaDoKCSAgRml4IHhpbWFnZXNyYyBzbyBhKSB0aGUgY3Vyc29yIGRvZXNudCB0cmFpbCBhbmQgYikgdGhlcmUgYXJlIG5vCgkgIHllbGxvdyByZWN0YW5nbGVzIHdpdGggdGhlIGN1cnNvcgoKMjAwNi0wMy0zMCAyMzo0Njo0MiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSogd2luMzIvdnM2L2dzdF9wbHVnaW5zX2dvb2QuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YWxhdy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RhbHBoYS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RhbHBoYWNvbG9yLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGFwZXRhZy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RhdXBhcnNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGF1dG9kZXRlY3QuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0YXZpLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGN1dHRlci5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlZmZlY3R2LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGZseC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rnb29tLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGlkM2RlbXV4LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGludGVybGVhdmUuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0anBlZy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RsZXZlbC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RtYXRyb3NrYS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RtZWRpYW4uZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0bW9ub3Njb3BlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdG11bGF3LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdG11bHRpcGFydC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RydHAuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cnRzcC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RzbXB0ZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RzcGVleC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3R2aWRlb2JhbGFuY2UuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0dmlkZW9ib3guZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0dmlkZW9mbGlwLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHZpZGVvbWl4ZXIuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0d2F2ZW5jLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHdhdnBhcnNlLmRzcDoKCSAgSSdtIHRvbyBsYXp5IHRvIGNvbW1lbnQgdGhpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKMjAwNi0wMy0zMCAyMzozNzoxNiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZXh0XGpwZWdcc21va2Vjb2RlYy5jOiB1c2Ugb2YgR1NUX0RFQlVHIGluc3RlYWQgb2YgREVCVUcoYS4uLikgZm9yIFdJTjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dFxqcGVnXHNtb2tlY29kZWMuYzoKCSAgdXNlIG9mIEdTVF9ERUJVRyBpbnN0ZWFkIG9mIERFQlVHKGEuLi4pIGZvciBXSU4zMgoJICAqIGV4dFxzcGVleFxnc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4ZW5jX3NldF9oZWFkZXJfb25fY2Fwcyk6CgkgIG1vdmUgZmlyc3QgaW5zdHJ1Y3Rpb24gYWZ0ZXIgYWxsIHZhcmlhYmxlcyBkZWNsYXJhdGlvbnMKCSAgKiBnc3RcYWxwaGFcZ3N0YWxwaGEuYzoKCSAgKiBnc3RcZWZmZWN0dlxnc3RzaGFnYWRlbGljLmM6CgkgICogZ3N0XHNtcHRlXHBhaW50LmM6CgkgICogZ3N0XHZpZGVvZmlsdGVyXGdzdHZpZGVvYmFsYW5jZS5jOgoJICBkZWZpbmUgTV9QSSBpZiBpdCdzIG5vdCBkZWZpbmVkIChpdCdzIG5vdCBkZWZpbmVkIG9uIFdJTjMyKQoJICAqIGdzdFxjdXR0ZXJcZ3N0Y3V0dGVyLmM6IChnc3RfY3V0dGVyX2NoYWluKToKCSAgKiBnc3RcaWQzZGVtdXhcaWQzdjJmcmFtZXMuYzogKHBhcnNlX3JlbGF0aXZlX3ZvbHVtZV9hZGp1c3RtZW50X3R3byk6CgkgICogZ3N0XGxldmVsXGdzdGxldmVsLmM6IChnc3RfbGV2ZWxfc2V0X3Byb3BlcnR5KSwgKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICAqIGdzdFxtYXRyb3NrYVxtYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2luZm8pLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3ZpZGVvX2NhcHMpOgoJICAqIGdzdFxtYXRyb3NrYVxtYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfc3RhcnQpLCAoZ3N0X21hdHJvc2thX211eF9maW5pc2gpOgoJICAqIGdzdFx3YXZwYXJzZVxnc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKToKCSAgdXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb25zCgkgICogZ3N0XGdvb21cZmlsdGVycy5jOiAoc2V0UGl4ZWxSR0JfKToKCSAgZml4IGEgZGVidWcgd2hpY2ggd2FzIHVzaW5nIHVuZGVmaW5lZCB2YXJpYWJsZQoJICAqIGdzdFxsZXZlbFxnc3RsZXZlbC5jOiAoZ3N0X2xldmVsX3NldF9jYXBzKSwgKGdzdF9sZXZlbF90cmFuc2Zvcm1faXApOgoJICAqIGdzdFxtYXRyb3NrYVxlYm1sLXJlYWQuYzogKGdzdF9lYm1sX3JlYWRfc2ludCk6CgkgIHJlcGxhY2UgTEwgc3VmZml4IHdpdGggTCBzdWZmaXggKExMIGlzbid0IHN1cHBvcnRlZCBieSBNU1ZDNi4wKQoJICAqIHdpbjMyL3ZzNjoKCSAgYWRkIHZzNiBwcm9qZWN0cyBmaWxlcyBmb3IgbW9zdCBvZiBwbHVnaW5zLWdvb2QKCjIwMDYtMDMtMzAgMTU6Mzc6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBiZXR0ZXIvdW5pZmllZCBsb25nIGRlc2NyaXB0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYWFsaWIvZ3N0YWFzaW5rLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSAgKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSAgKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuYzoKCSAgKiBleHQvY2Rpby9nc3RjZGlvY2RkYXNyYy5jOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOgoJICAqIGV4dC9lc2QvZXNkbW9uLmM6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkgICogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zaW5rLmM6IChnc3RfZ2NvbmZfYXVkaW9fc2lua19iYXNlX2luaXQpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmM6IChnc3RfZ2NvbmZfYXVkaW9fc3JjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6IChnc3RfZ2NvbmZfdmlkZW9fc2lua19iYXNlX2luaXQpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc3JjLmM6IChnc3RfZ2NvbmZfdmlkZW9fc3JjX2Jhc2VfaW5pdCk6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6CgkgICogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc2luay5jOiAoZ3N0X2hhbF9hdWRpb19zaW5rX2Jhc2VfaW5pdCk6CgkgICogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5jOiAoZ3N0X2hhbF9hdWRpb19zcmNfYmFzZV9pbml0KToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZGVjLmM6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzoKCSAgKiBleHQvbGliY2FjYS9nc3RjYWNhc2luay5jOgoJICAqIGV4dC9saWJtbmcvZ3N0bW5nZGVjLmM6CgkgICogZXh0L2xpYm1uZy9nc3RtbmdlbmMuYzoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkgICogZXh0L21pa21vZC9nc3RtaWttb2QuYzoKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSAgKiBleHQvc2hvdXQyL2dzdHNob3V0Mi5jOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6CgkgICogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfYmFzZV9pbml0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkgIChnc3RfYXV0b192aWRlb19zaW5rX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmltdXhfYmFzZV9pbml0KToKCSAgKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOgoJICAqIGdzdC9kZWJ1Zy9icmVha215ZGF0YS5jOgoJICAqIGdzdC9kZWJ1Zy9lZmVuY2UuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSAgKiBnc3QvZGVidWcvbmVnb3RpYXRpb24uYzoKCSAgKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuYzoKCSAgKiBnc3QvZGVidWcvdGVzdHBsdWdpbi5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdGFnaW5nLmM6CgkgICogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdGVkZ2UuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RxdWFyay5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJICAqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSAgKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuYzoKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6CgkgICogZ3N0L2ludGVybGVhdmUvaW50ZXJsZWF2ZS5jOgoJICAqIGdzdC9sYXcvYWxhdy1kZWNvZGUuYzogKGdzdF9hbGF3ZGVjX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2xhdy9hbGF3LWVuY29kZS5jOiAoZ3N0X2FsYXdlbmNfYmFzZV9pbml0KToKCSAgKiBnc3QvbGF3L211bGF3LWRlY29kZS5jOiAoZ3N0X211bGF3ZGVjX2Jhc2VfaW5pdCk6CgkgICogZ3N0L2xhdy9tdWxhdy1lbmNvZGUuYzogKGdzdF9tdWxhd2VuY19iYXNlX2luaXQpOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2Jhc2VfaW5pdCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9iYXNlX2luaXQpOgoJICAqIGdzdC9tZWRpYW4vZ3N0bWVkaWFuLmM6CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSAgKiBnc3Qvb2xkY29yZS9nc3RtZDVzaW5rLmM6CgkgICogZ3N0L29sZGNvcmUvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgICogZ3N0L29sZGNvcmUvZ3N0cGlwZWZpbHRlci5jOgoJICAqIGdzdC9vbGRjb3JlL2dzdHNoYXBlci5jOgoJICAqIGdzdC9vbGRjb3JlL2dzdHN0YXRpc3RpY3MuYzoKCSAgKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY21hcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBwY211ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHBjbXVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkgICogZ3N0L3J0c3AvZ3N0cnRwZGVjLmM6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdGdhbW1hLmM6IChnc3RfZ2FtbWFfYmFzZV9pbml0KToKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb3RlbXBsYXRlLmM6CgkgIChnc3RfdmlkZW90ZW1wbGF0ZV9iYXNlX2luaXQpOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2Jhc2VfaW5pdCk6CgkgIGJldHRlci91bmlmaWVkIGxvbmcgZGVzY3JpcHRpb25zCgkgIEZpeGVkICMzMzY2MDIKCSAgU29tZSBjbGVhbnVwcyB0byBhdXBhcnNlLCBkb24ndCBzZW5kIG11bHRpcGxlIG5ld3NlZ21lbnRzLgoKMjAwNi0wMy0yOSAxNjowNjo1MCArMDAwMCAgTWljaGFlbCBEb21pbmljIEsgPG1ka0BtZGsub3JnLnBsPgoKCSAgZXh0L2R2L2dzdGR2ZGVtdXguKjogU2VlayBpbiBSRUFEWSBwYXRjaC4gT25seSB3b3JrcyBmb3IgcHVsbCBiYXNlZCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRnJvbSBhIHBhdGNoIGJ5OiBNaWNoYWVsIERvbWluaWMgSy4gPG1kayBhdCBtZGsgZG90IG9yZyBkb3QgcGw+CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X2R2ZGVtdXhfcmVzZXQpLCAoZ3N0X2R2ZGVtdXhfc3JjX2NvbnZlcnQpLAoJICAoZ3N0X2R2ZGVtdXhfc2VuZF9ldmVudCksIChnc3RfZHZkZW11eF9mbHVzaCksIChnc3RfZHZkZW11eF9sb29wKSwKCSAgKGdzdF9kdmRlbXV4X3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfZHZkZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4Lmg6CgkgIFNlZWsgaW4gUkVBRFkgcGF0Y2guIE9ubHkgd29ya3MgZm9yIHB1bGwgYmFzZWQgbW9kZS4KCSAgRml4ZXMgIzMyMzg4MAoKMjAwNi0wMy0yNyAxNzowNjo0NSArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5jOgoJICBTbWFsbCBmaXgsIG5vdyBwd2MgZHJpdmVyIGNhbiB0ZWxsIGFib3V0IGl0cyBidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU21hbGwgZml4LCBub3cgcHdjIGRyaXZlciBjYW4gdGVsbCBhYm91dCBpdHMgYnVmZmVycy4KCjIwMDYtMDMtMjcgMTQ6MDk6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogRml4IHR3byBjcmFzaGVyczogZG9uJ3QgdW5yZWYgdGhlIHNhbWUgY2FwcyB0d2ljZSwgYW5kIHNldCBwaXhidWYgbG9hZGVyIHRvIE5VTEwgYWZ0ZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6IChnc3RfZ2RrX3BpeGJ1Zl9mbHVzaCksCgkgIChnc3RfZ2RrX3BpeGJ1Zl9ldmVudCk6CgkgIEZpeCB0d28gY3Jhc2hlcnM6IGRvbid0IHVucmVmIHRoZSBzYW1lIGNhcHMgdHdpY2UsIGFuZAoJICBzZXQgcGl4YnVmIGxvYWRlciB0byBOVUxMIGFmdGVyIGZyZWVpbmcgaXQuCgoyMDA2LTAzLTI3IDE0OjAwOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLio6IERvbid0IGxlYWsgYWRhcHRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IChnc3Rfc3BlZXhlbmNfY2xhc3NfaW5pdCksCgkgIChnc3Rfc3BlZXhlbmNfZmluYWxpemUpLCAoZ3N0X3NwZWV4ZW5jX3Npbmtfc2V0Y2FwcyksCgkgIChnc3Rfc3BlZXhlbmNfY2hhaW4pOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5oOgoJICBEb24ndCBsZWFrIGFkYXB0ZXIuCgkgIEEgcHVzaCAqYWx3YXlzKiB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlciwgZXZlbiBvbgoJICBlcnJvcnMuCgkgIFNtYWxsIGNsZWFudXBzLgoKMjAwNi0wMy0yNiAxOTo1NjozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC90YWdsaWIvZ3N0dGFnbGliLio6IEZpeCBuZXdzZWdtZW50IGV2ZW50IGhhbmRsaW5nIGEgYml0LiBXZSBuZWVkIHRvIGNhY2hlIHRoZSBmaXJzdCBuZXdzZWdtZW50IGV2ZW50LCBiZWNhdXNlIHdlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5jYzoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5oOgoJICBGaXggbmV3c2VnbWVudCBldmVudCBoYW5kbGluZyBhIGJpdC4gV2UgbmVlZCB0bwoJICBjYWNoZSB0aGUgZmlyc3QgbmV3c2VnbWVudCBldmVudCwgYmVjYXVzZSB3ZSBjYW4ndAoJICBhZGp1c3Qgb2Zmc2V0cyB5ZXQgd2hlbiB3ZSBnZXQgaXQsIGFzIHdlIGRvbid0CgkgIGtub3cgdGhlIHNpemUgb2YgdGhlIHRhZyB5ZXQgZm9yIHN1cmUgYXQgdGhhdCBwb2ludC4KCSAgQWxzbyBkbyBzb21lIG1pbm9yIGNsZWFuaW5nIHVwIGhlcmUgYW5kIHRoZXJlIGFuZCBhZGQKCSAgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzLgoKMjAwNi0wMy0yNiAxMjoyNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiBDcmVhdGUgc291cmNlIHBhZCB3aXRob3V0IGxlYWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X2FkZF9zcmNwYWQpOgoJICBDcmVhdGUgc291cmNlIHBhZCB3aXRob3V0IGxlYWtpbmcuCgoyMDA2LTAzLTI1IDIxOjU3OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi9nc3R0YWdsaWIuY2M6IFdlIGRvIG5vdCB3YW50IHRvIHByb3h5IHRoZSBjYXBzIG9uIHRoZSBzaW5rIHBhZDsgb3VyIHNvdXJjZSBwYWQgc2hvdWxkIGhhdmUgYXBwbGljYXRpb24veC1pLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC90YWdsaWIvZ3N0dGFnbGliLmNjOgoJICBXZSBkbyBub3Qgd2FudCB0byBwcm94eSB0aGUgY2FwcyBvbiB0aGUgc2luayBwYWQ7IG91cgoJICBzb3VyY2UgcGFkIHNob3VsZCBoYXZlIGFwcGxpY2F0aW9uL3gtaWQzIGNhcHM7IGFsc28sCgkgIGRvbid0IHVzZSBhbHJlYWR5LWZyZWVkIHN0cmluZ3MgaW4gZGVidWcgbWVzc2FnZXM7CgkgIGZpbmFsbHksIGFkanVzdCBidWZmZXIgb2Zmc2V0cyBvbiBidWZmZXJzIHNlbnQgb3V0LgoKMjAwNi0wMy0yNSAxMzowMjo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy92NGwyL2dzdHY0bDJzcmMuYzogT2xkZXIga2VybmVscyBkb24ndCBzZWVtIHRvIGhhdmUgdGhpcyBwYXJ0aWN1bGFyIHY0bDIgZm9ybWF0LCBzbyBjb21tZW50IG91dCB1bnRpbCB0aGlzIGdldHMgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6CgkgIE9sZGVyIGtlcm5lbHMgZG9uJ3Qgc2VlbSB0byBoYXZlIHRoaXMgcGFydGljdWxhciB2NGwyIGZvcm1hdCwKCSAgc28gY29tbWVudCBvdXQgdW50aWwgdGhpcyBnZXRzIGZpeGVkIHByb3Blcmx5IChhbmQgbWFrZQoJICBidWlsZGJvdHMgaGFwcHkpLgoKMjAwNi0wMy0yNSAwNTozMToyOCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogY29tbW9uOgoJKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmM6CgkqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMmVsZW1lbnQuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ0dW5lci5jOgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJICBKdXN0IG1ha2UgZmV3IHRoaW5ncyBtb3JlIHJvYnVzdCBhbmQgYWxzbyBzb21lIGlkZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBKdXN0IG1ha2UgZmV3IHRoaW5ncyBtb3JlIHJvYnVzdCBhbmQgYWxzbyBzb21lIGlkZW50YXRpb24uCgoyMDA2LTAzLTI0IDE5OjQxOjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2ZsYWMvOiBTcGlmaWZ5IGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfaGFuZGxlX3NlZWtfZXZlbnQpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZW5jLmg6CgkgIFNwaWZpZnkgYSBiaXQuCgkgIEZpeCBkZWFkbHkgbG9jayBvcmRlciBlcnJvciBpbiBzZWVraW5nIGNvZGUsIFNUUkVBTV9MT0NLCgkgIGNhbm5vdCBiZSB0YWtlbiB3aXRoaW4gTE9DSyBhbmQgdGhlIHN0cmVhbWluZyB2YXJpYWJsZXMgYXJlCgkgIHByb3RlY3RlZCB3aXRoIHRoZSBTVFJFQU1fTE9DSyBhbnl3YXkuCgoyMDA2LTAzLTI0IDE4OjU2OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiB0aGlzIHBhdGNoIGNvbWJpbmVzIHRoZSBnbG9iYWwgaW5pdF9mcmFtZXMgd2l0aCB0aGUgc3RyZWFtIGluaXRfZnJhbWVzLiBSYXRpb25hbGUgYmVpbmcgdGhhdCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcGFyc2VfaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fc2NhbiksCgkgIChnc3RfYXZpX2RlbXV4X21hc3NhZ2VfaW5kZXgpLCAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc2Vlayk6CgkgIHRoaXMgcGF0Y2ggY29tYmluZXMgdGhlIGdsb2JhbCBpbml0X2ZyYW1lcyB3aXRoIHRoZSBzdHJlYW0KCSAgaW5pdF9mcmFtZXMuIFJhdGlvbmFsZSBiZWluZyB0aGF0IHRoZSBnbG9iYWwgZGVsYXkgc2hvdWxkCgkgIGJlIHN1YnRyYWN0ZWQgZnJvbSBhbnkgc3RyZWFtIGRlbGF5LgoJICBGaXhlcyAjMzM1ODU4LgoKMjAwNi0wMy0yNCAxNzoxMTo1NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogdXNlIERFQlVHX0ZVTkNQVFIgZm9yIGNvbGxlY3RwYWRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfaW5pdCk6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzogKGdzdF9tdWx0aXBhcnRfbXV4X2luaXQpOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX2luaXQpOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogKGdzdF92aWRlb21peGVyX2luaXQpOgoJICB1c2UgREVCVUdfRlVOQ1BUUiBmb3IgY29sbGVjdHBhZHMKCjIwMDYtMDMtMjQgMDk6NTQ6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvanBlZy9nc3RqcGVnZW5jLmM6IERvbid0IGNyYXNoIHdoZW4gZW5jb2RpbmcgaW1hZ2VzIHdoZXJlIHRoZSBudW1iZXIgb2Ygcm93cyBpc24ndCBhIG11bHRpcGxlIG9mIDIqRENUU0laRS4gQWRkIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOiAoZ3N0X2pwZWdlbmNfaW5pdCksIChnc3RfanBlZ2VuY19jaGFpbik6CgkgIERvbid0IGNyYXNoIHdoZW4gZW5jb2RpbmcgaW1hZ2VzIHdoZXJlIHRoZSBudW1iZXIgb2Ygcm93cyBpc24ndAoJICBhIG11bHRpcGxlIG9mIDIqRENUU0laRS4gQWRkIHNvbWUgR1NUX0RFQlVHX0ZVTkNQVFIuCgoyMDA2LTAzLTIzIDIxOjI4OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgTW9yZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiAoc3BlZXhfZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2ludGVybGVhdmUvZGVpbnRlcmxlYXZlLmM6IChkZWludGVybGVhdmVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9pbnRlcmxlYXZlLmM6IChpbnRlcmxlYXZlX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfY2hhbmdlX3N0YXRlKToKCSAgTW9yZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gZml4ZXMuCgoyMDA2LTAzLTIzIDIwOjEyOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2VzZC9lc2RzaW5rLio6IEZpeCBlc2QgY2hvcHB5IHBsYXliYWNrIGJ5IGNvbmZpZ3VyaW5nIGF1ZGlvc2luayBjb3JyZWN0bHkuIEZpeGVzICMzMjUxOTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9lc2RzaW5rX2dldGNhcHMpLCAoZ3N0X2VzZHNpbmtfb3BlbiksIChnc3RfZXNkc2lua19jbG9zZSksCgkgIChnc3RfZXNkc2lua19wcmVwYXJlKSwgKGdzdF9lc2RzaW5rX3VucHJlcGFyZSksCgkgIChnc3RfZXNkc2lua19kZWxheSksIChnc3RfZXNkc2lua19yZXNldCk6CgkgICogZXh0L2VzZC9lc2RzaW5rLmg6CgkgIEZpeCBlc2QgY2hvcHB5IHBsYXliYWNrIGJ5IGNvbmZpZ3VyaW5nIGF1ZGlvc2luawoJICBjb3JyZWN0bHkuIEZpeGVzICMzMjUxOTEKCjIwMDYtMDMtMjMgMTk6NTc6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB0aHJlYWQtc2FmZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24gdGhyZWFkLXNhZmUuCgoyMDA2LTAzLTIzIDE2OjUwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IERvbid0IHRyeSB0byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmaWxlIGp1c3QgYmVjYXVzZSB0aGUgaGVhZGVyIGNsYWltcyBhIGJpZ2dlciBzaXplLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2dldF91cHN0cmVhbV9zaXplKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpOgoJICBEb24ndCB0cnkgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSBqdXN0IGJlY2F1c2UKCSAgdGhlIGhlYWRlciBjbGFpbXMgYSBiaWdnZXIgc2l6ZSAobGlrZSB3aXRoIHRydW5jYXRlZCBmaWxlcykuCgoyMDA2LTAzLTIzIDE1OjM2OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IERlbGF5IHNvdXJjZSBwYWQgY3JlYXRpb24gdW50aWwgd2UgaGF2ZSB0aGUgZmlyc3QgY2h1bmsgb2YgbWVkaWEgZGF0YSwgc28gdGhlIHdlIGNhbiBleGFtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3BlcmZvcm1fc2VlayksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpLCAoZ3N0X3dhdnBhcnNlX2FkZF9zcmNfcGFkKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1fZGF0YSksIChnc3Rfd2F2cGFyc2VfbG9vcCk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmg6CgkgIERlbGF5IHNvdXJjZSBwYWQgY3JlYXRpb24gdW50aWwgd2UgaGF2ZSB0aGUgZmlyc3QgY2h1bmsgb2YKCSAgbWVkaWEgZGF0YSwgc28gdGhlIHdlIGNhbiBleGFtaW5lIHRoZSBkYXRhIGFuZCBhZGp1c3QgdGhlCgkgIGNhcHMgYWNjb3JkaW5nbHkgaWYgcmVxdWlyZWQuIFRoaXMgbWFrZXMgcGxheWJhY2sgb2YgLndhdgoJICBmaWxlcyB3aXRoIERUUy1kZWNsYXJlZC1hcy1QQ00gY29udGVudCB3b3JrICgjMzEzMjY2KS4KCjIwMDYtMDMtMjIgMTk6NTA6NTYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgYWRkIHZpZGVvYmFsYW5jZSBwbHVnbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHZpZGVvYmFsYW5jZSBwbHVnbgoKMjAwNi0wMy0yMiAxMzowMjoxMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIG1lbnRpb24gZml4ZWQgYnVnIG51bWJlciBpbiB0aGUgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtZW50aW9uIGZpeGVkIGJ1ZyBudW1iZXIgaW4gdGhlIGNoYW5nZWxvZwoKMjAwNi0wMy0yMiAxMzowMDozNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvOiBEb24ndCBhdHRlbXB0IHR5cGVmaW5kaW5nIG9uIHRvby1zaG9ydCBidWZmZXJzIHRoYXQgaGF2ZSBiZWVuIGNvbXBsZXRlbHkgdHJpbW1lZCBhd2F5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X2NoYWluKToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9jaGFpbik6CgkgIERvbid0IGF0dGVtcHQgdHlwZWZpbmRpbmcgb24gdG9vLXNob3J0IGJ1ZmZlcnMgdGhhdCBoYXZlIGJlZW4KCSAgY29tcGxldGVseSB0cmltbWVkIGF3YXkuCgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzogKGlkM2RlbXV4X3JlYWRfaWQzdjJfdGFnKToKCSAgSW1wcm92ZSB0aGUgZGVidWcgb3V0cHV0CgoyMDA2LTAzLTIxIDE4OjEyOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2VzZC9lc2RzaW5rLmM6IFNvbWUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9lc2QvZXNkc2luay5jOiAoZ3N0X2VzZHNpbmtfY2xhc3NfaW5pdCksIChnc3RfZXNkc2lua19pbml0KSwKCSAgKGdzdF9lc2RzaW5rX2ZpbmFsaXplKSwgKGdzdF9lc2RzaW5rX2dldGNhcHMpLCAoZ3N0X2VzZHNpbmtfb3BlbiksCgkgIChnc3RfZXNkc2lua19jbG9zZSksIChnc3RfZXNkc2lua19wcmVwYXJlKSwgKGdzdF9lc2RzaW5rX3dyaXRlKSwKCSAgKGdzdF9lc2RzaW5rX3NldF9wcm9wZXJ0eSksIChnc3RfZXNkc2lua19nZXRfcHJvcGVydHkpOgoJICBTb21lIGNsZWFudXBzLgoJICBSZXNldCBmZCB0byAtMSB3aGVuIHdlIGNsb3NlIHRoZW0uCgoyMDA2LTAzLTIxIDE2OjE5OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiB0aGUgT1BUSU9OUyByZXF1ZXN0IHJlc3VsdCBpcyBvcHRpb25hbCBzbyBkb24ndCBmYWlsIG9uIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19vcGVuKToKCSAgdGhlIE9QVElPTlMgcmVxdWVzdCByZXN1bHQgaXMgb3B0aW9uYWwgc28gZG9uJ3QKCSAgZmFpbCBvbiBpdC4KCjIwMDYtMDMtMjEgMTQ6NTM6MzYgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBnY2MgNC4xIHVucmVmZXJlbmNlZCBwb2ludGVyIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IChnc3RfdGFnX2RlbXV4X3Jlc2V0KToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9yZXNldCk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfY3JlYXRlX3NvdXJjZXBhZCksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpLCAoZ3N0X3dhdnBhcnNlX3NlbmRfZXZlbnQpLAoJICAoZ3N0X3dhdnBhcnNlX2NoYW5nZV9zdGF0ZSk6CgkgIGdjYyA0LjEgdW5yZWZlcmVuY2VkIHBvaW50ZXIgZml4ZXMuCgoyMDA2LTAzLTIxIDEzOjA3OjMxICswMDAwICBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkubXlvaGFuZW5Abm9raWEuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEZpeCBibG9jayBhbGlnbm1lbnQgY2FsY3VsYXRpb24uIEFsaWdubWVudCBzaG91bGQgYmUgZG9uZSBiZWZvcmUgYWRkaW5nIHRoZSBieXRlIG9mZnNldCB3Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiAgPGV4dC10b21taSBkb3QgbXlvaGFuZW4gYXQgbm9raWEgZG90IGNvbT4KCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9wZXJmb3JtX3NlZWspOgoJICBGaXggYmxvY2sgYWxpZ25tZW50IGNhbGN1bGF0aW9uLiBBbGlnbm1lbnQgc2hvdWxkIGJlIGRvbmUgYmVmb3JlCgkgIGFkZGluZyB0aGUgYnl0ZSBvZmZzZXQgd2hlcmUgdGhlIGRhdGEgc3RhcnRzICgjMzM1MjMxKS4KCjIwMDYtMDMtMjAgMTg6MzQ6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzogRW5zdXJlIHRoYXQgd2Ugc2V0IGNvcnJlY3QgY2FwcyBvbiBidWZmZXJzIHRoYXQgYXJlIHRyYW5zZmVycmVkIGRpcmVjdCBmcm9tIHRoZSBpbnB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzogKGdzdF9lYm1sX3dyaXRlX2VsZW1lbnRfcHVzaCk6CgkgIEVuc3VyZSB0aGF0IHdlIHNldCBjb3JyZWN0IGNhcHMgb24gYnVmZmVycyB0aGF0IGFyZSB0cmFuc2ZlcnJlZAoJICBkaXJlY3QgZnJvbSB0aGUgaW5wdXQuCgoyMDA2LTAzLTIwIDE3OjM4OjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nb29tLzogRnJlZSBmaWx0ZXIgZGF0YSB3aGVuIGNsZWFuaW5nIHVwLiAoRml4ZXM6ICMzMzQ5OTUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2ZpbHRlcnMuYzogKHpvb21GaWx0ZXJEZXN0cm95KToKCSAgKiBnc3QvZ29vbS9nb29tX2NvcmUuYzogKGdvb21fY2xvc2UpOgoJICBGcmVlIGZpbHRlciBkYXRhIHdoZW4gY2xlYW5pbmcgdXAuIChGaXhlczogIzMzNDk5NSkKCjIwMDYtMDMtMjAgMDg6NTk6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvdGFnbGliL2dzdHRhZ2xpYi5oOiBGaXggbGVmdC1vdmVyIGdzdF9teV9maWx0ZXJfZ2V0X3R5cGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC90YWdsaWIvZ3N0dGFnbGliLmg6CgkgIEZpeCBsZWZ0LW92ZXIgZ3N0X215X2ZpbHRlcl9nZXRfdHlwZS4KCjIwMDYtMDMtMTcgMTY6MzQ6MzYgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBzeXMveGltYWdlL2dzdHhpbWFnZXNyYy5jOgoJICBIYXZlIGEgc2hvdyBtb3VzZSBwb2ludGVyIHByb3BlcnR5IGFuZCB1c2UgaXQgaWYgd2UgY2FuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBIYXZlIGEgc2hvdyBtb3VzZSBwb2ludGVyIHByb3BlcnR5IGFuZCB1c2UgaXQgaWYgd2UgY2FuCgoyMDA2LTAzLTE3IDE1OjMzOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBjb21waWxlIHVkcCBhbmQgcnRzcCBwbHVnaW5zIG9uIHdpbjMyIChtaW5ndykgb3Igb3RoZXIgc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgPHN5cy9zb2NrZXQuaD4gZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRG9uJ3QgY29tcGlsZSB1ZHAgYW5kIHJ0c3AgcGx1Z2lucyBvbiB3aW4zMiAobWluZ3cpIG9yIG90aGVyCgkgIHN5c3RlbXMgdGhhdCBkb24ndCBoYXZlIDxzeXMvc29ja2V0Lmg+IGZvciBzb21lIHJlYXNvbiAoIzMxNjIwMykuCgoyMDA2LTAzLTE2IDE3OjI4OjA3ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmg6CgkgIENoYW5nZSBidXMgcmVzZXQgaGFuZGxlciBzbyBpdCByZXBvcnRzIHVzZWZ1bCBpbmZvcm1hdGlvbiBzdWNoIGFzIHdoZXRoZXIgdGhlIGRldmljZSBiZWluZyB1c2VkIGNvbm5lY3RlZCBvciBkaXNjb25uZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlIGJ1cyByZXNldCBoYW5kbGVyIHNvIGl0IHJlcG9ydHMgdXNlZnVsIGluZm9ybWF0aW9uIHN1Y2ggYXMKCSAgd2hldGhlciB0aGUgZGV2aWNlIGJlaW5nIHVzZWQgY29ubmVjdGVkIG9yIGRpc2Nvbm5lY3RlZAoKMjAwNi0wMy0xNiAxNjowNjoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBXZSBvbmx5IGNhcmUgYWJvdXQgZ2FpbiBhbmQgcGVhayBkYXRhIGZvciB0aGUgbWFzdGVyIHZvbHVtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6CgkgIChwYXJzZV9yZWxhdGl2ZV92b2x1bWVfYWRqdXN0bWVudF90d28pOgoJICBXZSBvbmx5IGNhcmUgYWJvdXQgZ2FpbiBhbmQgcGVhayBkYXRhIGZvciB0aGUgbWFzdGVyIHZvbHVtZS4KCjIwMDYtMDMtMTYgMTM6MjI6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogUmVhZCByZXBsYXkgZ2FpbiB0YWdzICgjMzIzNzIxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSksCgkgIChwYXJzZV9pZF9zdHJpbmcpLCAocGFyc2VfdW5pcXVlX2ZpbGVfaWRlbnRpZmllciksCgkgIChwYXJzZV9yZWxhdGl2ZV92b2x1bWVfYWRqdXN0bWVudF90d28pLCAoaWQzdjJfdGFnX3RvX3RhZ2xpc3QpOgoJICBSZWFkIHJlcGxheSBnYWluIHRhZ3MgKCMzMjM3MjEpLgoKMjAwNi0wMy0xNSAyMzoxOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCByZXF1aXJlbWVudHMgdG8gZ3N0LXBsdWdpbnMtYmFzZSBDVlMgYmVjYXVzZSBvZiBidWdneSBnc3RfdGFnX2Zyb21faWQzX3VzZXJfdGFnKCkgaW4gMC4xMC41LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgcmVxdWlyZW1lbnRzIHRvIGdzdC1wbHVnaW5zLWJhc2UgQ1ZTIGJlY2F1c2UKCSAgb2YgYnVnZ3kgZ3N0X3RhZ19mcm9tX2lkM191c2VyX3RhZygpIGluIDAuMTAuNS4KCjIwMDYtMDMtMTUgMjI6MzA6MjQgKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9ydHAvZ3N0cnRwcGNtYWRlcGF5LmM6CgkgIEZpeGVkIG9uZSBvZiB0aGUgY2FwcyBpbiB0aGUgY29kZSBmcm9tIG11bGF3IHRvIGFsYXcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXhlZCBvbmUgb2YgdGhlIGNhcHMgaW4gdGhlIGNvZGUgZnJvbSBtdWxhdyB0byBhbGF3LgoKMjAwNi0wMy0xNSAxNjoyMTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvYXBldGFnL2dzdHRhZ2RlbXV4LmM6IEVuc3VyZSB0aGF0IHdlIHNldCBjYXBzIG9uIHRoZSBidWZmZXJzIHdlIHBhc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzogKGdzdF90YWdfZGVtdXhfY2hhaW4pOgoJICBFbnN1cmUgdGhhdCB3ZSBzZXQgY2FwcyBvbiB0aGUgYnVmZmVycyB3ZSBwYXNzLgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X2NoYWluKSwKCSAgKGdzdF9pZDNkZW11eF9zaW5rX2FjdGl2YXRlKToKCSAgRW5zdXJlIHRoYXQgd2Ugc2V0IGNhcHMgb24gdGhlIGJ1ZmZlcnMgd2UgcGFzcy4KCSAgVXNlIFNUUkVBTSwgVFlQRV9OT1RfRk9VTkQgYXMgdGhlIGVycm9yIGNsYXNzIHdoZW4KCSAgdHlwZWZpbmRpbmcgZmFpbHMuCgoyMDA2LTAzLTE1IDE2OjE3OjEyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgRml4IG1lbWxlYWsgd2l0aCBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2luaXQpOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9pbml0KSwgKGdzdF9kdmRlbXV4X2FkZF9wYWRzKToKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogKGdzdF9nZGtfcGl4YnVmX2luaXQpOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19pbml0KSwKCSAgKGdzdF9qcGVnX2RlY19zZXRjYXBzKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6IChnc3RfanBlZ2VuY19pbml0KToKCSAgKiBleHQvanBlZy9nc3RzbW9rZWRlYy5jOiAoZ3N0X3Ntb2tlZGVjX2luaXQpOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6IChnc3Rfc21va2VlbmNfaW5pdCk6CgkgICogZXh0L2xpYm1uZy9nc3RtbmdkZWMuYzogKGdzdF9tbmdkZWNfaW5pdCksCgkgIChnc3RfbW5nZGVjX3NyY19nZXRjYXBzKToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiAoZ3N0X3BuZ2RlY19pbml0KSwKCSAgKGdzdF9wbmdkZWNfY2Fwc19jcmVhdGVfYW5kX3NldCk6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzogKGdzdF9wbmdlbmNfaW5pdCk6CgkgICogZXh0L21pa21vZC9nc3RtaWttb2QuYzogKGdzdF9taWttb2RfaW5pdCk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChnc3Rfc3BlZXhfZGVjX2luaXQpOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOiAoZ3N0X2FscGhhX2luaXQpOgoJICAqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzogKGdzdF9hdV9wYXJzZV9pbml0KToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2luaXQpLAoJICAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKToKCSAgKiBnc3QvY3V0dGVyL2dzdGN1dHRlci5jOiAoZ3N0X2N1dHRlcl9pbml0KToKCSAgKiBnc3QvZGVidWcvZWZlbmNlLmM6IChnc3RfZWZlbmNlX2luaXQpLCAoZ3N0X2VmZW5jZV9nZXRyYW5nZSksCgkgIChnc3RfZWZlbmNlX2NoZWNrZ2V0cmFuZ2UpOgoJICAqIGdzdC9kZWJ1Zy9uZWdvdGlhdGlvbi5jOiAoZ3N0X25lZ290aWF0aW9uX2luaXQpOgoJICAqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6IChnc3RfZmx4ZGVjX2luaXQpOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzogKGdzdF9nb29tX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6IChnc3RfYXN0ZXJpc2toMjYzX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzogKGdzdF9ydHBfTDE2ZGVwYXlfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZwYXkuYzogKGdzdF9ydHBMMTZwYXlfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBhbXJkZXBheS5jOiAoZ3N0X3J0cF9hbXJfZGVwYXlfaW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBkZXBheS5jOiAoZ3N0X3J0cF9kZXBheV9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6IChnc3RfcnRwX21wYV9kZXBheV9pbml0KToKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuYzogKGdzdF9ydHBkZWNfaW5pdCk6CgkgICogZ3N0L3NtcHRlL2dzdHNtcHRlLmM6IChnc3Rfc21wdGVfaW5pdCk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfaW5pdCksCgkgIChnc3Rfd2F2cGFyc2VfY3JlYXRlX3NvdXJjZXBhZCk6CgkgIEZpeCBtZW1sZWFrIHdpdGggZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0KCkuCgkgIFRoaXMgdXNlcyBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSgpIGluc3RlYWQuCgkgIEZpeGVzICMzMzM1MTIKCjIwMDYtMDMtMTUgMTU6MDg6MjAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IExldCdzIG5vdCBmb3JnZXQgdG8gY2hhaW4gdXAgdG8gdGhlIHBhcmVudCBkaXNwb3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9kaXNwb3NlKToKCSAgTGV0J3Mgbm90IGZvcmdldCB0byBjaGFpbiB1cCB0byB0aGUgcGFyZW50IGRpc3Bvc2UuCgoyMDA2LTAzLTE1IDE0OjM5OjI1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBTZXJpZXMgb2YgbWVtbGVhayBmaXhlczoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfcXRkZW11eF9pbml0KSwgKGdzdF9xdGRlbXV4X2Rpc3Bvc2UpLAoJICAoZ3N0X3F0ZGVtdXhfYWRkX3N0cmVhbSksIChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBTZXJpZXMgb2YgbWVtbGVhayBmaXhlczoKCSAgLSBVbnJlZiB0aGUgR3N0QWRhcHRlciBpbiBmaW5hbGl6ZS4KCSAgLSBVc2UgZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUoKSwgc2hvcnRlciBhbmQgc2FmZXIuCgkgIC0gRnJlZSB1bnVzZWQgUXREZW11eFN0cmVhbSB3aGVuIG5vdCB1c2VkLgoKMjAwNi0wMy0xNCAxNzo1NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCAtYmFzZSByZXF1aXJlbWVudCB0byAwLjEwLjUgZm9yIGdzdF90YWdfZnJvbV9pZDNfdXNlcl90YWcoKSwgdXNlZCBieSBpZDNkZW11eC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIC1iYXNlIHJlcXVpcmVtZW50IHRvIDAuMTAuNSBmb3IgZ3N0X3RhZ19mcm9tX2lkM191c2VyX3RhZygpLAoJICB1c2VkIGJ5IGlkM2RlbXV4LgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiAoaWQzZGVtdXhfaWQzdjJfcGFyc2VfZnJhbWUpLAoJICAocGFyc2VfdXNlcl90ZXh0X2lkZW50aWZpY2F0aW9uX2ZyYW1lKSwKCSAgKHBhcnNlX3VuaXF1ZV9maWxlX2lkZW50aWZpZXIpOgoJICBBZGQgc3VwcG9ydCBmb3IgVUZJRCBhbmQgVFhYWCBmcmFtZXMgYW5kIGV4dHJhY3QgbXVzaWNicmFpbnogdGFncy4KCjIwMDYtMDMtMTQgMTc6MjQ6MDMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IEluaXRpYWxpemF0aW9uIG9mIHRoZSBkZWJ1Z2dpbmcgY2F0ZWdvcnkgc2hvdWxkIGJlIGFzIGVhcmx5IGFzIHBvc3NpYmxlLCBtb3ZpbmcgaXQgZnJvbSBfY2xhc3MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF92NGwyc3JjX2NsYXNzX2luaXQpOgoJICBJbml0aWFsaXphdGlvbiBvZiB0aGUgZGVidWdnaW5nIGNhdGVnb3J5IHNob3VsZCBiZSBhcyBlYXJseSBhcyBwb3NzaWJsZSwKCSAgbW92aW5nIGl0IGZyb20gX2NsYXNzX2luaXQoKSB0byBiZWdpbm5pbmcgb2YgX2Jhc2VfaW5pdCgpLgoKMjAwNi0wMy0xNCAxNToyODowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogQ2F0Y2ggc2hvcnQgcmVhZHMsIGxpa2UgdGhleSBtaWdodCBoYXBwZW4gd2l0aCB0cnVuY2F0ZWQgZmlsZXMgKHNlZSAjMzA1Mjc5KTsgcmVtb3ZlIHVubmVjZXNzYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSk6CgkgIENhdGNoIHNob3J0IHJlYWRzLCBsaWtlIHRoZXkgbWlnaHQgaGFwcGVuIHdpdGggdHJ1bmNhdGVkCgkgIGZpbGVzIChzZWUgIzMwNTI3OSk7IHJlbW92ZSB1bm5lY2Vzc2FyeSBpbmRlbnRhdGlvbi4KCjIwMDYtMDMtMTQgMTQ6MTg6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IEZpeCBESUIgaW1hZ2UgaW52ZXJzaW9uIGZvciBwaWN0dXJlcyB3aXRoIGEgZGVwdGggIT0gOCAoIzMwNTI3OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaW52ZXJ0KToKCSAgRml4IERJQiBpbWFnZSBpbnZlcnNpb24gZm9yIHBpY3R1cmVzIHdpdGggYQoJICBkZXB0aCAhPSA4ICgjMzA1Mjc5KS4KCjIwMDYtMDMtMTQgMDk6MjM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvanBlZy9nc3RqcGVnZGVjLio6IEZpeCBkdXJhdGlvbnMgb24gb3V0Z29pbmcgYnVmZmVycyBhZnRlciBzZWVraW5nIGluIE1KUEVHIGZpbGVzICgjMzM0MDgzKTsgc29tZSBtaW5vciBjbGVhbi11cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19jbGFzc19pbml0KSwKCSAgKGdzdF9qcGVnX2RlY19jaGFpbiksIChnc3RfanBlZ19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgIEZpeCBkdXJhdGlvbnMgb24gb3V0Z29pbmcgYnVmZmVycyBhZnRlciBzZWVraW5nCgkgIGluIE1KUEVHIGZpbGVzICgjMzM0MDgzKTsgc29tZSBtaW5vciBjbGVhbi11cHMuCgoyMDA2LTAzLTEzIDE4OjI4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEltcGxlbWVudCBzZWVrIGluIFJFQURZIChyZS1maXhlcyAjMzI3NjU4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9yZXNldCksCgkgIChnc3Rfd2F2cGFyc2VfY2hhbmdlX3N0YXRlKToKCSAgSW1wbGVtZW50IHNlZWsgaW4gUkVBRFkgKHJlLWZpeGVzICMzMjc2NTgpCgoyMDA2LTAzLTEzIDE3OjIyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi9nc3R0YWdsaWIuY2M6IEFkZCBndGstZG9jIGJsdXJiICh1bnVzZWQgZm9yIHRoZSB0aW1lIGJlaW5nKTsgbWF0Y2ggcmVnaXN0ZXJlZCBwbHVnaW4gbmFtZSB0byB0aGUgZmlsZW5hbWUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC90YWdsaWIvZ3N0dGFnbGliLmNjOgoJICBBZGQgZ3RrLWRvYyBibHVyYiAodW51c2VkIGZvciB0aGUgdGltZSBiZWluZyk7IG1hdGNoIHJlZ2lzdGVyZWQKCSAgcGx1Z2luIG5hbWUgdG8gdGhlIGZpbGVuYW1lIG9mIHRoZSBwbHVnaW4gKHRhZ2xpYm11eCA9PiB0YWdsaWIpCgoyMDA2LTAzLTEzIDE1OjQ5OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2xvc2UgIzMzMzc4NCB1bnJlZiB0aGUgcmVzdWx0IG9mIGdzdF9wYWRfZ2V0X3BhcmVudCgpIGJ5OiBDaHJpc3RvcGhlIEZlcmdlYXUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9zZXRjYXBzKToKCSAgKiBleHQvZXNkL2VzZG1vbi5jOiAoZ3N0X2VzZG1vbl9nZXQpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzogKGdzdF9mbGFjX3RhZ19jaGFpbik6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6IChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X2dka19waXhidWZfc2lua19nZXRjYXBzKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6IChnc3RfanBlZ2VuY19nZXRjYXBzKSwKCSAgKGdzdF9qcGVnZW5jX3NldGNhcHMpOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZGVjLmM6IChnc3Rfc21va2VkZWNfY2hhaW4pOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6IChnc3Rfc21va2VlbmNfZ2V0Y2FwcyksCgkgIChnc3Rfc21va2VlbmNfc2V0Y2Fwcyk6CgkgICogZXh0L2xpYm1uZy9nc3RtbmdkZWMuYzogKGdzdF9tbmdkZWNfc2lua2xpbmspLAoJICAoZ3N0X21uZ2RlY19zcmNfZ2V0Y2Fwcyk6CgkgICogZXh0L2xpYm1uZy9nc3RtbmdlbmMuYzogKGdzdF9tbmdlbmNfc2lua2xpbmspLAoJICAoZ3N0X21uZ2VuY19jaGFpbik6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdlbmMuYzogKGdzdF9wbmdlbmNfc2V0Y2Fwcyk6CgkgICogZXh0L21pa21vZC9nc3RtaWttb2QuYzogKGdzdF9taWttb2Rfc3JjbGluayk6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfY29udmVydCksCgkgIChzcGVleF9kZWNfc3JjX2V2ZW50KSwgKHNwZWV4X2RlY19jaGFpbik6CgkgICogZ3N0L2F2aS9nc3RhdmltdXguYzogKGdzdF9hdmltdXhfdmlkc2lua2Nvbm5lY3QpLAoJICAoZ3N0X2F2aW11eF9hdWRzaW5rY29ubmVjdCksIChnc3RfYXZpbXV4X2hhbmRsZV9ldmVudCk6CgkgICogZ3N0L2RlYnVnL25lZ290aWF0aW9uLmM6IChnc3RfbmVnb3RpYXRpb25fZ2V0Y2FwcyksCgkgIChnc3RfbmVnb3RpYXRpb25fcGFkX2xpbmspLCAoZ3N0X25lZ290aWF0aW9uX2NoYWluKToKCSAgKiBnc3QvZmx4L2dzdGZseGRlYy5jOiAoZ3N0X2ZseGRlY19zcmNfcXVlcnlfaGFuZGxlciksCgkgIChnc3RfZmx4ZGVjX2NoYWluKToKCSAgKiBnc3QvaW50ZXJsZWF2ZS9kZWludGVybGVhdmUuYzogKGRlaW50ZXJsZWF2ZV9zaW5rX2xpbmspLAoJICAoZGVpbnRlcmxlYXZlX2NoYWluKToKCSAgKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOiAobXVsYXdlbmNfc2V0Y2Fwcyk6CgkgICogZ3N0L21lZGlhbi9nc3RtZWRpYW4uYzogKGdzdF9tZWRpYW5fbGluayk6CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzogKGdzdF9tb25vc2NvcGVfc3JjY29ubmVjdCksCgkgIChnc3RfbW9ub3Njb3BlX2NoYWluKToKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOiAoZ3N0X3J0cEwxNnBheV9zaW5rY29ubmVjdCk6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfc2lua19zZXRjYXBzKToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmM6IChnc3Rfb3N4YXVkaW9zaW5rX2NoYWluKToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuYzogKGdzdF9vc3hhdWRpb3NyY19nZXQpOgoJICBjbG9zZSAjMzMzNzg0IHVucmVmIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9nZXRfcGFyZW50KCkKCSAgYnk6IENocmlzdG9waGUgRmVyZ2VhdS4KCjIwMDYtMDMtMTMgMTA6MDU6MDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgRml4IGJ1aWxkIG9mIHY0bDIgKHNpZ2gpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAzLTEzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRlY2wtbGlzdC50eHQ6CgkgICogc3lzL3Y0bDIvTWFrZWZpbGUuYW06IEZpeCBidWlsZCBvZiB2NGwyIChzaWdoKQoKMjAwNi0wMy0xMiAxNTozMzowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzogZ19hdG9taWNfaW50X3NldCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBnbGliLTAuMTAsIHVzZSBnc3RfYXRvbWljX2ludF9ldCBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19jYXB0dXJlX2luaXQpLAoJICAoZ3N0X3Y0bDJzcmNfYnVmZmVyX3Bvb2xfZnJlZSk6CgkgIGdfYXRvbWljX2ludF9zZXQgaXMgb25seSBhdmFpbGFibGUgaW4gZ2xpYi0wLjEwLCB1c2UgZ3N0X2F0b21pY19pbnRfZXQKCSAgaW5zdGVhZC4KCjIwMDYtMDMtMTIgMTU6MjU6NTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBzeXMvdjRsMi9nc3R2NGwyZWxlbWVudC5oOiBSZW1vdmUgdGltJ3MgYWRkaXRpb24gb2YgIl9zdGRpbnQuaCIgc2luY2UgaXQgZG9lc24ndCBtYWtlIHRoZSBQUEMgYnVpbGRib3QgaGFwcHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJlbGVtZW50Lmg6CgkgIFJlbW92ZSB0aW0ncyBhZGRpdGlvbiBvZiAiX3N0ZGludC5oIiBzaW5jZSBpdCBkb2Vzbid0IG1ha2UgdGhlIFBQQwoJICBidWlsZGJvdCBoYXBweS4KCSAgSSB3aWxsIGp1c3QgdXNlIHRoZSBzYW1lIGNvbW1lbnQgUm9uYWxkIHVzZWQgd2hlbiBoZSBhZGRlZCB0aGVzZSBsaW5lczoKCSAgWWV0IEFub3RoZXIgSGFjayAodG0pIGZvciBrZXJuZWwgaGVhZGVyIGJvcmtlZG5lc3MuCgoyMDA2LTAzLTEyIDE1OjAyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3RhZ2xpYi86IEFkZCBzdXBwb3J0IGZvciB3cml0aW5nIE11c2ljQnJhaW56IElEcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3RhZ2xpYi9NYWtlZmlsZS5hbToKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5jYzoKCSAgKiBleHQvdGFnbGliL2dzdHRhZ2xpYi5oOgoJICBBZGQgc3VwcG9ydCBmb3Igd3JpdGluZyBNdXNpY0JyYWlueiBJRHMuCgoyMDA2LTAzLTEyIDE0OjQzOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL3Y0bDIvZ3N0djRsMmVsZW1lbnQuaDogSW5jbHVkZSAiX3N0ZGludC5oIiBpbiBhbiBhdHRlbXB0IHRvIG1ha2UgdGhlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy92NGwyL2dzdHY0bDJlbGVtZW50Lmg6CgkgIEluY2x1ZGUgIl9zdGRpbnQuaCIgaW4gYW4gYXR0ZW1wdCB0byBtYWtlIHRoZQoJICBQUEMtYnVpbGRib3QgaGFwcHkuCgoyMDA2LTAzLTExIDIyOjUwOjAzICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBzeXMvdjRsMi9NYWtlZmlsZS5hbToKCSogc3lzL3Y0bDIvZ3N0djRsMi5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyY29sb3JiYWxhbmNlLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJlbGVtZW50LmM6CgkqIHN5cy92NGwyL2dzdHY0bDJlbGVtZW50Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJzcmMuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnR1bmVyLmg6CgkqIHN5cy92NGwyL2dzdHY0bDJ4b3ZlcmxheS5jOgoJKiBzeXMvdjRsMi9nc3R2NGwyeG92ZXJsYXkuaDoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5jOgoJKiBzeXMvdjRsMi92NGwyX2NhbGxzLmg6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMnNyY19jYWxscy5oOgoJICBWNEwyIHBvcnRlZCB0byAwLjEwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVjRMMiBwb3J0ZWQgdG8gMC4xMC4KCjIwMDYtMDMtMTEgMTA6NTg6MDggKzAwMDAgIEFsZXggTGFuY2FzdGVyIDxhbGV4bGFuQGZlZG9yYXByb2plY3Qub3JnPgoKCSAgZXh0L3RhZ2xpYi9nc3R0YWdsaWIuY2M6IGFuZCBhZGQgc3VwcG9ydCBmb3IgVENPUCAoY29weXJpZ2h0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMy0xMSAgQ2hyaXN0b3BoZSBGZXJnZWF1ICA8dGV1ZkBnbm9tZS5vcmc+CgkgIFBhdGNoIGJ5OiBBbGV4IExhbmNhc3RlcgoJICAqIGV4dC90YWdsaWIvZ3N0dGFnbGliLmNjOiBmaXggd3JpdGluZyBvZiBUUE9TIHRhZ3MgKGFsYnVtIG51bWJlciksCgkgIGFuZCBhZGQgc3VwcG9ydCBmb3IgVENPUCAoY29weXJpZ2h0KQoKMjAwNi0wMy0wOSAyMDowMjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IGJ1aWxkIHdpdGggZ2NjLTQuMSAoIzMyNzM1NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X3NlbmRfZXZlbnQpOgoJICBGaXggYnVpbGQgd2l0aCBnY2MtNC4xICgjMzI3MzU1KS4KCjIwMDYtMDMtMDkgMTc6NDQ6MTcgKzAwMDAgIENocmlzdG9waGUgRmVyZ2VhdSA8dGV1ZkBnbm9tZS5vcmc+CgoJICBuZXcgaWQzdjIgbXV4ZXIgYmFzZWQgb24gVGFnTGliCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAzLTA5ICBDaHJpc3RvcGhlIEZlcmdlYXUgIDx0ZXVmQGdub21lLm9yZz4KCSAgcmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICAqIGV4dC90YWdsaWIvTWFrZWZpbGUuYW06CgkgICogZXh0L3RhZ2xpYi9nc3R0YWdsaWIuY2M6CgkgICogZXh0L3RhZ2xpYi9nc3R0YWdsaWIuaDogbmV3IGlkM3YyIG11eGVyIGJhc2VkIG9uIFRhZ0xpYgoKMjAwNi0wMy0wOSAxMTo0NzozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGV4dC9kdi9nc3RkdmRlbXV4LmM6IEhhbmRsZSBldmVudHMgaW4gcHVzaCBtb2RlIGJldHRlciwgY2FuIG5vdyBkbyBub24tZmx1c2hpbmcgc2Vla3MgaW4gcHVzaCBtb2RlIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9oYW5kbGVfc2lua19ldmVudCksCgkgIChnc3RfZHZkZW11eF9jb252ZXJ0X3NlZ21lbnQpLCAoZ3N0X2R2ZGVtdXhfZGVtdXhfZnJhbWUpOgoJICBIYW5kbGUgZXZlbnRzIGluIHB1c2ggbW9kZSBiZXR0ZXIsIGNhbiBub3cgZG8gbm9uLWZsdXNoaW5nCgkgIHNlZWtzIGluIHB1c2ggbW9kZSBhcyB3ZWxsLgoKMjAwNi0wMy0wOCAxMjoxNjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRXh0cmFjdCBkaXNjIG51bWJlciBhbmQgY291bnQgZnJvbSBmaWxlcyB0aGF0IHVzZSAnZGlzaycgaW5zdGVhZCBvZiAnZGlzYycgYXMgbm9kZSBpZGVudGlmaWVyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3VkdGEpOgoJICBFeHRyYWN0IGRpc2MgbnVtYmVyIGFuZCBjb3VudCBmcm9tIGZpbGVzIHRoYXQgdXNlCgkgICdkaXNrJyBpbnN0ZWFkIG9mICdkaXNjJyBhcyBub2RlIGlkZW50aWZpZXIgZm9yIHRoYXQKCSAgKGZpeGVzICMzMzIwNjYpLgoKMjAwNi0wMy0wNyAxNzozMTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOiBBcHBsaWVkIHBhdGNoIGZyb20gS2FpIFZlaG1hbmVuLCBmaXhlcyAjMzMzNjI0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzogKGdzdF9keW51ZHBzaW5rX2NsYXNzX2luaXQpOgoJICBBcHBsaWVkIHBhdGNoIGZyb20gS2FpIFZlaG1hbmVuLCBmaXhlcyAjMzMzNjI0LgoKMjAwNi0wMy0wNiAyMjoyMjo0NSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiBJbXBsZW1lbnQgcGFsZXR0ZWQgYW5kIGdyYXlzY2FsZSBwbmcgZmlsZXMgaGFuZGxpbmcuICgjMTUwMzYzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDMtMDYgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiAoZ3N0X3BuZ2RlY19jYXBzX2NyZWF0ZV9hbmRfc2V0KToKCSAgSW1wbGVtZW50IHBhbGV0dGVkIGFuZCBncmF5c2NhbGUgcG5nIGZpbGVzIGhhbmRsaW5nLgoJICAoIzE1MDM2MykuCgoyMDA2LTAzLTA2IDAwOjEwOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiBmaXggYSB0YWcgbGlzdCBhc3NlcnQgZm9sbG93IGdzdC1wbHVnaW5zLWJhc2UvZXh0L29nZy9SRUFETUU7IHNldCBPRkZTRVQgYW5kIE9GRlNFVF9FTkQuICBNdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogKGdzdF9zcGVleGVuY19zZXRfaGVhZGVyX29uX2NhcHMpLAoJICAoZ3N0X3NwZWV4ZW5jX2NoYWluKToKCSAgZml4IGEgdGFnIGxpc3QgYXNzZXJ0CgkgIGZvbGxvdyBnc3QtcGx1Z2lucy1iYXNlL2V4dC9vZ2cvUkVBRE1FOyBzZXQgT0ZGU0VUCgkgIGFuZCBPRkZTRVRfRU5ELiAgTXV4ZXMgY29ycmVjdGx5IHdpdGggZ3N0LXBsdWdpbnMtYmFzZQoJICA+IDAuOS4zCgoyMDA2LTAzLTA1IDEzOjAzOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgc3VwcG9ydCBmb3IgJzNJVkQnIGZvdXJjYyAoIzMzMzQwMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfdmlkZW9fY2Fwcyk6CgkgIEFkZCBzdXBwb3J0IGZvciAnM0lWRCcgZm91cmNjICgjMzMzNDAzKS4KCjIwMDYtMDMtMDQgMjA6MTE6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvOiBVc2UgbmV3IHR5cGVmaW5kIGhlbHBlciBmdW5jdGlvbnMgaGVyZSBhcyB3ZWxsLCBhbmQgZG8gdHlwZWZpbmRpbmcgaW4gcHVsbC1tb2RlIGlmIHVwc3RyZWFtIHN1cHBvcnRzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L01ha2VmaWxlLmFtOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5jOiAoZ3N0X2lkM2RlbXV4X2FkZF9zcmNwYWQpLAoJICAoZ3N0X2lkM2RlbXV4X2NoYWluKSwgKGdzdF9pZDNkZW11eF9zaW5rX2FjdGl2YXRlKToKCSAgVXNlIG5ldyB0eXBlZmluZCBoZWxwZXIgZnVuY3Rpb25zIGhlcmUgYXMgd2VsbCwgYW5kCgkgIGRvIHR5cGVmaW5kaW5nIGluIHB1bGwtbW9kZSBpZiB1cHN0cmVhbSBzdXBwb3J0cyB0aGF0LgoKMjAwNi0wMy0wNCAxODo1NzozNyArMDAwMCAgQmVuamFtaW4gUGluZWF1IDxiZW4ucGluZWF1QGdtYWlsLmNvbT4KCgkgIHN5cy9zdW5hdWRpby86IFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLCBicmVha3MgYnVpbGQgZnJvbSBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl9jdHJsX2dldF92b2x1bWUpLAoJICAoZ3N0X3N1bmF1ZGlvbWl4ZXJfY3RybF9zZXRfdm9sdW1lKToKCSAgKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcnRyYWNrLmM6CgkgIChnc3Rfc3VuYXVkaW9taXhlcl90cmFja19uZXcpOgoJICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcywgYnJlYWtzIGJ1aWxkIGZyb20gQ1ZTCgkgIHdpdGggLVdlcnJvciAoIzMzMzM5MiwgcGF0Y2ggYnk6IEJlbmphbWluIFBpbmVhdSkKCjIwMDYtMDMtMDMgMjM6NDU6MjMgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHN5cy86IHNpbmtzIGFyZSBub3cgdXNpbmcgR1NUX1JBTktfUFJJTUFSWSB0byBiZSB1c2VkIHdpdGggYXV0b2RlY3RlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL2RpcmVjdGRyYXc6CgkgICogc3lzL2RpcmVjdHNvdW5kOgoJICBzaW5rcyBhcmUgbm93IHVzaW5nIEdTVF9SQU5LX1BSSU1BUlkgdG8gYmUgdXNlZCB3aXRoIGF1dG9kZWN0ZWN0aW9uCgkgICogd2luMzIvdnM2OgoJICBwcm9qZWN0IGZpbGVzIHVwZGF0ZWQgdG8gZml4IHNvbWUgYnVncwoJICAqIHdpbjMyL3ZzNzoKCSAgKiB3aW4zMi92czg6CgkgIHZzNyBhbmQgdnM4IHByb2plY3QgZmlsZXMgYWRkZWQKCjIwMDYtMDMtMDMgMTg6MzY6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGRlZCB3YXZwYXJzZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIHdhdnBhcnNlIGRvY3MuCgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfY2xhc3NfaW5pdCksCgkgIChnc3Rfd2F2cGFyc2VfcmVzZXQpLCAoZ3N0X3dhdnBhcnNlX2luaXQpLAoJICAoZ3N0X3dhdnBhcnNlX2NyZWF0ZV9zb3VyY2VwYWQpLCAoZ3N0X3dhdnBhcnNlX3BhcnNlX2ZpbGVfaGVhZGVyKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faW5pdCksIChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc2VuZF9ldmVudCksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLCAoZ3N0X3dhdnBhcnNlX2xvb3ApLAoJICAoZ3N0X3dhdnBhcnNlX3NyY3BhZF9ldmVudCksIChnc3Rfd2F2cGFyc2Vfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF93YXZwYXJzZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJICBJbXBsZW1lbnQgc2VlayBpbiBSRUFEWSAoZml4ZXMgIzMyNzY1OCkKCSAgQWRkZWQgZG9jcyBhbmQgZGlkIHNvbWUgY2xlYW51cHMuCgoyMDA2LTAzLTAzIDE3OjUxOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC4qOiBJZiB3ZSBoYXZlIGFuIGluZGV4LCB1c2UgYSBkdXJhdGlvbiBiYXNlZCBvbiB0aGUgaW5kZXggaW5zdGVhZCBvZiBibGluZGx5IHRydXN0aW5nIHRoZSBpbmZvcm1hLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpLCAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdHJlYW0pLAoJICAoZ3N0X2F2aV9kZW11eF9jYWxjdWxhdGVfZHVyYXRpb25zX2Zyb21faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4Lmg6CgkgIElmIHdlIGhhdmUgYW4gaW5kZXgsIHVzZSBhIGR1cmF0aW9uIGJhc2VkIG9uIHRoZSBpbmRleCBpbnN0ZWFkCgkgIG9mIGJsaW5kbHkgdHJ1c3RpbmcgdGhlIGluZm9ybWF0aW9uIGluIHRoZSBzdHJlYW0gaGVhZGVycwoJICAoZml4ZXMgIzMzMTgxNykuCgoyMDA2LTAzLTAzIDE1OjUwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogQWRkZWQgc21va2UgYW5kIGpwZWcgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgQWRkZWQgc21va2UgYW5kIGpwZWcgdG8gdGhlIGRvY3MuCgkgICogZXh0L2pwZWcvTWFrZWZpbGUuYW06CgkgICogZXh0L2pwZWcvZ3N0anBlZy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19jaGFpbik6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5oOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZGVjLmM6IChnc3Rfc21va2VkZWNfaW5pdCksCgkgIChnc3Rfc21va2VkZWNfY2hhaW4pOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZGVjLmg6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19jaGFpbik6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuaDoKCSAgKiBleHQvanBlZy9zbW9rZWNvZGVjLmg6CgkgIFBvcnQgc21va2VkZWMgKGZpeGVzICMzMzE5MDUpLgoJICBBZGRlZCBzb21lIGRvY3MuCgkgIFNvbWUgY2xlYW51cHMuCgoyMDA2LTAzLTAzIDE0OjM5OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zLzogQWRkZWQgdmlkZW9iYWxhbmNlIGFuZCB2aWRlb2ZsaXAgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgQWRkZWQgdmlkZW9iYWxhbmNlIGFuZCB2aWRlb2ZsaXAgdG8gdGhlIGRvY3MuCgkgICogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuYzoKCSAgKGdzdF92aWRlb19iYWxhbmNlX3VwZGF0ZV90YWJsZXNfcGxhbmFyNDExKSwKCSAgKGdzdF92aWRlb19iYWxhbmNlX2lzX3Bhc3N0aHJvdWdoKSwKCSAgKGdzdF92aWRlb19iYWxhbmNlX3VwZGF0ZV9wcm9wZXJ0aWVzKSwgKG9pbF90YWJsZWxvb2t1cF91OCksCgkgIChnc3RfdmlkZW9fYmFsYW5jZV9wbGFuYXI0MTFfaXApLCAoZ3N0X3ZpZGVvX2JhbGFuY2Vfc2V0X2NhcHMpLAoJICAoZ3N0X3ZpZGVvX2JhbGFuY2VfdHJhbnNmb3JtX2lwKSwgKGdzdF92aWRlb19iYWxhbmNlX2Jhc2VfaW5pdCksCgkgIChnc3RfdmlkZW9fYmFsYW5jZV9maW5hbGl6ZSksIChnc3RfdmlkZW9fYmFsYW5jZV9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb19iYWxhbmNlX2luaXQpLCAoZ3N0X3ZpZGVvX2JhbGFuY2VfaW50ZXJmYWNlX3N1cHBvcnRlZCksCgkgIChnc3RfdmlkZW9fYmFsYW5jZV9pbnRlcmZhY2VfaW5pdCksCgkgIChnc3RfdmlkZW9fYmFsYW5jZV9jb2xvcmJhbGFuY2VfbGlzdF9jaGFubmVscyksCgkgIChnc3RfdmlkZW9fYmFsYW5jZV9jb2xvcmJhbGFuY2Vfc2V0X3ZhbHVlKSwKCSAgKGdzdF92aWRlb19iYWxhbmNlX2NvbG9yYmFsYW5jZV9nZXRfdmFsdWUpLAoJICAoZ3N0X3ZpZGVvX2JhbGFuY2VfY29sb3JiYWxhbmNlX2luaXQpLAoJICAoZ3N0X3ZpZGVvX2JhbGFuY2Vfc2V0X3Byb3BlcnR5KSwgKGdzdF92aWRlb19iYWxhbmNlX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfdmlkZW9fYmFsYW5jZV9nZXRfdHlwZSksIChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5oOgoJICBQb3J0ZWQgdG8gMC4xMC4gKEZpeGVzICMzMjYxNjApCgkgIEFkZGVkIGRvY3MuCgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuaDoKCSAgQWRkZWQgZG9jcy4KCjIwMDYtMDMtMDMgMTE6MDc6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFVzZSBHU1RfV0FSTklORyBpbnN0ZWFkIG9mIEdTVF9FUlJPUiBmb3IgYWxsIHRoZSB0b28gc2hvcnQvbG9uZyBhdG9tcyB3aGVuIHBhcnNpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKHF0ZGVtdXhfcGFyc2UpLCAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgVXNlIEdTVF9XQVJOSU5HIGluc3RlYWQgb2YgR1NUX0VSUk9SIGZvciBhbGwgdGhlIHRvbyBzaG9ydC9sb25nIGF0b21zCgkgIHdoZW4gcGFyc2luZy4KCSAgQWxzbyBsZXQncyBiZSBhIGJpdCBsZXNzIHZ1bGdhciBpbiBvdXIgd2FybmluZyBtZXNzYWdlcyA6KQoKMjAwNi0wMy0wMiAxNToxNDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCByZXF1aXJlbWVudHMgdG8gY3VycmVudCBjb3JlIGFuZCAtYmFzZSBDVlMgKGNvcmUgZm9yIG5ldyB0eXBlZmluZCBoZWxwZXIgQVBJLCBhbmQgLWJhc2UgZm9yIHRoZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgcmVxdWlyZW1lbnRzIHRvIGN1cnJlbnQgY29yZSBhbmQgLWJhc2UgQ1ZTCgkgIChjb3JlIGZvciBuZXcgdHlwZWZpbmQgaGVscGVyIEFQSSwgYW5kIC1iYXNlIGZvciB0aGUKCSAgV0FWRk9STUFURVggc3VwcG9ydCB0aGF0IHdhcyBhZGRlZCB0byBsaWJnc3RyaWZmIGFuZAoJICBpcyBuZWVkZWQgYnkgd2F2cGFyc2UpLgoJICAqIGdzdC9hcGV0YWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2FwZXRhZy9nc3R0YWdkZW11eC5jOiAoZ3N0X3RhZ19kZW11eF9jaGFpbiksCgkgIChnc3RfdGFnX2RlbXV4X3NpbmtfYWN0aXZhdGUpOgoJICBVc2UgbmV3IHR5cGVmaW5kIGhlbHBlcnMgZm9yIHR5cGVmaW5kaW5nIGluc3RlYWQgb2Ygb3VyCgkgIGhvbWUtZ3Jvd24gc3R1ZmY7IGFsc28sIGRvIHR5cGVmaW5kaW5nIGluIHB1bGwtbW9kZSBpZgoJICB1cHN0cmVhbSBzdXBwb3J0cyB0aGF0LgoKMjAwNi0wMi0yOCAxMTo1OTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQ2FuJ3QgZGl2aWRlIHRocm91Z2ggemVybyAoc3VwcHJlc3Mgd2FybmluZyBpbiBjYXNlIG9mIHN0cmVhbSB3aXRoIG9uZSBzaW5nbGUgc3RpbGwgcGljdHVyZSkgKC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBDYW4ndCBkaXZpZGUgdGhyb3VnaCB6ZXJvIChzdXBwcmVzcyB3YXJuaW5nIGluIGNhc2Ugb2YKCSAgc3RyZWFtIHdpdGggb25lIHNpbmdsZSBzdGlsbCBwaWN0dXJlKSAoc2VlICMzMjcwODMpCgoyMDA2LTAyLTI4IDEwOjQwOjAxICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIHJlbW92ZSBjb25mbGljdCBpbmRpY2F0b3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb25mbGljdCBpbmRpY2F0b3IKCjIwMDYtMDItMjggMTA6Mzk6MDggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgYWRkIG1pc3NpbmcgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNzaW5nIGVudHJ5CgoyMDA2LTAyLTI4IDEwOjI5OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IFVzZSBERUJVR19PQkpFQ1QgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X3dhdnBhcnNlX3BhZF9jb252ZXJ0KSwgKGdzdF93YXZwYXJzZV9zcmNwYWRfZXZlbnQpLAoJICAoZ3N0X3dhdnBhcnNlX3NpbmtfYWN0aXZhdGUpLCAoZ3N0X3dhdnBhcnNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgIFVzZSBERUJVR19PQkpFQ1QgbW9yZS4KCjIwMDYtMDItMjggMTA6MjI6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBBZGRlZCBkdmRlYyBhbmQgZHZkZW11eCB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIGR2ZGVjIGFuZCBkdmRlbXV4IHRvIGRvY3MuCgkgICogZXh0L2R2L2dzdGR2ZGVjLmM6IChnc3RfZHZkZWNfYmFzZV9pbml0KSwgKGdzdF9kdmRlY19jaGFpbik6CgkgIEFkZGVkIGRvY3MuCgkgIENoZWNrIGZyYW1lIHNpemVzIHNvIHdlIGRvbid0IGNyYXNoIHdoZW4gZG9uJ3QgaGF2ZSBlbm91Z2gKCSAgZGF0YS4KCSAgU2VuZCBuaWNlIGVycm9yIG1lc3NhZ2VzIG9uIGVycm9yLgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9iYXNlX2luaXQpLAoJICAoZ3N0X2R2ZGVtdXhfY2xhc3NfaW5pdCksIChnc3RfZHZkZW11eF9pbml0KSwKCSAgKGdzdF9kdmRlbXV4X2ZpbmFsaXplKSwgKGdzdF9kdmRlbXV4X3Jlc2V0KSwKCSAgKGdzdF9kdmRlbXV4X3NyY19jb252ZXJ0KSwgKGdzdF9kdmRlbXV4X3NpbmtfY29udmVydCksCgkgIChnc3RfZHZkZW11eF9zcmNfcXVlcnkpLCAoZ3N0X2R2ZGVtdXhfc2lua19xdWVyeSksCgkgIChnc3RfZHZkZW11eF9wdXNoX2V2ZW50KSwgKGdzdF9kdmRlbXV4X2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9kdmRlbXV4X2NvbnZlcnRfc3JjX3BhaXIpLCAoZ3N0X2R2ZGVtdXhfY29udmVydF9zaW5rX3BhaXIpLAoJICAoZ3N0X2R2ZGVtdXhfY29udmVydF9zcmNfdG9fc2luayksIChnc3RfZHZkZW11eF9oYW5kbGVfcHVzaF9zZWVrKSwKCSAgKGdzdF9kdmRlbXV4X2RvX3NlZWspLCAoZ3N0X2R2ZGVtdXhfaGFuZGxlX3B1bGxfc2VlayksCgkgIChnc3RfZHZkZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwgKGdzdF9kdmRlbXV4X2RlbXV4X2F1ZGlvKSwKCSAgKGdzdF9kdmRlbXV4X2RlbXV4X3ZpZGVvKSwgKGdzdF9kdmRlbXV4X2RlbXV4X2ZyYW1lKSwKCSAgKGdzdF9kdmRlbXV4X2ZsdXNoKSwgKGdzdF9kdmRlbXV4X2NoYWluKSwgKGdzdF9kdmRlbXV4X2xvb3ApLAoJICAoZ3N0X2R2ZGVtdXhfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9kdmRlbXV4X3NpbmtfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZHZkZW11eF9zaW5rX2FjdGl2YXRlKSwgKGdzdF9kdmRlbXV4X2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguaDoKCSAgQWRkZWQgZG9jcy4KCSAgSW1wbGVtZW50IHB1bGwgbW9kZS4KCSAgRml4IG1lbWxlYWtzLgoJICBSZWR1Y2UgbWVtY3B5IGZvciB0aGUgdmlkZW8gZGVtdXhpbmcuCgoyMDA2LTAyLTI4IDA5OjIxOjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9hbm5vZGV4LzogQWRkIGEgbGl0dGxlIGV4dHJhIGRlYnVnLiBNYWtlIHRoZSBkZWNvZGVyIG5vdCByZXR1cm4gTk9UX0xJTktFRCwgYXMgd2Ugd2FudCB0byBjb250aW51ZSBkZWNvZGluZyBhbGwgQy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6IChnc3RfY21tbF9kZWNfc2lua19ldmVudCksCgkgIChnc3RfY21tbF9kZWNfbmV3X2J1ZmZlciksIChnc3RfY21tbF9kZWNfcGFyc2VfcHJlYW1ibGUpLAoJICAoZ3N0X2NtbWxfZGVjX3BhcnNlX2hlYWQpLCAoZ3N0X2NtbWxfZGVjX3B1c2hfY2xpcCk6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHBhcnNlci5jOiAoZ3N0X2NtbWxfcGFyc2VyX3BhcnNlX2NodW5rKToKCSAgQWRkIGEgbGl0dGxlIGV4dHJhIGRlYnVnLiBNYWtlIHRoZSBkZWNvZGVyIG5vdCByZXR1cm4gTk9UX0xJTktFRCwKCSAgYXMgd2Ugd2FudCB0byBjb250aW51ZSBkZWNvZGluZyBhbGwgQ01NTCBhbmQgZW1pdHRpbmcgdGFncy4KCjIwMDYtMDItMjcgMTQ6Mzc6MjkgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgYWRkIGFubm9kZXggcGx1Z2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYW5ub2RleCBwbHVnaW4KCjIwMDYtMDItMjcgMTQ6MDA6MTggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGV4dC9hbm5vZGV4L2dzdHNrZWx0YWcuKjogRGVsZXRlZDsgdGhlc2UgZmlsZXMgYXJlbid0IHVzZWQgYW55IG1vcmUgZWl0aGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYW5ub2RleC9nc3Rza2VsdGFnLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0c2tlbHRhZy5oOgoJICBEZWxldGVkOyB0aGVzZSBmaWxlcyBhcmVuJ3QgdXNlZCBhbnkgbW9yZSBlaXRoZXIuCgoyMDA2LTAyLTI1IDIwOjM3OjI5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGV4dC9NYWtlZmlsZS5hbTogRml4IGRpc3QtY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTI1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZXh0L01ha2VmaWxlLmFtOiBGaXggZGlzdC1jaGVjay4KCjIwMDYtMDItMjUgMTk6MzY6MjQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOiBGaXggYW5vdGhlciBtZW1sZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzogKGdzdF9jbW1sX2VuY19wdXNoX2NsaXApOiBGaXggYW5vdGhlcgoJICBtZW1sZWFrLgoKMjAwNi0wMi0yNSAxOTowNzo0MSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBGaXggYSBtZW1sZWFrIGluIGdzdF9jbW1sX3RyYWNrX2xpc3RfYWRkX2NsaXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTI1ICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyb0BubnZhLm9yZz4KCSAgKiBleHQvYW5ub2RleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvYW5ub2RleC9nc3Rhbm5vZGV4LmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGRlYy5jOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuYzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1scGFyc2VyLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHBhcnNlci5oOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWx1dGlscy5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxkZWMuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6CgkgIEZpeCBhIG1lbWxlYWsgaW4gZ3N0X2NtbWxfdHJhY2tfbGlzdF9hZGRfY2xpcC4KCSAgSGFuZGxlIG92ZXJmbG93cyBpbiBjbGlwJ3Mgc3RhcnQgYW5kIGVuZCB0aW1lcy4KCSAgQWRkIHRoZSAiZW5jb2RlZCIgcGFyYW1ldGVyIHRvIGNtbWxkZWMgYW5kIGNtbWxlbmMgY2Fwcy4KCSAgRG8gbm90IHBhcnNlIGp1bmsgYXQgdGhlIGVuZCBvZiBhIENNTUwgcHJlYW1ibGUgYnVmZmVyLgoJICBSZWdpc3RlciBhIGxpYnhtbCBlcnJvciBoYW5kbGVyIHRvIG5vdCBwcmludCBzdHVmZiBvbiBzdGRlcnIuCgkgIENoZWNrIGZvciBiYWQgY2xpcCBzdGFydCBhbmQgZW5kIHRpbWVzIGluIHRoZSB0ZXN0c3VpdGVzLgoKMjAwNi0wMi0yNSAxMTozNzoxMCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBleHQvYW5ub2RleC86IEZpeCBwb3NzaWJsZSBtZW1sZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMjUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmM6IChnc3RfY21tbF9kZWNfY2xhc3NfaW5pdCksCgkgIChnc3RfY21tbF9kZWNfZmluYWxpemUpLCAoZ3N0X2NtbWxfZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOiAoZ3N0X2NtbWxfZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NtbWxfZW5jX2ZpbmFsaXplKSwgKGdzdF9jbW1sX2VuY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWx1dGlscy5jOiAoZ3N0X2NtbWxfdHJhY2tfbGlzdF9kZXN0cm95KTogRml4CgkgIHBvc3NpYmxlIG1lbWxlYWtzLgoKMjAwNi0wMi0yNCAyMzo1MjoyOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEZpeCB0ZXN0cyBzbyB0aGF0IHRoZXkgdXNlIHRoZSBwbHVnaW5zLWJhc2UgdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMjUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZGVjLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY21tbGVuYy5jOiBGaXggdGVzdHMgc28gdGhhdCB0aGV5IHVzZQoJICB0aGUgcGx1Z2lucy1iYXNlIHRhZ3MuCgoyMDA2LTAyLTI0IDIzOjM2OjU4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGV4dC9NYWtlZmlsZS5hbTogUmUtZW5hYmxlIG1vZHVsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMjUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvTWFrZWZpbGUuYW06IFJlLWVuYWJsZSBtb2R1bGUuCgoyMDA2LTAyLTI0IDIzOjMyOjE0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBGb3Jnb3QgdG8gcmVtb3ZlIHRoYXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMjUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogRm9yZ290IHRvIHJlbW92ZSB0aGF0IHRlc3QuCgoyMDA2LTAyLTI0IDIzOjMxOjA4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIFRyeSB0byBmaXggQW5ub2RleCBwbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTI1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZXh0L2Fubm9kZXgvTWFrZWZpbGUuYW06CgkgICogZXh0L2Fubm9kZXgvZ3N0YW5ub2RleC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSAgKiBleHQvYW5ub2RleC9nc3Rza2VsZGVjLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0c2tlbGRlYy5oOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NrZWxkZWMuYzogVHJ5IHRvIGZpeCBBbm5vZGV4IHBsdWdpbi4KCjIwMDYtMDItMjQgMjM6MDY6MjcgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERpc2FibGUgdGhvc2UgY2hlY2tzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTI1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERpc2FibGUgdGhvc2UgY2hlY2tzIGFzIHdlbGwuCgoyMDA2LTAyLTI0IDIyOjQ5OjI5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGV4dC9NYWtlZmlsZS5hbTogRGlzYWJsZSBhbm5vZGV4IGZvciBub3cgdW50aWwgd2UgZmlndXJlIG91dCBob3cgdG8gbWFrZSBpdCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMjQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvTWFrZWZpbGUuYW06IERpc2FibGUgYW5ub2RleCBmb3Igbm93IHVudGlsIHdlIGZpZ3VyZSBvdXQKCSAgaG93IHRvIG1ha2UgaXQgYnVpbGQuCgkgICogZXh0L2dka19waXhidWYvTWFrZWZpbGUuYW06IE5vdGUgZm9yIFRob21hcyA6CgkgIEFkZCBhIHJ1bGUgdG8geW91ciBjaGVja2xpc3QgOiAicGxlYXNlIHRyeSB0byBhdCBsZWFzdCBidWlsZAoJICB3aGF0IHlvdSBhcmUgZ29pbmcgdG8gY29tbWl0IGludG8gLWdvb2QsIG9yIGlmIHlvdSBhcmUgdG9vIGxhenkKCSAgdG8gZG8gdGhhdCwgcGxlYXNlIGNoZWNrIHRoYXQgdGhlIGJ1aWxkYm90cyBhcmUgbm90IGNyeWluZyBiZWNhdXNlCgkgIG9mIHlvdXIgY29tbWl0LiIKCjIwMDYtMDItMjQgMTk6NTE6MjkgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvTWFrZWZpbGUuYW06CgkqIGV4dC9nZGtfcGl4YnVmL01ha2VmaWxlLmFtOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmg6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmM6CgkqIGV4dC9nZGtfcGl4YnVmL3BpeGJ1ZnNjYWxlLmg6CgkgIEknbSB0b28gbGF6eSB0byBjb21tZW50IHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdka3BpeGJ1ZiBwb3J0ZWQgZnJvbSAwLjggdG8gMC4xMCBieSBSZW5hdG8gRmlsaG8gPHJlbmF0by5maWxob0BpbmR0Lm9yZy5icj4uIGdzdF9sb2FkZXIgYW5kIGdka3BpeGJ1ZmFuaW1hdGlvbiBzdGlsbCBuZWVkIHBvcnQuCgoyMDA2LTAyLTI0IDE5OjQ5OjMyICswMDAwICBGYWJyaXppbyBHZW5uYXJpIDxmYWJyaXppby5nZUB0aXNjYWxpLml0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBBZGQgc3VwcG9ydCBmb3IgcGFsZXR0aXNlZCBBcHBsZSBTTUMgdmlkZW9zICgjMzI3MDc1LCBiYXNlZCBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9hZGRfc3RyZWFtKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayksIChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICBBZGQgc3VwcG9ydCBmb3IgcGFsZXR0aXNlZCBBcHBsZSBTTUMgdmlkZW9zICgjMzI3MDc1LCBiYXNlZCBvbgoJICBwYXRjaCBieTogRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8gZG90IGdlIGF0IHRpc2NhbGkgZG90IGl0PikuCgoyMDA2LTAyLTI0IDE5OjA3OjEwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBBZGQgQW5ub2RleCBlbGVtZW50cyBmcm9tIEFsZXNzZW5kcm8gRGVjaW5hOiBza2VsZXRvbiBhbmQgQ01NTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGV4dC9NYWtlZmlsZS5hbToKCSAgKiBleHQvYW5ub2RleC9NYWtlZmlsZS5hbToKCSAgKiBleHQvYW5ub2RleC9nc3Rhbm5vZGV4LmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0YW5ub2RleC5oOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxkZWMuYzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sZGVjLmg6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbGVuYy5jOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWxlbmMuaDoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1scGFyc2VyLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHBhcnNlci5oOgoJICAqIGV4dC9hbm5vZGV4L2dzdGNtbWx0YWcuYzoKCSAgKiBleHQvYW5ub2RleC9nc3RjbW1sdGFnLmg6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHV0aWxzLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0Y21tbHV0aWxzLmg6CgkgICogZXh0L2Fubm9kZXgvZ3N0c2tlbGRlYy5jOgoJICAqIGV4dC9hbm5vZGV4L2dzdHNrZWxkZWMuaDoKCSAgKiBleHQvYW5ub2RleC9nc3Rza2VsdGFnLmM6CgkgICogZXh0L2Fubm9kZXgvZ3N0c2tlbHRhZy5oOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NtbWxkZWMuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jbW1sZW5jLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvc2tlbGRlYy5jOgoJICBBZGQgQW5ub2RleCBlbGVtZW50cyBmcm9tIEFsZXNzZW5kcm8gRGVjaW5hOiBza2VsZXRvbiBhbmQgQ01NTC4KCSAgSW5jbHVkZXMgdGVzdHMgJiBkb2NzLCBvaCBteSEgUGFzc2VzIFRob21hcydzIC1nb29kIGNoZWNrbGlzdAoJICBlbnRpcmVseS4gV293LgoKMjAwNi0wMi0yNCAxNzowOTo1NiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgYXV0b2dlbi5zaDogQ2hlY2sgZm9yIGF1dG9tYWtlIDEuOSBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICBDaGVjayBmb3IgYXV0b21ha2UgMS45IGFzIHdlbGwuCgoyMDA2LTAyLTI0IDE0OjQ5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiBDaGFuZ2UgbWluLiBzYW1wbGUgcmF0ZSB0byA4a0h6IHRvIG1hdGNoIGZsYWNkZWMncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBDaGFuZ2UgbWluLiBzYW1wbGUgcmF0ZSB0byA4a0h6IHRvIG1hdGNoIGZsYWNkZWMncy4KCjIwMDYtMDItMjMgMjA6MDg6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvY2Rpby9NYWtlZmlsZS5hbTogQWRkIEdTVF9CQVNFX0NGTEFHUyBhbmQgR1NUX0JBU0VfTElCUyAoc2VlbXMgdG8gYmUgcmVxdWlyZWQgZm9yIEN5Z3dpbiwgc2VlICMzMTcwNDgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jZGlvL01ha2VmaWxlLmFtOgoJICBBZGQgR1NUX0JBU0VfQ0ZMQUdTIGFuZCBHU1RfQkFTRV9MSUJTIChzZWVtcyB0byBiZQoJICByZXF1aXJlZCBmb3IgQ3lnd2luLCBzZWUgIzMxNzA0OCkKCSAgKiBnc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jOgoJICBDeWd3aW4gaGFzIGluY2x1ZGVzIGZvciBib3RoIHRoZSB1bml4IG5ldHdvcmsgc29ja2V0IEFQSQoJICBhbmQgdGhlIHdpbmRvd3MgQVBJLCBidXQgb25seSBvbmUgY2FuIGJlIGluY2x1ZGVkLCBzbyBmaXgKCSAgaW5jbHVkZXMgdG8gb25seSB1c2Ugb25lIG9yIHRoZSBvdGhlciwgcHJlZmVyaW5nIHRoZSB1bnhpCgkgIG9uZSAoIzMxNzA0OCkuCgoyMDA2LTAyLTIzIDEyOjIxOjI1ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgcnRwL2dzdC86IFNlcGFyYXRlZCB0aGUgRzcxMSBwYXlsb2FkZXJzL2RlcGF5bG9hZGVycyBpbnRvIHNlcGFyYXRlIGVsZW1lbnRzIGZvciBtdWxhdy9hbGF3LiBBbHNvIHJlbW92ZWQgdGhlIG9sZCBnNzExLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTIzICBQaGlsaXBwZSBLYWxhZiAgPHBoaWxpcHBlLmthbGFmIGF0IGNvbGxhYm9yYS5jby51az4KCSAgKiBydHAvZ3N0L2dzdHJ0cHBjbWFkZXBheS5jOgoJICAqIHJ0cC9nc3QvZ3N0cnRwcGNtYWRlcGF5Lmg6CgkgICogcnRwL2dzdC9nc3Rnc3RydHBwY21hcGF5LmM6CgkgICogcnRwL2dzdC9nc3Rnc3RydHBwY21hcGF5Lmg6CgkgICogcnRwL2dzdC9nc3RydHBwY211ZGVwYXkuYzoKCSAgKiBydHAvZ3N0L2dzdHJ0cHBjbXVkZXBheS5oOgoJICAqIHJ0cC9nc3QvZ3N0cnRwcGNtdXBheS5jOgoJICAqIHJ0cC9nc3QvZ3N0cnRwcGNtdXBheS5oOgoJICAqIHJ0cC9nc3QvTWFrZWZpbGUuYW06CgkgICogcnRwL2dzdC9nc3RydHAuYzoKCSAgKiBydHAvZ3N0L1JFQURNRToKCSAgU2VwYXJhdGVkIHRoZSBHNzExIHBheWxvYWRlcnMvZGVwYXlsb2FkZXJzIGludG8gc2VwYXJhdGUgZWxlbWVudHMgZm9yCgkgIG11bGF3L2FsYXcuIEFsc28gcmVtb3ZlZCB0aGUgb2xkIGc3MTEgcGF5bG9hZGVycy9kZXBheWxvYWRlcnMuCgoyMDA2LTAyLTIyIDIwOjIyOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2R2LzogVWViZXIgc3BpZmZpZnkgc29tZSBtb3JlLCBhZGRlZCBkZWJ1ZyBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVjLmM6IChnc3RfZHZkZWNfYmFzZV9pbml0KSwgKGdzdF9kdmRlY19pbml0KSwKCSAgKGdzdF9kdmRlY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5oOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9iYXNlX2luaXQpLCAoZ3N0X2R2ZGVtdXhfaW5pdCksCgkgIChnc3RfZHZkZW11eF9zcmNfY29udmVydCksIChnc3RfZHZkZW11eF9zaW5rX2NvbnZlcnQpLAoJICAoZ3N0X2R2ZGVtdXhfc3JjX3F1ZXJ5KSwgKGdzdF9kdmRlbXV4X3NpbmtfcXVlcnkpLAoJICAoZ3N0X2R2ZGVtdXhfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X2R2ZGVtdXhfZGVtdXhfZnJhbWUpLAoJICAoZ3N0X2R2ZGVtdXhfZmx1c2gpLCAoZ3N0X2R2ZGVtdXhfY2hhaW4pLAoJICAoZ3N0X2R2ZGVtdXhfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5oOgoJICBVZWJlciBzcGlmZmlmeSBzb21lIG1vcmUsIGFkZGVkIGRlYnVnIGNhdGVnb3J5LgoJICBVc2UgX3NjYWxlLgoJICBVc2Ugc2VnbWVudHMsIHJlc3BlY3QgcGxheWJhY2sgcmF0ZSBmcm9tIG5ld3NlZ21lbnQuCgkgIEZpeCByZWZjb3VudCBpc3N1ZS4KCjIwMDYtMDItMjIgMDk6MzM6MjUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZCAnZHZzZCcgYW5kICdkdjI1JyB0byBsaXN0IG9mIHBvc3NpYmxlIGZvdXJjYyB2YWx1ZXMgZm9yIERWIFZpZGVvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnkgOiBFZHdhcmQgSGVydmV5IDxlZHdhcmRAZmx1ZW5kby5jb20+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF92aWRlb19jYXBzKToKCSAgQWRkICdkdnNkJyBhbmQgJ2R2MjUnIHRvIGxpc3Qgb2YgcG9zc2libGUgZm91cmNjIHZhbHVlcyBmb3IgRFYgVmlkZW8uCgkgIEFkZCBpbWFnZS9wbmcgZm9yIGZvdXJjYyAncG5nICcKCjIwMDYtMDItMjAgMjE6MTk6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUG9ydCB4aW1hZ2VzcmMgdG8gMC4xMCAoQ2xvc2VzICMzMDQ3OTUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBzeXMvTWFrZWZpbGUuYW06CgkgICogc3lzL3hpbWFnZXNyYy9NYWtlZmlsZS5hbToKCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXNyYy5jOiAoZ3N0X3hpbWFnZXNyY19yZXR1cm5fYnVmKSwKCSAgKGdzdF94aW1hZ2VzcmNfb3Blbl9kaXNwbGF5KSwgKGdzdF94aW1hZ2VzcmNfc3RhcnQpLAoJICAoZ3N0X3hpbWFnZXNyY19zdG9wKSwgKGdzdF94aW1hZ2VzcmNfdW5sb2NrKSwKCSAgKGdzdF94aW1hZ2VzcmNfcmVjYWxjKSwgKGNvbXBvc2l0ZV9waXhlbCksCgkgIChnc3RfeGltYWdlc3JjX3hpbWFnZV9nZXQpLCAoZ3N0X3hpbWFnZXNyY19jcmVhdGUpLAoJICAoZ3N0X3hpbWFnZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3hpbWFnZXNyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3hpbWFnZXNyY19jbGVhcl9idWZwb29sKSwgKGdzdF94aW1hZ2VzcmNfYmFzZV9pbml0KSwKCSAgKGdzdF94aW1hZ2VzcmNfZGlzcG9zZSksIChnc3RfeGltYWdlc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF94aW1hZ2VzcmNfZ2V0X2NhcHMpLCAoZ3N0X3hpbWFnZXNyY19zZXRfY2FwcyksCgkgIChnc3RfeGltYWdlc3JjX2ZpeGF0ZSksIChnc3RfeGltYWdlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X3hpbWFnZXNyY19pbml0KSwgKHBsdWdpbl9pbml0KToKCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXNyYy5oOgoJICAqIHN5cy94aW1hZ2VzcmMveGltYWdldXRpbC5jOiAoeGltYWdldXRpbF9oYW5kbGVfeGVycm9yKSwKCSAgKHhpbWFnZXV0aWxfY2hlY2tfeHNobV9jYWxscyksICh4aW1hZ2V1dGlsX3hjb250ZXh0X2dldCksCgkgICh4aW1hZ2V1dGlsX3hjb250ZXh0X2NsZWFyKSwKCSAgKHhpbWFnZXV0aWxfY2FsY3VsYXRlX3BpeGVsX2FzcGVjdF9yYXRpbyksCgkgIChnc3RfeGltYWdlc3JjX2J1ZmZlcl9maW5hbGl6ZSksIChnc3RfeGltYWdlX2J1ZmZlcl9mcmVlKSwKCSAgKGdzdF94aW1hZ2VzcmNfYnVmZmVyX2luaXQpLCAoZ3N0X3hpbWFnZXNyY19idWZmZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfeGltYWdlc3JjX2J1ZmZlcl9nZXRfdHlwZSksIChnc3RfeGltYWdldXRpbF94aW1hZ2VfbmV3KSwKCSAgKGdzdF94aW1hZ2V1dGlsX3hpbWFnZV9kZXN0cm95KToKCSAgKiBzeXMveGltYWdlc3JjL3hpbWFnZXV0aWwuaDoKCSAgUG9ydCB4aW1hZ2VzcmMgdG8gMC4xMCAoQ2xvc2VzICMzMDQ3OTUpCgo9PT0gcmVsZWFzZSAwLjEwLjEgPT09CgoyMDA2LTAyLTIwIDE5OjEyOjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMSwgIlNsaW15IC0geWV0IHNhdGlzZnlpbmciCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTIwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjEsICJTbGlteSAtIHlldCBzYXRpc2Z5aW5nIgoKMjAwNi0wMi0yMCAxMzowODo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOiBGaXggY29tcGlsYXRpb24gb2YgTEFEUFNBLiBJdCBkb2Vzbid0IHNlZW0gdG8gd29yaywgYW5kIGlzbid0IGVuYWJsZWQgZm9yIHRoZSBidWlsZCwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYzogKGdzdF9zaWduYWxfcHJvY2Vzc29yX2V2ZW50KSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX3Byb2Nlc3MpOgoJICBGaXggY29tcGlsYXRpb24gb2YgTEFEUFNBLiBJdCBkb2Vzbid0IHNlZW0gdG8gd29yaywgYW5kIGlzbid0CgkgIGVuYWJsZWQgZm9yIHRoZSBidWlsZCwgYnV0IGl0IGhlbHBzIG1lIHdpbiB0aGUgZmVhdHVyZS1jb3VudAoJICBjb21wZXRpdGlvbnMgb29oIHllYWguCgoyMDA2LTAyLTE5IDE2OjAyOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBVc2Ugc2NhbGluZyBjb2RlIGZvciBhZGRlZCBwcmVjaXNzaW9uIGFuZCBtb3JlIGNvcnJlY3Qgc3RvcCBwb3NpdGlvbiBpbiBjYXNlIHNjYWxlPT0wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3NyY19jb252ZXJ0KSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9maWxlX2hlYWRlciksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9pbml0KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2VfYXZpaCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N1cGVyaW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdWJpbmRleCksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXIpLCAoZ3N0X2F2aV9kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICBVc2Ugc2NhbGluZyBjb2RlIGZvciBhZGRlZCBwcmVjaXNzaW9uIGFuZCBtb3JlIGNvcnJlY3Qgc3RvcAoJICBwb3NpdGlvbiBpbiBjYXNlIHNjYWxlPT0wLgoKMjAwNi0wMi0xOSAxMjowOToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9mbHgvZ3N0Zmx4ZGVjLio6IEltcGxlbWVudCBEVVJBVElPTiBxdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuYzogKGdzdF9mbHhkZWNfc3JjX3F1ZXJ5X2hhbmRsZXIpLAoJICAoZ3N0X2ZseGRlY19jaGFpbik6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuaDoKCSAgSW1wbGVtZW50IERVUkFUSU9OIHF1ZXJ5LgoKMjAwNi0wMi0xOSAxMTo1Nzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9mbHgvOiBTZXQgTUFMTE9DREFUQSBmb3IgdGhlIHRlbXAgYnVmZmVycyBzbyB3ZSBkb24ndCBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx4L2ZseF9jb2xvci5oOgoJICAqIGdzdC9mbHgvZmx4X2ZtdC5oOgoJICAqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6IChnc3RfZmx4ZGVjX2luaXQpLAoJICAoZ3N0X2ZseGRlY19zcmNfcXVlcnlfaGFuZGxlciksIChmbHhfZGVjb2RlX2NvbG9yKSwKCSAgKGdzdF9mbHhkZWNfY2hhaW4pOgoJICAqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmg6CgkgIFNldCBNQUxMT0NEQVRBIGZvciB0aGUgdGVtcCBidWZmZXJzIHNvIHdlIGRvbid0IGxlYWsuCgkgIFNvbWUgZGVidWcgY2xlYW51cHMuCgkgIENvbnN1bWUgYWxsIGRhdGEgaW4gdGhlIGFkYXB0ZXIgYmVmb3JlIGxlYXZpbmcgdGhlIGNoYWluCgkgIGZ1bmN0aW9uLiBGaXhlcyAjMzMwNjc4LgoKMjAwNi0wMi0xOCAyMDo0ODowOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvaWQzZGVtdXgvOiBIYW5kbGUgMCBkYXRhIHNpemUgaW4gb3RoZXJ3aXNlIHZhbGlkIGZyYW1lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzogKGlkM2RlbXV4X2lkM3YyX2ZyYW1lc190b190YWdfbGlzdCk6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDN2Ml9nZW5yZV9maWVsZHNfdG9fdGFnbGlzdCk6CgkgIEhhbmRsZSAwIGRhdGEgc2l6ZSBpbiBvdGhlcndpc2UgdmFsaWQgZnJhbWVzLgoJICBIYW5kbGUgbnVtZXJpYyBzdHJpbmdzIGluIDIuNC4wIGV2ZW4gd2hlbiBub3QgaW4gcGFyZW50aGVzZXMKCjIwMDYtMDItMTggMTc6MjA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvOiBSZWNvZ25pc2UgU1NBL0FTUyBhbmQgVVNGIHN1YnRpdGxlIGZvcm1hdHMgYW5kIHNldCBwcm9wZXIgY2FwcyB3aGVuIHRoZXkgYXJlIGZvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9zdWJ0aXRsZV9jYXBzKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wbHVnaW5faW5pdCk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oOgoJICBSZWNvZ25pc2UgU1NBL0FTUyBhbmQgVVNGIHN1YnRpdGxlIGZvcm1hdHMgYW5kCgkgIHNldCBwcm9wZXIgY2FwcyB3aGVuIHRoZXkgYXJlIGZvdW5kLgoKMjAwNi0wMi0xNyAxODoyNTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRG9uJ3QgR1NUX0xPRyB0aW1lc3RhbXBzIGZyb20gbm9uZXhpc3RlbnQgaW5kZXggZW50cmllcyAoIzMzMTU4MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2xvb3Bfc3RhdGVfbW92aWUpOgoJICBEb24ndCBHU1RfTE9HIHRpbWVzdGFtcHMgZnJvbSBub25leGlzdGVudCBpbmRleAoJICBlbnRyaWVzICgjMzMxNTgyKS4KCjIwMDYtMDItMTcgMTc6NTQ6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvanBlZy9nc3RqcGVnZGVjLmM6IEZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgZm9yIHNvbWUgb2RkLXNpemVkIGltYWdlcyAoc2VlIGltYWdlIGNvbnRhaW5lZCBpbiBxdWlja3RpbWUgc3RyZWFtIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiAoZ3N0X2pwZWdfZGVjX2RlY29kZV9kaXJlY3QpLAoJICAoZ3N0X2pwZWdfZGVjX2NoYWluKToKCSAgRml4IGludmFsaWQgbWVtb3J5IGFjY2VzcyBmb3Igc29tZSBvZGQtc2l6ZWQgaW1hZ2VzCgkgIChzZWUgaW1hZ2UgY29udGFpbmVkIGluIHF1aWNrdGltZSBzdHJlYW0gaW4gIzMyNzA4Myk7CgkgIHVzZSBnX21hbGxvYygpIGluc3RlYWQgb2YgZ19hbGxvY2EoKS4KCjIwMDYtMDItMTcgMTY6Mjg6MjkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IENoZWNrIHRoYXQgdGhlIHNpemUgb2YgdGhlIHJldHVybmVkIGJ1ZmZlciBpcyBvZiB0aGUgY29ycmVjdCBzaXplIGJlY2F1c2UgdGhlIHBhcnNlciBhc3N1bWVzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIpOgoJICBDaGVjayB0aGF0IHRoZSBzaXplIG9mIHRoZSByZXR1cm5lZCBidWZmZXIgaXMgb2YgdGhlIGNvcnJlY3Qgc2l6ZQoJICBiZWNhdXNlIHRoZSBwYXJzZXIgYXNzdW1lcyB0aGF0LgoJICBGaXhlcyAjMzMxNTQzLgoKMjAwNi0wMi0xNyAxNTozNzozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogUGF0Y2ggZnJvbSBTZWJhc3RpZW4gQ290ZSwgZml4ZXMgIzMxOTg4NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6IChnc3RfcnRwX2Ftcl9kZXBheV9jaGFpbik6CgkgIFBhdGNoIGZyb20gU2ViYXN0aWVuIENvdGUsIGZpeGVzICMzMTk4ODQKCjIwMDYtMDItMTcgMTE6MTk6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvY2Rpby9nc3RjZGlvLmM6IEluaXQgZGVidWcgY2F0ZWdvcnkgKCMzMzEyNTMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Rpby9nc3RjZGlvLmM6IChwbHVnaW5faW5pdCk6CgkgIEluaXQgZGVidWcgY2F0ZWdvcnkgKCMzMzEyNTMpLgoKMjAwNi0wMi0xNyAxMDo1MzozOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZXh0L2djb25mL2djb25mLmM6CgkqIGV4dC9nY29uZi9nY29uZi5oOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zaW5rLmg6CgkqIGdjb25mL2dzdHJlYW1lci5zY2hlbWFzLmluOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIGFkZCBKdXJnJ3MgcGF0Y2ggZm9yIG11bHRpZGV2aWNlIHN1cHBvcnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBKdXJnJ3MgcGF0Y2ggZm9yIG11bHRpZGV2aWNlIHN1cHBvcnQKCjIwMDYtMDItMTYgMjA6MzA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogUGFzcyBleHRyYV9kYXRhIHRvIGdzdF9yaWZmX2NyZWF0ZV9hdWRpb19jYXBzKCksIHNvIHRoYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpOgoJICBQYXNzIGV4dHJhX2RhdGEgdG8gZ3N0X3JpZmZfY3JlYXRlX2F1ZGlvX2NhcHMoKSwgc28gdGhhdAoJICBXQVZFRk9STUFURVggc3R1ZmYgd29ya3MuIFBvc3QgYXVkaW8gY29kZWMgbmFtZSBhbmQgcG9zdAoJICBpdCBhcyB0YWdsaXN0IG9uIHRoZSBidXMuIEFsbG93IHVwIHRvIDggY2hhbm5lc2wgZm9yIHJhdwoJICBQQ00gaW4gdGhlIHNvdXJjZSBwYWQgdGVtcGxhdGUgY2Fwcy4KCjIwMDYtMDItMTYgMTY6NTM6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IEFwcGxpZWQgIzMxODY2My4gR2l2ZXMgcXVpdGUgYSBmZXcgZmFsc2UgcG9zaXRpdmVzIGluIGF1dG9zY2FuIG1vZGUsIGJ1dCBpdCdzIGJldHRlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOiAoZ3N0X211bHRpcGFydF9kZW11eF9iYXNlX2luaXQpLAoJICAoZ3N0X211bHRpcGFydF9kZW11eF9jbGFzc19pbml0KSwgKGdzdF9tdWx0aXBhcnRfZGVtdXhfaW5pdCksCgkgIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2ZpbmFsaXplKSwgKGdzdF9tdWx0aXBhcnRfZmluZF9wYWRfYnlfbWltZSksCgkgIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NoYWluKSwgKGdzdF9tdWx0aXBhcnRfZGVtdXhfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9tdWx0aXBhcnRfc2V0X3Byb3BlcnR5KSwgKGdzdF9tdWx0aXBhcnRfZ2V0X3Byb3BlcnR5KToKCSAgQXBwbGllZCAjMzE4NjYzLiBHaXZlcyBxdWl0ZSBhIGZldyBmYWxzZSBwb3NpdGl2ZXMgaW4KCSAgYXV0b3NjYW4gbW9kZSwgYnV0IGl0J3MgYmV0dGVyIHRoYW4gbm90aGluZy4gTm90IGNsb3NpbmcgeWV0LgoKMjAwNi0wMi0xNiAxNDoxMzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX2NsYXNzX2luaXQpLCAoZ3N0X3VkcHNyY19pbml0KSwKCSAgKGdzdF91ZHBzcmNfc3RhcnQpOgoJICBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSAgRml4IGFyZ3MuCgoyMDA2LTAyLTE2IDE0OjAyOjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBEb24ndCBzdG9wIHRoZSB0YXNrIGlmIHRoZSBwYWQgaXNuJ3QgbGlua2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdGRlbXV4X2xvb3ApLCAocXRkZW11eF9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICBEb24ndCBzdG9wIHRoZSB0YXNrIGlmIHRoZSBwYWQgaXNuJ3QgbGlua2VkLgoKMjAwNi0wMi0xNiAxMDo1ODoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOiBJRDMgMi4zLjAgdXNlZCBzeW5jaC1zYWZlIGludGVnZXJzIGZvciB0aGUgdGFnIHNpemUsIGJ1dCBub3QgZm9yIHRoZSBmcmFtZSBzaXplLiAoRml4ZXMgIzMzMTM2OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzogKGlkM2RlbXV4X2lkM3YyX2ZyYW1lc190b190YWdfbGlzdCk6CgkgIElEMyAyLjMuMCB1c2VkIHN5bmNoLXNhZmUgaW50ZWdlcnMgZm9yIHRoZSB0YWcgc2l6ZSwgYnV0IG5vdCBmb3IgdGhlCgkgIGZyYW1lIHNpemUuIChGaXhlcyAjMzMxMzY4KQoKMjAwNi0wMi0xNiAxMDo0MjoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL1JFQURNRTogVXBkYXRlZCBSRUFETUUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL1JFQURNRToKCSAgVXBkYXRlZCBSRUFETUUuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0c3BzcmNfY2xhc3NfaW5pdCksIChnc3RfcnRzcHNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0c3BzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9zZXR1cF9ydHApOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuaDoKCSAgTWFrZSBzdXJlIHRoZSBSVFAgcG9ydCBpcyBhbiBldmVuIHBvcnQgYW4gdHJ5IHRvIGFsbG9jYXRlCgkgIGFub3RoZXIgaWYgbm90LgoJICBBZGRlZCByZXRyeSBwcm9wZXJ0eSB0byBjb250cm9sIG1heCByZXRyaWVzIGZvciBwb3J0IGFsbG9jYXRpb24uCgkgIE1ha2Ugc3VyZSBSVENQIHBvcnQgaXMgUlRQIHBvcnQrMS4KCSAgQ2xlYW51cCB3aGVuIHBvcnQgYWxsb2NhdGlvbiBmYWlscy4KCSAgRml4ZXMgIzMxOTE4My4KCjIwMDYtMDItMTYgMDk6MTc6NTggKzAwMDAgIFdvdXRlciBQYWVzZW4gPHdvdXRlckBrYW5nYXJvb3QubmV0PgoKCSAgZ3N0L2FscGhhL2dzdGFscGhhLmM6IERvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgb2YgdGhlIHBhcmVudCBjbGFzcydzIHN0YXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYS5jOiAoZ3N0X2FscGhhX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGlnbm9yZSByZXR1cm4gdmFsdWUgb2YgdGhlIHBhcmVudCBjbGFzcydzIHN0YXRlCgkgIGNoYW5nZSBmdW5jdGlvbiAoIzMzMTM4NSwgcGF0Y2ggYnk6IFdvdXRlciBQYWVzZW4pLgoKMjAwNi0wMi0xNSAxMjoxNzoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBIQUwgc291bmQgZGV2aWNlIHdyYXBwZXIgcGx1Z2lucy4gQ2xvc2VzICMzMjkxMDYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2hhbC9NYWtlZmlsZS5hbToKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc2luay5jOiAoZ3N0X2hhbF9hdWRpb19zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfaGFsX2F1ZGlvX3NpbmtfY2xhc3NfaW5pdCksIChnc3RfaGFsX2F1ZGlvX3NpbmtfcmVzZXQpLAoJICAoZ3N0X2hhbF9hdWRpb19zaW5rX2luaXQpLCAoZ3N0X2hhbF9hdWRpb19zaW5rX2Rpc3Bvc2UpLAoJICAoZG9fdG9nZ2xlX2VsZW1lbnQpLCAoZ3N0X2hhbF9hdWRpb19zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaGFsX2F1ZGlvX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9oYWxfYXVkaW9fc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9oYWwvZ3N0aGFsYXVkaW9zaW5rLmg6CgkgICogZXh0L2hhbC9nc3RoYWxhdWRpb3NyYy5jOiAoZ3N0X2hhbF9hdWRpb19zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9oYWxfYXVkaW9fc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2hhbF9hdWRpb19zcmNfcmVzZXQpLAoJICAoZ3N0X2hhbF9hdWRpb19zcmNfaW5pdCksIChnc3RfaGFsX2F1ZGlvX3NyY19kaXNwb3NlKSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KSwgKGdzdF9oYWxfYXVkaW9fc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaGFsX2F1ZGlvX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2hhbF9hdWRpb19zcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvaGFsL2dzdGhhbGF1ZGlvc3JjLmg6CgkgICogZXh0L2hhbC9nc3RoYWxlbGVtZW50cy5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9oYWwvZ3N0aGFsZWxlbWVudHMuaDoKCSAgKiBleHQvaGFsL2hhbC5jOiAoZ3N0X2hhbF9nZXRfc3RyaW5nKSwKCSAgKGdzdF9oYWxfcmVuZGVyX2Jpbl9mcm9tX3VkaSksIChnc3RfaGFsX2dldF9hdWRpb19zaW5rKSwKCSAgKGdzdF9oYWxfZ2V0X2F1ZGlvX3NyYyk6CgkgICogZXh0L2hhbC9oYWwuaDoKCSAgQWRkIEhBTCBzb3VuZCBkZXZpY2Ugd3JhcHBlciBwbHVnaW5zLiBDbG9zZXMgIzMyOTEwNgoKMjAwNi0wMi0xNSAxMjoxMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogSXQgYXBwZWFycyAxMDAlIGVxdWFscyAxLzEgYW5kIG5vdCAxMDAvMSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfY2hhaW4pOgoJICBJdCBhcHBlYXJzIDEwMCUgZXF1YWxzIDEvMSBhbmQgbm90IDEwMC8xIC4uLgoKMjAwNi0wMi0xNSAxMDoxNTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogQWRkIGNvbW1lbnQgaW4gYSBmdWx0aWxlIGF0dGVtcHQgdG8gc3RvcCB0aGUgY29weS1hbmQtcGFzdGUgcGFyYWRpZ20gbGVhZGluZyB0byBkdXBsaWNhdGlvbiBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpOgoJICBBZGQgY29tbWVudCBpbiBhIGZ1bHRpbGUgYXR0ZW1wdCB0byBzdG9wIHRoZSBjb3B5LWFuZC1wYXN0ZQoJICBwYXJhZGlnbSBsZWFkaW5nIHRvIGR1cGxpY2F0aW9uIG9mIGJhZCBjb2RlLgoJICAqIGdzdC9ydHNwL3J0c3B0cmFuc3BvcnQuYzogKHJ0c3BfdHJhbnNwb3J0X3BhcnNlKToKCSAgTWltZSBwYXJhbWV0ZXJzIGhhdmUgdG8gYmUgY2hlY2tlZCBjYXNlIGluc2Vuc2l0aXZlCgoyMDA2LTAyLTE1IDA5OjQ1OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBXaGVuIGJ1ZmZlcmluZyBNREFUIGRhdGEsIHNob3cgdGhlIHVzZXIgc29tZXRoaW5nIGlzIGhhcHBlbmluZyBieSBwb3N0aW5nICdidWZmZXJpbmcnIG1lc3NhZ2VzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X3Bvc3RfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdGRlbXV4X2NoYWluKToKCSAgV2hlbiBidWZmZXJpbmcgTURBVCBkYXRhLCBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBpcwoJICBoYXBwZW5pbmcgYnkgcG9zdGluZyAnYnVmZmVyaW5nJyBtZXNzYWdlcyBvbiB0aGUgYnVzLgoKMjAwNi0wMi0xNCAyMzoyMzowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBBZHZhbmNlIHN0cmVhbSB0aW1lIGZvciBsYWdnaW5nIHN1YnRpdGxlIHN0cmVhbXMgYnkgc2VuZGluZyBuZXdzZWdtZW50IGV2ZW50cyB3aXRoIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9zeW5jX3N0cmVhbXMpOgoJICBBZHZhbmNlIHN0cmVhbSB0aW1lIGZvciBsYWdnaW5nIHN1YnRpdGxlIHN0cmVhbXMgYnkgc2VuZGluZwoJICBuZXdzZWdtZW50IGV2ZW50cyB3aXRoIHRoZSB1cGRhdGUgZmxhZyBzZXQuCgoyMDA2LTAyLTE0IDE4OjUwOjEzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC4qOiBNYWtlIHB1c2gtYmFzZWQgd29yayBpZiBtZGF0IGF0b20gaXMgYmVmb3JlIG1vb3YgYXRvbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfaW5pdCksCgkgIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChuZXh0X2VudHJ5X3NpemUpLCAoZ3N0X3F0ZGVtdXhfY2hhaW4pOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgTWFrZSBwdXNoLWJhc2VkIHdvcmsgaWYgbWRhdCBhdG9tIGlzIGJlZm9yZSBtb292IGF0b20uCgkgIERvbid0IGFuc3dlciBkdXJhdGlvbiBxdWVyeS4gVGhpcyBzaG91bGQgYmUgdHJhbnNmb3JtZWQgaW50byByZXBseWluZwoJICBGQUxTRSB0byBzZWVrIGV2ZW50cy4KCjIwMDYtMDItMTQgMTY6NTg6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFRoZXJlIGNhbiBiZSBib2d1cyBkYXRhIGJlZm9yZSB0aGUgaGRybCBMSVNUIHRhZyBpbiB0aGUgUklGRiBoZWFkZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlcik6CgkgIFRoZXJlIGNhbiBiZSBib2d1cyBkYXRhIGJlZm9yZSB0aGUgaGRybCBMSVNUIHRhZyBpbiB0aGUgUklGRiBoZWFkZXIuCgkgIEl0J3MgaGFyZCB0byBzYXkgaWYgaXQncyBub3QgcmVzcGVjdGluZyB0aGUgQVZJIHNwZWNpZmljYXRpb25zIG9yIG5vdCwKCSAgYnV0IHNpbmNlIEdvb2dsZSBWaWRlbyBpcyBwcm9kdWNpbmcgQVZJcyBsaWtlIHRoYXQgYW5kIHRoZSBvdGhlciBwbGF5ZXIKCSAgZG9uJ3Qgc2VlbSB0byBjb21wbGFpbiwgSSBndWVzcyB3ZSBzaG91bGQgZG8gdGhlIHNhbWUuCgoyMDA2LTAyLTE0IDExOjI0OjUzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgZGF0YSBhdG9tcyBhcmUgYmVmb3JlIG1vb3YgYXRvbXMgaW4gcHVzaC1iYXNlZCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChuZXh0X2VudHJ5X3NpemUpLCAoZ3N0X3F0ZGVtdXhfY2hhaW4pOgoJICBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgZGF0YSBhdG9tcyBhcmUgYmVmb3JlIG1vb3YgYXRvbXMgaW4gcHVzaC1iYXNlZCBtb2RlLgoJICBFcnJvcnMgb3V0IGdyYWNlZnVsbHkuCgoyMDA2LTAyLTEzIDIyOjA0OjQyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvOiBRdERlbXV4IGNhbiBub3cgd29yayBwdXNoLWJhc2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9pbml0KSwKCSAgKGdzdF9xdGRlbXV4X2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChleHRyYWN0X2luaXRpYWxfbGVuZ3RoX2FuZF9mb3VyY2MpLAoJICAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9oZWFkZXIpLCAoZ3N0X3F0ZGVtdXhfbG9vcF9zdGF0ZV9tb3ZpZSksCgkgIChnc3RfcXRkZW11eF9sb29wX2hlYWRlciksIChuZXh0X2VudHJ5X3NpemUpLCAoZ3N0X3F0ZGVtdXhfY2hhaW4pLAoJICAocXRkZW11eF9zaW5rX2FjdGl2YXRlKSwgKHF0ZGVtdXhfc2lua19hY3RpdmF0ZV9wdWxsKSwKCSAgKHF0ZGVtdXhfc2lua19hY3RpdmF0ZV9wdXNoKSwgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5oOgoJICBRdERlbXV4IGNhbiBub3cgd29yayBwdXNoLWJhc2VkLgoJICBJdCBzdGlsbCBuZWVkcyBzb21lIGxvdmUgZm9yIHNlZWtpbmcuCgoyMDA2LTAyLTEzIDEyOjAwOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBBZGQgbW9yZSB2YWxpZGF0aW9uIHRvIGVuc3VyZSB0aGF0IGEgY2hhciBlbmNvZGluZyBjb252ZXJzaW9uIHByb2R1Y2VkIGEgdmFsaWQgVVRGLTggc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX2luc2VydF9zdHJpbmdfZmllbGQpLAoJICAocGFyc2Vfc3BsaXRfc3RyaW5ncyk6CgkgIEFkZCBtb3JlIHZhbGlkYXRpb24gdG8gZW5zdXJlIHRoYXQgYSBjaGFyIGVuY29kaW5nIGNvbnZlcnNpb24KCSAgcHJvZHVjZWQgYSB2YWxpZCBVVEYtOCBzdHJpbmcuCgoyMDA2LTAyLTEzIDEwOjQzOjE1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBQcm9wZXJseSBoYW5kbGUgZW5kIG9mIHNlZ21lbnQuIENsb3NlcyAjMzMwODg1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IEVkd2FyZCBIZXJ2ZXkgIDxlZHdhcmRAZmx1ZW5kby5jb20+CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpOgoJICBQcm9wZXJseSBoYW5kbGUgZW5kIG9mIHNlZ21lbnQuIENsb3NlcyAjMzMwODg1LgoKMjAwNi0wMi0xMyAxMDozNjoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5oOiBGb3IgZ290IHRvIGNvbW1pdCB0aGlzIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5Lmg6CgkgIEZvciBnb3QgdG8gY29tbWl0IHRoaXMgb25lLgoKMjAwNi0wMi0xMiAxODo1OTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS4qOiBNYWtlIG1vcmUgdGhpbmdzIHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOiAoZ3N0X3J0cF9tcDRnX3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfbXA0Z19wYXlfaW5pdCksIChnc3RfcnRwX21wNGdfcGF5X3BhcnNlX2F1ZGlvX2NvbmZpZyksCgkgIChnc3RfcnRwX21wNGdfcGF5X3BhcnNlX3ZpZGVvX2NvbmZpZyksIChnc3RfcnRwX21wNGdfcGF5X25ld19jYXBzKSwKCSAgKGdzdF9ydHBfbXA0Z19wYXlfc2V0Y2FwcyksIChnc3RfcnRwX21wNGdfcGF5X2ZsdXNoKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNGdwYXkuaDoKCSAgTWFrZSBtb3JlIHRoaW5ncyB3b3JrLgoJICBIYW5kbGUgQUNDIGNvbmZpZyBzdHJpbmdzLgoKMjAwNi0wMi0xMiAxMzoxMDoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOiBzZXQgdGltZXN0YW1wcyBpZiBubyBpbmNvbWluZyB0aW1lc3RhbXBzIHNldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOiAoZ3N0X3J0cF9hbXJfcGF5X2hhbmRsZV9idWZmZXIpOgoJICBzZXQgdGltZXN0YW1wcyBpZiBubyBpbmNvbWluZyB0aW1lc3RhbXBzIHNldAoKMjAwNi0wMi0xMSAxMzo1NDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguYzogLi4uIGFuZCBmaXggdGhlIHZlcnkgc2FtZSBsZWFrcyBpbiBHc3RUYWdEZW11eC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2FwZXRhZy9nc3R0YWdkZW11eC5jOiAoZ3N0X3RhZ19kZW11eF9nZXRfdXBzdHJlYW1fc2l6ZSksCgkgIChnc3RfdGFnX2RlbXV4X2RvX3R5cGVmaW5kKToKCSAgLi4uIGFuZCBmaXggdGhlIHZlcnkgc2FtZSBsZWFrcyBpbiBHc3RUYWdEZW11eC4KCjIwMDYtMDItMTEgMTM6MzU6MTMgKzAwMDAgIEpvbiBUcm93YnJpZGdlIDx0cm93QHhpbWlhbi5jb20+CgoJICBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChpZDNkZW11eF9nZXRfdXBzdHJlYW1fc2l6ZSksCgkgIChnc3RfaWQzZGVtdXhfZG9fdHlwZWZpbmQpOgoJICBGaXggYSBjb3VwbGUgb2YgbWVtIGxlYWtzLiAoUGF0Y2ggYnkgSm9uYXRoYW4gTWF0dGhldwoJICA8am9uYXRoYW4gYXQga2FvbGluIGRvdCB3aDkgZG90IG5ldD4pCgoyMDA2LTAyLTEwIDE3OjM3OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IEZpcnN0IHNldCBvcHRpb25zLCB0aGVuIHNldCBjYXBzIG9yIGVsc2UgdGhlIGJhc2VjbGFzcyB3aWxsIG5vdCBrbm93IGFib3V0IHRoZSBvcHRpb25zLCBkdWguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOiAoZ3N0X3J0cF9tcDR2X3BheV9zZXRjYXBzKToKCSAgRmlyc3Qgc2V0IG9wdGlvbnMsIHRoZW4gc2V0IGNhcHMgb3IgZWxzZSB0aGUgYmFzZWNsYXNzCgkgIHdpbGwgbm90IGtub3cgYWJvdXQgdGhlIG9wdGlvbnMsIGR1aC4KCjIwMDYtMDItMTAgMTc6MTY6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzogRG9uJ3Qgd2FzdGUgdGltZSBsb29raW5nIGZvciBhIGNvbmZpZyBzdHJpbmcgaWYgd2UgaGF2ZSBjb2RlY19pbmZvIG9uIHRoZSBpbmNvbW1pbmcgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6IChnc3RfcnRwX21wNHZfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9tcDR2X3BheV9zZXRjYXBzKToKCSAgRG9uJ3Qgd2FzdGUgdGltZSBsb29raW5nIGZvciBhIGNvbmZpZyBzdHJpbmcgaWYgd2UgaGF2ZSBjb2RlY19pbmZvCgkgIG9uIHRoZSBpbmNvbW1pbmcgY2Fwcy4KCjIwMDYtMDItMTAgMTY6NDA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL1JFQURNRTogU2F5IHNvbWV0aGluZyBhYm91dCBjYXNlLXNlbnNpdGl2aXR5IG9mIGNhcHMgdnMgbWltZS1hdHRyaWJ1dGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL1JFQURNRToKCSAgU2F5IHNvbWV0aGluZyBhYm91dCBjYXNlLXNlbnNpdGl2aXR5IG9mIGNhcHMgdnMgbWltZS1hdHRyaWJ1dGVzLgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcnBheS5jOiAoZ3N0X3J0cF9hbXJfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9hbXJfcGF5X2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jOiAoZ3N0X3J0cF9tcDRnX3BheV9nZXRfdHlwZSksCgkgIChnc3RfcnRwX21wNGdfcGF5X2Jhc2VfaW5pdCksIChnc3RfcnRwX21wNGdfcGF5X2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9pbml0KSwgKGdzdF9ydHBfbXA0Z19wYXlfZmluYWxpemUpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9uZXdfY2FwcyksIChnc3RfcnRwX21wNGdfcGF5X3NldGNhcHMpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9mbHVzaCksIChnc3RfcnRwX21wNGdfcGF5X2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9zZXRfcHJvcGVydHkpLCAoZ3N0X3J0cF9tcDRnX3BheV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cF9tcDRnX3BheV9wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDRncGF5Lmg6CgkgIEFkZGVkIGJlZ2lubmluZ3Mgb2YgbXBlZzQtZ2VuZXJpYyBwYXlsb2FkZXIgKFJGQyAzNjQwKQoKMjAwNi0wMi0wOSAxNDoyMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwLzogUmVzdXJlY3RlZCBydHBkZWMgdG8gbWFrZSBydHNwc3JjIGhhcHB5IGFnYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuYzogKGdzdF9ydHBkZWNfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0cGRlY19jbGFzc19pbml0KSwgKGdzdF9ydHBkZWNfaW5pdCksIChnc3RfcnRwZGVjX2dldGNhcHMpLAoJICAoZ3N0X3J0cGRlY19jaGFpbl9ydHApLCAoZ3N0X3J0cGRlY19jaGFpbl9ydGNwKSwKCSAgKGdzdF9ydHBkZWNfc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBkZWNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBkZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvcnRzcC9nc3RydHBkZWMuaDoKCSAgKiBnc3QvcnRzcC9nc3RydHNwLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc3RyZWFtX2NvbmZpZ3VyZV90cmFuc3BvcnQpOgoJICAqIGdzdC9ydHNwL3J0c3Bjb25uZWN0aW9uLmM6IChyZWFkX2JvZHkpLAoJICAocnRzcF9jb25uZWN0aW9uX3JlY2VpdmUpOgoJICAqIGdzdC9ydHNwL3J0c3BtZXNzYWdlLmM6IChydHNwX21lc3NhZ2VfZHVtcCk6CgkgIFJlc3VyZWN0ZWQgcnRwZGVjIHRvIG1ha2UgcnRzcHNyYyBoYXBweSBhZ2Fpbi4KCSAgU2tpcCBhdHRyaWJ1dGVzIGZyb20gdGhlIHNlc3Npb24gaWQuCgkgIERvbid0IGNyYXNoIHdoZW4gZHVtcGluZyBhIG1lc3NhZ2Ugd2l0aCBhbiBlbXB0eSBib2R5LgoKMjAwNi0wMi0wOSAxNDoxNDowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzogQWRkZWQgbW9yZSBtZWFuaW5nZnVsbCB3YXJuaW5ncyB3aGVuIHNvbWV0aGluZyBnb2VzIHdyb25nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6IChnc3RfcnRwX2Ftcl9kZXBheV9jaGFpbik6CgkgIEFkZGVkIG1vcmUgbWVhbmluZ2Z1bGwgd2FybmluZ3Mgd2hlbiBzb21ldGhpbmcgZ29lcyB3cm9uZy4KCSAgQ2xlYXIgRiBiaXQgb24gb3V0Z29pbmcgQU1SIHBhY2tldHMuCgkgICogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzogKGdzdF9ydHBfYW1yX3BheV9jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBfYW1yX3BheV9oYW5kbGVfYnVmZmVyKToKCSAgQWRkZWQgZGVidWdnaW5nIGNhdGVnb3J5CgkgIFN1cHBvcnQgcGF5bG9hZGluZyBvZiBtdWx0aXBsZSBBTVIgZnJhbWVzLgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOiAoZ3N0X3J0cF9tcDR2X3BheV9kZXBheV9kYXRhKToKCSAgQWRkZWQgc29tZSBkZWJ1Z2dpbmcuCgoyMDA2LTAyLTA5IDExOjI1OjQyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4yID09PQoKMjAwNi0wMi0wOSAxMToyMjozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFwZXRhZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJICBSZWxlYXNpbmcgMC4xMC4yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNpbmcgMC4xMC4yCgoyMDA2LTAyLTA4IDE3OjM1OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY3MucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wMi0wOCAxNzoxODoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE9vcHMsIGp1bXBpbmcgdGhlIGd1biB3aXRoIHRoZSBDaGFuZ2VMb2cgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9vcHMsIGp1bXBpbmcgdGhlIGd1biB3aXRoIHRoZSBDaGFuZ2VMb2cgZW50cnkKCjIwMDYtMDItMDggMTc6MTY6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIGNvcmUgYW5kIHBsdWdpbnMtYmFzZSByZXF1aXJlbWVudCB0byAwLjEwLjIuMiBmb3IgQVBJIGFkZGl0aW9ucyAoYW5kIDEgbWlncmF0aW9uIG9mIGdzdF9iaW5fZmluZF91Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBjb3JlIGFuZCBwbHVnaW5zLWJhc2UgcmVxdWlyZW1lbnQgdG8gMC4xMC4yLjIKCSAgZm9yIEFQSSBhZGRpdGlvbnMgKGFuZCAxIG1pZ3JhdGlvbiBvZiBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKQoKMjAwNi0wMi0wOCAxNzoxMjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC86IFJlZ2lzdGVyIG11c2ljYnJhaW56IHRhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXguYzogKHBsdWdpbl9pbml0KToKCSAgUmVnaXN0ZXIgbXVzaWNicmFpbnogdGFncy4KCjIwMDYtMDItMDcgMTg6MzE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICByZW1vdmUgdW51c2VkIHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDYtMDItMDcgMTg6MDE6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiB1c2UgdGhlIGNvcnJlY3QgdmFyaWFibGUgdG8gY2hlY2sgaWYgd2UgY2FuIGNhbGN1bGF0ZSB0aGUgbGFzdCBjaHVuay4gIExvb2tzIGxpa2UgYW4gb2J2aW91cyBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2xvb3BfaGVhZGVyKSwKCSAgKHF0ZGVtdXhfcGFyc2VfdHJhayk6CgkgIHVzZSB0aGUgY29ycmVjdCB2YXJpYWJsZSB0byBjaGVjayBpZiB3ZSBjYW4gY2FsY3VsYXRlCgkgIHRoZSBsYXN0IGNodW5rLiAgTG9va3MgbGlrZSBhbiBvYnZpb3VzIGJ1ZywgYW5kIG1ha2VzCgkgIHRoZSBkdW1wIG9mIG9mZnNldHMgY29tcGFyYWJsZSB0byBvdGhlciB0b29scwoKMjAwNi0wMi0wNyAxNzo1NDo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IGNsZWFuIHVwIHNvbWUgZGVidWdnaW5nLCB1c2luZyBfT0JKRUNULCBtb3ZpbmcgcmVjdXJyaW5nIG1lc3NhZ2VzIHRvIExPRyBsZXZlbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9sb29wX2hlYWRlciksCgkgIChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBjbGVhbiB1cCBzb21lIGRlYnVnZ2luZywgdXNpbmcgX09CSkVDVCwgbW92aW5nIHJlY3VycmluZwoJICBtZXNzYWdlcyB0byBMT0cgbGV2ZWwKCjIwMDYtMDItMDcgMTY6MjM6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZ2NvbmYvZ2NvbmYuaDogUmVtb3ZlIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIHRoYXQgbm8gbG9uZ2VyIGV4aXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2djb25mLmg6CgkgIFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiB0aGF0IG5vIGxvbmdlciBleGlzdHMuCgoyMDA2LTAyLTA3IDEzOjM5OjA4ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzogTWFrZSBzaG91dDIgd29yayBmb3Igbm9uIG9nZyBzdHJlYW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzogKGdzdF9zaG91dDJzZW5kX3JlbmRlciksCgkgIChnc3Rfc2hvdXQyc2VuZF9zZXRjYXBzKSwgKGdzdF9zaG91dDJzZW5kX2NoYW5nZV9zdGF0ZSk6CgkgIE1ha2Ugc2hvdXQyIHdvcmsgZm9yIG5vbiBvZ2cgc3RyZWFtcwoKMjAwNi0wMi0wNiAxNzoyNjo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLio6IFVwZGF0ZWQgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX3JlbmRlciksIChnc3RfbXVsdGl1ZHBzaW5rX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2luaXRfc2VuZCksIChnc3RfbXVsdGl1ZHBzaW5rX2FkZCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX3JlbW92ZSksIChnc3RfbXVsdGl1ZHBzaW5rX2NsZWFyKSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfZ2V0X3N0YXRzKSwgKGdzdF9tdWx0aXVkcHNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5oOgoJICBVcGRhdGVkIGRvY3MuCgkgIEFkZGVkIHByb3BlcnRpZXMgYnl0ZXMtc2VydmVkLCBieXRlc190b19zZXJ2ZS4KCSAgUG9zdCBwcm9wZXIgZXJyb3IgbWVzc2FnZXMsCgkgIEVtaXQgY2xpZW50IGFkZGVkIHNpZ25hbCB0b28uCgoyMDA2LTAyLTA2IDE1OjQxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC4qOiBTb21lIFFUIGRlbXV4IGxvdmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwgKGdzdF9xdGRlbXV4X2xvb3BfaGVhZGVyKSwKCSAgKHF0ZGVtdXhfaW5mbGF0ZSksIChxdGRlbXV4X3BhcnNlKSwgKHF0ZGVtdXhfcGFyc2VfdHJhayksCgkgIChxdGRlbXV4X3BhcnNlX3VkdGEpLCAocXRkZW11eF90YWdfYWRkX3N0ciksIChxdGRlbXV4X3RhZ19hZGRfbnVtKSwKCSAgKHF0ZGVtdXhfdGFnX2FkZF9nbnJlKSwgKGdzdF9xdGRlbXV4X2hhbmRsZV9lc2RzKSwKCSAgKHF0ZGVtdXhfdmlkZW9fY2FwcyksIChxdGRlbXV4X2F1ZGlvX2NhcHMpOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDoKCSAgU29tZSBRVCBkZW11eCBsb3ZpbmcuCgkgIEhhbmRsZSBzZWVraW5nIGluIGEgbGVzcyBicm9rZW4gd2F5LgoJICBGaXggQU1SIGNhcHMgdG8gbWF0Y2ggdGhlIEFNUiBkZWNvZGVyLgoJICBTZXQgZmlyc3QgdGltZXN0YW1wIG9uIEFNUiBzYW1wbGVzIHRvIDAgZm9yIG5vdy4KCSAgUmVtb3ZlIHNvbWUgXG4gaW4gREVCVUcgc3RyaW5ncy4KCSAgVXNlIF9zY2FsZV9pbnQgZm9yIG1heGltdW0gcHJlY2lzaW9uLgoKMjAwNi0wMi0wNiAxNTozMToxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmM6CgkgIGFkZGluZyBkb2NzIGZvciBtdWx0aXVkcHNpbmsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBkb2NzIGZvciBtdWx0aXVkcHNpbmsKCjIwMDYtMDItMDYgMTU6Mjg6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2xldmVsL2dzdGxldmVsLmM6IHBlYWsgYmVsb3cgZGVjYXkgaXMgbm90IG5lY2Vzc2FyaWx5IGFuIGVycm9yLCBzbyBkb24ndCBFUlJPUiBsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmM6IChnc3RfbGV2ZWxfdHJhbnNmb3JtX2lwKToKCSAgcGVhayBiZWxvdyBkZWNheSBpcyBub3QgbmVjZXNzYXJpbHkgYW4gZXJyb3IsIHNvIGRvbid0IEVSUk9SIGxvZwoKMjAwNi0wMi0wNiAxNToyNzowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgY3ZzIHZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjdnMgdmVyc2lvbnMKCjIwMDYtMDItMDYgMTQ6MjU6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS4qOiBNYWtlIHN1cmUgd2Ugc2VuZCBhIG5ld3NlZ21lbnQgZXZlbnQgaW4gQllURVMgZm9ybWF0IGJlZm9yZSBzZW5kaW5nIGJ1ZmZlcnMgKCMzMjg1MzEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOiAoZ3N0X2VibWxfd3JpdGVfcmVzZXQpLAoJICAoZ3N0X2VibWxfd3JpdGVfZmx1c2hfY2FjaGUpLCAoZ3N0X2VibWxfd3JpdGVfZWxlbWVudF9wdXNoKSwKCSAgKGdzdF9lYm1sX3dyaXRlX3NlZWspOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXdyaXRlLmg6CgkgIE1ha2Ugc3VyZSB3ZSBzZW5kIGEgbmV3c2VnbWVudCBldmVudCBpbiBCWVRFUyBmb3JtYXQKCSAgYmVmb3JlIHNlbmRpbmcgYnVmZmVycyAoIzMyODUzMSkuCgoyMDA2LTAyLTA2IDEyOjE4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUGFzcyB1bmhhbmRsZWQgcXVlcmllcyB1cHN0cmVhbSBpbnN0ZWFkIG9mIGp1c3QgZHJvcHBpbmcgdGhlbSAoIzMyNjQ0NikuIFVwZGF0ZSBxdWVyeSB0eXBlIGFycmF5cyBoZXJlIGFuZCB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X3NyY19xdWVyeSksCgkgIChnc3RfZHZkZW11eF9zaW5rX3F1ZXJ5KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY19kZWNfc3JjX3F1ZXJ5KToKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhkZWMuYzogKHNwZWV4X2dldF9xdWVyeV90eXBlcyksCgkgIChzcGVleF9kZWNfc3JjX3F1ZXJ5KToKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogKGdzdF9zcGVleGVuY19zcmNfcXVlcnkpLAoJICAoZ3N0X3NwZWV4ZW5jX3NpbmtfcXVlcnkpOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfZ2V0X3NyY19xdWVyeV90eXBlcyksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NyY19xdWVyeSk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfZ2V0X3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF93YXZwYXJzZV9wYWRfcXVlcnkpOgoJICBQYXNzIHVuaGFuZGxlZCBxdWVyaWVzIHVwc3RyZWFtIGluc3RlYWQgb2YganVzdCBkcm9wcGluZwoJICB0aGVtICgjMzI2NDQ2KS4gVXBkYXRlIHF1ZXJ5IHR5cGUgYXJyYXlzIGhlcmUgYW5kIHRoZXJlLgoKMjAwNi0wMi0wNiAxMTo1Nzo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6IENvbGxlY3RwYWRzIGluIGNvcmUgZ290IGNoYW5nZWQgYW5kIG5vdyBhbHNvIGhvbGRzIGEgcmVmZXJlbmNlIHRvIGFueSBwYWQgdGhhdCBpcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOiAoc2V0dXBfc3JjX3BhZCk6CgkgIENvbGxlY3RwYWRzIGluIGNvcmUgZ290IGNoYW5nZWQgYW5kIG5vdyBhbHNvIGhvbGRzIGEKCSAgcmVmZXJlbmNlIHRvIGFueSBwYWQgdGhhdCBpcyBwYXJ0IG9mIGl0LiBGaXggcmVmY291bnQKCSAgY2hlY2tzIGluIHRlc3QgY2FzZSBhY2NvcmRpbmdseS4KCjIwMDYtMDItMDYgMTE6NDE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXBldGFnL2dzdGFwZWRlbXV4Lmg6IEZpeCBpbmNsdWRlLCBmb3Igbm93IEdzdFRhZ0RlbXV4IGlzIGluIHRoZSBhcGV0YWcgZGlyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4Lmg6CgkgIEZpeCBpbmNsdWRlLCBmb3Igbm93IEdzdFRhZ0RlbXV4IGlzIGluIHRoZSBhcGV0YWcgZGlyLgoKMjAwNi0wMi0wNiAxMTozNDoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IEFkZCBjZGlvIHBsdWdpbiB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNkaW8ueG1sOgoJICBBZGQgY2RpbyBwbHVnaW4gdG8gZG9jcy4KCSAgKiBleHQvY2Rpby9nc3RjZGlvY2RkYXNyYy5jOgoJICBBZGQgZ3RrLWRvYyBibHVyYi4KCSAgKiBleHQvY2Rpby9nc3RjZGlvLmM6CgkgIFRoZSBwbHVnaW4gaXMgY2FsbGVkICdjZGlvJyBub3QgJ2NkZGlvJy4KCjIwMDYtMDItMDYgMTA6NTY6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgQVBFIHRhZyBkZW11eGVyICgjMzI1NjQ5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXBldGFnLnhtbDoKCSAgKiBnc3QvYXBldGFnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hcGV0YWcvZ3N0YXBlZGVtdXguYzoKCSAgKiBnc3QvYXBldGFnL2dzdGFwZWRlbXV4Lmg6CgkgICogZ3N0L2FwZXRhZy9nc3R0YWdkZW11eC5jOgoJICAqIGdzdC9hcGV0YWcvZ3N0dGFnZGVtdXguaDoKCSAgQWRkIEFQRSB0YWcgZGVtdXhlciAoIzMyNTY0OSkuCgoyMDA2LTAyLTA1IDIyOjIyOjU2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGV4dC9nY29uZi86IElnbm9yZSBjaGFuZ2luZyB0aGUgR0NvbmYga2V5IHRvICIiLiBJZ25vcmUgR0NvbmYga2V5IHVwZGF0ZXMgdGhhdCBkb24ndCBhY3R1YWxseSBjaGFuZ2UgdGhlIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2djb25mL2djb25mLmM6IChnc3RfZ2NvbmZfZ2V0X2RlZmF1bHRfYXVkaW9fc2luayksCgkgIChnc3RfZ2NvbmZfZ2V0X2RlZmF1bHRfdmlkZW9fc2luayksCgkgIChnc3RfZ2NvbmZfZ2V0X2RlZmF1bHRfYXVkaW9fc3JjKSwKCSAgKGdzdF9nY29uZl9nZXRfZGVmYXVsdF92aWRlb19zcmMpOgoJICAqIGV4dC9nY29uZi9nY29uZi5oOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOiAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfcmVzZXQpLAoJICAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfaW5pdCksIChnc3RfZ2NvbmZfYXVkaW9fc2lua19kaXNwb3NlKSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuaDoKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NyYy5jOiAoZ3N0X2djb25mX2F1ZGlvX3NyY19yZXNldCksCgkgIChnc3RfZ2NvbmZfYXVkaW9fc3JjX2luaXQpLCAoZ3N0X2djb25mX2F1ZGlvX3NyY19kaXNwb3NlKSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NyYy5oOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc2luay5jOiAoZ3N0X2djb25mX3ZpZGVvX3NpbmtfcmVzZXQpLAoJICAoZ3N0X2djb25mX3ZpZGVvX3NpbmtfaW5pdCksIChnc3RfZ2NvbmZfdmlkZW9fc2lua19kaXNwb3NlKSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuaDoKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5jOiAoZ3N0X2djb25mX3ZpZGVvX3NyY19yZXNldCksCgkgIChnc3RfZ2NvbmZfdmlkZW9fc3JjX2luaXQpLCAoZ3N0X2djb25mX3ZpZGVvX3NyY19kaXNwb3NlKSwKCSAgKGRvX3RvZ2dsZV9lbGVtZW50KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5oOgoJICBJZ25vcmUgY2hhbmdpbmcgdGhlIEdDb25mIGtleSB0byAiIi4gSWdub3JlIEdDb25mIGtleSB1cGRhdGVzCgkgIHRoYXQgZG9uJ3QgYWN0dWFsbHkgY2hhbmdlIHRoZSBzdHJpbmcuCgkgIEZvciBub3csIGlnbm9yZSB0aGUgR0NvbmYga2V5IHdoZW4gdGhlIHN0YXRlIGlzID4gUkVBRFksIGFzCgkgIGl0IGJyZWFrcyBzdHJlYW1pbmcuIFNvbWV0aW1lIGl0IHdpbGwgYmUgbmljZSB0byBicmluZyB0aGUKCSAgbmV3IHNpbmsgb25saW5lIGV2ZW4gbWlkLXN0cmVhbSwgYnkgc2VuZGluZyBORVdTRUdNRU5UIGluZm8KCSAgYW5kIHBvc3NpYmx5IHByZXJvbGxpbmcuCgkgIChGaXhlcyAjMzI2NzM2KQoKMjAwNi0wMi0wNSAyMDo0Mzo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ29vbS86IE1ha2UgZ29vbSByZWVudHJhbnQgYnkgbW92aW5nIGFsbCBpbXBvcnRhbnQgc3RhdGljIHZhcmlhYmxlcyBpbnRvIGluc3RhbmNlIHN0cnVjdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2ZpbHRlcnMuYzogKHpvb21GaWx0ZXJOZXcpLCAoY2FsY3VsYXRlUFhhbmRQWSksCgkgIChzZXRQaXhlbFJHQiksIChzZXRQaXhlbFJHQl8pLCAoZ2V0UGl4ZWxSR0IpLCAoZ2V0UGl4ZWxSR0JfKSwKCSAgKHpvb21GaWx0ZXJTZXRSZXNvbHV0aW9uKSwgKHpvb21GaWx0ZXJEZXN0cm95KSwKCSAgKHpvb21GaWx0ZXJGYXN0UkdCKSwgKHBvaW50RmlsdGVyKToKCSAgKiBnc3QvZ29vbS9maWx0ZXJzLmg6CgkgICogZ3N0L2dvb20vZ29vbV9jb3JlLmM6IChnb29tX2luaXQpLCAoZ29vbV9zZXRfcmVzb2x1dGlvbiksCgkgIChnb29tX3VwZGF0ZSksIChnb29tX2Nsb3NlKToKCSAgKiBnc3QvZ29vbS9nb29tX2NvcmUuaDoKCSAgKiBnc3QvZ29vbS9nb29tX3Rvb2xzLmg6CgkgICogZ3N0L2dvb20vZ3JhcGhpYy5jOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzogKGdzdF9nb29tX2NsYXNzX2luaXQpLCAoZ3N0X2dvb21faW5pdCksCgkgIChnc3RfZ29vbV9kaXNwb3NlKSwgKGdzdF9nb29tX3NyY19zZXRjYXBzKSwgKGdzdF9nb29tX2NoYWluKToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmg6CgkgICogZ3N0L2dvb20vbGluZXMuYzogKGdvb21fbGluZXMpOgoJICAqIGdzdC9nb29tL2xpbmVzLmg6CgkgIE1ha2UgZ29vbSByZWVudHJhbnQgYnkgbW92aW5nIGFsbCBpbXBvcnRhbnQgc3RhdGljIHZhcmlhYmxlcwoJICBpbnRvIGluc3RhbmNlIHN0cnVjdHVyZXMuCgkgIChGaXhlcyAjMzI5MTgxKQoKMjAwNi0wMi0wNCAxNTo0MTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogVGhpcmQgYXR0ZW1wdCwgdXNlIGdzdF9wYWRfaXNfbGlua2VkKCkgdGhpcyB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X2FsbF9zb3VyY2VfcGFkc191bmxpbmtlZCksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5oOgoJICBUaGlyZCBhdHRlbXB0LCB1c2UgZ3N0X3BhZF9pc19saW5rZWQoKSB0aGlzIHRpbWUuCgoyMDA2LTAyLTA0IDEzOjMwOjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBBZGp1c3QgZm9yIGRhdGEgbGVuZ3RoIGluZGljYXRvcnMgd2hlbiBwYXJzaW5nIChGaXhlcyAjMzI5ODEwKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGlkM2RlbXV4X2lkM3YyX3BhcnNlX2ZyYW1lKSwKCSAgKHBhcnNlX3NwbGl0X3N0cmluZ3MpOgoJICBBZGp1c3QgZm9yIGRhdGEgbGVuZ3RoIGluZGljYXRvcnMgd2hlbiBwYXJzaW5nIChGaXhlcyAjMzI5ODEwKQoJICBGaXggc3R1cGlkIGJ1ZyBwYXJzaW5nIFVURi04IHRhZyB0ZXh0LgoJICBPdXRwdXQgdGFnIHN0cmluZ3Mgd2l0aCBtdWx0aXBsZSBmaWVsZHMgYXMgbXVsdGlwbGUgdGFncywgc28gdGhlCgkgIGFwcCBnZXRzIGFsbCB0aGUgZGF0YS4KCjIwMDYtMDItMDMgMjA6MDU6MjAgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJICBGaXhlZCBhIGJ1ZyBhZGQgaW4gbGFzdCBjb21taXQsIHdoZXJlIG5vIGV2ZW50IGlzIHNlbmQuIFRoYW5rcyBUaW0gdG8gc2hvdyBtZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeGVkIGEgYnVnIGFkZCBpbiBsYXN0IGNvbW1pdCwgd2hlcmUgbm8gZXZlbnQgaXMgc2VuZC4gVGhhbmtzIFRpbSB0byBzaG93IG1lLgoKMjAwNi0wMi0wMyAxODowNzozNSArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSAgSnVzdCBtYWtlIGl0IGNvbXBpbGUgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSnVzdCBtYWtlIGl0IGNvbXBpbGUgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLgoKMjAwNi0wMi0wMyAxNjo1NTo0MiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA2LTAyLTAzIDEzOjA2OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBOZXZlciBvdXRwdXQgYSB0YWcgd2l0aCBhIG51bGwgY29udGVudHMgc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKHBhcnNlX3RleHRfaWRlbnRpZmljYXRpb25fZnJhbWUpLAoJICAoaWQzdjJfdGFnX3RvX3RhZ2xpc3QpLCAoaWQzdjJfZ2VucmVfc3RyaW5nX3RvX3RhZ2xpc3QpLAoJICAoaWQzdjJfZ2VucmVfZmllbGRzX3RvX3RhZ2xpc3QpOgoJICBOZXZlciBvdXRwdXQgYSB0YWcgd2l0aCBhIG51bGwgY29udGVudHMgc3RyaW5nLgoKMjAwNi0wMi0wMiAyMTowMDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogT25seSBwYXVzZSBpZiBhbGwgcGFkcyBhcmUgdW5saW5rZWQgQU5EIHdlJ3ZlIHRyaWVkIHRvIHNlbmQgZGF0YSBvbiBhbGwgb2YgdGhlbSBhdCBsZWFzdCBvbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2FsbF9zb3VyY2VfcGFkc191bmxpbmtlZCk6CgkgIE9ubHkgcGF1c2UgaWYgYWxsIHBhZHMgYXJlIHVubGlua2VkIEFORCB3ZSd2ZSB0cmllZCB0byBzZW5kIGRhdGEKCSAgb24gYWxsIG9mIHRoZW0gYXQgbGVhc3Qgb25jZS4KCjIwMDYtMDItMDIgMTI6Mjk6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IE1ha2UgbG9vcCBmdW5jdGlvbi90YXNrIHBhdXNlIGl0c2VsZiB3aGVuIGFsbCBzb3VyY2UgcGFkcyBhcmUgdW5saW5rZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfYWxsX3NvdXJjZV9wYWRzX3VubGlua2VkKSwKCSAgKGdzdF9hdmlfZGVtdXhfcHJvY2Vzc19uZXh0X2VudHJ5KSwgKGdzdF9hdmlfZGVtdXhfbG9vcCk6CgkgIE1ha2UgbG9vcCBmdW5jdGlvbi90YXNrIHBhdXNlIGl0c2VsZiB3aGVuIGFsbCBzb3VyY2UgcGFkcyBhcmUKCSAgdW5saW5rZWQuCgoyMDA2LTAyLTAyIDEwOjQ3OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgVXNlIG5ldyBmdW5jdGlvbnMgZnJvbSBjb3JlIHRvIHJlbmRlciBhIGJpbiBmcm9tIGEgc3RyaW5nLiBGaXhlcyBidWlsZC4gVXAgcmVxdWlyZW1lbnRzIHRvIGNvcmUgQ1ZTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L2djb25mL2djb25mLmM6IChnc3RfZ2NvbmZfcmVuZGVyX2Jpbl9mcm9tX2tleSk6CgkgIFVzZSBuZXcgZnVuY3Rpb25zIGZyb20gY29yZSB0byByZW5kZXIgYSBiaW4gZnJvbSBhCgkgIHN0cmluZy4gRml4ZXMgYnVpbGQuIFVwIHJlcXVpcmVtZW50cyB0byBjb3JlIENWUy4KCjIwMDYtMDItMDEgMTE6MDE6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IERvbid0IHB1c2ggYnVmZmVycyBpbnRvIHRoZSBhZGFwdGVyIHRoYXQgd2UgYXJlIGdvaW5nIHRvIHB1c2ggZG93bnN0cmVhbSBhZ2FpbiB3aXRob3V0IGZyYW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOiAoZ3N0X2F1X3BhcnNlX2NoYWluKToKCSAgRG9uJ3QgcHVzaCBidWZmZXJzIGludG8gdGhlIGFkYXB0ZXIgdGhhdCB3ZSBhcmUgZ29pbmcgdG8KCSAgcHVzaCBkb3duc3RyZWFtIGFnYWluIHdpdGhvdXQgZnJhbWluZyBhbnl3YXkuIEFsc28sIHRoZQoJICBhZGFwdG9yIHRha2VzIG93bmVyc2hpcCBvZiBidWZmZXJzIHB1dCBpbnRvIGl0IChmaXhlcwoJICBhdXBhcnNlIHB1c2hpbmcgaW52YWxpZCBidWZmZXJzIGZvciAuYXUgZmlsZXMgd2l0aAoJICBBRFBDTSBjb250ZW50cykuIEZpbmFsbHksIHNldCBjYXBzIG9uIGFsbCBvdXRnb2luZyBidWZmZXJzLgoKMjAwNi0wMS0zMCAyMzoxMzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvaWQzZGVtdXgvOiBTb21lb25lIHNob3VsZCBraWNrIG15IGJ1dHQuIFJlbW92ZSBJRDN2MSB0YWdzIGZyb20gdGhlIGVuZCBvZiB0aGUgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfY2hhaW4pLAoJICAoZ3N0X2lkM2RlbXV4X3JlYWRfaWQzdjEpLCAoZ3N0X2lkM2RlbXV4X3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2lkM2RlbXV4X3NlbmRfdGFnX2V2ZW50KToKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdGFncy5jOiAoaWQzZGVtdXhfcmVhZF9pZDN2MV90YWcpOgoJICBTb21lb25lIHNob3VsZCBraWNrIG15IGJ1dHQuIFJlbW92ZSBJRDN2MSB0YWdzIGZyb20gdGhlIGVuZCBvZiB0aGUKCSAgZmlsZS4KCSAgSW1wcm92ZSBlcnJvciBtZXNzYWdlcy4gU2VuZCB0aGUgVEFHIG1lc3NhZ2UgYXMgc29vbiBhcyB3ZSBjb21wbGV0ZQoJICB0eXBlZmluZGluZywgaW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsIHdlIHNlbmQgdGhlIGZpcnN0IGJ1ZmZlci4KCSAgRG93bnN0cmVhbSB0YWcgZXZlbnQgaXMgc3RpbGwgc2VudCBiZWZvcmUgdGhlIGZpcnN0IGJ1ZmZlci4KCjIwMDYtMDEtMjkgMjA6MDc6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IEFkZCBkZWJ1ZyBjYXRlZ29yeSwgdXNlIGJvaWxlcnBsYXRlIG1hY3JvcywgZml4IGhhbmRsaW5nIG9mIHdpZHRocyBvZiAzMiBiaXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmM6IChnc3Rfd2F2cGFja19kZWNfc2V0Y2FwcyksCgkgIChnc3Rfd2F2cGFja19kZWNfYmFzZV9pbml0KSwgKGdzdF93YXZwYWNrX2RlY19kaXNwb3NlKSwKCSAgKGdzdF93YXZwYWNrX2RlY19jbGFzc19pbml0KSwgKGdzdF93YXZwYWNrX2RlY19zaW5rX2V2ZW50KSwKCSAgKGdzdF93YXZwYWNrX2RlY19pbml0KSwgKGdzdF93YXZwYWNrX2RlY19mb3JtYXRfc2FtcGxlcyksCgkgIChnc3Rfd2F2cGFja19kZWNfY2hhaW4pLCAoZ3N0X3dhdnBhY2tfZGVjX3BsdWdpbl9pbml0KToKCSAgQWRkIGRlYnVnIGNhdGVnb3J5LCB1c2UgYm9pbGVycGxhdGUgbWFjcm9zLCBmaXggaGFuZGxpbmcKCSAgb2Ygd2lkdGhzIG9mIDMyIGJpdHMuCgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9iYXNlX2luaXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfZGlzcG9zZSksIChnc3Rfd2F2cGFja19wYXJzZV9jbGFzc19pbml0KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2luZGV4X2dldF9sYXN0X2VudHJ5KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2luZGV4X2dldF9lbnRyeV9mcm9tX3NhbXBsZSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9pbmRleF9hcHBlbmRfZW50cnkpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfcmVzZXQpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NjYW5fdG9fZmluZF9zYW1wbGUpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc2VuZF9uZXdzZWdtZW50KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2hhbmRsZV9zZWVrX2V2ZW50KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX3NyY19ldmVudCksIChnc3Rfd2F2cGFja19wYXJzZV9pbml0KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2dldF91cHN0cmVhbV9sZW5ndGgpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfcHVsbF9idWZmZXIpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2VfY3JlYXRlX3NyY19wYWQpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfbG9vcCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3dhdmVwYWNrX3BhcnNlX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X3dhdmVwYWNrX3BhcnNlX3NpbmtfYWN0aXZhdGVfcHVsbCksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9wbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIFJld3JpdGUgYSBiaXQsIG1vc3RseSB0byBmaXggZmxvdyBsb2dpYyBhbmQgdG8gbWFrZSBzZWVraW5nIHdvcmsuCgkgIEZpeCBidWZmZXIvZXZlbnQgcmVmY291bnRpbmcuIEFkZCBzb21lIGRlYnVnIHN0YXRlbWVudHMuIEFkZAoJICB3aWR0aCBvZiAzMiB0byBzb3VyY2UgcGFkIHRlbXBsYXRlIGNhcHMuIFVzZSBib2lsZXJwbGF0ZSBtYWNyb3MuCgoyMDA2LTAxLTI3IDEyOjE3OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBleHQvZHYvOiBDYWxsIGR2X3NldF9lcnJvcl9sb2cgKGR2X2RlY29kZXJfdCAqLCBOVUxMKTsgYWZ0ZXIgZHZfZGVjb2Rlcl9uZXcgdG8gbm90IGhhdmUgd2FyaW5ncyBmbG9vZGluZyBzdGRlcnIuIHRoaXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjcgIEphbiBHZXJiZXIgIDxqQGJvb3RsYWIub3JnPgoJICBSZXZpZXdlZCBieTogQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jIChnc3RfZHZkZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5jIChnc3RfZHZkZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICBDYWxsIGR2X3NldF9lcnJvcl9sb2cgKGR2X2RlY29kZXJfdCAqLCBOVUxMKTsgYWZ0ZXIgZHZfZGVjb2Rlcl9uZXcKCSAgdG8gbm90IGhhdmUgd2FyaW5ncyBmbG9vZGluZyBzdGRlcnIuIHRoaXMgaXMgdGhlIHN1Z2dlc3RlZCB3YXkKCSAgYWxzbyB1c2VkIGluIGR2Z3JhYiBhbmQga2luby4gKCMzMjgzMzYpCgoyMDA2LTAxLTI3IDAxOjQzOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiBGcmVlIHRoZSBkZXZpY2UgbmFtZSBzdHJpbmcgd2hlbiBmaW5hbGlzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiAoZ3N0X29zc19zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X29zc19zaW5rX2luaXQpLCAoZ3N0X29zc19zaW5rX2ZpbmFsaXNlKToKCSAgRnJlZSB0aGUgZGV2aWNlIG5hbWUgc3RyaW5nIHdoZW4gZmluYWxpc2VkLgoKMjAwNi0wMS0yNiAxNjoyMzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogRml4IHdyb25nIG1lbWNweSBzb3VyY2UgcG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgRml4IHdyb25nIG1lbWNweSBzb3VyY2UgcG9pbnRlci4KCjIwMDYtMDEtMjUgMjI6MDU6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogRG9uJ3QgcHV0IGZ1bmN0aW9uIGNhbGxzIGluIGdfcmV0dXJuX2lmX2ZhaWwoKSBzdGF0ZW1lbnRzLCBvciB0aGV5J2xsIGJlIHJlcGxhY2VkIHdpdGggTk8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfcmVtb3ZlX3NyY3BhZCk6CgkgIERvbid0IHB1dCBmdW5jdGlvbiBjYWxscyBpbiBnX3JldHVybl9pZl9mYWlsKCkgc3RhdGVtZW50cywKCSAgb3IgdGhleSdsbCBiZSByZXBsYWNlZCB3aXRoIE5PT1BzIGlmIHNvbWVvbmUgY29tcGlsZXMgd2l0aAoJICBHX0RJU0FCTEVfQ0hFQ0tTIGRlZmluZWQuCgoyMDA2LTAxLTI1IDIwOjMzOjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nIHN1cmdlcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZyBzdXJnZXJ5CgoyMDA2LTAxLTI1IDE4OjIzOjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiBOZXZlciB0cnVzdCBBTlkgaW5mb3JtYXRpb24gZW5jb2RlZCBpbiBhIG1lZGlhIGZpbGUsIGVzcGVjaWFsbHkgd2hlbiBpdCdzIGdpdmluZyB5b3Ugc2l6ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGlkM2RlbXV4X2lkM3YyX3BhcnNlX2ZyYW1lKToKCSAgTmV2ZXIgdHJ1c3QgQU5ZIGluZm9ybWF0aW9uIGVuY29kZWQgaW4gYSBtZWRpYSBmaWxlLCBlc3BlY2lhbGx5CgkgIHdoZW4gaXQncyBnaXZpbmcgeW91IHNpemVzLiAoRml4ZXMgIzMyODQ1MikKCjIwMDYtMDEtMjQgMTg6MDM6NDYgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9nc3RydHBnNzExcGF5LmM6CgkgIEknbSB0b28gbGF6eSB0byBjb21tZW50IHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIHdyaXR0ZW4gYnkgS2FpIFZlaG1hbmVuIDxrYWkudmVobWFuZW5Abm9raWEuY29tPiBhcHBsaWVkLiBTZWUgYnVnICMzMjUxNDguCgoyMDA2LTAxLTI0IDExOjU4OjUzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBNb3JlIGNvaGVyZW50IGZyYW1lcmF0ZSBzZXR0aW5nIG9uIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2xvb3BfaGVhZGVyKSwKCSAgKGdzdF9xdGRlbXV4X2FkZF9zdHJlYW0pLCAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgTW9yZSBjb2hlcmVudCBmcmFtZXJhdGUgc2V0dGluZyBvbiBjYXBzLgoJICBJZiBzYW1wbGVfc2l6ZSBpcyBhdmFpbGFibGUsIHVzZSB0aGF0IGZvciB0aGUgc2FtcGxlcycgZHVyYXRpb24gaW4KCSAgdGhlIGluZGV4LiBUaGlzIGVuYWJsZXMgc2luZ2xlIGZyYW1lIHN0cmVhbXMgdG8gd29yayAoYW5kIEkgaW1hZ2luZQoJICBmaXhlcyBzb21lIG90aGVyIGNhc2VzKS4KCSAgVGVzdGVkIG9uIHRlc3RzdWl0ZSwgbm8gcmVncmVzc2lvbi4KCjIwMDYtMDEtMjMgMTg6Mzk6MzEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvbWF0cm9za2EvOiBBZGRlZCByZWNvZ25pdGlvbiBvZiBSZWFsIEF1ZGlvIGFuZCBWaWRlbyBzdHJlYW1zIGluIG1hdHJvc2thIGRlbXV4ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3ZpZGVvX2NhcHMpLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2F1ZGlvX2NhcHMpLCAoZ3N0X21hdHJvc2thX2RlbXV4X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgIEFkZGVkIHJlY29nbml0aW9uIG9mIFJlYWwgQXVkaW8gYW5kIFZpZGVvIHN0cmVhbXMgaW4gbWF0cm9za2EgZGVtdXhlci4KCjIwMDYtMDEtMjMgMTU6MTA6NTUgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZGVkIGNvZGVjIHJlY29nbml0aW9uIGZvcjogXyBWUDMxIDogdmlkZW8veC12cDMgXyBBVkRKIDogaW1hZ2UvanBlZyBfIGR2Y3AsIGR2YyAgOiB2aWRlby94LWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV90cmFrKSwKCSAgKHF0ZGVtdXhfdmlkZW9fY2FwcyksIChxdGRlbXV4X2F1ZGlvX2NhcHMpOgoJICBBZGRlZCBjb2RlYyByZWNvZ25pdGlvbiBmb3I6CgkgIF8gVlAzMSA6IHZpZGVvL3gtdnAzCgkgIF8gQVZESiA6IGltYWdlL2pwZWcKCSAgXyBkdmNwLCBkdmMgIDogdmlkZW8veC1kdiwgc3lzdGVtc3RyZWFtPShib29sZWFuKWZhbHNlCgkgIF8gMHg2ZDczMDAxNyA6IGF1ZGlvL3gtYWRwY20sIGxheW91dD0oc3RyaW5nKXF1aWNrdGltZQoKMjAwNi0wMS0yMyAxNDozMjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogUmVtb3ZlIGVycmFudCBicmVhayBzdGF0ZW1lbnQsIGFuZCBmaXggY29tcGlsYXRpb24gd2l0aCBvbGRlciBHQ0MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN2MmZyYW1lcy5jOiAoaWQzdjJfdGFnX3RvX3RhZ2xpc3QpOgoJICBSZW1vdmUgZXJyYW50IGJyZWFrIHN0YXRlbWVudCwgYW5kIGZpeCBjb21waWxhdGlvbiB3aXRoCgkgIG9sZGVyIEdDQy4KCjIwMDYtMDEtMjMgMTI6MDQ6MTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIHRoYXQgbXkgbGFzdCBjb21taXQgZml4ZXMgIzMyODI0MQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiB0aGF0IG15IGxhc3QgY29tbWl0IGZpeGVzICMzMjgyNDEKCjIwMDYtMDEtMjMgMTE6MDY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMvc3VuYXVkaW8vOiBFeHBvcnQgZnVuY3Rpb25zIHRoYXQgYXJlIG5lZWRlZCBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgY29kZSwgbWFrZXMgdGhlIG1peGVyIGFjdHVhbGx5IHdvcms7IGFkanVzdCBtYWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJjdHJsLmM6CgkgICogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5jOiAoZ3N0X3N1bmF1ZGlvc2lua19pbml0KToKCSAgRXhwb3J0IGZ1bmN0aW9ucyB0aGF0IGFyZSBuZWVkZWQgaW4gb3RoZXIgcGFydHMgb2YgdGhlIGNvZGUsCgkgIG1ha2VzIHRoZSBtaXhlciBhY3R1YWxseSB3b3JrOyBhZGp1c3QgbWFnaWMgbWluaW11bSBidWZmZXItdGltZQoJICB2YWx1ZSBmcm9tIDNtcyB0byA1bXMgdG8gd29yayBhcm91bmQgc3R1dHRlcmluZyBkdXJpbmcgbXAzCgkgIHBsYXliYWNrICgjMzI3NzY1KS4KCjIwMDYtMDEtMjMgMTA6NDQ6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEZpeCBwb3NzaWJsZSBkZWFkbG9jayBpbiBtYXRyb3NrYSBtdXhlciAoIzMyNzgyNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfYmVzdF9wYWQpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKSwgKGdzdF9tYXRyb3NrYV9tdXhfY29sbGVjdGVkKToKCSAgRml4IHBvc3NpYmxlIGRlYWRsb2NrIGluIG1hdHJvc2thIG11eGVyICgjMzI3ODI1KS4KCjIwMDYtMDEtMjMgMDk6NTk6MDMgKzAwMDAgIEplbnMgR3JhbnNldWVyIDxqZW5zZ3JAZ214Lm5ldD4KCgkgIEM4OSBmaXhlczogZGVjbGFyZSB2YXJpYWJsZXMgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGJsb2NrIGFuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2VuYy5jOiAoZ3N0X3BuZ2VuY19jaGFpbik6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9pbnZlcnQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlcGF5LmM6IChnc3RfcnRwX21wNHZfZGVwYXlfc2V0Y2Fwcyk6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5oOgoJICAqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5jOiAoZ3N0X2R5bnVkcHNpbmtfcmVuZGVyKToKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19nZXRfc3RhdHMpOgoJICBDODkgZml4ZXM6IGRlY2xhcmUgdmFyaWFibGVzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBibG9jayBhbmQKCSAgbWFrZSBnY2MtMi45eCBoYXBweSAoIzMyODI2NDsgcGF0Y2ggYnk6IEplbnMgR3JhbnNldWVyCgkgIDxqZW5zZ3IgYXQgZ214IGRvdCBuZXQ+KS4KCjIwMDYtMDEtMjMgMDk6MjI6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2lkM2RlbXV4LzogUmV3cml0ZSBwYXJzaW5nIG9mIHRleHQgdGFncyB0byBoYW5kbGUgbXVsdGlwbGUgTlVMTCB0ZXJtaW5hdGVkIHN0cmluZ3MuIFBhcnNlIG51bWVyaWMgZ2VucmUgc3RyaW5ncyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6IChpZDNkZW11eF9yZWFkX2lkM3YyX3RhZyk6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuaDoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGlkM2RlbXV4X2lkM3YyX3BhcnNlX2ZyYW1lKSwKCSAgKHBhcnNlX2NvbW1lbnRfZnJhbWUpLCAocGFyc2VfdGV4dF9pZGVudGlmaWNhdGlvbl9mcmFtZSksCgkgIChpZDN2Ml90YWdfdG9fdGFnbGlzdCksIChpZDN2Ml9hcmVfZGlnaXRzKSwKCSAgKGlkM3YyX2dlbnJlX3N0cmluZ190b190YWdsaXN0KSwgKGlkM3YyX2dlbnJlX2ZpZWxkc190b190YWdsaXN0KSwKCSAgKHBhcnNlX3NwbGl0X3N0cmluZ3MpLCAoZnJlZV90YWdfc3RyaW5ncyk6CgkgIFJld3JpdGUgcGFyc2luZyBvZiB0ZXh0IHRhZ3MgdG8gaGFuZGxlIG11bHRpcGxlIE5VTEwgdGVybWluYXRlZAoJICBzdHJpbmdzLiBQYXJzZSBudW1lcmljIGdlbnJlIHN0cmluZ3MgYW5kIElEM3YyIHR5cGUKCSAgIigzKSg2KUFsdGVybmF0aXZlIiBzdHlsZSBnZW5yZSBzdHJpbmdzLgoJICBQYXJzZSBkYXRlcyB0aGF0IGFyZSBvbmx5IFlZWVkgb3IgWVlZWS1tbSBmb3JtYXQuCgoyMDA2LTAxLTIxIDExOjQzOjUzICswMDAwICBGYWJyaXppbyA8ZmFicml6aW8uZ2VAdGlzY2FsaS5pdD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogJ3R3b3MnIGFuZCAnc293dCcgZm91cmNjIGNhbiBiZSAxNmJpdCBvciA4Yml0IGF1ZGlvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3BhcnNlX3RyYWspLAoJICAocXRkZW11eF9hdWRpb19jYXBzKToKCSAgJ3R3b3MnIGFuZCAnc293dCcgZm91cmNjIGNhbiBiZSAxNmJpdCBvciA4Yml0IGF1ZGlvLgoJICBGaXggOGJpdCBjYXNlICgjMzI3MTMzLCBiYXNlZCBvbiBwYXRjaCBieTogRmFicml6aW8KCSAgR2VubmFyaSA8ZmFicml6aW8gZG90IGdlIGF0IHRpc2NhbGkgZG90IGl0PikuCgkgIEFsc28sICJHX0xJVFRMRV9FTkRJQU4iIGFuZCAiR19CSUdfRU5ESUFOIiBhcmUgbm90CgkgIHZhbGlkIGxpdGVyYWxzIGZvciBlbmRpYW5uZXNzIGluIGNhcHMgc3RyaW5ncywKCSAgb25seSAiTElUVExFX0VORElBTiIgYW5kICJCSUdfRU5ESUFOIiBhcmUgdmFsaWQuCgoyMDA2LTAxLTIwIDE1OjA2OjI4ICswMDAwICBDaHJpc3RvcGggQnVyZ2hhcmR0IDxoYXdrZXNAd2ViLmRlPgoKCSAgZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IERvbid0IGZvcmdldCB0byBpbml0aWFsaXplIGxpYm9pbCwgb3RoZXJ3aXNlIG91ciBvaWwgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9jbGFzc19pbml0KToKCSAgRG9uJ3QgZm9yZ2V0IHRvIGluaXRpYWxpemUgbGlib2lsLCBvdGhlcndpc2Ugb3VyIG9pbCBmdW5jdGlvbnMKCSAgd2lsbCBjcmFzaCAoZml4ZXMgIzMyNzg3MTsgcGF0Y2ggYnk6IENocmlzdG9waCBCdXJnaGFyZHQKCSAgPGhhd2tlcyBhdCB3ZWIgZG90IGRlPikuCgoyMDA2LTAxLTE5IDIxOjQ2OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSAobGFzdCBlbnRyeSBtYXkgaGF2ZSBiZWVuIHNsaWdodGx5IG1pc2xlYWRpbmcpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSAobGFzdCBlbnRyeSBtYXkgaGF2ZSBiZWVuIHNsaWdodGx5IG1pc2xlYWRpbmcpCgoyMDA2LTAxLTE5IDIxOjAwOjUwICswMDAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJICBjb25maWd1cmUuYWM6IGp1c3QgbGlrZSBpbiB0aGUgY29yZSBhbmQgZ3N0LXBsdWdpbnMtYmFzZS4gRml4ZXMgYnVpbGQgb24gU29sYXJpcyAoZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgcGxhaW4gQVNfTElCVE9PTF9UQUdTIGluc3RlYWQgb2YgQVNfTElCVE9PTF9UQUdTKFtDWFhdKSwganVzdAoJICBsaWtlIGluIHRoZSBjb3JlIGFuZCBnc3QtcGx1Z2lucy1iYXNlLiBGaXhlcyBidWlsZCBvbiBTb2xhcmlzIChmaXhlcwoJICAjMzI2NjgzOyBwYXRjaCBieTogQnJpYW4gQ2FtZXJvbiA8YnJpYW4gZG90IGNhbWVyb24gYXQgc3VuIGRvdCBjb20+KQoKMjAwNi0wMS0xOSAwMDoxMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9jZGlvLzogRml4IGJ1aWxkIGZvciBsaWJjZGlvIHZlcnNpb25zID49IDc2OyBnaXZlIHNsaWdodGx5IGxvd2VyIHJhbmsgdGhhbiBjZHBhcmFub2lhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvY2Rpby9nc3RjZGlvLmM6IChnc3RfY2Rpb19hZGRfY2R0ZXh0X2ZpZWxkKSwgKHBsdWdpbl9pbml0KToKCSAgKiBleHQvY2Rpby9nc3RjZGlvLmg6CgkgICogZXh0L2NkaW8vZ3N0Y2Rpb2NkZGFzcmMuYzogKGdzdF9jZGlvX2NkZGFfc3JjX2dldF9jZHRleHQpOgoJICBGaXggYnVpbGQgZm9yIGxpYmNkaW8gdmVyc2lvbnMgPj0gNzY7IGdpdmUgc2xpZ2h0bHkgbG93ZXIgcmFuawoJICB0aGFuIGNkcGFyYW5vaWEuCgoyMDA2LTAxLTE4IDE5OjMwOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUG9ydCBsaWJjZGlvIGNkZGEgc291cmNlLCBmb3JtZXJseSBrbm93biBhcyBjZGRhc3JjLCBub3cga25vd24gYXMgY2Rpb2NkZGFzcmMgKGZpeGVzICMzMjMzMjcpLiBTaG91bGQgYWxzbyByZWFkIENELVRFLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2NkaW8vTWFrZWZpbGUuYW06CgkgICogZXh0L2NkaW8vZ3N0Y2Rpby5jOgoJICAqIGV4dC9jZGlvL2dzdGNkaW8uaDoKCSAgKiBleHQvY2Rpby9nc3RjZGlvY2RkYXNyYy5jOgoJICAqIGV4dC9jZGlvL2dzdGNkaW9jZGRhc3JjLmg6CgkgIFBvcnQgbGliY2RpbyBjZGRhIHNvdXJjZSwgZm9ybWVybHkga25vd24gYXMgY2RkYXNyYywgbm93IGtub3duIGFzCgkgIGNkaW9jZGRhc3JjIChmaXhlcyAjMzIzMzI3KS4gU2hvdWxkIGFsc28gcmVhZCBDRC1URVhUIGlmIGF2YWlsYWJsZSwKCSAgYnV0IHRoYXQncyBub3QgdGVzdGVkIChmaXhlcyAjMzE3NjU4KS4KCjIwMDYtMDEtMTggMTk6MDg6MDggKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogRml4IGNvbnZlcnNpb24gZnJvbSBUSU1FIHRvIEJZVEVTIGZvcm1hdCAoZml4ZXMgIzMyNjg2NDsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfcGFkX2NvbnZlcnQpOgoJICBGaXggY29udmVyc2lvbiBmcm9tIFRJTUUgdG8gQllURVMgZm9ybWF0IChmaXhlcyAjMzI2ODY0OwoJICBwYXRjaCBieTogVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPikKCjIwMDYtMDEtMTggMTg6NTQ6MDIgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzoKCSAgUm9uYWxkJ3MgcGF0Y2ggYXBwbGllZC4gc2VlIGJ1ZyAjMzI2MzE4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUm9uYWxkJ3MgcGF0Y2ggYXBwbGllZC4gc2VlIGJ1ZyAjMzI2MzE4LgoKMjAwNi0wMS0xNyAxNjo0NTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguKjogRml4IHNlZWtpbmcgZm9yIHF1aWNrdGltZSBmaWxlcy4gQ291bGQgc3RpbGwgdXNlIHNvbWUgbW9yZSBsb3ZlIGFuZCBzb3BoaXN0aWNhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfaW5pdCksCgkgIChnc3RfcXRkZW11eF9zZW5kX2V2ZW50KSwgKGdzdF9xdGRlbXV4X2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKSwgKGdzdF9xdGRlbXV4X2xvb3BfaGVhZGVyKToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgIEZpeCBzZWVraW5nIGZvciBxdWlja3RpbWUgZmlsZXMuIENvdWxkIHN0aWxsIHVzZSBzb21lIG1vcmUKCSAgbG92ZSBhbmQgc29waGlzdGljYXRpb24uCgoyMDA2LTAxLTE2IDEwOjIzOjQ3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIHVwZGF0ZSB3aXRoIGxvdmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB3aXRoIGxvdmUKCjIwMDYtMDEtMTUgMjA6MjE6NDggKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogRml4IGNvbXBpbGF0aW9uIG9mIGlkM2RlbXV4IHdoZW4gemxpYiBpcyBub3QgcHJlc2VudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChpZDNkZW11eF9pZDN2Ml9wYXJzZV9mcmFtZSk6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBpZDNkZW11eCB3aGVuIHpsaWIgaXMgbm90IHByZXNlbnQuCgkgIChGaXhlcyAjMzI2NjAyOyBwYXRjaCBieTogU2VyZ2V5IFNjb2JpY2gpCgoyMDA2LTAxLTE1IDE0OjEyOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2VzZC9NYWtlZmlsZS5hbTogb3RoZXJ3aXNlIGJ1aWxkIHdpbGwgZmFpbCBmb3IgZm9sa3Mgd2l0aCBsaWJlc2QgaW4gYSBub24tc3RhbmRhcmQgcHJlZml4ICgjMzI3MDA5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9NYWtlZmlsZS5hbToKCSAgQWRkICQoRVNEX0NGTEFHUyksIG90aGVyd2lzZSBidWlsZCB3aWxsIGZhaWwgZm9yIGZvbGtzCgkgIHdpdGggbGliZXNkIGluIGEgbm9uLXN0YW5kYXJkIHByZWZpeCAoIzMyNzAwOSkuCgoyMDA2LTAxLTEzIDE5OjI5OjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKMjAwNi0wMS0xMyAxOToyNTo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY3V0dGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsdGlwYXJ0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW5hdmlnYXRpb250ZXN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW9zc2F1ZGlvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXBuZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRzcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zaG91dDJzZW5kLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNtcHRlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNwZWV4LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXVkcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2JveC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb2ZsaXAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9taXhlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZlbmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2cGFyc2UueG1sOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIHJlbGVhc2luZyAwLjEwLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjEKCjIwMDYtMDEtMTMgMTg6Mzc6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvanBlZy9nc3RzbW9rZWVuYy5jOiBmaXggbWVtbGVhay4gIEZpeGVzICMzMjY2MTgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBXaW0gVGF5bWFucwoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6IChnc3Rfc21va2VlbmNfY2hhaW4pOgoJICBmaXggbWVtbGVhay4gIEZpeGVzICMzMjY2MTgKCjIwMDYtMDEtMTMgMTg6MzU6MDAgKzAwMDAgIE1pa2UgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiBGaXggbWVtbGVhay4gIEZpeGVzICMzMjY2MTIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMTMgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgIHBhdGNoIGJ5OiBNaWtlIFNtaXRoCgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmM6IChnc3RfbGV2ZWxfbWVzc2FnZV9uZXcpLAoJICAoZ3N0X2xldmVsX21lc3NhZ2VfYXBwZW5kX2NoYW5uZWwpOgoJICBGaXggbWVtbGVhay4gIEZpeGVzICMzMjY2MTIKCjIwMDYtMDEtMTEgMTE6Mzk6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBwcmVyZWxlYXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBwcmVyZWxlYXNpbmcKCSAgKiBwby9hZi5wbzoKCSAgKiBwby9hei5wbzoKCSAgKiBwby9jcy5wbzoKCSAgKiBwby9lbl9HQi5wbzoKCSAgKiBwby9odS5wbzoKCSAgKiBwby9pdC5wbzoKCSAgKiBwby9uYi5wbzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9vci5wbzoKCSAgKiBwby9zcS5wbzoKCSAgKiBwby9zci5wbzoKCSAgKiBwby9zdi5wbzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNi0wMS0xMSAxMTowNDowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogQWRkIHN1cHBvcnQgZm9yIEluZGVvMyB2aWRlbyBpbiBRdWlja3RpbWUgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogRWR3YXJkIEhlcnZleSAgPGVkd2FyZEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChxdGRlbXV4X3ZpZGVvX2NhcHMpOgoJICBBZGQgc3VwcG9ydCBmb3IgSW5kZW8zIHZpZGVvIGluIFF1aWNrdGltZSBmaWxlcy4KCSAgQ2xvc2VzICMzMjY1MjQKCjIwMDYtMDEtMTAgMTI6Mzg6NTkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiBEb24ndCBsZWFrIGZpbHRlciBhcnJheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiAoZ3N0X2xldmVsX2NsYXNzX2luaXQpLAoJICAoZ3N0X2xldmVsX2Rpc3Bvc2UpOgoJICBEb24ndCBsZWFrIGZpbHRlciBhcnJheXMuCgoyMDA2LTAxLTA5IDE3OjA0OjUyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJKiBzeXMvTWFrZWZpbGUuYW06CgkqIHN5cy9zdW5hdWRpby9NYWtlZmlsZS5hbToKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmM6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyLmg6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb21peGVyY3RybC5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcmN0cmwuaDoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvbWl4ZXJ0cmFjay5jOgoJKiBzeXMvc3VuYXVkaW8vZ3N0c3VuYXVkaW9taXhlcnRyYWNrLmg6CgkqIHN5cy9zdW5hdWRpby9nc3RzdW5hdWRpb3NpbmsuYzoKCSogc3lzL3N1bmF1ZGlvL2dzdHN1bmF1ZGlvc2luay5oOgoJICBhZGQgU3VuIEF1ZGlvIHBsdWdpbi4gVmVyaWZpZWQgdGhhdCBub3RoaW5nIGJyZWFrcyBhbmQgdGhhdCBtYWtlIGNoZWNrIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIFN1biBBdWRpbyBwbHVnaW4uIFZlcmlmaWVkIHRoYXQgbm90aGluZyBicmVha3MgYW5kIHRoYXQgbWFrZSBjaGVjayB3b3Jrcy4KCSAgRG9uJ3QgdGhpbmsgdGhlIGRvY3MgZ2V0cyBwcm9wZXJseSBidWlsdCB5ZXQsIGJ1dCBJIGRvbid0IHVuZGVyc3RhbmQgZXhhY3RseSBob3cgdG8gZW5hYmxlIHRoYXQuCgoyMDA2LTAxLTA3IDIwOjAxOjA5ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0LXBsdWdpbnMtZ29vZC9nc3QvdWRwLzogQWxsb3cgdWRwc3JjIGFuZCBkeW51ZHBzaW5rIHRvIHRha2UgYSBzb2NrZmQgYXMgYSBwYXJhbWV0ZXIuIEZvciB1ZHBzcmMsIG92ZXJyaWRlcyB0aGUgcG9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAxLTA3ICBQaGlsaXBwZSBLaGFsYWYgIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgkgICogZ3N0LXBsdWdpbnMtZ29vZC9nc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC91ZHAvZ3N0dWRwc3JjLmM6CgkgIEFsbG93IHVkcHNyYyBhbmQgZHludWRwc2luayB0byB0YWtlIGEgc29ja2ZkIGFzIGEgcGFyYW1ldGVyLiBGb3IgdWRwc3JjLAoJICBvdmVycmlkZXMgdGhlIHBvcnQgb3IgbXVsdGljYXN0IHBhcmFtZXRlcnMuIEZpeGVzIGJ1Z3MgIzMyMzAyMS4KCjIwMDYtMDEtMDYgMTY6Mjg6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZ2NvbmYvOiBBZGQgbmV3IGdjb25mYXVkaW9zcmMgYW5kIGdjb25mdmlkZW9zcmMgZWxlbWVudHMgKG5lZWRlZCBmb3IgZ25vbWUtc291bmQtcmVjb3JkZXIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvTWFrZWZpbGUuYW06CgkgICogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zcmMuYzogKGdzdF9nY29uZl9hdWRpb19zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9nY29uZl9hdWRpb19zcmNfY2xhc3NfaW5pdCksIChnc3RfZ2NvbmZfYXVkaW9fc3JjX3Jlc2V0KSwKCSAgKGdzdF9nY29uZl9hdWRpb19zcmNfaW5pdCksIChnc3RfZ2NvbmZfYXVkaW9fc3JjX2Rpc3Bvc2UpLAoJICAoZG9fdG9nZ2xlX2VsZW1lbnQpLCAoY2JfdG9nZ2xlX2VsZW1lbnQpLAoJICAoZ3N0X2djb25mX2F1ZGlvX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc3JjLmg6CgkgICogZXh0L2djb25mL2dzdGdjb25mZWxlbWVudHMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NyYy5jOiAoZ3N0X2djb25mX3ZpZGVvX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2djb25mX3ZpZGVvX3NyY19jbGFzc19pbml0KSwgKGdzdF9nY29uZl92aWRlb19zcmNfcmVzZXQpLAoJICAoZ3N0X2djb25mX3ZpZGVvX3NyY19pbml0KSwgKGdzdF9nY29uZl92aWRlb19zcmNfZGlzcG9zZSksCgkgIChkb190b2dnbGVfZWxlbWVudCksIChjYl90b2dnbGVfZWxlbWVudCksCgkgIChnc3RfZ2NvbmZfdmlkZW9fc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zcmMuaDoKCSAgQWRkIG5ldyBnY29uZmF1ZGlvc3JjIGFuZCBnY29uZnZpZGVvc3JjIGVsZW1lbnRzCgkgIChuZWVkZWQgZm9yIGdub21lLXNvdW5kLXJlY29yZGVyKS4KCjIwMDYtMDEtMDYgMTE6NDY6NTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogQWRkIGdzdF9lbGVtZW50X25vX21vcmVfcGFkcygpIGZvciBwcm9wZXIgZGVjb2RlYmluIGJlaGF2aW91ci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4LmM6IChnc3RfaWQzZGVtdXhfYWRkX3NyY3BhZCk6CgkgIEFkZCBnc3RfZWxlbWVudF9ub19tb3JlX3BhZHMoKSBmb3IgcHJvcGVyIGRlY29kZWJpbiBiZWhhdmlvdXIuCgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyZnJhbWVzLmM6IChwYXJzZV9jb21tZW50X2ZyYW1lKSwKCSAgKHBhcnNlX3RleHRfaWRlbnRpZmljYXRpb25fZnJhbWUpLCAocGFyc2Vfc3BsaXRfc3RyaW5ncyk6CgkgIEZhaWx1cmUgdG8gZGVjb2RlIHNvbWUgdGFncyBpcyBub3QgYSBHU1RfRVJST1IoKSBidXQgYQoJICBHU1RfV0FSTklORygpCgkgIFdoZW4gaXRlcmF0aW5nIG92ZXIgYSBjaHVuayBvZiB0ZXh0LCBjaGVjayB0aGF0IHdlIGhhdmVuJ3QgZ29uZSB0b28KCSAgZmFyLgoKMjAwNi0wMS0wNSAyMzoxNzo0NCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSogc3lzL2RpcmVjdGRyYXcvZ3N0ZGlyZWN0ZHJhd3BsdWdpbi5jOgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5jOgoJKiBzeXMvZGlyZWN0ZHJhdy9nc3RkaXJlY3RkcmF3c2luay5oOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRwbHVnaW4uYzoKCSogc3lzL2RpcmVjdHNvdW5kL2dzdGRpcmVjdHNvdW5kc2luay5jOgoJKiBzeXMvZGlyZWN0c291bmQvZ3N0ZGlyZWN0c291bmRzaW5rLmg6CgkqIHdpbjMyL3ZzNi9saWJnc3RkaXJlY3RkcmF3LmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGRpcmVjdHNvdW5kLmRzcDoKCSAgYWRkZWQgc3lzL2RpcmVjdGRyYXcgYWRkZWQgc3lzL2RpcmVjdHNvdW5kIGFkZGVkIHdpbjMyL3ZzNi9nc3RfcGx1Z2luc19iYWQuZHN3IGFkZGVkIHdpbjMyL3ZzNi9saWJnc3RkaXJlY3Rzb3VuZC5kc3AgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTA1ICBTZWJhc3RpZW4gTW91dHRlICA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgkgICogYWRkZWQgc3lzL2RpcmVjdGRyYXcKCSAgKiBhZGRlZCBzeXMvZGlyZWN0c291bmQKCSAgKiBhZGRlZCB3aW4zMi92czYvZ3N0X3BsdWdpbnNfYmFkLmRzdwoJICAqIGFkZGVkIHdpbjMyL3ZzNi9saWJnc3RkaXJlY3Rzb3VuZC5kc3AKCSAgKiBhZGRlZCB3aW4zMi92czYvbGliZ3N0ZGlyZWN0ZHJhdy5kc3AKCSAgKiBhZGRlZCB3aW4zMi9jb21tb24vY29uZmlnLmgKCjIwMDYtMDEtMDUgMTc6MDM6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBjYWxsIG9pbF9pbml0KCkgd2hlbiB1c2luZyBsaWJvaWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IChnc3RfdmlkZW9fYm94X2NsYXNzX2luaXQpLAoJICAocGx1Z2luX2luaXQpOgoJICBjYWxsIG9pbF9pbml0KCkgd2hlbiB1c2luZyBsaWJvaWwKCjIwMDYtMDEtMDQgMTc6Mjg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvanBlZy86IEZpeCBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0c21va2VkZWMuYzogKGdzdF9zbW9rZWRlY19jaGFpbik6CgkgICogZXh0L2pwZWcvZ3N0c21va2VlbmMuYzogKGdzdF9zbW9rZWVuY19jaGFpbik6CgkgIEZpeCBsZWFrcy4KCjIwMDYtMDEtMDIgMTk6Mzg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IERvbid0IGdfYXNzZXJ0KCkgd2hlcmUgd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIEZBTFNFOyByZW1vdmUgdW5uZWNlc3NhcnkgZ19hc3NlcnQoKTsgaW5pdGlhbGl6ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX3dyaXRlKSwKCSAgKGdzdF9mbGFjX2RlY19jb252ZXJ0X3NyYyksIChnc3RfZmxhY19kZWNfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9mbGFjX2RlY19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBnX2Fzc2VydCgpIHdoZXJlIHdlIHNob3VsZCBqdXN0IHJldHVybiBGQUxTRTsgcmVtb3ZlCgkgIHVubmVjZXNzYXJ5IGdfYXNzZXJ0KCk7IGluaXRpYWxpemUgc29tZSBmaWVsZHMgcHJvcGVybHkgaW4KCSAgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIChmaXhlcyAjMzI1NTA0KS4gQWxzbywgdXNlCgkgIEdTVF9ERUJVR19PQkpFQ1QgaW4gdHdvIG1vcmUgcGxhY2VzLgoKMjAwNS0xMi0zMCAxNTo1MTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBhbHNvIHJlbW92ZSBzbW9vdGh3YXZlJ3MgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBhbHNvIHJlbW92ZSBzbW9vdGh3YXZlJ3MgTWFrZWZpbGUuYW0KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGZpeCBwbHVnaW4gZG9jcwoKMjAwNS0xMi0zMCAxNTozOToxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3Qvc21vb3Rod2F2ZS8uZ2l0aWdub3JlOgoJKiBnc3Qvc21vb3Rod2F2ZS9NYWtlZmlsZS5hbToKCSogZ3N0L3Ntb290aHdhdmUvUkVBRE1FOgoJKiBnc3Qvc21vb3Rod2F2ZS9kZW1vLW9zc3NyYy5jOgoJKiBnc3Qvc21vb3Rod2F2ZS9nc3RzbW9vdGh3YXZlLmM6CgkqIGdzdC9zbW9vdGh3YXZlL2dzdHNtb290aHdhdmUuaDoKCSAgcmVtb3ZlIG9sZCBwbHVnaW4gdGhhdCB3ZW50IGJhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9sZCBwbHVnaW4gdGhhdCB3ZW50IGJhZAoKMjAwNS0xMi0zMCAxNTozNDoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06IGFkZGVkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGFkZGVkIG1pc3NpbmcgTWFrZWZpbGUuYW0KCjIwMDUtMTItMzAgMTU6Mjg6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vdmVkIGxldmVsLWV4YW1wbGUgdG8gdGVzdHMvZXhhbXBsZXMvbGV2ZWwtZXhhbXBsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2xldmVsL01ha2VmaWxlLmFtOgoJICAqIGdzdC9sZXZlbC9sZXZlbC1leGFtcGxlLmM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbGV2ZWwvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbGV2ZWwvbGV2ZWwtZXhhbXBsZS5jOiAobWVzc2FnZV9oYW5kbGVyKSwgKG1haW4pOgoJICBtb3ZlZCBsZXZlbC1leGFtcGxlIHRvIHRlc3RzL2V4YW1wbGVzL2xldmVsLWV4YW1wbGUKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGV2ZWwvZGVtby5jOiAobWFpbik6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2xldmVsL3Bsb3QuYzogKG1haW4pOgoJICBzb21lIGluaXRpYWwgZml4ZXMKCjIwMDUtMTItMjkgMTY6MzY6MTkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLio6IFRyYWNrIHBhY2tldHMgc2VudCBwZXIgY2xpZW50IGluIGFkZGl0aW9uIHRvIGJ5dGVzIHNlbnQ7IHByb3ZpZGUgdGhpcyBpbmZvIHRocm91Z2ggZ2V0LXN0YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5jOiAoZ3N0X211bHRpdWRwc2lua19yZW5kZXIpLAoJICAoZ3N0X211bHRpdWRwc2lua19yZW1vdmUpLCAoZ3N0X211bHRpdWRwc2lua19nZXRfc3RhdHMpOgoJICAqIGdzdC91ZHAvZ3N0bXVsdGl1ZHBzaW5rLmg6CgkgIFRyYWNrIHBhY2tldHMgc2VudCBwZXIgY2xpZW50IGluIGFkZGl0aW9uIHRvIGJ5dGVzIHNlbnQ7IHByb3ZpZGUKCSAgdGhpcyBpbmZvIHRocm91Z2ggZ2V0LXN0YXRzIHNpZ25hbAoKMjAwNS0xMi0yOSAxMToyNjoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzogQ2FuJ3QgdXNlIGdzdF9vYmplY3RfdW5yZWYoKSBvbiBhIEdzdEFkYXB0ZXIgKCMzMjUxOTEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfZGlzcG9zZSk6CgkgIENhbid0IHVzZSBnc3Rfb2JqZWN0X3VucmVmKCkgb24gYSBHc3RBZGFwdGVyICgjMzI1MTkxKS4KCjIwMDUtMTItMjggMTg6NTU6MzIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2lkM2RlbXV4L2lkM3RhZ3MuYzogSWYgYSBicm9rZW4gdGFnIGhhcyAwIGJ5dGVzIHBheWxvYWQsIGF0IGxlYXN0IHN0aWxsIHNraXAgdGhlIDEwIGJ5dGUgaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6IChpZDNkZW11eF9yZWFkX2lkM3YyX3RhZyk6CgkgIElmIGEgYnJva2VuIHRhZyBoYXMgMCBieXRlcyBwYXlsb2FkLCBhdCBsZWFzdCBzdGlsbCBza2lwCgkgIHRoZSAxMCBieXRlIGhlYWRlcgoKMjAwNS0xMi0yMiAxNTowMDo0MSArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkgIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC86IE1ha2luZyB0aGVzZSBkZXBheWxvYWRlcnMgKEgyNjMrIGFuZCBtcGVnNCB2aWRlbykgaW5oZXJpdCBmcm9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTIyICBQaGlsaXBwZSBLaGFsYWYgIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5oOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC9nc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5oOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSAgTWFraW5nIHRoZXNlIGRlcGF5bG9hZGVycyAoSDI2MysgYW5kIG1wZWc0IHZpZGVvKSBpbmhlcml0IGZyb20KCSAgUnRwQmFzZURlcGF5bG9hZGVyQ2xhc3MuIEZpeGVzIGJ1Z3MgIzMyMzkyMiBhbmQgIzMyMzkwOC4KCjIwMDUtMTItMjEgMTc6MTU6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy4qOiBSZWdlbmVyYXRlIHRoZSBwbHVnaW4gaGllYXJjaHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSAgUmVnZW5lcmF0ZSB0aGUgcGx1Z2luIGhpZWFyY2h5LgoKMjAwNS0xMi0yMSAxNToyNDo1OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgaWQzZGVtdXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTIxICBKYW4gU2NobWlkdCAgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9pZDNkZW11eF9nZXRfdHlwZSksCgkgIChnc3RfaWQzZGVtdXhfYmFzZV9pbml0KSwgKGdzdF9pZDNkZW11eF9jbGFzc19pbml0KSwKCSAgKGdzdF9pZDNkZW11eF9jaGFpbik6CgkgICogZ3N0L2lkM2RlbXV4L2dzdGlkM2RlbXV4Lmg6CgkgIEFkZCBkb2N1bWVudGF0aW9uIGZvciBpZDNkZW11eC4KCSAgRG9uJ3QgZmFpbCBpZiB0aGUgZmlyc3QgYnVmZmVyIGlzIG5vdCBhdCBvZmZzZXQgMCwganVzdAoJICBhdHRlbXB0IHRvIHR5cGVmaW5kIGFuZCBkbyBwYXNzIHRocm91Z2gKCSAgUmVuYW1lIHRoZSBnc3RfdHlwZSBmdW5jdGlvbiBmcm9tIGdzdF9nc3RfaWQzZGVtdXguLgoKMjAwNS0xMi0yMCAxMjo0NDoyNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuKjogQ29sbGVjdCBzdGF0aXN0aWNzOyByZXR1cm4gdGhlbSBmcm9tIGdldF9zdGF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfcmVuZGVyKSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfYWRkKSwgKGdzdF9tdWx0aXVkcHNpbmtfcmVtb3ZlKSwKCSAgKGdzdF9tdWx0aXVkcHNpbmtfZ2V0X3N0YXRzKToKCSAgKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5oOgoJICBDb2xsZWN0IHN0YXRpc3RpY3M7IHJldHVybiB0aGVtIGZyb20gZ2V0X3N0YXRzLgoKMjAwNS0xMi0xOSAxNTo0MzozMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogU3R1cGlkIHNpZ25lZG5lc3MgaXNzdWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fc2Nhbik6CgkgIFN0dXBpZCBzaWduZWRuZXNzIGlzc3VlLi4uCgoyMDA1LTEyLTE5IDE1OjE5OjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L3N3ZmRlYy9nc3Rzd2ZkZWMuYzogQWRkIGRlYnVnZ2luZyBjYXRlZ29yeSBhbmQgcmV0dXJuIEdzdEZsb3dSZXR1cm4gaW4gdGhlIHJpZ2h0IHBsYWNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc3dmZGVjL2dzdHN3ZmRlYy5jOiAoZ3N0X3N3ZmRlY19jbGFzc19pbml0KSwKCSAgKGdzdF9zd2ZkZWNfY2hhaW4pLCAoZ3N0X3N3ZmRlY19yZW5kZXIpOgoJICBBZGQgZGVidWdnaW5nIGNhdGVnb3J5IGFuZCByZXR1cm4gR3N0Rmxvd1JldHVybiBpbiB0aGUgcmlnaHQgcGxhY2VzCgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2xpbmspOgoJICBHZXQgc29tZXRoaW5nIGZyb20gdGhlIHBlZXIgcGFkIG9uY2Ugd2UndmUgY2hlY2tlZCBpZiB0aGVyZSBpcyBhIHBlZXIgcGFkLgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChxdGRlbXV4X3RyZWVfZ2V0X2NoaWxkX2J5X3R5cGUpLCAocXRkZW11eF9wYXJzZV90cmFrKSwKCSAgKHF0ZGVtdXhfdmlkZW9fY2Fwcyk6CgkgIENvdXBsZSBvZiBmaXhlcwoKMjAwNS0xMi0xOSAxNTowNjoyNyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogQ29uc3RydWN0IGluZGV4IGZvciBpbmRleGxlc3MgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcmVzZXQpLAoJICAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfb2RtbCksIChnc3RfYXZpX2RlbXV4X3BlZWtfdGFnKSwKCSAgKGdzdF9hdmlfZGVtdXhfbmV4dF9kYXRhX2J1ZmZlciksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9zY2FuKSwKCSAgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksIChnc3RfYXZpX2RlbXV4X2xvb3ApOgoJICBDb25zdHJ1Y3QgaW5kZXggZm9yIGluZGV4bGVzcyBmaWxlcy4KCSAgTWFrZSBzdXJlIHBhZC9idWZmZXJzIGFyZSBjb3JyZWN0bHkgcmVzZXQgdG8gTlVMTCBvbmNlIHdlIGRvbid0IG5lZWQKCSAgdGhlbSBhbnltb3JlLCBlbHNlIHdlIGdldCBsb3ZlbHkgc2VnZmF1bHRzL2Fzc2VydGlvbnMuCgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIFllcywgeW91IGNhbiBoYXZlIDk2S0h6IGF1ZGlvIGFuZCB3bWEgaW4gd2F2IDooCgoyMDA1LTEyLTE4IDE1OjE0OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIG9wdGlvbmFsIGRlcGVuZGVuY3kgb24gemxpYiBmb3IgaWQzZGVtdXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBDaGVjayBmb3Igb3B0aW9uYWwgZGVwZW5kZW5jeSBvbiB6bGliIGZvciBpZDNkZW11eAoJICAqIGdzdC9pZDNkZW11eC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaWQzZGVtdXgvZ3N0aWQzZGVtdXguYzogKGdzdF9nc3RfaWQzZGVtdXhfZ2V0X3R5cGUpLAoJICAoZ3N0X2lkM2RlbXV4X2Jhc2VfaW5pdCksIChnc3RfaWQzZGVtdXhfY2xhc3NfaW5pdCksCgkgIChnc3RfaWQzZGVtdXhfcmVzZXQpLCAoZ3N0X2lkM2RlbXV4X2luaXQpLCAoZ3N0X2lkM2RlbXV4X2Rpc3Bvc2UpLAoJICAoZ3N0X2lkM2RlbXV4X2FkZF9zcmNwYWQpLCAoZ3N0X2lkM2RlbXV4X3JlbW92ZV9zcmNwYWQpLAoJICAoZ3N0X2lkM2RlbXV4X3RyaW1fYnVmZmVyKSwgKGdzdF9pZDNkZW11eF9jaGFpbiksCgkgIChnc3RfaWQzZGVtdXhfc2V0X3Byb3BlcnR5KSwgKGdzdF9pZDNkZW11eF9nZXRfcHJvcGVydHkpLAoJICAoaWQzZGVtdXhfZ2V0X3Vwc3RyZWFtX3NpemUpLCAoZ3N0X2lkM2RlbXV4X3NyY3BhZF9ldmVudCksCgkgIChnc3RfaWQzZGVtdXhfcmVhZF9pZDN2MSksIChnc3RfaWQzZGVtdXhfcmVhZF9pZDN2MiksCgkgIChnc3RfaWQzZGVtdXhfc2lua19hY3RpdmF0ZSksIChnc3RfaWQzZGVtdXhfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2lkM2RlbXV4X3NyY19jaGVja2dldHJhbmdlKSwgKGdzdF9pZDNkZW11eF9yZWFkX3JhbmdlKSwKCSAgKGdzdF9pZDNkZW11eF9zcmNfZ2V0cmFuZ2UpLCAoZ3N0X2lkM2RlbXV4X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfaWQzZGVtdXhfcGFkX3F1ZXJ5KSwgKGdzdF9pZDNkZW11eF9nZXRfcXVlcnlfdHlwZXMpLAoJICAoc2ltcGxlX2ZpbmRfcGVlayksIChzaW1wbGVfZmluZF9zdWdnZXN0KSwKCSAgKGdzdF9pZDNkZW11eF9kb190eXBlZmluZCksIChnc3RfaWQzZGVtdXhfc2VuZF90YWdfZXZlbnQpLAoJICAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9pZDNkZW11eC9nc3RpZDNkZW11eC5oOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmM6IChyZWFkX3N5bmNoX3VpbnQpLAoJICAoaWQzZGVtdXhfcmVhZF9pZDN2MV90YWcpLCAoaWQzZGVtdXhfcmVhZF9pZDN2Ml90YWcpLAoJICAoaWQzZGVtdXhfaWQzdjJfZnJhbWVfaGRyX3NpemUpLCAoY29udmVydF9maWRfdG9fdjI0MCksCgkgIChpZDNkZW11eF9pZDN2Ml9mcmFtZXNfdG9fdGFnX2xpc3QpOgoJICAqIGdzdC9pZDNkZW11eC9pZDN0YWdzLmg6CgkgICogZ3N0L2lkM2RlbXV4L2lkM3YyLjQuMC1mcmFtZXMudHh0OgoJICAqIGdzdC9pZDNkZW11eC9pZDN2Mi40LjAtc3RydWN0dXJlLnR4dDoKCSAgKiBnc3QvaWQzZGVtdXgvaWQzdjJmcmFtZXMuYzogKGlkM2RlbXV4X2lkM3YyX3BhcnNlX2ZyYW1lKSwKCSAgKHBhcnNlX2NvbW1lbnRfZnJhbWUpLCAocGFyc2VfdGV4dF9pZGVudGlmaWNhdGlvbl9mcmFtZSksCgkgIChpZDN2Ml90YWdfdG9fdGFnbGlzdCksIChwYXJzZV9zcGxpdF9zdHJpbmdzKToKCSAgQWxsIG5ldyBMR1BMIGlkMyBkZW11eGVyLiBDYW4gdXNlIHpsaWIgZm9yIGNvbXByZXNzZWQgZnJhbWVzLAoJICBvdGhlcndpc2UgaXQgZGlzY2FyZHMgdGhlbS4gV29ya3Mgb24gbXkgdGVzdCBmaWxlcy4KCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9sb29wKToKCSAgRG9uJ3Qgc2VuZCBFT1MgdG8gYSBub24tZXhpc3Rpbmcgc3JjcGFkCgkgIFRoZSBkZWJ1ZyBjYXRlZ29yeSBjYW4gYmUgc3RhdGljCgoyMDA1LTEyLTE3IDE3OjQ4OjM4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTE3ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRlY2wudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLXVuZG9jdW1lbnRlZC50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRmYnZpZGVvc2luay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF0ZGVtdXgueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zZGx2aWRlb3NpbmsueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVlZC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXR0YS54bWw6IFVwZGF0ZXMuCgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOgoJICAoZ3N0X2RmYnZpZGVvc2lua19zdXJmYWNlX2NyZWF0ZSksCgkgIChnc3RfZGZidmlkZW9zaW5rX2V2ZW50X3RocmVhZCksIChnc3RfZGZidmlkZW9zaW5rX2VudW1fdm1vZGVzKSwKCSAgKGdzdF9kZmJ2aWRlb3NpbmtfZW51bV9kZXZpY2VzKSwgKGdzdF9kZmJ2aWRlb3Npbmtfc2V0dXApLAoJICAoZ3N0X2RmYnZpZGVvc2lua19jbGVhbnVwKSwKCSAgKGdzdF9kZmJ2aWRlb3NpbmtfY2FuX2JsaXRfZnJvbV9mb3JtYXQpLAoJICAoZ3N0X2RmYnZpZGVvc2lua19nZXRfYmVzdF92bW9kZSksIChnc3RfZGZidmlkZW9zaW5rX2dldGNhcHMpLAoJICAoZ3N0X2RmYnZpZGVvc2lua19zZXRjYXBzKSwgKGdzdF9kZmJ2aWRlb3Npbmtfc2hvd19mcmFtZSksCgkgIChnc3RfZGZidmlkZW9zaW5rX2J1ZmZlcl9hbGxvYyksIChnc3RfZGZic3VyZmFjZV9maW5hbGl6ZSksCgkgIChnc3RfZGZidmlkZW9zaW5rX2ludGVyZmFjZV9zdXBwb3J0ZWQpLAoJICAoZ3N0X2RmYnZpZGVvc2lua19uYXZpZ2F0aW9uX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2RmYnZpZGVvc2lua191cGRhdGVfY29sb3JiYWxhbmNlKSwKCSAgKGdzdF9kZmJ2aWRlb3NpbmtfY29sb3JiYWxhbmNlX2xpc3RfY2hhbm5lbHMpLAoJICAoZ3N0X2RmYnZpZGVvc2lua19jb2xvcmJhbGFuY2Vfc2V0X3ZhbHVlKSwKCSAgKGdzdF9kZmJ2aWRlb3NpbmtfY29sb3JiYWxhbmNlX2dldF92YWx1ZSksCgkgIChnc3RfZGZidmlkZW9zaW5rX2NvbG9yYmFsYW5jZV9pbml0KSwKCSAgKGdzdF9kZmJ2aWRlb3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9kZmJ2aWRlb3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9kZmJ2aWRlb3NpbmtfaW5pdCksIChnc3RfZGZidmlkZW9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9kaXJlY3RmYi9kZmJ2aWRlb3NpbmsuaDogSW1wbGVtZW50IHZlcnRpY2FsIHN5bmMgYW5kCgkgIGNvbG9yIGJhbGFuY2UgaW50ZXJmYWNlLgoKMjAwNS0xMi0xNiAyMTo1Nzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hhbmdlIHNvbWUgY2hhciogaW50byBjaGFyW10KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2VzZC9lc2Rtb24uYzogKGdzdF9lc2Rtb25fb3Blbl9hdWRpbyk6CgkgICogZXh0L2VzZC9lc2RzaW5rLmM6IChnc3RfZXNkc2lua19wcmVwYXJlKToKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgIGNoYW5nZSBzb21lIGNoYXIqIGludG8gY2hhcltdCgoyMDA1LTEyLTE2IDE5OjMyOjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IFVzZSBHc3RTZWdtZW50IHRvIGltcGxlbWVudCBtb3JlIHNlZWtpbmcgZmVhdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3Jlc2V0KSwKCSAgKGdzdF93YXZwYXJzZV9vdGhlciksIChnc3Rfd2F2cGFyc2VfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X3dhdnBhcnNlX2xvb3ApLCAoZ3N0X3dhdnBhcnNlX3BhZF9jb252ZXJ0KSwKCSAgKGdzdF93YXZwYXJzZV9zcmNwYWRfZXZlbnQpLCAoZ3N0X3dhdnBhcnNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmg6CgkgIFVzZSBHc3RTZWdtZW50IHRvIGltcGxlbWVudCBtb3JlIHNlZWtpbmcgZmVhdHVyZXMuCgoyMDA1LTEyLTE2IDEyOjI1OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiBPb3BzLCByZW1vdmUgdHJhaWxpbmcgY29tbWEgZnJvbSBjYXBzIHN0cmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOgoJICBPb3BzLCByZW1vdmUgdHJhaWxpbmcgY29tbWEgZnJvbSBjYXBzIHN0cmluZy4KCjIwMDUtMTItMTYgMTA6MTI6NDkgKzAwMDAgIEJlbmphbWluIFBpbmVhdSA8YmVuLnBpbmVhdUBnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiBBZGQgPG5ldGluZXQvaW4uaD4gaW5jbHVkZSBhbmQgbW92ZSA8YXJwYS9pbmV0Lmg+IGluY2x1ZGUgdG8gbWFrZSB0aGluZ3Mgd29yayBvbiBPcGVuQlNEIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzoKCSAgQWRkIDxuZXRpbmV0L2luLmg+IGluY2x1ZGUgYW5kIG1vdmUgPGFycGEvaW5ldC5oPiBpbmNsdWRlCgkgIHRvIG1ha2UgdGhpbmdzIHdvcmsgb24gT3BlbkJTRCBhcyB3ZWxsIChmaXhlcyAjMzIzNzE3OwoJICBwYXRjaCBieTogQmVuamFtaW4gUGluZWF1KQoKMjAwNS0xMi0xNiAwOTo1OToyMSArMDAwMCAgZ2NvY2F0cmVAZ21haWwuY29tIDxnY29jYXRyZUBnbWFpbC5jb20+CgoJICBleHQvd2F2cGFjay86IFdhdnBhY2sgc3VwcG9ydHMgc2FtcGxlcmF0ZXMgZnJvbSA2LTE5MmtIeiwgZml4IHBhZCB0ZW1wbGF0ZSByZW1vdmUgYnVmZmVyLWZyYW1lcyBmcm9tIGNhcHMsIHRoZXkgYXJlIGcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2xpbmspOgoJICAqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2twYXJzZS5jOgoJICBXYXZwYWNrIHN1cHBvcnRzIHNhbXBsZXJhdGVzIGZyb20gNi0xOTJrSHosIGZpeCBwYWQgdGVtcGxhdGUKCSAgY2FwcyAoZml4ZXMgIzMyMjk3MzsgcGF0Y2ggYnk6IGdjb2NhdHJlQGdtYWlsLmNvbSkuIEFsc28KCSAgcmVtb3ZlIGJ1ZmZlci1mcmFtZXMgZnJvbSBjYXBzLCB0aGV5IGFyZSBnb25lIGluIDAuMTAuCgoyMDA1LTEyLTE0IDIwOjA1OjQ1ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkgIFNldCBjbG9jayByYXRlIHRvIGJlIGZpeGVkIGluIDgwMDAuIEl0IGZpeGVzIGJ1ZyAjMzI0MDEyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU2V0IGNsb2NrIHJhdGUgdG8gYmUgZml4ZWQgaW4gODAwMC4gSXQgZml4ZXMgYnVnICMzMjQwMTIuCgoyMDA1LTEyLTE0IDE4OjA3OjE2ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgZ3N0LXBsdWdpbnMtZ29vZC9nc3QvcnRwLzogRml4ZWQgcGF5bG9hZCByYW5nZSBpbiBwYXlsb2RlciBjYXBzLiBSZW1vdmVkIHBheWxvYWQgcmFuZ2UgY29tcGxldGx5IGZyb20gZGVwYXlsb2FkZXJzIGFzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTE0ICBQaGlsaXBwZSBLaGFsYWYgIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC9nc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC9nc3QvcnRwL2dzdHJ0cGFtcnBheS5jOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBnNzExZGVwYXkuYzoKCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC9ydHAvZ3N0cnRwZzcxMWRlcGF5LmM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC9nc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkgICogZ3N0LXBsdWdpbnMtZ29vZC9nc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBtcDR2ZGVwYXkuYzoKCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJICAqIGdzdC1wbHVnaW5zLWdvb2QvZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgKiBnc3QtcGx1Z2lucy1nb29kL2dzdC9ydHAvUkVBRE1FOgoJICBGaXhlZCBwYXlsb2FkIHJhbmdlIGluIHBheWxvZGVyIGNhcHMuIFJlbW92ZWQgcGF5bG9hZCByYW5nZSBjb21wbGV0bHkgZnJvbQoJICBkZXBheWxvYWRlcnMgYXMgdGhleSBkb24ndCByZXF1aXJlIHBheWxvYWQgdHlwZSBpbiB0aGVpciBjYXBzLiBJbiBlZmZlY3QsCgkgIHRoZXJlIGlzbid0IGFueSBzcGVjaWZpYyBwYXlsb2FkIHR5cGUgZm9yIGFueSBnaXZlbiBjb2RlYywgb25seSBzdWdnZXN0aW9ucy4KCSAgRml4ZXMgYnVnICMzMjQwMTEuCgoyMDA1LTEyLTEzIDIxOjU4OjQyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogQ29kZSBjbGVhbnVwIGFuZCByZS1lbmFibGluZyBxdWV1ZWQgdGltZSB2YWxpZGl0eSBjaGVjayBmb3IgY29ycmVjdCBFT1MgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTEzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfaW5pdCksCgkgIChnc3RfdmlkZW9taXhlcl9maWxsX3F1ZXVlcyksIChnc3RfdmlkZW9taXhlcl9ibGVuZF9idWZmZXJzKSwKCSAgKGdzdF92aWRlb21peGVyX2NvbGxlY3RlZCk6IENvZGUgY2xlYW51cCBhbmQgcmUtZW5hYmxpbmcKCSAgcXVldWVkIHRpbWUgdmFsaWRpdHkgY2hlY2sgZm9yIGNvcnJlY3QgRU9TIGhhbmRsaW5nLgoKMjAwNS0xMi0xMyAxNzoxODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6IEFkZCAnZGV2aWNlLW5hbWUnIHByb3BlcnR5IGFuZCBmaXggc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOiAoZ3N0X29zc19taXhlcl9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X29zc19taXhlcl9lbGVtZW50X2dldF9wcm9wZXJ0eSksCgkgIChnc3Rfb3NzX21peGVyX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQWRkICdkZXZpY2UtbmFtZScgcHJvcGVydHkgYW5kIGZpeCBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgoyMDA1LTEyLTEzIDEwOjQ1OjA0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2ZseC9nc3RmbHhkZWMuYzogSWYgdGhlIHNwZWVkIG9mIHRoZSBmaWxlIGlzIG51bGwgaW4gdGhlIGhlYWRlciwgc2V0IHRoZSBmcmFtZV90aW1lIHRvIHRoZSBkZWZhdWx0IHNldHRpbmcgb2YgR1NULi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6IChnc3RfZmx4ZGVjX2NoYWluKToKCSAgSWYgdGhlIHNwZWVkIG9mIHRoZSBmaWxlIGlzIG51bGwgaW4gdGhlIGhlYWRlciwgc2V0IHRoZSBmcmFtZV90aW1lIHRvIHRoZSBkZWZhdWx0CgkgIHNldHRpbmcgb2YgR1NUX1NFQ09ORCAvIDcwLiBXaGljaCBpcyB0aGUgZGVmYXVsdCBmcmFtZV9kZWxheSBmb3IgLmZsaSBmaWxlcyBhcwoJICBzdGF0ZWQgaW4gdGhpcyBkb2N1bWVudCA6IGh0dHA6Ly93d3cuY29tcHVwaGFzZS5jb20vZmxpYy5odG0KCSAgV291bGQgYmUgbmljZSB0byBoYXZlIHRoZSB0aW1lIGNvbnZlcnNpb24gZG9uZSBwcm9wZXJseSB0b28KCSAgKGR1cmF0aW9uID0gZmx4aC0+ZnJhbWVzICogZmx4ZGVjLT5mcmFtZV90aW1lKQoKMjAwNS0xMi0xMiAyMjoyOTozNCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBBZGRpbmcgZG9jdW1lbnRhdGlvbiBmb3IgdmlkZW9taXhlciBvbiBteSB3YXkgd2l0aCBhIGZ1bm55IHNhbXBsZSBwaXBlbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMTIgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3Npbmtfc2V0Y2FwcyksCgkgIChnc3RfdmlkZW9taXhlcl9nZXRjYXBzKSwgKGdzdF92aWRlb21peGVyX2ZpbGxfcXVldWVzKSwKCSAgKGdzdF92aWRlb21peGVyX3VwZGF0ZV9xdWV1ZXMpLCAoZ3N0X3ZpZGVvbWl4ZXJfY29sbGVjdGVkKToKCSAgQWRkaW5nCgkgIGRvY3VtZW50YXRpb24gZm9yIHZpZGVvbWl4ZXIgb24gbXkgd2F5IHdpdGggYSBmdW5ueSBzYW1wbGUKCSAgcGlwZWxpbmUuCgoyMDA1LTEyLTEyIDIxOjQzOjAwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogRml4IGNhcHMgbmVnb3RpYXRpb24uICgjMzIzODk2KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xMiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSAgKGdzdF92aWRlb21peGVyX3BhZF9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfZ2V0Y2FwcyksIChnc3RfdmlkZW9taXhlcl9maWxsX3F1ZXVlcyksCgkgIChnc3RfdmlkZW9taXhlcl91cGRhdGVfcXVldWVzKSwgKGdzdF92aWRlb21peGVyX2NvbGxlY3RlZCk6CgkgIEZpeCBjYXBzIG5lZ290aWF0aW9uLiAoIzMyMzg5NikKCjIwMDUtMTItMTIgMTg6MTQ6NTggKzAwMDAgIEFyd2VkIHYuIE1lcmthdHogPHYubWVya2F0ekBnbXgubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgU2V0IGNvcnJlY3QgdGltZXN0YW1wcyBvbiBhdWRpbyBsYWNlcywgZml4ZXMgcGxheWJhY2sgb2YgbXAzIGZyb20gbWF0cm9za2EuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTZXQgY29ycmVjdCB0aW1lc3RhbXBzIG9uIGF1ZGlvIGxhY2VzLCBmaXhlcyBwbGF5YmFjayBvZiBtcDMgZnJvbSBtYXRyb3NrYS4KCjIwMDUtMTItMTIgMTA6NDA6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvOiBHc3RPYmplY3RzIG11c3QgYmUgdW5yZWYnZWQgd2l0aCBnc3Rfb2JqZWN0X3VucmVmKCkgaW5zdGVhZCBvZiBnX29iamVjdF91bnJlZigpLCBvdGhlcndpc2UgdGhpbmdzIGJyZWFrIGZvciBHTGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2l2b3JiaXMvdm9yYmlzZmlsZS5jOiAoZ3N0X2l2b3JiaXNmaWxlX2xvb3ApOgoJICAqIGV4dC9saWJtbXMvZ3N0bW1zLmM6IChnc3RfbW1zX3NyY19xdWVyeSksIChnc3RfbW1zX2NyZWF0ZSk6CgkgICogZXh0L211c2VwYWNrL2dzdG11c2VwYWNrZGVjLmM6IChnc3RfbXVzZXBhY2tkZWNfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9tdXNlcGFja2RlY19sb29wKToKCSAgKiBleHQvc3dmZGVjL2dzdHN3ZmRlYy5jOiAoZ3N0X3N3ZmRlY192aWRlb19saW5rKSwKCSAgKGdzdF9zd2ZkZWNfc3JjX3F1ZXJ5KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzogKGdzdF93YXZwYWNrX3BhcnNlX3NyY19xdWVyeSk6CgkgIEdzdE9iamVjdHMgbXVzdCBiZSB1bnJlZidlZCB3aXRoIGdzdF9vYmplY3RfdW5yZWYoKSBpbnN0ZWFkIG9mCgkgIGdfb2JqZWN0X3VucmVmKCksIG90aGVyd2lzZSB0aGluZ3MgYnJlYWsgZm9yIEdMaWItMi42IHVzZXJzLgoKMjAwNS0xMi0xMiAxMDozMDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuKjogVXNlIGdzdF9vYmplY3RfdW5yZWYoKSBmb3IgR3N0T2JqZWN0cyBpbnN0ZWFkIG9mIGdfb2JqZWN0X3VucmVmKCkgYW5kIGZpeCBhIG1lbSBsZWFrIGluIGEgZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6IChnc3RfYXVfcGFyc2VfYmFzZV9pbml0KSwKCSAgKGdzdF9hdV9wYXJzZV9jbGFzc19pbml0KSwgKGdzdF9hdV9wYXJzZV9pbml0KSwKCSAgKGdzdF9hdV9wYXJzZV9kaXNwb3NlKSwgKGdzdF9hdV9wYXJzZV9jaGFpbiksCgkgIChnc3RfYXVfcGFyc2VfY2hhbmdlX3N0YXRlKSwgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkgIFVzZSBnc3Rfb2JqZWN0X3VucmVmKCkgZm9yIEdzdE9iamVjdHMgaW5zdGVhZCBvZgoJICBnX29iamVjdF91bnJlZigpIGFuZCBmaXggYSBtZW0gbGVhayBpbiBhIGRlYnVnCgkgIHN0YXRlbWVudDsgd2hpbGUgd2UncmUgYXQgaXQsIGFsc28gYm9yZ2lmeSwgdXNlCgkgIGJvaWxlcnBsYXRlIG1hY3JvcyBhbmQgY2xlYW4gdXAgYSBsaXR0bGUgYml0LgoKMjAwNS0xMi0xMSAyMDoyNzowNiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9kZWJ1Zy9lZmVuY2UuYzogQWRkZWQgcHVsbCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvZWZlbmNlLmM6IChnc3RfZWZlbmNlX2luaXQpLCAoZ3N0X2VmZW5jZV9nZXRyYW5nZSksCgkgIChnc3RfZWZlbmNlX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X2VmZW5jZV9hY3RpdmF0ZV9zcmNfcHVsbCk6CgkgIEFkZGVkIHB1bGwgbW9kZS4KCjIwMDUtMTItMTEgMTk6MjU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBVc2UgYXVkaW90ZXN0c3JjIGluc3RlYWQgb2Ygc2luZXNyYyAoIzMyMzc5OCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzoKCSAgKiBnc3QvbGV2ZWwvbGV2ZWwtZXhhbXBsZS5jOiAobWFpbik6CgkgICogZ3N0L3Ntb290aHdhdmUvZGVtby1vc3NzcmMuYzogKG1haW4pOgoJICBVc2UgYXVkaW90ZXN0c3JjIGluc3RlYWQgb2Ygc2luZXNyYyAoIzMyMzc5OCkuCgoyMDA1LTEyLTExIDE3OjUwOjUwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBzeXMvb3NzL2dzdG9zc3NpbmsuYzogbW9yZSBkZWJ1Zy1mdW5jLXB0ciB1c2FnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzogKGdzdF9vc3Nfc2lua19jbGFzc19pbml0KToKCSAgbW9yZSBkZWJ1Zy1mdW5jLXB0ciB1c2FnZQoKMjAwNS0xMi0xMSAxNjo0Mzo0MiArMDAwMCAgWmVlc2hhbiBBbGkgPHplZW5peEBnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9mbHgvZmx4X2NvbG9yLmM6CgkqIGdzdC9mbHgvZmx4X2NvbG9yLmg6CgkqIGdzdC9mbHgvZmx4X2ZtdC5oOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5oOgoJICBOb3cgZmx4ZGVjIHdvcmtzIG9uIGJpZy1lbmRpYW4gbWFjaGluZXMgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5vdyBmbHhkZWMgd29ya3Mgb24gYmlnLWVuZGlhbiBtYWNoaW5lcyBhcyB3ZWxsLgoKMjAwNS0xMi0xMSAxNjoxNDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9kZWJ1Zy9lZmVuY2UuYzogTWFrZSBzdXJlIEdTVF9CVUZGRVJfREFUQSBpcyBzZXQgb24gZmVuY2VkIGNvcGllZCBidWZmZXJzOyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2VmZW5jZS5jOiAoZ3N0X2VmZW5jZV9pbml0KSwgKGdzdF9lZmVuY2VfY2hhaW4pLAoJICAoZ3N0X2ZlbmNlZF9idWZmZXJfY29weSk6CgkgIE1ha2Ugc3VyZSBHU1RfQlVGRkVSX0RBVEEgaXMgc2V0IG9uIGZlbmNlZCBjb3BpZWQgYnVmZmVyczsgZml4CgkgIEdTVF9ERUJVRyBjcmFzaGVyIHdoZXJlIEdTVF9USU1FX0ZPUk1BVCB3YXMgbm90IHVzZWQgaW4KCSAgY29uanVuY3Rpb24gd2l0aCBHU1RfVElNRV9BUkdTLiBBbHNvLCBkb24ndCBsZWFrIHBhZCB0ZW1wbGF0ZXMKCSAgYW5kIHVzZSBHU1RfREVCVUdfRlVOQ1BUUiBmb3IgcGFkIGZ1bmN0aW9ucy4KCjIwMDUtMTItMTAgMjA6MjY6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvZmxhYy9nc3RmbGFjZGVjLio6IFJld3JpdGUgZmxhY2RlYyBhIGJpdCwgc28gdGhhdCBldmVuIHNlZWtpbmcgbWlnaHQgd29yayBub3cuIE1vc3QgaW1wb3J0YW50bHksIGRvbid0IGFjdCB1cG9uIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNfZGVjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmxhY19kZWNfY2xhc3NfaW5pdCksIChnc3RfZmxhY19kZWNfaW5pdCksCgkgIChnc3RfZmxhY19kZWNfbWV0YWRhdGFfY2FsbGJhY2spLCAoZ3N0X2ZsYWNfZGVjX2Vycm9yX2NhbGxiYWNrKSwKCSAgKGdzdF9mbGFjX2RlY19lb2YpLCAoZ3N0X2ZsYWNfZGVjX3dyaXRlKSwgKGdzdF9mbGFjX2RlY19sb29wKSwKCSAgKGdzdF9mbGFjX2RlY19jb252ZXJ0X3NyYyksIChnc3RfZmxhY19kZWNfZ2V0X3NyY19xdWVyeV90eXBlcyksCgkgIChnc3RfZmxhY19kZWNfc3JjX3F1ZXJ5KSwgKGdzdF9mbGFjX2RlY19zZW5kX25ld3NlZ21lbnQpLAoJICAoZ3N0X2ZsYWNfZGVjX2hhbmRsZV9zZWVrX2V2ZW50KSwgKGdzdF9mbGFjX2RlY19zcmNfZXZlbnQpLAoJICAoZ3N0X2ZsYWNfZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5oOgoJICBSZXdyaXRlIGZsYWNkZWMgYSBiaXQsIHNvIHRoYXQgZXZlbiBzZWVraW5nIG1pZ2h0IHdvcmsgbm93LiBNb3N0CgkgIGltcG9ydGFudGx5LCBkb24ndCBhY3QgdXBvbiBhbnkgZmxvdyByZXR1cm4gdmFsdWVzIHdlIGdldCwganVzdCB0ZWxsCgkgIHRoZSBkZWNvZGVyIGV2ZXJ5dGhpbmcncyBkYW5keSBhbmQgYWN0IG9uIHRoZSBmbG93IHJldHVybiB2YWx1ZXMKCSAgbGF0ZXIgb24gaW4gdGhlIGxvb3AgZnVuY3Rpb24uIFdlIGRvbid0IHdhbnQgdG8gbWVzcyB1cCB0aGUgaW50ZXJuYWwKCSAgZGVjb2RlciBzdGF0ZSBmb3Igbm9uLWZhdGFsIHRoaW5ncyBsaWtlIGZsdXNoaW5nIHBhZHMgZXRjLiBPdGhlcgoJICB0aGFuIHRoYXQsIHVzZSBHc3RTZWdtZW50IChzZWdtZW50IHNlZWtzIGRvbid0IHdvcmsgeWV0IHRob3VnaCwgYnV0CgkgIHNob3VsZCBiZSBlYXN5IHRvIGFkZCksIHVzZSBib2lsZXJwbGF0ZSBtYWNyb3MsIGRyb3AgdGhlIHN1cGVyZmx1b3VzCgkgICdmbGFjZGVjOicgZnJvbSBkZWJ1ZyBtZXNzYWdlcywgdXNlIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQsIGFuZAoJICBsb3RzIG9mIG90aGVyIHRoaW5ncy4KCjIwMDUtMTItMTAgMTQ6NTc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVwZGF0ZSBjb21tZW50IGluIE9TUyBpbmNsdWRlcyBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVcGRhdGUgY29tbWVudCBpbiBPU1MgaW5jbHVkZXMgY2hlY2suCgkgICogc3lzL29zcy9nc3Rvc3NkbWFidWZmZXIuYzoKCSAgKiBzeXMvb3NzL2dzdG9zc2hlbHBlci5jOgoJICAqIHN5cy9vc3MvZ3N0b3NzbWl4ZXIuYzoKCSAgKiBzeXMvb3NzL2dzdG9zc21peGVydHJhY2suYzoKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzoKCSAgKiBzeXMvb3NzL2dzdG9zc3NyYy5jOgoJICAqIHN5cy9vc3Mvb3NzX3Byb2JlLmM6CgkgIERvbid0IGFzc3VtZSB0aGUgT1NTIHNvdW5kY2FyZC5oIGluY2x1ZGUgaXMgYWx3YXlzIGluCgkgIHRoZSBzeXMvIGRpcmVjdG9yeS4gSW5zdGVhZCwgdXNlIHRoZSBleGlzdGluZyBkZWZpbmVzCgkgIGZyb20gY29uZmlnLmggdG8gaW5jbHVkZSB0aGUgcmlnaHQgZmlsZS4gRml4ZXMKCSAgY29tcGlsYXRpb24gb24gT3BlbkJTRCAzLjggKCMzMjM3MTgpLgoKMjAwNS0xMi0wOSAxOTo1MTowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogZXh0L2ZsYWMvZ3N0ZmxhYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmg6CgkgIGJvcmdpZnkgYW5kIGZpeCB1cCBkb2N1bWVudGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBib3JnaWZ5IGFuZCBmaXggdXAgZG9jdW1lbnRhdGlvbgoKMjAwNS0xMi0wOSAxNTozMDoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleHQvZmFhZC9nc3RmYWFkLmM6IEFzc3VtZSB0aGF0IGFuIHVua25vd24gY2hhbm5lbCBtYXBwaW5nIHdpdGggMiBjaGFubmVscyBpcyBzdGVyZW8gYW5kIHBsYXkgaXQgdGhhdCB3YXkgaW5zdGVhZCBvZiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZhYWQvZ3N0ZmFhZC5jOiAoZ3N0X2ZhYWRfY2hhbnBvc190b19nc3QpLAoJICAoZ3N0X2ZhYWRfdXBkYXRlX2NhcHMpOgoJICBBc3N1bWUgdGhhdCBhbiB1bmtub3duIGNoYW5uZWwgbWFwcGluZyB3aXRoIDIgY2hhbm5lbHMKCSAgaXMgc3RlcmVvIGFuZCBwbGF5IGl0IHRoYXQgd2F5IGluc3RlYWQgb2YgZXJyb3JpbmcuCgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfbG9vcF9oZWFkZXIpLAoJICAoZ3N0X3F0ZGVtdXhfYWRkX3N0cmVhbSksIChxdGRlbXV4X3BhcnNlX3RyYWspOgoJICBIYW5kbGUgZS5nLiBqcGVnIHN0cmVhbXMgd2l0aCAwIGR1cmF0aW9uIGZyYW1lcyBhcyBoYXZpbmcgMCBmcmFtZXJhdGUuCgkgIERlYnVnIGZpeGVzLiBTb21lIDY0IGJpdCB2YXJpYWJsZSBmaXhlcwoKMjAwNS0xMi0wOSAxMToxMjo0OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiBBY2NlcHQgYSB3aWRlciByYW5nZSBvZiBmbGFjIGZpbGVzLCBtb3JlIGNsb3NlbHkgbWF0Y2hpbmcgZmxhYyBzcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChyYXdfY2Fwc19mYWN0b3J5KSwgKGdzdF9mbGFjZGVjX3dyaXRlKToKCSAgQWNjZXB0IGEgd2lkZXIgcmFuZ2Ugb2YgZmxhYyBmaWxlcywgbW9yZSBjbG9zZWx5IG1hdGNoaW5nIGZsYWMgc3AKCjIwMDUtMTItMDggMTY6Mjc6MTIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOiBBZGQgbXVsdGlwYXJ0IGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wOCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbTogQWRkIG11bHRpcGFydCBlbGVtZW50cy4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDogRml4IGZsYWMuCgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IEFkZCBkb2NzLgoKMjAwNS0xMi0wNyAxMTo0NjoxNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogTWVtbGVhayBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfbG9vcF9oZWFkZXIpLAoJICAoZ3N0X3F0ZGVtdXhfYWRkX3N0cmVhbSk6CgkgIE1lbWxlYWsgZml4ZXMuCgkgIFNlbmQgb3V0IEVPUyBmb3IgdmFsaWQgcmVhc29ucyAoY291bGRuJ3QgcHVsbF9yYW5nZSgpIGZyb20gdXBzdHJlYW0KCSAgZm9yIGV4YW1wbGUpLgoKMjAwNS0xMi0wNyAxMTo0MDo0NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogTWVtbGVhayBhbmQgY3Jhc2hlciBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9hdmlfZGVtdXhfcGFyc2Vfc3RyZWFtKSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksCgkgIChnc3RfYXZpX2RlbXV4X2ludmVydCk6CgkgIE1lbWxlYWsgYW5kIGNyYXNoZXIgZml4ZXMuCgkgICogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IChnc3Rfd2F2cGFyc2VfYmFzZV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9jcmVhdGVfc291cmNlcGFkKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyk6CgkgIE1lbWxlYWsgZml4ZXMKCjIwMDUtMTItMDYgMTk6NTU6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VxdWFsaXplci9nc3RpaXJlcXVhbGl6ZXIuYzoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkqIHN5cy92NGwyL2dzdHY0bDJjb2xvcmJhbGFuY2UuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMmVsZW1lbnQuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5oOgoJKiBzeXMvdjRsMi9nc3R2NGwydHVuZXIuaDoKCSogc3lzL3Y0bDIvZ3N0djRsMnhvdmVybGF5Lmg6CgkqIHN5cy92NGwyL3Y0bDJfY2FsbHMuYzoKCSogc3lzL3Y0bDIvdjRsMl9jYWxscy5oOgoJKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6CgkqIHN5cy92NGwyL3Y0bDJzcmNfY2FsbHMuaDoKCSAgZXhwYW5kIHRhYnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGV4cGFuZCB0YWJzCgoyMDA1LTEyLTA2IDE5OjQ0OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZXh0L2FhbGliL2dzdGFhc2luay5oOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuaDoKCSogZXh0L2R2L2dzdGR2ZGVjLmg6CgkqIGV4dC9kdi9nc3RkdmRlbXV4LmM6CgkqIGV4dC9kdi9nc3RkdmRlbXV4Lmg6CgkqIGV4dC9lc2QvZXNkc2luay5oOgoJKiBleHQvZmxhYy9mbGFjX2NvbXBhdC5oOgoJKiBleHQvZmxhYy9nc3RmbGFjZGVjLmg6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSogZXh0L2djb25mL2djb25mLmg6CgkqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5oOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuaDoKCSogZXh0L2dka19waXhidWYvZ3N0Z2RrYW5pbWF0aW9uLmg6CgkqIGV4dC9qcGVnL2dzdGpwZWdkZWMuaDoKCSogZXh0L2pwZWcvc21va2Vjb2RlYy5oOgoJKiBleHQvanBlZy9zbW9rZWZvcm1hdC5oOgoJKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5oOgoJKiBleHQvbGFkc3BhL3NlYXJjaC5jOgoJKiBleHQvbGFkc3BhL3V0aWxzLmg6CgkqIGV4dC9saWJtbmcvZ3N0bW5nZGVjLmg6CgkqIGV4dC9saWJtbmcvZ3N0bW5nZW5jLmM6CgkqIGV4dC9saWJtbmcvZ3N0bW5nZW5jLmg6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmg6CgkqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmg6CgkqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5oOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmg6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5oOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmg6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuaDoKCSogZ3N0L2RlYnVnL3Rlc3RzLmM6CgkqIGdzdC9kZWJ1Zy90ZXN0cy5oOgoJKiBnc3QvZWZmZWN0di9nc3R3YXJwLmM6CgkqIGdzdC9mbHgvZmx4X2ZtdC5oOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5oOgoJKiBnc3QvZ29vbS9maWx0ZXJzLmM6CgkqIGdzdC9nb29tL2ZpbHRlcnMuaDoKCSogZ3N0L2dvb20vZ29vbV90b29scy5oOgoJKiBnc3QvbGF3L2FsYXctZW5jb2RlLmM6CgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJKiBnc3QvbW9ub3Njb3BlL2NvbnZvbHZlLmM6CgkqIGdzdC9tb25vc2NvcGUvY29udm9sdmUuaDoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRtdXguYzoKCSogZ3N0L29sZGNvcmUvZ3N0YWdncmVnYXRvci5jOgoJKiBnc3Qvb2xkY29yZS9nc3RhZ2dyZWdhdG9yLmg6CgkqIGdzdC9vbGRjb3JlL2dzdG1kNXNpbmsuYzoKCSogZ3N0L29sZGNvcmUvZ3N0bWQ1c2luay5oOgoJKiBnc3Qvb2xkY29yZS9nc3RtdWx0aWZpbGVzcmMuYzoKCSogZ3N0L29sZGNvcmUvZ3N0bXVsdGlmaWxlc3JjLmg6CgkqIGdzdC9vbGRjb3JlL2dzdHBpcGVmaWx0ZXIuaDoKCSogZ3N0L29sZGNvcmUvZ3N0c2hhcGVyLmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5Lmg6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5oOgoJKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5oOgoJKiBnc3QvcnRzcC9ydHNwZGVmcy5oOgoJKiBnc3QvcnRzcC9ydHNwbWVzc2FnZS5oOgoJKiBnc3QvcnRzcC9ydHNwdHJhbnNwb3J0Lmg6CgkqIGdzdC9ydHNwL3J0c3B1cmwuYzoKCSogZ3N0L3J0c3AvcnRzcHVybC5oOgoJKiBnc3QvcnRzcC9zZHBtZXNzYWdlLmM6CgkqIGdzdC9ydHNwL3NkcG1lc3NhZ2UuaDoKCSogZ3N0L3NtcHRlL2JhcmJveHdpcGVzLmM6CgkqIGdzdC9zbXB0ZS9nc3RtYXNrLmg6CgkqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5oOgoJKiBnc3Qvc21wdGUvcGFpbnQuYzoKCSogZ3N0L3NtcHRlL3BhaW50Lmg6CgkqIGdzdC91ZHAvZ3N0ZHludWRwc2luay5oOgoJKiBnc3QvdWRwL2dzdG11bHRpdWRwc2luay5oOgoJKiBnc3QvdWRwL2dzdHVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3R1ZHBzaW5rLmg6CgkqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6CgkqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzoKCSogZ3N0L3dhdmVuYy9yaWZmLmg6CgkqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5oOgoJKiBzeXMvb3NzL2dzdG9zc2RtYWJ1ZmZlci5oOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyLmg6CgkqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50Lmg6CgkqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJ0cmFjay5oOgoJKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzoKCSogc3lzL29zcy9nc3Rvc3NzaW5rLmg6CgkqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6CgkqIHN5cy9vc3MvZ3N0b3Nzc3JjLmg6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb2VsZW1lbnQuaDoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5oOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zcmMuaDoKCSAgZXhwYW5kIHRhYnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGV4cGFuZCB0YWJzCgoyMDA1LTEyLTA1IDE4OjEyOjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMCA9PT0KCjIwMDUtMTItMDUgMTg6MDM6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWx0aXBhcnQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgIHJlbGVhc2luZyAwLjEwLjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjAKCjIwMDUtMTItMDUgMTg6MDE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF0ZGVtdXgueG1sOgoJICByZWxlYXNpbmcgMC4xMC4wCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC4wCgoyMDA1LTEyLTA1IDE2OjIxOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY3MucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMi0wNSAxNTowODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2l0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNS0xMi0wNSAxMzowNDoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgVXBkYXRlIGZvciBhbGxvY19idWZmZXIgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZXh0L2ZhYWMvZ3N0ZmFhYy5jOiAoZ3N0X2ZhYWNfc2lua19ldmVudCksIChnc3RfZmFhY19jaGFpbik6CgkgICogZXh0L2ZhYWQvZ3N0ZmFhZC5jOiAoZ3N0X2ZhYWRfY2hhaW4pOgoJICAqIGV4dC9oZXJtZXMvZ3N0aGVybWVzY29sb3JzcGFjZS5jOiAoZ3N0X2hlcm1lc19jb2xvcnNwYWNlX2NoYWluKToKCSAgKiBleHQvbGNzL2dzdGNvbG9yc3BhY2UuYzogKGdzdF9jb2xvcnNwYWNlX2NoYWluKToKCSAgKiBleHQveGluZS94aW5laW5wdXQuYzogKGdzdF94aW5lX2lucHV0X2dldCk6CgkgICogZ3N0L2NvbG9yc3BhY2UvZ3N0Y29sb3JzcGFjZS5jOiAoZ3N0X2NvbG9yc3BhY2VfY2hhaW4pOgoJICAqIGdzdC9zcGVlZC9nc3RzcGVlZC5jOiAoc3BlZWRfY2hhaW4pOgoJICAqIGdzdC92aWRlb2Nyb3AvZ3N0dmlkZW9jcm9wLmM6IChnc3RfdmlkZW9fY3JvcF9jaGFpbik6IFVwZGF0ZSBmb3IKCSAgYWxsb2NfYnVmZmVyIGNoYW5nZXMuCgoyMDA1LTEyLTA1IDEzOjAzOjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBVcGRhdGUgZm9yIGFsbG9jX2J1ZmZlciBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvZHYvZ3N0ZHZkZWMuYzogKGdzdF9kdmRlY19jaGFpbik6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiAoZ3N0X2ZsYWNkZWNfd3JpdGUpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogKGdzdF9mbGFjZW5jX3dyaXRlX2NhbGxiYWNrKToKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogKGdzdF9nZGtfcGl4YnVmX2NoYWluKToKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9waXhidWZzY2FsZS5jOiAoZ3N0X3BpeGJ1ZnNjYWxlX2NoYWluKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6IChnc3RfanBlZ19kZWNfY2hhaW4pOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzogKGdzdF9qcGVnZW5jX2NoYWluKToKCSAgKiBleHQvbGFkc3BhL2dzdHNpZ25hbHByb2Nlc3Nvci5jOiAoZ3N0X3NpZ25hbF9wcm9jZXNzb3JfcHJvY2Vzcyk6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKHVzZXJfaW5mb19jYWxsYmFjayksIChnc3RfcG5nZGVjX3Rhc2spOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiAoc3BlZXhfZGVjX2NoYWluKToKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogKGdzdF9zcGVleGVuY19jaGFpbik6CgkgICogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOiAoZ3N0X2F1cGFyc2VfY2hhaW4pOgoJICAqIGdzdC9mbHgvZ3N0Zmx4ZGVjLmM6IChnc3RfZmx4ZGVjX2NoYWluKToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9jaGFpbik6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF92b3JiaXNfY29kZWNfcHJpdl9kYXRhKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfd3Zwa19oZWFkZXIpOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0ZGVtdXguYzogKGdzdF9tdWx0aXBhcnRfZGVtdXhfY2hhaW4pOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpOgoJICAqIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogKGdzdF92aWRlb21peGVyX2NvbGxlY3RlZCk6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfY2hhaW4pOiBVcGRhdGUgZm9yCgkgIGFsbG9jX2J1ZmZlciBjaGFuZ2VzLgoKMjAwNS0xMi0wNSAxMjoyMzoyMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOiBSZW1vdmUgYXJncyBmb3IgcGx1Z2lucyB0aGF0IGFyZW4ndCBpbiAtZ29vZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJICBSZW1vdmUgYXJncyBmb3IgcGx1Z2lucyB0aGF0IGFyZW4ndCBpbiAtZ29vZC4KCjIwMDUtMTItMDQgMjI6MjY6MDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgcmVtb3ZlIHBhbmdvIHBsdWdpbiBhcyBpdHMgZ29uZSBpbnRvIGJhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBwYW5nbyBwbHVnaW4gYXMgaXRzIGdvbmUgaW50byBiYXNlCgoyMDA1LTEyLTAzIDE4OjUxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkgIGZpeCBlbGVtZW50IGRlc2NyaXB0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGVsZW1lbnQgZGVzY3JpcHRpb25zCgoyMDA1LTEyLTAzIDE4OjUwOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mZHNyYy54bWw6CgkgIHJlbW92ZSBmZHNyYyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZmRzcmMgZG9jcwoKMjAwNS0xMi0wMSAxOToxODowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNyA9PT0KCjIwMDUtMTItMDEgMTk6MTQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWN1dHRlci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kZWJ1Zy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmVuY2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmx4ZGVjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdjb25mZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ29vbS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1qcGVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWxldmVsLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1hdHJvc2thLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgcmVsZWFzaW5nIDAuOS43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjcKCjIwMDUtMTItMDEgMTk6MTM6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF0ZGVtdXgueG1sOgoJICByZWxlYXNpbmcgMC45LjcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNwoKMjAwNS0xMi0wMSAxNzo1MzoyOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY3MucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMi0wMSAxNTozNDoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW11bHRpcGFydC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHAueG1sOgoJICBhZGQgbXVsdGlwYXJ0IHBsdWdpbiB0byBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbXVsdGlwYXJ0IHBsdWdpbiB0byBkb2NzCgoyMDA1LTEyLTAxIDE1OjIyOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvTWFrZWZpbGUuYW06CgkqIGV4dC9wYW5nby9NYWtlZmlsZS5hbToKCSogZXh0L3BhbmdvL2dzdGNsb2Nrb3ZlcmxheS5jOgoJKiBleHQvcGFuZ28vZ3N0Y2xvY2tvdmVybGF5Lmg6CgkqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuaDoKCSogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuYzoKCSogZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuaDoKCSogZXh0L3BhbmdvL2dzdHRpbWVvdmVybGF5LmM6CgkqIGV4dC9wYW5nby9nc3R0aW1lb3ZlcmxheS5oOgoJICBtb3ZlIHBhbmdvIHRvIGJhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgcGFuZ28gdG8gYmFzZQoKMjAwNS0xMi0wMSAxNDozOTozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvcnRwLzogcGFyc2VycyBhcmUgZGVwYXllcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5LmM6CgkgICogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwTDE2cGFyc2UuYzoKCSAgKiBnc3QvcnRwL2dzdHJ0cEwxNnBhcnNlLmg6CgkgICogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmM6CgkgICogZ3N0L3J0cC9nc3RydHBnc21wYXJzZS5oOgoJICBwYXJzZXJzIGFyZSBkZXBheWVycwoKMjAwNS0xMi0wMSAxNDozMDowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzoKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNmRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZW5jLmg6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2cGFyc2UuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXJzZS5oOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJlbmMuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBkZWMuaDoKCSogZ3N0L3J0cC9nc3RydHBkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFkZWMuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzExZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWVuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWVuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGFyc2UuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M2VuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGVuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZW5jLmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZWMuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZW5jLmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGVuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhwYXkuaDoKCSAgRG8gYnVyZ2VyJ3MgcmVuYW1lIGZvciBydHAgcGF5bG9hZGVycyBhbmQgZGVwYXlsb2FkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEbyBidXJnZXIncyByZW5hbWUgZm9yIHJ0cCBwYXlsb2FkZXJzIGFuZCBkZXBheWxvYWRlcnMKCjIwMDUtMTEtMzAgMTk6MDI6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvZHYvOiBGaXggc2Vla2luZyBpbiBkdmRlbXV4IGFnYWluLCBhZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOiAoZ3N0X2R2ZGVjX2NoYWluKToKCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5jOiAoZ3N0X2R2ZGVtdXhfZGVtdXhfZnJhbWUpOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4Lmg6CgkgIEZpeCBzZWVraW5nIGluIGR2ZGVtdXggYWdhaW4sIGFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDUtMTEtMzAgMTg6NDg6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGZpeCB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRlc3RzCgoyMDA1LTExLTMwIDE4OjQwOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICBhZGQgdGVzdHMgc3ViZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdGVzdHMgc3ViZGlyCgoyMDA1LTExLTMwIDE4OjM2OjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBNYWtlZmlsZS5hbQoKMjAwNS0xMS0zMCAxODoyODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFBPUlRFRF8wOToKCSAgKiBkb2NzL3JhbmRvbS9QT1JURURfMDk6CgkgIG1vdmUKCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgYWRkCgkgICogd2luMzIvZ3N0LnNsbjoKCSAgcmVtb3ZlCgoyMDA1LTExLTMwIDE4OjI0OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9sZXZlbC5jOgoJKiBjaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOgoJKiBjb25maWd1cmUuYWM6CgkqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jYXBzZmlsdGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jYXBzZmlsdGVyL2NhcHNmaWx0ZXIxLmM6CgkqIGV4YW1wbGVzL2dvYi9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvZ29iL2dzdC1pZGVudGl0eTIuZ29iOgoJKiBleGFtcGxlcy9nc3RwbGF5Ly5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2dzdHBsYXkvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2dzdHBsYXkvcGxheWVyLmM6CgkqIGV4YW1wbGVzL2luZGV4aW5nLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2luZGV4aW5nL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9pbmRleGluZy9pbmRleG1wZWcuYzoKCSogZXhhbXBsZXMvbGV2ZWwvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2xldmVsL1JFQURNRToKCSogZXhhbXBsZXMvbGV2ZWwvZGVtby5jOgoJKiBleGFtcGxlcy9sZXZlbC9wbG90LmM6CgkqIGV4YW1wbGVzL3N0YXRzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9zdGF0cy9tcDJvZ2cuYzoKCSogZXhhbXBsZXMvc3dpdGNoLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3N3aXRjaC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvc3dpdGNoL3N3aXRjaGVyLmM6CgkgIG1vdmUgdW5kZXIgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgdW5kZXIgdGVzdHMKCjIwMDUtMTEtMzAgMTY6NTc6NTcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBjaGFuZ2VzCgoyMDA1LTExLTMwIDE0OjUzOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3BhbmdvL2dzdHRleHRyZW5kZXIuKjogQWRkIG1pc3NpbmcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6IChnc3RfdGV4dF9yZW5kZXJfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXh0X3JlbmRlcl9jbGFzc19pbml0KSwgKHJlc2l6ZV9iaXRtYXApLAoJICAoZ3N0X3RleHRfcmVuZGVyX3JlbmRlcl90ZXh0KSwgKGdzdF90ZXh0X3JlbmRlcl9zZXRjYXBzKSwKCSAgKGdzdF90ZXh0X3JlbmRlcl9maXhhdGVfY2FwcyksIChnc3RfdGV4dF9yZW5kZXJlcl9iaXRtYXBfdG9fYXl1diksCgkgIChnc3RfdGV4dF9yZW5kZXJfY2hhaW4pLCAoZ3N0X3RleHRfcmVuZGVyX2ZpbmFsaXplKSwKCSAgKGdzdF90ZXh0X3JlbmRlcl9pbml0KSwgKGdzdF90ZXh0X3JlbmRlcl9zZXRfcHJvcGVydHkpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmg6CgkgIEFkZCBtaXNzaW5nIGZpbGVzLgoKMjAwNS0xMS0zMCAxMzoyMDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFBvcnQgcGFuZ28tYmFzZWQgdGV4dG92ZXJsYXksIHRpbWVvdmVybGF5IGFuZCB0ZXh0cmVuZGVyIHRvIDAuOSBhbmQgYWRkIGJhY2tncm91bmQgc2hhZGluZyBhbmQgdGV4dCB3cmFwcGluZyBtb2Rlcy4gTS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZXh0L01ha2VmaWxlLmFtOgoJICAqIGV4dC9wYW5nby9NYWtlZmlsZS5hbToKCSAgKiBleHQvcGFuZ28vZ3N0Y2xvY2tvdmVybGF5LmM6IChnc3RfY2xvY2tfb3ZlcmxheV9iYXNlX2luaXQpLAoJICAoZ3N0X2Nsb2NrX292ZXJsYXlfcmVuZGVyX3RpbWUpLCAoZ3N0X2Nsb2NrX292ZXJsYXlfZ2V0X3RleHQpLAoJICAoZ3N0X2Nsb2NrX292ZXJsYXlfY2xhc3NfaW5pdCksIChnc3RfY2xvY2tfb3ZlcmxheV9pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0Y2xvY2tvdmVybGF5Lmg6CgkgICogZXh0L3BhbmdvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2Jhc2VfaW5pdCksCgkgIChnc3RfdGV4dF9vdmVybGF5X2dldF90ZXh0KSwgKGdzdF90ZXh0X292ZXJsYXlfY2xhc3NfaW5pdCksCgkgIChnc3RfdGV4dF9vdmVybGF5X2ZpbmFsaXplKSwgKGdzdF90ZXh0X292ZXJsYXlfaW5pdCksCgkgIChnc3RfdGV4dF9vdmVybGF5X3VwZGF0ZV93cmFwX21vZGUpLCAoZ3N0X3RleHRfb3ZlcmxheV9zZXRjYXBzKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfdGV4dF9wYWRfbGlua2VkKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfdGV4dF9wYWRfdW5saW5rZWQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9zZXRfcHJvcGVydHkpLCAoZ3N0X3RleHRfb3ZlcmxheV9nZXRjYXBzKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfc2hhZGVfeSksIChnc3RfdGV4dF9vdmVybGF5X2JsaXRfeXV2NDIwKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfcmVzaXplX2JpdG1hcCksIChnc3RfdGV4dF9vdmVybGF5X3JlbmRlcl90ZXh0KSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfcHVzaF9mcmFtZSksIChnc3RfdGV4dF9vdmVybGF5X3BvcF92aWRlbyksCgkgIChnc3RfdGV4dF9vdmVybGF5X3BvcF90ZXh0KSwgKGdzdF90ZXh0X292ZXJsYXlfY29sbGVjdGVkKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfY2hhbmdlX3N0YXRlKSwgKHBsdWdpbl9pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dG92ZXJsYXkuaDoKCSAgKiBleHQvcGFuZ28vZ3N0dGltZW92ZXJsYXkuYzogKGdzdF90aW1lX292ZXJsYXlfYmFzZV9pbml0KSwKCSAgKGdzdF90aW1lX292ZXJsYXlfcmVuZGVyX3RpbWUpLCAoZ3N0X3RpbWVfb3ZlcmxheV9nZXRfdGV4dCksCgkgIChnc3RfdGltZV9vdmVybGF5X2NsYXNzX2luaXQpLCAoZ3N0X3RpbWVfb3ZlcmxheV9pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGltZW92ZXJsYXkuaDoKCSAgUG9ydCBwYW5nby1iYXNlZCB0ZXh0b3ZlcmxheSwgdGltZW92ZXJsYXkgYW5kIHRleHRyZW5kZXIgdG8gMC45CgkgIGFuZCBhZGQgYmFja2dyb3VuZCBzaGFkaW5nIGFuZCB0ZXh0IHdyYXBwaW5nIG1vZGVzLiBNYWtlCgkgIHRpbW92ZXJsYXkgZGVyaXZlIGZyb20gdGV4dG92ZXJsYXkuIEFsc28gYWRkIG5ldyBjbG9ja292ZXJsYXkKCSAgZWxlbWVudC4KCjIwMDUtMTEtMzAgMTE6MTA6MDEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L3VkcC9NYWtlZmlsZS5hbTogTW92ZWQgdG8gbmV0YnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC91ZHAvTWFrZWZpbGUuYW06IE1vdmVkIHRvIG5ldGJ1ZmZlci4KCjIwMDUtMTEtMzAgMTA6MTg6NDIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgUG9ydGVkIG11bHRpcGFydCBtdXgvZGVtdXggdG8gMC45LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBQT1JURURfTzk6CgkgICogZ3N0L211bHRpcGFydC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6CgkgIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NsYXNzX2luaXQpLCAoZ3N0X211bHRpcGFydF9kZW11eF9pbml0KSwKCSAgKGdzdF9tdWx0aXBhcnRfZmluZF9wYWRfYnlfbWltZSksIChnc3RfbXVsdGlwYXJ0X2RlbXV4X2NoYWluKSwKCSAgKGdzdF9tdWx0aXBhcnRfZGVtdXhfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9tdWx0aXBhcnRfZGVtdXhfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9jbGFzc19pbml0KSwKCSAgKGdzdF9tdWx0aXBhcnRfbXV4X2luaXQpLCAoZ3N0X211bHRpcGFydF9tdXhfZmluYWxpemUpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfc2lua2Nvbm5lY3QpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9tdWx0aXBhcnRfbXV4X2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfcXVldWVfcGFkcyksIChnc3RfbXVsdGlwYXJ0X211eF9jb2xsZWN0ZWQpLAoJICAoZ3N0X211bHRpcGFydF9tdXhfY2hhbmdlX3N0YXRlKTogUG9ydGVkIG11bHRpcGFydCBtdXgvZGVtdXggdG8KCSAgMC45LgoKMjAwNS0xMS0zMCAwODoyNjo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiB1cGRhdGUgZm9yIHN5bWJvbHMgY2hhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9nc3RuYXZpZ2F0aW9udGVzdC5jOiAoZ3N0X25hdmlnYXRpb250ZXN0X2dldF90eXBlKToKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuaDoKCSAgKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOiAoZ3N0X2FnaW5ndHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdGRpY2UuYzogKGdzdF9kaWNldHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdGVkZ2UuYzogKGdzdF9lZGdldHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6IChnc3RfcXVhcmt0dl9nZXRfdHlwZSk6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cmV2LmM6IChnc3RfcmV2dHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdHNoYWdhZGVsaWMuYzogKGdzdF9zaGFnYWRlbGljdHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzogKGdzdF92ZXJ0aWdvdHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdHdhcnAuYzogKGdzdF93YXJwdHZfZ2V0X3R5cGUpOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzogKGdzdF92aWRlb19mbGlwX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdmlkZW9fZmxpcF9nZXRfdHlwZSk6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5oOgoJICB1cGRhdGUgZm9yIHN5bWJvbHMgY2hhbmdlCgoyMDA1LTExLTI5IDE3OjQ2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC91ZHAvOiB0aGUgb2xkIGdzdG5ldCBsaWIgd2FzIHJlbmFtZWQgZ3N0bmV0YnVmZmVyICgjMzIyMjU3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICB0aGUgb2xkIGdzdG5ldCBsaWIgd2FzIHJlbmFtZWQgZ3N0bmV0YnVmZmVyICgjMzIyMjU3KQoKMjAwNS0xMS0yOSAxNTo0MjowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiBBY3R1YWxseSByZW5kZXIgdGhlIHRleHQgZnJvbSB0aGUgdGV4dCBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9yZW5kZXJfdGV4dCksCgkgIChnc3RfdGV4dF9vdmVybGF5X2NvbGxlY3RlZCk6CgkgIEFjdHVhbGx5IHJlbmRlciB0aGUgdGV4dCBmcm9tIHRoZSB0ZXh0IHBhZC4KCjIwMDUtMTEtMjkgMTQ6NDk6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZGVidWcvOiBVcGRhdGUgZm9yIEdzdEJhc2VUcmFuc2Zvcm0gZXZlbnQgdmlydHVhbCBtZXRob2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2RlYnVnL2dzdG5hdnNlZWsuYzogKGdzdF9uYXZzZWVrX2V2ZW50KToKCSAgKiBnc3QvZGVidWcvcHJvZ3Jlc3NyZXBvcnQuYzogKGdzdF9wcm9ncmVzc19yZXBvcnRfZXZlbnQpOgoJICBVcGRhdGUgZm9yIEdzdEJhc2VUcmFuc2Zvcm0gZXZlbnQgdmlydHVhbCBtZXRob2QKCjIwMDUtMTEtMjkgMTA6NTU6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZXh0L2NhaXJvL01ha2VmaWxlLmFtOiBubyBuZWVkIHRvIGxpbmsgdG8gdmlkZW9maWx0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJICBubyBuZWVkIHRvIGxpbmsgdG8gdmlkZW9maWx0ZXIKCjIwMDUtMTEtMjkgMTA6NDY6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkqIGdzdC9kZWJ1Zy9nc3RuYXZpZ2F0aW9udGVzdC5oOgoJKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSogZ3N0L2VmZmVjdHYvZ3N0YWdpbmcuYzoKCSogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOgoJKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHJldi5jOgoJKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6CgkqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzoKCSogZ3N0L2VmZmVjdHYvZ3N0d2FycC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZpbHRlci5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9maWx0ZXIuaDoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5oOgoJICByZW1vdmUgdGhlIHZpZGVvZmlsdGVyIGxpYnJhcnkgYW5kIGxpbmsgdG8gdGhlIG9uZSBpbiBiYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGhlIHZpZGVvZmlsdGVyIGxpYnJhcnkgYW5kIGxpbmsgdG8gdGhlIG9uZSBpbiBiYXNlCgoyMDA1LTExLTI5IDAxOjMwOjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9mbGlwLmg6CgkgIGJvcmdpZnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJvcmdpZnkKCjIwMDUtMTEtMjggMTc6MzE6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IFVzZWxlc3MgY2hlY2sgbm93IHdlJ3JlIHNldHRpbmcgdGhlIGN1cnJlbnQgZW50cnkgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSk6CgkgIFVzZWxlc3MgY2hlY2sgbm93IHdlJ3JlIHNldHRpbmcgdGhlIGN1cnJlbnQgZW50cnkgY29ycmVjdGx5LgoKMjAwNS0xMS0yOCAxNjo1NDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC9qcGVnL2dzdGpwZWdlbmMuYzogRG9uJ3QgbGVhayBpbnB1dCBidWZmZXIgaW4gY2hhaW4gZnVuY3Rpb24gKGZpeGVzICMzMjI2NjcpOyBtYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB0aHJlYWQtcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6IChnc3RfanBlZ2VuY19yZXN5bmMpLCAoZ3N0X2pwZWdlbmNfY2hhaW4pLAoJICAoZ3N0X2pwZWdlbmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9qcGVnZW5jX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfanBlZ2VuY19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBsZWFrIGlucHV0IGJ1ZmZlciBpbiBjaGFpbiBmdW5jdGlvbiAoZml4ZXMgIzMyMjY2Nyk7IG1ha2UKCSAgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIHRocmVhZC1zYWZlOyBkb24ndCByZXBlYXQgdGhlIGN1cnJlbnQgZnVuY3Rpb24KCSAgbmFtZSBpbiBHU1RfREVCVUcgc3RhdGVtZW50czsgdXNlIEdTVF9ST1VORF9VUF8qIG1hY3JvczsgdXNlCgkgIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCk7IG1pc2MuIG1pbm9yIGNsZWFudXBzLgoKMjAwNS0xMS0yOCAxNTo0MzoyOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9mYWFkL2dzdGZhYWQuYzogSGFuZGxlIGdyYWNlZnVsbHkgdGhlIGNvbnNlcXVlbmNlIG9mICJNYXhpbXVtIG51bWJlciBvZiBzY2FsZWZhY3RvciBiYW5kcyBleGNlZWRlZCIsIHdoaWNoIHJlc3VsdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZmFhZC9nc3RmYWFkLmM6IChnc3RfZmFhZF9zcmNnZXRjYXBzKToKCSAgSGFuZGxlIGdyYWNlZnVsbHkgdGhlIGNvbnNlcXVlbmNlIG9mICJNYXhpbXVtIG51bWJlciBvZiBzY2FsZWZhY3RvcgoJICBiYW5kcyBleGNlZWRlZCIsIHdoaWNoIHJlc3VsdHMgaW4gMCBjaGFubmVscyB3aXRoIHNhbXBsZXJhdGVzIG9mIDAuCgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKToKCSAgRG8gdXB3YXJkIHRyYW5zaXRpb25zLCB0aGVuIGNhbGwgcGFyZW50IHN0YXRlX2NoYW5nZSwgdGhlbiBkbwoJICBkb3dud2FyZCB0cmFuc2l0aW9ucy4KCjIwMDUtMTEtMjggMTU6MTM6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiBMb29rIGZvciBwaXhlbC1hc3BlY3QtcmF0aW8gaW4gY2Fwcywgbm90IHBpeGVsX3dpZHRoIGFuZCBwaXhlbF9oZWlnaHQgKEZpeGVzOiAjMzIyNjQ1KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKToKCSAgTG9vayBmb3IgcGl4ZWwtYXNwZWN0LXJhdGlvIGluIGNhcHMsIG5vdCBwaXhlbF93aWR0aCBhbmQKCSAgcGl4ZWxfaGVpZ2h0IChGaXhlczogIzMyMjY0NSkKCjIwMDUtMTEtMjggMTI6NTk6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiBGcm9tIE1pY2hhbCBCZW5lczogZnJhbWUgZHVyYXRpb24gc2hvdWxkIGJlIEdTVF9TRUNPTkQgLyBmcmFtZXJhdGUsIG5vdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKToKCSAgRnJvbSBNaWNoYWwgQmVuZXM6CgkgIGZyYW1lIGR1cmF0aW9uIHNob3VsZCBiZSBHU1RfU0VDT05EIC8gZnJhbWVyYXRlLCBub3QKCSAgR1NUX1NFQ09ORCAqIGZyYW1lcmF0ZS4gKEZpeGVzOiAjMzIyNjQzKQoKMjAwNS0xMS0yNyAxNzowMjo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGZpeCB1cCBHU1RfUExVR0lOX0xERkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBmaXggdXAgR1NUX1BMVUdJTl9MREZMQUdTCgkgICogZ3N0L3J0c3AvcnRzcGNvbm5lY3Rpb24uYzoKCSAgZml4IGluY2x1ZGVzIChzZWUgIzMxNzA0MykKCSAgKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkgIHN0b3AgaW5zdGFsbGluZyB0aGlzIGxpYnJhcnkKCjIwMDUtMTEtMjcgMTU6MzA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBubyBuZWVkIGZvciBhbiBBU19MSUJUT09MIGNhbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG5vIG5lZWQgZm9yIGFuIEFTX0xJQlRPT0wgY2FsbAoKMjAwNS0xMS0yNyAxNDozMzozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIGFkZCBBQ0xPQ0FMX0FNRkxBR1M7IHJlbW92ZSBvbGQgc3R1ZmYgZnJvbSBzcGVjIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIEFDTE9DQUxfQU1GTEFHUzsgcmVtb3ZlIG9sZCBzdHVmZiBmcm9tIHNwZWMgY2hhbmdlbG9nCgoyMDA1LTExLTI2IDEyOjU0OjQ3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L2R2L2dzdGR2ZGVjLmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgaW5jb21pbmcgVmlkZW8gZHYgc3RyZWFtIGRvZXNuJ3QgaGF2ZSBhIHBpeGVsIGFzcGVjdCByYXRpbyBzZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOiAoZ3N0X2R2ZGVjX3Npbmtfc2V0Y2Fwcyk6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgaW5jb21pbmcgVmlkZW8gZHYgc3RyZWFtIGRvZXNuJ3QgaGF2ZQoJICBhIHBpeGVsIGFzcGVjdCByYXRpbyBzZXQuCgoyMDA1LTExLTI1IDIyOjE0OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzoKCSAgZG9jdW1lbnQgZmxhY2RlYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgZmxhY2RlYwoKMjAwNS0xMS0yNSAyMTozNjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGV4dC9jYWlyby9nc3RjYWlyby5jOgoJKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuYzoKCSogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5Lmg6CgkqIGV4dC9jYWlyby9nc3R0aW1lb3ZlcmxheS5jOgoJKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuaDoKCSAgZG8gc29tZSBuYW1lIGJvcmdpZnlpbmcgZG9jdW1lbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvIHNvbWUgbmFtZSBib3JnaWZ5aW5nCgkgIGRvY3VtZW50CgoyMDA1LTExLTI1IDIxOjAyOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3VtZW50aW5nIGF1dG8qc2luayB1c2luZyBzdHJzdHIgZm9yIHRoZSB2aWRlbyBzaW5rIGxvb2t1cCwgY2xhc3MgZmllbGQgaXMgbm90IG9yZGVyZWQgdXBkYXRlIG90aGVyIHBsdWdpbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzoKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfYmFzZV9pbml0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkgIChnc3RfYXV0b192aWRlb19zaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYXV0b192aWRlb19zaW5rX2ZhY3RvcnlfZmlsdGVyKToKCSAgZG9jdW1lbnRpbmcgYXV0bypzaW5rCgkgIHVzaW5nIHN0cnN0ciBmb3IgdGhlIHZpZGVvIHNpbmsgbG9va3VwLCBjbGFzcyBmaWVsZCBpcyBub3Qgb3JkZXJlZAoJICB1cGRhdGUgb3RoZXIgcGx1Z2lucwoKMjAwNS0xMS0yNSAxOTo1ODoxOSArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogZXh0L3dhdnBhY2svTWFrZWZpbGUuYW06CgkqIGV4dC93YXZwYWNrL2dzdHdhdnBhY2tkZWMuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5oOgoJKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrcGFyc2UuYzoKCSogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIFdhdnBhY2sgcG9ydGVkIHRvIDAuOS4gTm8gc3VwcG9ydCBmb3IgY29ycmVjdGlvbiBmaWxlIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFdhdnBhY2sgcG9ydGVkIHRvIDAuOS4gTm8gc3VwcG9ydCBmb3IgY29ycmVjdGlvbiBmaWxlIHlldC4KCjIwMDUtMTEtMjUgMTg6MTU6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZXh0L3dhdnBhY2svOiBwdXQgYmFjayB3YXZwYWNrIC0gc3RpbGwgbmVlZHMgcG9ydGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrY29tbW9uLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja2RlYy5jOiAoZ3N0X3dhdnBhY2tfZGVjX2xpbmspLAoJICAoZ3N0X3dhdnBhY2tfZGVjX3d2Y2xpbmspLCAoZ3N0X3dhdnBhY2tfZGVjX2dldF90eXBlKSwKCSAgKGdzdF93YXZwYWNrX2RlY19iYXNlX2luaXQpLCAoZ3N0X3dhdnBhY2tfZGVjX2Rpc3Bvc2UpLAoJICAoZ3N0X3dhdnBhY2tfZGVjX2NsYXNzX2luaXQpLCAoZ3N0X3dhdnBhY2tfZGVjX3NyY19xdWVyeSksCgkgIChnc3Rfd2F2cGFja19kZWNfaW5pdCksIChnc3Rfd2F2cGFja19kZWNfc2V0dXBfY29udGV4dCksCgkgIChnc3Rfd2F2cGFja19kZWNfZm9ybWF0X3NhbXBsZXMpLCAoZ3N0X3dhdnBhY2tfZGVjX2xvb3ApLAoJICAoZ3N0X3dhdnBhY2tfZGVjX3BsdWdpbl9pbml0KToKCSAgKiBleHQvd2F2cGFjay9nc3R3YXZwYWNrZGVjLmg6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmM6IChnc3Rfd2F2cGFja19wYXJzZV9nZXRfdHlwZSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9iYXNlX2luaXQpLCAoZ3N0X3dhdnBhY2tfcGFyc2VfZGlzcG9zZSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9jbGFzc19pbml0KSwgKGdzdF93YXZwYWNrX3BhcnNlX3NyY19xdWVyeSksCgkgIChnc3Rfd2F2cGFja19wYXJzZV9zcmNfZXZlbnQpLCAoZmluZF9oZWFkZXIpLCAoZmluZF9zYW1wbGUpLAoJICAoZ3N0X3dhdnBhY2tfcGFyc2Vfc2VlayksIChnc3Rfd2F2cGFja19wYXJzZV9pbml0KSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2hhbmRsZV9ldmVudCksIChnc3Rfd2F2cGFja19wYXJzZV9sb29wKSwKCSAgKGdzdF93YXZwYWNrX3BhcnNlX2NoYW5nZV9zdGF0ZSksIChnc3Rfd2F2cGFja19wYXJzZV9wbHVnaW5faW5pdCk6CgkgICogZXh0L3dhdnBhY2svZ3N0d2F2cGFja3BhcnNlLmg6CgkgIHB1dCBiYWNrIHdhdnBhY2sgLSBzdGlsbCBuZWVkcyBwb3J0aW5nCgoyMDA1LTExLTI1IDE4OjAzOjI0ICswMDAwICBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDJAeWFob28uY2E+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBQYXRjaCBmcm9tIFNlYmFzdGllbiBDb3RlIHRvIGNsb3NlIGNvbnRyb2wgc29ja2V0cyBpbiB1ZHBzcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC91ZHAvZ3N0dWRwc3JjLmM6IChnc3RfdWRwc3JjX3N0b3ApOgoJICBQYXRjaCBmcm9tIFNlYmFzdGllbiBDb3RlIHRvIGNsb3NlIGNvbnRyb2wgc29ja2V0cyBpbiB1ZHBzcmMuCgoyMDA1LTExLTI0IDE1OjA3OjA2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6IEZsdXNoIHRoZSBwbGFuZXMgbGlzdCBvbiByZXZlcnNlIGNhcHMgbmVnb3RpYXRpb24uIFRoaXMgd2FzIGNyYXNoaW5nIGJlY2F1c2Ugb2YgZGlmZmVyZW50bHkgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6IChnc3RfcXVhcmt0dl9zZXRfY2FwcyksCgkgIChnc3RfcXVhcmt0dl9nZXRfdW5pdF9zaXplKSwgKGdzdF9xdWFya3R2X3RyYW5zZm9ybSksCgkgIChnc3RfcXVhcmt0dl9wbGFuZXRhYmxlX2NsZWFyKSwgKGdzdF9xdWFya3R2X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVhcmt0dl9iYXNlX2luaXQpLCAoZ3N0X3F1YXJrdHZfY2xhc3NfaW5pdCksCgkgIChnc3RfcXVhcmt0dl9pbml0KTogRmx1c2ggdGhlIHBsYW5lcyBsaXN0IG9uIHJldmVyc2UgY2FwcwoJICBuZWdvdGlhdGlvbi4gVGhpcyB3YXMgY3Jhc2hpbmcgYmVjYXVzZSBvZiBkaWZmZXJlbnRseSBzaXplZAoJICBidWZmZXJzLgoKMjAwNS0xMS0yNCAxMjo1MDoyOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvOiBIYW5kbGUgc3RyaWRlcyBjb3JyZWN0bHksIGZpeCBpZGVudGl0eSBmbGlwcGluZywgY29udmVydCBuYXZpZ2F0aW9uIGV2ZW50IGNvcnJlY3RseSBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzogKGRyYXdfYm94X3BsYW5hcjQxMSk6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOgoJICAoZ3N0X3ZpZGVvZmxpcF9tZXRob2RfZ2V0X3R5cGUpLAoJICAoZ3N0X3ZpZGVvZmxpcF9zZXRfY2FwcyksIChnc3RfdmlkZW9mbGlwX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF92aWRlb2ZsaXBfZ2V0X3VuaXRfc2l6ZSksIChnc3RfdmlkZW9mbGlwX2ZsaXApLAoJICAoZ3N0X3ZpZGVvZmxpcF90cmFuc2Zvcm0pLCAoZ3N0X3ZpZGVvZmxpcF9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF92aWRlb2ZsaXBfc2V0X3Byb3BlcnR5KSwgKGdzdF92aWRlb2ZsaXBfYmFzZV9pbml0KSwKCSAgKGdzdF92aWRlb2ZsaXBfY2xhc3NfaW5pdCksIChnc3RfdmlkZW9mbGlwX2luaXQpOiBIYW5kbGUgc3RyaWRlcwoJICBjb3JyZWN0bHksIGZpeCBpZGVudGl0eSBmbGlwcGluZywgY29udmVydCBuYXZpZ2F0aW9uIGV2ZW50CgkgIGNvcnJlY3RseSBhZ2Fpbi4KCjIwMDUtMTEtMjQgMTE6MTY6NTMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIFJFQURNRToKCSAgRml4ICMzMjAyODg6IHdyb25nIHJlYWRtZSBpbiBwbHVnaW5zLWdvb2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCAjMzIwMjg4OiB3cm9uZyByZWFkbWUgaW4gcGx1Z2lucy1nb29kCgoyMDA1LTExLTI0IDExOjA2OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICBmaXggdG9ydHVyZSB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0b3J0dXJlIHRhcmdldAoKMjAwNS0xMS0yMyAyMToyNTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSAgYWRkIGEgdG9ydHVyZSB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIHRvcnR1cmUgdGFyZ2V0CgoyMDA1LTExLTIzIDIwOjA1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjYgPT09CgoyMDA1LTExLTIzIDE5OjU3OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1xdGRlbXV4LnhtbDoKCSAgcmVsZWFzaW5nIDAuOS42CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjYKCjIwMDUtMTEtMjMgMTk6NTY6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi0xMzk0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbGF3LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFscGhhY29sb3IueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXVwYXJzZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgIHJlbGVhc2luZyAwLjkuNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS42CgoyMDA1LTExLTIzIDE5OjE0OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jdXR0ZXIueG1sOgoJICBhZGRpbmcgY3V0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgY3V0dGVyCgoyMDA1LTExLTIzIDE5OjA1OjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY3MucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMS0yMyAxNjo0OToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzogT29wcywgaW5pdGlhbGlzZSB0aGUgZnJhbWVyYXRlIEdWYWx1ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzogKGdzdF9uYXZpZ2F0aW9udGVzdF9pbml0KToKCSAgT29wcywgaW5pdGlhbGlzZSB0aGUgZnJhbWVyYXRlIEdWYWx1ZQoKMjAwNS0xMS0yMyAxNTo1MDo1MSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBWaWRlb0ZpbHRlciBpbmhlcml0cyBmcm9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZXh0L2NhaXJvL2dzdHRpbWVvdmVybGF5LmM6CgkgIChnc3RfdGltZW92ZXJsYXlfdXBkYXRlX2ZvbnRfaGVpZ2h0KSwKCSAgKGdzdF90aW1lb3ZlcmxheV9zZXRfY2FwcyksIChnc3RfdGltZW92ZXJsYXlfZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfdGltZW92ZXJsYXlfdHJhbnNmb3JtKSwgKGdzdF90aW1lb3ZlcmxheV9iYXNlX2luaXQpLAoJICAoZ3N0X3RpbWVvdmVybGF5X2NsYXNzX2luaXQpLCAoZ3N0X3RpbWVvdmVybGF5X2luaXQpLAoJICAoZ3N0X3RpbWVvdmVybGF5X2dldF90eXBlKToKCSAgKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuaDoKCSAgKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2RlYnVnL2dzdG5hdmlnYXRpb250ZXN0LmM6CgkgIChnc3RfbmF2aWdhdGlvbnRlc3RfaGFuZGxlX3NyY19ldmVudCksCgkgIChnc3RfbmF2aWdhdGlvbnRlc3RfZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfbmF2aWdhdGlvbnRlc3Rfc2V0X2NhcHMpLAoJICAoZ3N0X25hdmlnYXRpb250ZXN0X3RyYW5zZm9ybSksCgkgIChnc3RfbmF2aWdhdGlvbnRlc3RfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9uYXZpZ2F0aW9udGVzdF9iYXNlX2luaXQpLCAoZ3N0X25hdmlnYXRpb250ZXN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X25hdmlnYXRpb250ZXN0X2luaXQpLCAoZ3N0X25hdmlnYXRpb250ZXN0X2dldF90eXBlKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuaDoKCSAgKiBnc3QvZWZmZWN0di9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWZmZWN0di9nc3RhZ2luZy5jOiAoZ3N0X2FnaW5ndHZfc2V0X2NhcHMpLAoJICAoZ3N0X2FnaW5ndHZfZ2V0X3VuaXRfc2l6ZSksIChnc3RfYWdpbmd0dl90cmFuc2Zvcm0pLAoJICAoZ3N0X2FnaW5ndHZfYmFzZV9pbml0KSwgKGdzdF9hZ2luZ3R2X2NsYXNzX2luaXQpLAoJICAoZ3N0X2FnaW5ndHZfaW5pdCksIChnc3RfYWdpbmd0dl9nZXRfdHlwZSk6CgkgICogZ3N0L2VmZmVjdHYvZ3N0ZGljZS5jOiAoZ3N0X2RpY2V0dl9zZXRfY2FwcyksCgkgIChnc3RfZGljZXR2X2dldF91bml0X3NpemUpLCAoZ3N0X2RpY2V0dl90cmFuc2Zvcm0pLAoJICAoZ3N0X2RpY2V0dl9iYXNlX2luaXQpLCAoZ3N0X2RpY2V0dl9jbGFzc19pbml0KSwKCSAgKGdzdF9kaWNldHZfaW5pdCksCgkgIChnc3RfZGljZXR2X2dldF90eXBlKToKCSAgKiBnc3QvZWZmZWN0di9nc3RlZGdlLmM6IChnc3RfZWRnZXR2X3NldF9jYXBzKSwKCSAgKGdzdF9lZGdldHZfZ2V0X3VuaXRfc2l6ZSksIChnc3RfZWRnZXR2X3RyYW5zZm9ybSksCgkgIChnc3RfZWRnZXR2X2Jhc2VfaW5pdCksIChnc3RfZWRnZXR2X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VkZ2V0dl9pbml0KSwKCSAgKGdzdF9lZGdldHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdGVmZmVjdHYuYzoKCSAgKiBnc3QvZWZmZWN0di9nc3RlZmZlY3R2Lmg6CgkgICogZ3N0L2VmZmVjdHYvZ3N0cXVhcmsuYzogKGdzdF9xdWFya3R2X3NldF9jYXBzKSwKCSAgKGdzdF9xdWFya3R2X2dldF91bml0X3NpemUpLCAoZmFzdHJhbmQpLAoJICAoZ3N0X3F1YXJrdHZfdHJhbnNmb3JtKSwKCSAgKGdzdF9xdWFya3R2X2NoYW5nZV9zdGF0ZSksIChnc3RfcXVhcmt0dl9iYXNlX2luaXQpLAoJICAoZ3N0X3F1YXJrdHZfY2xhc3NfaW5pdCksIChnc3RfcXVhcmt0dl9pbml0KSwKCSAgKGdzdF9xdWFya3R2X2dldF90eXBlKToKCSAgKiBnc3QvZWZmZWN0di9nc3RyZXYuYzogKGdzdF9yZXZ0dl9zZXRfY2FwcyksCgkgIChnc3RfcmV2dHZfZ2V0X3VuaXRfc2l6ZSksIChnc3RfcmV2dHZfdHJhbnNmb3JtKSwKCSAgKGdzdF9yZXZ0dl9iYXNlX2luaXQpLCAoZ3N0X3JldnR2X2NsYXNzX2luaXQpLCAoZ3N0X3JldnR2X2luaXQpLAoJICAoZ3N0X3JldnR2X2dldF90eXBlKToKCSAgKiBnc3QvZWZmZWN0di9nc3RzaGFnYWRlbGljLmM6IChnc3Rfc2hhZ2FkZWxpY3R2X3NldF9jYXBzKSwKCSAgKGdzdF9zaGFnYWRlbGljdHZfZ2V0X3VuaXRfc2l6ZSksIChnc3Rfc2hhZ2FkZWxpY3R2X3RyYW5zZm9ybSksCgkgIChnc3Rfc2hhZ2FkZWxpY3R2X2Jhc2VfaW5pdCksIChnc3Rfc2hhZ2FkZWxpY3R2X2NsYXNzX2luaXQpLAoJICAoZ3N0X3NoYWdhZGVsaWN0dl9pbml0KSwgKGdzdF9zaGFnYWRlbGljdHZfZ2V0X3R5cGUpOgoJICAqIGdzdC9lZmZlY3R2L2dzdHZlcnRpZ28uYzogKGdzdF92ZXJ0aWdvdHZfc2V0X2NhcHMpLAoJICAoZ3N0X3ZlcnRpZ290dl9nZXRfdW5pdF9zaXplKSwgKGdzdF92ZXJ0aWdvdHZfdHJhbnNmb3JtKSwKCSAgKGdzdF92ZXJ0aWdvdHZfYmFzZV9pbml0KSwgKGdzdF92ZXJ0aWdvdHZfY2xhc3NfaW5pdCksCgkgIChnc3RfdmVydGlnb3R2X2luaXQpLCAoZ3N0X3ZlcnRpZ290dl9nZXRfdHlwZSk6CgkgICogZ3N0L2VmZmVjdHYvZ3N0d2FycC5jOiAoZ3N0X3dhcnB0dl9zZXRfY2FwcyksCgkgIChnc3Rfd2FycHR2X2dldF91bml0X3NpemUpLCAoZ3N0X3dhcnB0dl90cmFuc2Zvcm0pLAoJICAoZ3N0X3dhcnB0dl9iYXNlX2luaXQpLCAoZ3N0X3dhcnB0dl9jbGFzc19pbml0KSwKCSAgKGdzdF93YXJwdHZfaW5pdCksCgkgIChnc3Rfd2FycHR2X2dldF90eXBlKToKCSAgKiBnc3QvdmlkZW9maWx0ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvYmFsYW5jZS5jOgoJICAqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2JhbGFuY2UuaDoKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9maWx0ZXIuYzogKGdzdF92aWRlb2ZpbHRlcl9nZXRfdHlwZSksCgkgIChnc3RfdmlkZW9maWx0ZXJfY2xhc3NfaW5pdCksIChnc3RfdmlkZW9maWx0ZXJfaW5pdCk6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmlsdGVyLmg6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5jOiAoZ3N0X3ZpZGVvZmxpcF9zZXRfY2FwcyksCgkgIChnc3RfdmlkZW9mbGlwX3RyYW5zZm9ybV9jYXBzKSwgKGdzdF92aWRlb2ZsaXBfZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfdmlkZW9mbGlwX2ZsaXApLCAoZ3N0X3ZpZGVvZmxpcF90cmFuc2Zvcm0pLAoJICAoZ3N0X3ZpZGVvZmxpcF9oYW5kbGVfc3JjX2V2ZW50KSwgKGdzdF92aWRlb2ZsaXBfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF92aWRlb2ZsaXBfYmFzZV9pbml0KSwgKGdzdF92aWRlb2ZsaXBfY2xhc3NfaW5pdCksCgkgIChnc3RfdmlkZW9mbGlwX2luaXQpLCAocGx1Z2luX2luaXQpLCAoZ3N0X3ZpZGVvZmxpcF9nZXRfdHlwZSk6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmxpcC5oOiBWaWRlb0ZpbHRlciBpbmhlcml0cyBmcm9tCgkgIEJhc2VUcmFuc2Zvcm0sIGl0J3MganVzdCBhIHBsYWNlIGhvbGRlciBmb3Igbm93IGFuZCBldmVyeSB2aWRlbwoJICBlZmZlY3QgcGx1Z2luIGhhcyBiZWVuIHBvcnRlZCB0byB1c2UgQmFzZVRyYW5zZm9ybSBmZWF0dXJlcwoJICBkaXJlY3RseS4gUXVhcmtUViB3YXMgZml4ZWQgdG9vICh3YXMgYnJva2VuKSwgbmF2aWdhdGlvbnRlc3QKCSAgd29ya3MKCSAgYW5kIGJlc3QgZm9yIHRoZSBlbmQsIHZpZGVvZmxpcCBjb252ZXJ0cyBuYXZpZ2F0aW9uIGV2ZW50cwoJICBkZXBlbmRpbmcKCSAgb24gZmxpcCBtZXRob2QgISBGaXhlcyAjMzIwOTUzCgoyMDA1LTExLTIzIDE0OjIyOjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeGVzIGZvciBBUEkgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvYWFsaWIvZ3N0YWFzaW5rLmM6IChnc3RfYWFzaW5rX2ZpeGF0ZSk6CgkgICogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2NvbGxlY3RlZCk6CgkgICogZ3N0L2dvb20vZ3N0Z29vbS5jOiAoZ3N0X2dvb21faW5pdCksIChnc3RfZ29vbV9zcmNfc2V0Y2FwcyksCgkgIChnc3RfZ29vbV9zcmNfbmVnb3RpYXRlKSwgKGdzdF9nb29tX2NoYWluKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfbXV4X3ZpZGVvX3BhZF9zZXRjYXBzKToKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIEZpeGVzIGZvciBBUEkgY2hhbmdlcwoKMjAwNS0xMS0yMyAxMjoxOTowNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICBhZGQgY3V0dGVyIHRvIHNwZWMgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBjdXR0ZXIgdG8gc3BlYyBpbgoKMjAwNS0xMS0yMyAxMTo1Nzo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IENvbnZlcnQgdG8gZnJhY3Rpb25hbCBmcmFtZXJhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2xvb3BfaGVhZGVyKSwKCSAgKGdzdF9xdGRlbXV4X2FkZF9zdHJlYW0pLCAocXRkZW11eF9kdW1wX212aGQpLAoJICAocXRkZW11eF9wYXJzZV90cmFrKToKCSAgQ29udmVydCB0byBmcmFjdGlvbmFsIGZyYW1lcmF0ZXMKCjIwMDUtMTEtMjIgMjM6NTg6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGV4dC9qcGVnLzogSlBFRyBmcmFjdGlvbnkgZ29vZG5lc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogKGdzdF9qcGVnX2RlY19zZXRjYXBzKSwKCSAgKGdzdF9qcGVnX2RlY19jaGFpbiksIChnc3RfanBlZ19kZWNfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmg6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5jOiAoZ3N0X2pwZWdlbmNfc2V0Y2Fwcyk6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2VuYy5oOgoJICAqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6IChnc3Rfc21va2VlbmNfc2V0Y2FwcyksCgkgIChnc3Rfc21va2VlbmNfcmVzeW5jKToKCSAgKiBleHQvanBlZy9nc3RzbW9rZWVuYy5oOgoJICBKUEVHIGZyYWN0aW9ueSBnb29kbmVzcy4KCjIwMDUtMTEtMjIgMjI6MzU6NTcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dvb20vZmlsdGVycy5jOgoJKiBnc3QvZ29vbS9ncmFwaGljLmg6CgkgIEZpeCBmb3IgIzMyMTQzMDogdW5yZXNvbHZlZCBzeW1ib2xzIGR1ZSB0byBpbmNvcnJlY3QgbGlua2FnZSBvbiBpbmxpbmUgZnVuY3Rpb25zIGluIGdvb20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggZm9yICMzMjE0MzA6IHVucmVzb2x2ZWQgc3ltYm9scyBkdWUgdG8gaW5jb3JyZWN0IGxpbmthZ2Ugb24gaW5saW5lIGZ1bmN0aW9ucwoJICBpbiBnb29tLgoJICBEb2VzIG5vdCwgaG93ZXZlciwgZml4IHRoZSBnZW5lcmFsIGNyYWNraGVhZGVkbmVzcyBvZiBnb29tIChnbG9iYWwgdmFyaWFibGVzLAoJICBvaCBteSEpOyB0aGlzIHNob3VsZCBiZSBtb3ZlZCB0byAtYmFkLgoKMjAwNS0xMS0yMiAyMjoyMTozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNb3JlIGZyYWN0aW9uYWwgZnJhbWVyYXRlIGNvbnZlcnNpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9pbml0KSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfc2V0Y2FwcyksIChnc3RfdGV4dF9vdmVybGF5X2NvbGxlY3RlZCk6CgkgICogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5Lmg6CgkgICogZXh0L2dka19waXhidWYvZ3N0Z2RrcGl4YnVmLmM6IChnc3RfZ2RrX3BpeGJ1Zl9zaW5rX2xpbmspOgoJICAqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5oOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IChnc3RfcG5nZGVjX2luaXQpLAoJICAoZ3N0X3BuZ2RlY19jYXBzX2NyZWF0ZV9hbmRfc2V0KToKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5oOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6IChnc3RfcG5nZW5jX3NldGNhcHMpOgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6IChnc3RfYWxwaGFfY29sb3Jfc2V0X2NhcHMpOgoJICAqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6IChnc3RfYXZpbXV4X2luaXQpLAoJICAoZ3N0X2F2aW11eF92aWRzaW5rY29ubmVjdCk6CgkgICogZ3N0L2ZseC9nc3RmbHhkZWMuYzogKGdzdF9mbHhkZWNfY2hhaW4pOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzogKGdzdF9nb29tX2luaXQpLCAoZ3N0X2dvb21fc3JjX3NldGNhcHMpLAoJICAoZ3N0X2dvb21fc3JjX25lZ290aWF0ZSksIChnc3RfZ29vbV9jaGFpbik6CgkgICogZ3N0L2dvb20vZ3N0Z29vbS5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X3ZpZGVvX2NhcHMpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9tdXhfdmlkZW9fcGFkX3NldGNhcHMpOgoJICAqIHN5cy9vc3h2aWRlby9vc3h2aWRlb3NpbmsuaDoKCSAgKiBzeXMvb3N4dmlkZW8vb3N4dmlkZW9zaW5rLm06CgkgIE1vcmUgZnJhY3Rpb25hbCBmcmFtZXJhdGUgY29udmVyc2lvbnMKCjIwMDUtMTEtMjIgMjA6MDc6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQ29udmVydCB0byBmcmFjdGlvbmFsIGZyYW1lcmF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzogKGdzdF9hYXNpbmtfZml4YXRlKToKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSAgKGdzdF9uYXZpZ2F0aW9udGVzdF9oYW5kbGVfc3JjX2V2ZW50KToKCSAgKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9maWx0ZXIuYzoKCSAgKGdzdF92aWRlb2ZpbHRlcl9mb3JtYXRfZ2V0X3N0cnVjdHVyZSksIChnc3RfdmlkZW9maWx0ZXJfc2V0Y2FwcyksCgkgIChnc3RfdmlkZW9maWx0ZXJfaW5pdCk6CgkgICogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvZmlsdGVyLmg6CgkgIENvbnZlcnQgdG8gZnJhY3Rpb25hbCBmcmFtZXJhdGVzLgoKMjAwNS0xMS0yMiAxODoxMTo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2R2L2dzdGR2ZGVjLmM6CgkqIGV4dC9lc2QvZXNkbW9uLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSogZXh0L2dka19waXhidWYvcGl4YnVmc2NhbGUuYzoKCSogZXh0L2xpYmNhY2EvZ3N0Y2FjYXNpbmsuYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhLmM6CgkqIGdzdC9vbGRjb3JlL2dzdGFnZ3JlZ2F0b3IuYzoKCSogZ3N0L29sZGNvcmUvZ3N0c2hhcGVyLmM6CgkqIGdzdC9zbXB0ZS9iYXJib3h3aXBlcy5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICBmaXggdXAgbW9yZSBlbnVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIG1vcmUgZW51bXMKCjIwMDUtMTEtMjIgMTc6Mzk6MTEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYzogRnJhY3Rpb25hbCBmcmFtZXJhdGVzLCB2aWRlb21peGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IChnc3RfdmlkZW9taXhlcl9wYWRfc2lua19zZXRjYXBzKSwKCSAgKGdzdF92aWRlb21peGVyX2dldGNhcHMpLCAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9xdWV1ZXMpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfdXBkYXRlX3F1ZXVlcyk6CgkgIEZyYWN0aW9uYWwgZnJhbWVyYXRlcywgdmlkZW9taXhlci4KCjIwMDUtMTEtMjIgMTc6MDk6MzYgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGV4dC9kdi86IEZyYWN0aW9uYWwgZnJhbWVyYXRlcyBmb3IgRFYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlYy5jOiAoZ3N0X2R2ZGVjX2luaXQpLCAoZ3N0X2R2ZGVjX3Npbmtfc2V0Y2Fwcyk6CgkgICogZXh0L2R2L2dzdGR2ZGVjLmg6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2luaXQpLAoJICAoZ3N0X2R2ZGVtdXhfc3JjX2NvbnZlcnQpLCAoZ3N0X2R2ZGVtdXhfc2lua19jb252ZXJ0KSwKCSAgKGdzdF9kdmRlbXV4X2RlbXV4X3ZpZGVvKSwgKGdzdF9kdmRlbXV4X2RlbXV4X2ZyYW1lKSwKCSAgKGdzdF9kdmRlbXV4X2ZsdXNoKToKCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5oOgoJICBGcmFjdGlvbmFsIGZyYW1lcmF0ZXMgZm9yIERWLgoKMjAwNS0xMS0yMiAxNDo0NDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdXRvZGV0ZWN0LzogVXNlIGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUoKSB0byBmcmVlIGZlYXR1cmUgbGlzdCBhbmQgaW4gdGhlIGNhc2Ugb2YgYXV0b3ZpZGVvc2luayBmcmVlIHRoZSBsaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkgIChnc3RfYXV0b19hdWRpb19zaW5rX2ZpbmRfYmVzdCksIChnc3RfYXV0b19hdWRpb19zaW5rX2RldGVjdCk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOgoJICAoZ3N0X2F1dG9fdmlkZW9fc2lua19maW5kX2Jlc3QpLCAoZ3N0X2F1dG9fdmlkZW9fc2lua19kZXRlY3QpOgoJICBVc2UgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSgpIHRvIGZyZWUgZmVhdHVyZSBsaXN0IGFuZAoJICBpbiB0aGUgY2FzZSBvZiBhdXRvdmlkZW9zaW5rIGZyZWUgdGhlIGxpc3QgYXQgYWxsLiBBbHNvCgkgIG1pc2NlbGxhbmVvdXMgY29zbWV0aWMgZml4ZXMuCgoyMDA1LTExLTIyIDEzOjEzOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6IGNvcHkgY2FsY3VsYXRpb24gY29kZSBmcm9tIGxldmVsOyByZW1vdmUgdXNlIG9mIHNvbWUgYXVkaW8gZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9jdXR0ZXIvZ3N0Y3V0dGVyLmM6IChnc3RfY3V0dGVyX2NoYWluKSwKCSAgKGdzdF9jdXR0ZXJfc2V0X3Byb3BlcnR5KSwgKGdzdF9jdXR0ZXJfZ2V0X2NhcHMpOgoJICBjb3B5IGNhbGN1bGF0aW9uIGNvZGUgZnJvbSBsZXZlbDsgcmVtb3ZlIHVzZSBvZiBzb21lIGF1ZGlvCgkgIGZ1bmN0aW9ucwoKMjAwNS0xMS0yMiAxMzoxMToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgdmFyaW91cyBjb3NtZXRpYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBjb3NtZXRpYyBmaXhlcwoKMjAwNS0xMS0yMiAxMjo0ODoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgdmFyaW91cyBjb3NtZXRpYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBjb3NtZXRpYyBmaXhlcwoKMjAwNS0xMS0yMiAxMjo0MTozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgdmFyaW91cyBjb3NtZXRpYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBjb3NtZXRpYyBmaXhlcwoKMjAwNS0xMS0yMiAxMjozODozMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkqIGdzdC9hdmkvZ3N0YXZpbXV4LmM6CgkgIFVwZGF0ZSBmb3IgZ3N0X3RhZ19zZXR0ZXIgQVBJIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIFVwZGF0ZSBmb3IgZ3N0X3RhZ19zZXR0ZXIgQVBJIGNoYW5nZXMuCgoyMDA1LTExLTIyIDExOjU3OjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6CgkgIGV4dC9mYWFkL2dzdGZhYWQuYyAoZ3N0X2ZhYWRfZXZlbnQpIGV4dC9pdm9yYmlzL3ZvcmJpc2ZpbGUuYyAoZ3N0X2l2b3JiaXNmaWxlX2xvb3ApIGdzdC9xdGRlbXV4L3F0ZGVtdXguYyAoZ3N0X3F0ZGVtdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvZmFhZC9nc3RmYWFkLmMgKGdzdF9mYWFkX2V2ZW50KQoJICAqIGV4dC9pdm9yYmlzL3ZvcmJpc2ZpbGUuYyAoZ3N0X2l2b3JiaXNmaWxlX2xvb3ApCgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jIChnc3RfcXRkZW11eF9sb29wX2hlYWRlcikKCSAgKiBnc3Qvc3BlZWQvZ3N0c3BlZWQuYyAoc3BlZWRfc2lua19ldmVudCkKCSAgKiBnc3QvdHRhL2dzdHR0YXBhcnNlLmMgKGdzdF90dGFfcGFyc2Vfc3JjX2V2ZW50KQoJICAoZ3N0X3R0YV9wYXJzZV9wYXJzZV9oZWFkZXIpOiBSdW4gdXBkYXRlLWZ1bmNuYW1lcy4KCjIwMDUtMTEtMjIgMTE6NTM6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOgoJKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuYzoKCSogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOgoJKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzoKCSogZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6CgkgIGV4dC9kdi9nc3RkdmRlbXV4LmMgKGdzdF9kdmRlbXV4X2hhbmRsZV9zaW5rX2V2ZW50KSAoZ3N0X2R2ZGVtdXhfZGVtdXhfZnJhbWUpIGV4dC9mbGFjL2dzdGZsYWNkZWMuYyAoZ3N0X2ZsYWNkZWNfd3JpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5jIChnc3RfZHZkZW11eF9oYW5kbGVfc2lua19ldmVudCkKCSAgKGdzdF9kdmRlbXV4X2RlbXV4X2ZyYW1lKQoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYyAoZ3N0X2ZsYWNkZWNfd3JpdGUpCgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jIChnc3RfZmxhY2VuY19zZWVrX2NhbGxiYWNrKQoJICAoZ3N0X2ZsYWNlbmNfc2lua19ldmVudCkKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYyAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfaW5pdCkKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZ2aWRlb3NpbmsuYyAoZ3N0X2djb25mX3ZpZGVvX3NpbmtfaW5pdCkKCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jIChnc3RfcG5nZGVjX2NhcHNfY3JlYXRlX2FuZF9zZXQpCgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmMgKHNwZWV4X2RlY19ldmVudCwgc3BlZXhfZGVjX2NoYWluKQoJICAqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYyAoZ3N0X2F1cGFyc2VfY2hhaW4pCgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jIChnc3RfYXV0b19hdWRpb19zaW5rX2luaXQpCgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jIChnc3RfYXV0b192aWRlb19zaW5rX2luaXQpCgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9oZWFkZXIpCgkgIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zZWVrKQoJICAqIGdzdC9nb29tL2dzdGdvb20uYyAoZ3N0X2dvb21fZXZlbnQpCgkgICogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYyAoZ3N0X2VibWxfd3JpdGVfc2VlaykKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2hhbmRsZV9zZWVrX2V2ZW50KQoJICAoZ3N0X21hdHJvc2thX2RlbXV4X2xvb3Bfc3RyZWFtX3BhcnNlX2lkKQoJICAqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmMgKGdzdF93YXZlbmNfc3RvcF9maWxlKQoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jIChnc3Rfd2F2cGFyc2VfaGFuZGxlX3NlZWspCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpOiBSdW4gdXBkYXRlLWZ1bmNuYW1lcy4KCjIwMDUtMTEtMjIgMTE6NDk6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBVUklIYW5kbGVyIGludGVyZmFjZSBhbmQgZWxlbWVudCBwcm9wZXJ0aWVzIGFyZSBub3cgcHJvcGVybHkgc3luY2hyb25pemVkIGZvciBEVjEzOTRzcmMgYW5kIFVEUFNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogKGdzdF9kdjEzOTRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZHYxMzk0c3JjX2luaXQpLCAoZ3N0X2R2MTM5NHNyY19kaXNwb3NlKSwKCSAgKGdzdF9kdjEzOTRzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9kdjEzOTRzcmNfZGlzY292ZXJfYXZjX25vZGUpLAoJICAoZ3N0X2R2MTM5NHNyY191cmlfc2V0X3VyaSk6CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfdWRwc3JjX3VwZGF0ZV91cmkpLCAoZ3N0X3VkcHNyY19zZXRfdXJpKSwKCSAgKGdzdF91ZHBzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF91ZHBzcmNfdXJpX2dldF91cmkpOgoJICBVUklIYW5kbGVyIGludGVyZmFjZSBhbmQgZWxlbWVudCBwcm9wZXJ0aWVzIGFyZSBub3cgcHJvcGVybHkKCSAgc3luY2hyb25pemVkIGZvciBEVjEzOTRzcmMgYW5kIFVEUFNyYwoKMjAwNS0xMS0yMiAxMTozNjowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGV4dC86IGxpYmdzdHRhZ2VkaXQgaGFzIGJlZW4gcmVuYW1lZCB0byBsaWJnc3R0YWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL01ha2VmaWxlLmFtOgoJICAqIGV4dC9zcGVleC9NYWtlZmlsZS5hbToKCSAgbGliZ3N0dGFnZWRpdCBoYXMgYmVlbiByZW5hbWVkIHRvIGxpYmdzdHRhZy4KCjIwMDUtMTEtMjEgMjA6MTE6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiBBcHBseSBwYXRjaCBmcm9tIFNlYmFzdGllbiBDb3RlIHRvIGZpeCAjMzE5MTg0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9ydHNwY29ubmVjdGlvbi5jOiAocmVhZF9ib2R5KToKCSAgQXBwbHkgcGF0Y2ggZnJvbSBTZWJhc3RpZW4gQ290ZSB0byBmaXggIzMxOTE4NC4KCjIwMDUtMTEtMjEgMTk6NTA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG9ydCBjdXR0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9jdXR0ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzogKGdzdF9jdXR0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY3V0dGVyX2luaXQpLCAoZ3N0X2N1dHRlcl9tZXNzYWdlX25ldyksIChnc3RfY3V0dGVyX2NoYWluKSwKCSAgKGdzdF9jdXR0ZXJfc2V0X3Byb3BlcnR5KSwgKGdzdF9jdXR0ZXJfZ2V0X3Byb3BlcnR5KSwKCSAgKHBsdWdpbl9pbml0KSwgKGdzdF9jdXR0ZXJfZ2V0X2NhcHMpOgoJICBwb3J0IGN1dHRlcgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJICBmaXggdXAgcGx1Z2luIGRldGFpbHMKCjIwMDUtMTEtMjEgMTg6MDk6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBVcGRhdGUgZm9yIHN0cmVhbSBsb2NrIEFQSSBjaGFuZ2VzOiBkb24ndCB0YWtlIHN0cmVhbSBsb2cgaW4gc2luayBldmVudCBoYW5kbGVycyBhbnkgbG9uZ2VyIGFuZCBjaGFuZ2UgR1NUX1NUUkVBTV9MT0MuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY2RlY19sb29wKSwKCSAgKGdzdF9mbGFjZGVjX3NyY19ldmVudCk6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2VuYy5jOiAoZ3N0X2ZsYWNlbmNfc2lua19ldmVudCk6CgkgICogZXh0L2xhZHNwYS9nc3RzaWduYWxwcm9jZXNzb3IuYzogKGdzdF9zaWduYWxfcHJvY2Vzc29yX2V2ZW50KSwKCSAgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2dldHJhbmdlKSwgKGdzdF9zaWduYWxfcHJvY2Vzc29yX2NoYWluKToKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zZWVrKToKCSAgKiBnc3QvZmx4L2dzdGZseGRlYy5jOiAoZ3N0X2ZseGRlY19zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfZmx4ZGVjX3NpbmtfZXZlbnRfaGFuZGxlcik6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZlbnQpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2hhbmRsZV9zZWVrKToKCSAgVXBkYXRlIGZvciBzdHJlYW0gbG9jayBBUEkgY2hhbmdlczogZG9uJ3QgdGFrZSBzdHJlYW0gbG9nCgkgIGluIHNpbmsgZXZlbnQgaGFuZGxlcnMgYW55IGxvbmdlciBhbmQgY2hhbmdlIEdTVF9TVFJFQU1fTE9DSwoJICB0byBHU1RfUEFEX1NUUkVBTV9MT0NLLiBEb24ndCBsZWFrIHJlZmVyZW5jZXMgaW4gZmx4ZGVjIGV2ZW50CgkgIGZ1bmN0aW9ucy4KCjIwMDUtMTEtMjEgMTc6NTI6MTUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9hdXBhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkgIEZvcmdvdCB0byBjb21taXQgaGVhZGVyIGZpbGUgY2hhbmdlcywgTWFrZWZpbGUuYW0gY2hhbmdlcy4gT29wcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZvcmdvdCB0byBjb21taXQgaGVhZGVyIGZpbGUgY2hhbmdlcywgTWFrZWZpbGUuYW0gY2hhbmdlcy4gT29wcy4KCjIwMDUtMTEtMjEgMTc6NDk6MjEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJICBnc3Rfb2JqZWN0X3VucmVmLCBub3QgZ19vYmplY3RfdW5yZWYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdzdF9vYmplY3RfdW5yZWYsIG5vdCBnX29iamVjdF91bnJlZgoKMjAwNS0xMS0yMSAxNzozNzo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBmb3Igc3RyZWFtIGxvY2sgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZhYWMvZ3N0ZmFhYy5jOiAoZ3N0X2ZhYWNfc2lua19ldmVudCk6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfaGFuZGxlX3NyY19ldmVudCk6CgkgICogZ3N0L3R0YS9nc3R0dGFwYXJzZS5jOiAoZ3N0X3R0YV9wYXJzZV9zcmNfZXZlbnQpOgoJICBGaXggZm9yIHN0cmVhbSBsb2NrIHVwZGF0ZXMuCgoyMDA1LTExLTIxIDE3OjIzOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IFVzZSBHU1RfREVCVUdfRlVOQ1BUUjsgYWRkIGRlYnVnIG1lc3NhZ2UgaW4gcGFkIGFjdGl2YXRlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9pbml0KSwKCSAgKGdzdF93YXZwYXJzZV9jcmVhdGVfc291cmNlcGFkKSwgKGdzdF93YXZwYXJzZV9zaW5rX2FjdGl2YXRlKToKCSAgVXNlIEdTVF9ERUJVR19GVU5DUFRSOyBhZGQgZGVidWcgbWVzc2FnZSBpbiBwYWQgYWN0aXZhdGUgZnVuY3Rpb24uCgoyMDA1LTExLTIxIDE3OjE4OjAxICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvYXVwYXJzZS86IFBhcnRpYWxseSBmaXggIzE2MTcxMi4gcGxheWJpbiBzdGlsbCBkb2Vzbid0IHdvcmsgb24gdGhlc2UgZmlsZXMsIChvbiB0aGUgYnVnIHJlcG9ydCwgQW5keSBzYXlzIHdlIGFyZW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1cGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOiAoZ3N0X2F1cGFyc2VfY2xhc3NfaW5pdCksCgkgIChnc3RfYXVwYXJzZV9pbml0KSwgKGdzdF9hdXBhcnNlX2Rpc3Bvc2UpLCAoZ3N0X2F1cGFyc2VfY2hhaW4pLAoJICAoZ3N0X2F1cGFyc2VfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkgIFBhcnRpYWxseSBmaXggIzE2MTcxMi4gcGxheWJpbiBzdGlsbCBkb2Vzbid0IHdvcmsgb24gdGhlc2UgZmlsZXMsCgkgIChvbiB0aGUgYnVnIHJlcG9ydCwgQW5keSBzYXlzIHdlIGFyZW4ndCB0eXBlZmluZGluZyBpdCBmb3Igc29tZQoJICByZWFzb24/KSBidXQgYXQgbGVhc3QgYXVwYXJzZSBpc24ndCB0b3RhbGx5IGJ1c3RlZCBsaWtlIGl0IHdhcyBiZWZvcmUuCgoyMDA1LTExLTIxIDE2OjQ1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiBqQGJvb3RsYWIub3JnLCAjMzIxOTAzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF92aWRlb19jYXBzKToKCSAgQWRkIERYNTAsIERJVlggYW5kIERJVjMgZm91cmNjcyAocGF0Y2ggYnkKCSAgakBib290bGFiLm9yZywgIzMyMTkwMykuCgoyMDA1LTExLTIxIDE2OjM2OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICAqLio6IFJhbiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3MuIE9oIHllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogKi5oOgoJICAqICouYzogUmFuIHNjcmlwdHMvdXBkYXRlLW1hY3Jvcy4gT2ggeWVzLgoKMjAwNS0xMS0yMSAxNTowNjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBGaWxsZXIgZXZlbnRzIGFyZSBnb25lIGZvciBub3csIGNvbW1lbnQgb3V0IHNlY3Rpb24gZ2VuZXJhdGluZyB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9zeW5jX3N0cmVhbXMpOgoJICBGaWxsZXIgZXZlbnRzIGFyZSBnb25lIGZvciBub3csIGNvbW1lbnQgb3V0IHNlY3Rpb24gZ2VuZXJhdGluZwoJICB0aGVtLgoKMjAwNS0xMS0yMSAxNDozOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVwZGF0ZSBmb3IgR1NUX0ZPVVJDQ19GT1JNQVQgQVBJIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2RpcmVjdGZiL2RmYnZpZGVvc2luay5jOgoJICAoZ3N0X2RmYnZpZGVvc2lua19nZXRfZm9ybWF0X2Zyb21fY2Fwcyk6CgkgICogZXh0L3NkbC9zZGx2aWRlb3NpbmsuYzogKGdzdF9zZGx2aWRlb3NpbmtfY3JlYXRlKToKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IChnc3RfcXRkZW11eF9sb29wX2hlYWRlciksCgkgIChxdGRlbXV4X3BhcnNlKSwgKHF0ZGVtdXhfdHlwZV9nZXQpLCAocXRkZW11eF9ub2RlX2R1bXBfZm9yZWFjaCksCgkgIChxdGRlbXV4X2R1bXBfaGRsciksIChxdGRlbXV4X2R1bXBfZHJlZiksIChxdGRlbXV4X2R1bXBfc3RzZCksCgkgIChxdGRlbXV4X2R1bXBfZGNvbSksIChxdGRlbXV4X3BhcnNlX3RyYWspLCAocXRkZW11eF92aWRlb19jYXBzKSwKCSAgKHF0ZGVtdXhfYXVkaW9fY2Fwcyk6CgkgICogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOiAoZ3N0X3Y0bDJzcmNfdjRsMmZvdXJjY190b19jYXBzKToKCSAgKiBzeXMvdjRsMi92NGwyc3JjX2NhbGxzLmM6IChnc3RfdjRsMnNyY19maWxsX2Zvcm1hdF9saXN0KSwKCSAgKGdzdF92NGwyc3JjX2NhcHR1cmVfaW5pdCksIChnc3RfdjRsMnNyY19nZXRfc2l6ZV9saW1pdHMpOgoJICBVcGRhdGUgZm9yIEdTVF9GT1VSQ0NfRk9STUFUIEFQSSBjaGFuZ2UuCgoyMDA1LTExLTIxIDE0OjMzOjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKiAoIzMyMjAyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2F1ZGlvcmVzYW1wbGUvZ3N0YXVkaW9yZXNhbXBsZS5jOgoJICAqIGV4dC9wb2x5cC9wb2x5cHNpbmsuYzogKGdzdF9wb2x5cHNpbmtfc2lua19maXhhdGUpOgoJICAqIGdzdC9saWJyZmIvZ3N0cmZic3JjLmM6IChnc3RfcmZic3JjX2ZpeGF0ZSk6CgkgICogZ3N0L21vZHBsdWcvZ3N0bW9kcGx1Zy5jYzoKCSAgKiBzeXMvZ2xzaW5rL2dsaW1hZ2VzaW5rLmM6IChnc3RfZ2xpbWFnZXNpbmtfZml4YXRlKToKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IChnc3RfdjRsMnNyY19maXhhdGUpOgoJICBSZW5hbWUgZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV8qIHRvIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyoKCSAgKCMzMjIwMjcpCgoyMDA1LTExLTIxIDE0OjMxOjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFJlbmFtZSBnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlXyogdG8gZ3N0X3N0cnVjdHVyZV9maXhhdGVfKiAoIzMyMjAyNykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2FhbGliL2dzdGFhc2luay5jOiAoZ3N0X2Fhc2lua19maXhhdGUpOgoJICAqIGV4dC9taWttb2QvZ3N0bWlrbW9kLmM6IChnc3RfbWlrbW9kX3NyY2ZpeGF0ZSk6CgkgICogZ3N0L2dvb20vZ3N0Z29vbS5jOiAoZ3N0X2dvb21fc3JjX25lZ290aWF0ZSk6CgkgICogc3lzL29zeHZpZGVvL29zeHZpZGVvc2luay5tOgoJICBSZW5hbWUgZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV8qIHRvIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyoKCSAgKCMzMjIwMjcpCgoyMDA1LTExLTIxIDEzOjM4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRml4ZXMgZm9yIEdTVF9GT1VSQ0NfRk9STUFUIEFQSSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzogKGdzdF9hYXNpbmtfc2V0Y2Fwcyk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9wYXJzZV9maWxlX2hlYWRlciksCgkgIChnc3RfYXZpX2RlbXV4X3JlYWRfc3ViaW5kZXhlcyksIChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3BhcnNlX29kbWwpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faW5kZXgpLAoJICAoZ3N0X2F2aV9kZW11eF9zeW5jKSwgKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksCgkgIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF92aWRlb19jYXBzKToKCSAgKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiAod3JpdGVfbWV0YWRhdGEpOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3BhcnNlX2FkdGwpLAoJICAoZ3N0X3dhdnBhcnNlX3BhcnNlX2ZpbGVfaGVhZGVyKSwgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyk6CgkgIEZpeGVzIGZvciBHU1RfRk9VUkNDX0ZPUk1BVCBBUEkgY2hhbmdlLgoKMjAwNS0xMS0yMSAxMjoxMzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCBmb3IgY29sbGVjdCBwYWRzIEFQSSBjaGFuZ2UuIEFsc28gZml4IHRleHRvdmVybGF5IHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NhaXJvL2dzdHRleHRvdmVybGF5LmM6IChnc3RfdGV4dF9vdmVybGF5X2ZpbmFsaXplKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfaW5pdCksIChnc3RfdGV4dF9vdmVybGF5X3RleHRfcGFkX2xpbmtlZCksCgkgIChnc3RfdGV4dF9vdmVybGF5X3RleHRfcGFkX3VubGlua2VkKSwgKGdzdF90ZXh0X292ZXJsYXlfcG9wX3ZpZGVvKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfcG9wX3RleHQpLCAoZ3N0X3RleHRfb3ZlcmxheV9jb2xsZWN0ZWQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfaW5pdCksCgkgIChnc3RfbWF0cm9za2FfbXV4X3Jlc2V0KSwgKGdzdF9tYXRyb3NrYV9tdXhfcmVxdWVzdF9uZXdfcGFkKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfYmVzdF9wYWQpLCAoZ3N0X21hdHJvc2thX211eF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9zbXB0ZS9nc3RzbXB0ZS5jOiAoZ3N0X3NtcHRlX2luaXQpLCAoZ3N0X3NtcHRlX2NvbGxlY3RlZCk6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfaW5pdCksCgkgIChnc3RfdmlkZW9taXhlcl9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9xdWV1ZXMpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfY2hhbmdlX3N0YXRlKToKCSAgRml4IGZvciBjb2xsZWN0IHBhZHMgQVBJIGNoYW5nZS4gQWxzbyBmaXggdGV4dG92ZXJsYXkgc3RhdGUKCSAgY2hhbmdlIGZ1bmN0aW9uLgoKMjAwNS0xMS0yMCAxNzowNDo1NSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IFJlcGxhY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjAgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3N0YXJ0KTogUmVwbGFjZQoJICBHU1RfUEFEX0lTX1VTQUJMRSBieSBzb21ldGhpbmcgYXBwcm9hY2hpbmcgaXQuCgoyMDA1LTExLTIwIDE2OjQzOjMyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogRml4IGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogKGdzdF9tYXRyb3NrYV9tdXhfc3RhcnQpOiBGaXggZm9yCgkgIEFQSSBjaGFuZ2VzLgoJICAqIGdzdC93YXZlbmMvZ3N0d2F2ZW5jLmM6IChnc3Rfd2F2ZW5jX2NoYWluKTogRml4IGZvciBBUEkKCSAgY2hhbmdlcywKCSAgYnV0IGFsc28gZml4IHRoZSBjb2RlIHRoYXQgd2FzIG5vdCBjaGVja2luZyByZXR1cm4gdmFsdWVzIGZyb20KCSAgcGFkX3B1c2ggbmVpdGhlciB1c2luZyBwYWRfYWxsb2NfYnVmZmVyLgoKMjAwNS0xMS0xOCAxODoxOToyMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6IEFkZGVkIGRlYnVnIGNhdGVnb3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZW5jLmM6IChnc3RfcG5nZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BuZ2VuY19jaGFpbik6CgkgIEFkZGVkIGRlYnVnIGNhdGVnb3J5CgkgIFJldHVybiBHU1RfRkxPV19VTkVYUEVDVEVEIHdoZW4gc2VuZGluZyBhbiBFT1MsIHNvIHRoZSB3aG9sZSBwaXBlbGluZQoJICBnb2VzIHRvIEVPUy4KCjIwMDUtMTEtMTcgMTg6MjM6MjMgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9nc3RydHAuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFlbmMuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzExcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZWMuaDoKCSogZ3N0L3J0cC9nc3RydHBzcGVleGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhkZXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4ZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwc3BlZXhlbmMuaDoKCSogZ3N0L3J0cC9nc3RydHBzcGVleHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cHNwZWV4cGF5Lmg6CgkgIENyZWF0ZWQgU3BlZXggcGF5bG9hZGVyIGFuZCBkZXBheWxvYWRlcjsgT3B0aW1pemUgRzcxMSBwYXlsb2FkZXIgdG8gdXNlIGFkYXB0ZXIgYW5kIHNlbmQgcGFja2V0cyB1bnRpbCBNVFUgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENyZWF0ZWQgU3BlZXggcGF5bG9hZGVyIGFuZCBkZXBheWxvYWRlcjsgT3B0aW1pemUgRzcxMSBwYXlsb2FkZXIgdG8gdXNlIGFkYXB0ZXIgYW5kIHNlbmQgcGFja2V0cyB1bnRpbCBNVFUgc2l6ZS4KCjIwMDUtMTEtMTYgMTk6MDg6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9lbGVtZW50cy9tYXRyb3NrYW11eC5jOiBGaXggbGVhayBpbiBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZWxlbWVudHMvbWF0cm9za2FtdXguYzogKHNldHVwX3NyY19wYWQpLCAoc2V0dXBfc2lua19wYWQpOgoJICBGaXggbGVhayBpbiBjaGVjay4KCjIwMDUtMTEtMTYgMTc6MDA6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZmx4L2dzdGZseGRlYy5jOiBGaXggc3RhdGUgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZmx4L2dzdGZseGRlYy5jOiAoZ3N0X2ZseGRlY19jaGFuZ2Vfc3RhdGUpOgoJICBGaXggc3RhdGUgY2hhbmdlLgoKMjAwNS0xMS0xNiAxMTowMjoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvdWRwL2dzdHVkcHNyYy5jOgoJICBNb3ZlIGNvbW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAoZ3N0X3VkcHNyY19jcmVhdGUpOiBNb3ZlIGNvbW1lbnQuCgoyMDA1LTExLTE2IDEwOjQzOjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvdWRwL2dzdHVkcHNyYy5jOiBDbGVhbiB1cCB3aXRoIHRoZSBib2lsZXJwbGF0ZSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogQ2xlYW4gdXAgd2l0aCB0aGUgYm9pbGVycGxhdGUgbWFjcm8uCgoyMDA1LTExLTE1IDE5OjQxOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IFdoZW4gc2Vla2luZywgc2VlayB0byBjbG9zZXN0IGluZGV4IGVudHJ5IGF0IG9yIGJlZm9yZSB0aGUgcmVxdWVzdGVkIHNlZWsgcG9zaXRpb24sIG5vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thZGVtdXhfZG9faW5kZXhfc2Vlayk6CgkgIFdoZW4gc2Vla2luZywgc2VlayB0byBjbG9zZXN0IGluZGV4IGVudHJ5IGF0IG9yIGJlZm9yZSB0aGUgcmVxdWVzdGVkCgkgIHNlZWsgcG9zaXRpb24sIG5vdCBqdXN0IHRoZSBjbG9zZXN0IG9uZSAoIzMyMTAwMSkuCgoyMDA1LTExLTE1IDEyOjE2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBJbnZlcnQgRElCIGltYWdlcyBhZ2FpbiAoc2VlICMxMzIzNDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChzd2FwX2xpbmUpLCAoZ3N0X2F2aV9kZW11eF9pbnZlcnQpLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSk6CgkgIEludmVydCBESUIgaW1hZ2VzIGFnYWluIChzZWUgIzEzMjM0MSkuCgoyMDA1LTExLTE0IDAyOjEzOjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGV4dC9hYWxpYi9nc3RhYXNpbmsuYzoKCSogZXh0L2NhaXJvL2dzdGNhaXJvLmM6CgkqIGV4dC9kdi9nc3Rkdi5jOgoJKiBleHQvZXNkL2dzdGVzZC5jOgoJKiBleHQvZmxhYy9nc3RmbGFjLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZmVsZW1lbnRzLmM6CgkqIGV4dC9nZGtfcGl4YnVmL2dzdGdka3BpeGJ1Zi5jOgoJKiBleHQvanBlZy9nc3RqcGVnLmM6CgkqIGV4dC9sYWRzcGEvZ3N0bGFkc3BhLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkqIGV4dC9saWJtbmcvZ3N0bW5nLmM6CgkqIGV4dC9saWJwbmcvZ3N0cG5nLmM6CgkqIGV4dC9taWttb2QvZ3N0bWlrbW9kLmM6CgkqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvcGFuZ28vZ3N0dGltZW92ZXJsYXkuYzoKCSogZXh0L3JhdzEzOTQvZ3N0MTM5NC5jOgoJKiBleHQvc3BlZXgvZ3N0c3BlZXguYzoKCSogZ3N0L2FscGhhL01ha2VmaWxlLmFtOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9kZXRlY3QuYzoKCSogZ3N0L2F2aS9nc3RhdmkuYzoKCSogZ3N0L2N1dHRlci9nc3RjdXR0ZXIuYzoKCSogZ3N0L2RlYnVnL2VmZW5jZS5jOgoJKiBnc3QvZGVidWcvZ3N0ZGVidWcuYzoKCSogZ3N0L2RlYnVnL2dzdG5hdmlnYXRpb250ZXN0LmM6CgkqIGdzdC9lZmZlY3R2L2dzdGVmZmVjdHYuYzoKCSogZ3N0L2ZseC9nc3RmbHhkZWMuYzoKCSogZ3N0L2dvb20vZ3N0Z29vbS5jOgoJKiBnc3QvbGF3L2FsYXcuYzoKCSogZ3N0L2xhdy9tdWxhdy5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLmM6CgkqIGdzdC9tZWRpYW4vZ3N0bWVkaWFuLmM6CgkqIGdzdC9tb25vc2NvcGUvZ3N0bW9ub3Njb3BlLmM6CgkqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0LmM6CgkqIGdzdC9vbGRjb3JlL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmM6CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3AuYzoKCSogZ3N0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5jOgoJKiBnc3Qvc21wdGUvZ3N0c21wdGUuYzoKCSogZ3N0L3VkcC9nc3R1ZHAuYzoKCSogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3RnYW1tYS5jOgoJKiBnc3QvdmlkZW9maWx0ZXIvZ3N0dmlkZW9iYWxhbmNlLmM6CgkqIGdzdC92aWRlb2ZpbHRlci9nc3R2aWRlb2ZsaXAuYzoKCSogZ3N0L3ZpZGVvZmlsdGVyL2dzdHZpZGVvdGVtcGxhdGUuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogc3lzL29zcy9nc3Rvc3NhdWRpby5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW8uYzoKCSAgcmV3b3JrIGNvbmZpZ3VyZS5hYzsgbWFrZSBhc3RlcmlzayBydHAgc3R1ZmYgY29tcGlsZSBvbiBtaW5ndwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV3b3JrIGNvbmZpZ3VyZS5hYzsgbWFrZSBhc3RlcmlzayBydHAgc3R1ZmYgY29tcGlsZSBvbiBtaW5ndwoKMjAwNS0xMS0xMiAxMzozMTo1NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9qcGVnL2dzdGpwZWdkZWMuYzogT25seSBHU1RfREVCVUcoKSBpbmZvcm1hdGlvbiBvbiB0aGUgdmFsaWQgY29tcG9uZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOiAoZ3N0X2pwZWdfZGVjX2NoYWluKToKCSAgT25seSBHU1RfREVCVUcoKSBpbmZvcm1hdGlvbiBvbiB0aGUgdmFsaWQgY29tcG9uZW50cy4KCjIwMDUtMTEtMTEgMTk6MzQ6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjkuNSA9PT0KCjIwMDUtMTEtMTEgMTk6MzM6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGFjb2xvci54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXBhcnNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1dG9kZXRlY3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXZpLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhY2FzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNhaXJvLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWRlYnVnLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWR2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZW5jZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbHhkZWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbWF0cm9za2EueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbmF2aWdhdGlvbnRlc3QueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb21peGVyLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdmVuYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgIHJlbGVhc2luZyAwLjkuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS41CgoyMDA1LTExLTExIDE4OjMzOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY3MucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMS0xMSAxNjo0ODo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguKjogWWVhaCwgaW1wbGVtZW50IHByb3BlciBzZWVraW5nLiBFeGFjdCBzZWVraW5nIGFuZCBzZWdtZW50IHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfcmVzZXQpLAoJICAoZ3N0X2F2aV9kZW11eF9zcmNfY29udmVydCksIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X2F2aV9kZW11eF9zdHJlYW1faGVhZGVyKSwgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspLAoJICAoZ3N0X2F2aV9kZW11eF9wcm9jZXNzX25leHRfZW50cnkpLCAoZ3N0X2F2aV9kZW11eF9zdHJlYW1fZGF0YSksCgkgIChnc3RfYXZpX2RlbXV4X2xvb3ApOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguaDoKCSAgWWVhaCwgaW1wbGVtZW50IHByb3BlciBzZWVraW5nLiBFeGFjdCBzZWVraW5nIGFuZCBzZWdtZW50IHNlZWtpbmcuCgkgIFN0aWxsIG5lZWQgdG8gZG8gc29tZSBjaGVja3MgZm9yIHNlZ21lbnRfc3RvcC4KCjIwMDUtMTEtMTEgMTU6MTc6NDQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgZml4IENhaXJvIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggQ2Fpcm8gZW50cnkKCjIwMDUtMTEtMTAgMTI6MzQ6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IEFkZCBzdXBwb3J0IGZvciBjdXN0b20gZ2VucmUgdGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAocXRkZW11eF9wYXJzZV91ZHRhKToKCSAgQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBnZW5yZSB0YWdzLgoKMjAwNS0xMS0xMCAxMjoyMjozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzogRG9uJ3QgdHJ5IHRvIHJlYWR5IGJ1ZmZlciBkdXJhdGlvbiBmcm9tIGJ1ZmZlciB0aGF0IHdlIGRvbid0IG93biBhbnkgIGxvbmdlciBhbmQgdGhhdCBtaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX2RhdGEpOgoJICBEb24ndCB0cnkgdG8gcmVhZHkgYnVmZmVyIGR1cmF0aW9uIGZyb20gYnVmZmVyIHRoYXQgd2UgZG9uJ3QKCSAgb3duIGFueSAgbG9uZ2VyIGFuZCB0aGF0IG1pZ2h0IGFscmVhZHkgaGF2ZSBiZWVuIHVucmVmZmVkLgoJICAoIzMyMTEzNikKCjIwMDUtMTEtMDkgMjE6MzU6MjkgKzAwMDAgIFplZXNoYW4gQWxpIDx6ZWVuaXhAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJICBBdHRlbXB0aW5nIHRvIG9wdGltaXplIHRoZSBjb2RlIGZvciBlbWJlZGRlZCBzeXN0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQXR0ZW1wdGluZyB0byBvcHRpbWl6ZSB0aGUgY29kZSBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KCjIwMDUtMTEtMDggMDg6NTQ6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBzeXMvb3NzL2dzdG9zc3NpbmsuYzogRG9uJ3QgcmUtdXNlIGFscmVhZHkgY2xvc2VkIGZpbGUgZGVzY3JpcHRvci4gKCMzMjA5MjApCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiAoZ3N0X29zc19zaW5rX2Nsb3NlKToKCSAgRG9uJ3QgcmUtdXNlIGFscmVhZHkgY2xvc2VkIGZpbGUgZGVzY3JpcHRvci4gKCMzMjA5MjApCgoyMDA1LTExLTA3IDE3OjM1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL29zcy9nc3Rvc3NzaW5rLio6IENhY2hlIHByb2JlZCBjYXBzOyBmaXggZGVidWcgb3V0cHV0IGZvciBTRVRfUEFSQU0gbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzogKGdzdF9vc3Nfc2lua19kaXNwb3NlKSwKCSAgKGdzdF9vc3Nfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X29zc19zaW5rX2dldGNhcHMpLAoJICAoZ3N0X29zc19zaW5rX3ByZXBhcmUpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5oOgoJICBDYWNoZSBwcm9iZWQgY2FwczsgZml4IGRlYnVnIG91dHB1dCBmb3IgU0VUX1BBUkFNIG1hY3Jvcy4KCjIwMDUtMTEtMDcgMTU6MDk6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBleHQvY2Fpcm8vOiBQb3J0IGNhaXJvIHRleHRvdmVybGF5IHBsdWdpbiB0byAwLjkuIEFkZCAnc2hhZGVkLWJhY2tncm91bmQnIHByb3BlcnR5IGFuZCByZWRvIHBvc2l0aW9uLiBEb2Vzbid0IGhhbmRsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jYWlyby9nc3RjYWlyby5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9iYXNlX2luaXQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9jbGFzc19pbml0KSwgKGdzdF90ZXh0X292ZXJsYXlfZmluYWxpemUpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9pbml0KSwgKGdzdF90ZXh0X292ZXJsYXlfZm9udF9pbml0KSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfc2V0X3Byb3BlcnR5KSwgKGdzdF90ZXh0X292ZXJsYXlfcmVuZGVyX3RleHQpLAoJICAoZ3N0X3RleHRfb3ZlcmxheV9nZXRjYXBzKSwgKGdzdF90ZXh0X292ZXJsYXlfc2V0Y2FwcyksCgkgIChnc3RfdGV4dF9vdmVybGF5X3RleHRfcGFkX2xpbmtlZCksCgkgIChnc3RfdGV4dF9vdmVybGF5X3RleHRfcGFkX3VubGlua2VkKSwgKGdzdF90ZXh0X292ZXJsYXlfc2hhZGVfeSksCgkgIChnc3RfdGV4dF9vdmVybGF5X2JsaXRfMSksIChnc3RfdGV4dF9vdmVybGF5X2JsaXRfc3ViMngyKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfcHVzaF9mcmFtZSksIChnc3RfdGV4dF9vdmVybGF5X3BvcF92aWRlbyksCgkgIChnc3RfdGV4dF9vdmVybGF5X3BvcF90ZXh0KSwgKGdzdF90ZXh0X292ZXJsYXlfY29sbGVjdGVkKSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvY2Fpcm8vZ3N0dGV4dG92ZXJsYXkuaDoKCSAgUG9ydCBjYWlybyB0ZXh0b3ZlcmxheSBwbHVnaW4gdG8gMC45LiBBZGQgJ3NoYWRlZC1iYWNrZ3JvdW5kJwoJICBwcm9wZXJ0eSBhbmQgcmVkbyBwb3NpdGlvbi4gRG9lc24ndCBoYW5kbGUgdXBzdHJlYW0gcmVuZWdvdGlhdGlvbgoJICB5ZXQgdGhvdWdoLgoKMjAwNS0xMS0wNyAxMDozMTozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogTm8gbmVlZCB0byB0YWtlIHRoZSBTVFJFQU1fTE9DSyBpbiB0aGUgbG9vcCBmdW5jdGlvbi4gSW1wcm92ZSBzb21lIGRlYnVnIG1lc3NhZ2VzLiBEb24ndCBsZWFrIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X3BhcnNlX3N0cmVhbSksCgkgIChnc3RfYXZpX2RlbXV4X3Byb2Nlc3NfbmV4dF9lbnRyeSksIChnc3RfYXZpX2RlbXV4X3N0cmVhbV9kYXRhKSwKCSAgKGdzdF9hdmlfZGVtdXhfbG9vcCk6CgkgIE5vIG5lZWQgdG8gdGFrZSB0aGUgU1RSRUFNX0xPQ0sgaW4gdGhlIGxvb3AgZnVuY3Rpb24uIEltcHJvdmUKCSAgc29tZSBkZWJ1ZyBtZXNzYWdlcy4gRG9uJ3QgbGVhayBwYWQgbmFtZXMgaW4gZGVidWcgbWVzc2FnZXMuCgoyMDA1LTExLTA3IDEwOjI3OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6IERvbid0IGVycm9yIG91dCB3aGVuIHRoZSBzb3VyY2UgcGFkIGlzbid0IGxpbmtlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgIChnc3RfbWF0cm9za2FfZGVtdXhfcHVzaF92b3JiaXNfY29kZWNfcHJpdl9kYXRhKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfd3Zwa19oZWFkZXIpOgoJICBEb24ndCBlcnJvciBvdXQgd2hlbiB0aGUgc291cmNlIHBhZCBpc24ndCBsaW5rZWQuCgoyMDA1LTExLTAyIDE5OjQyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2djb25mLzogRml4IHN0YXRlIGNoYW5nZSBmdW5jdGlvbnMgaGVyZSBhcyB3ZWxsIGFuZCBzZXQga2lkIHRvIE5VTEwgc3RhdGUgYmVmb3JlIHJlbW92aW5nIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvZ2NvbmYvZ3N0Z2NvbmZhdWRpb3NpbmsuYzogKGRvX3RvZ2dsZV9lbGVtZW50KSwKCSAgKGdzdF9nY29uZl9hdWRpb19zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2djb25mL2dzdGdjb25mdmlkZW9zaW5rLmM6IChkb190b2dnbGVfZWxlbWVudCksCgkgIChnc3RfZ2NvbmZfdmlkZW9fc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBGaXggc3RhdGUgY2hhbmdlIGZ1bmN0aW9ucyBoZXJlIGFzIHdlbGwgYW5kIHNldCBraWQKCSAgdG8gTlVMTCBzdGF0ZSBiZWZvcmUgcmVtb3ZpbmcgaXQuCgoyMDA1LTExLTAyIDE2OjQ4OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbWF0cm9za2FtdXguYzoKCSAgc2lnaCwgc3RhdGljIHBhZCB0ZW1wbGF0ZXMgYXJlbid0IHJlZmNvdW50ZWQgcHJvcGVybHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ2gsIHN0YXRpYyBwYWQgdGVtcGxhdGVzIGFyZW4ndCByZWZjb3VudGVkIHByb3Blcmx5CgoyMDA1LTExLTAxIDE2OjE0OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGdzdC9sZXZlbC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMDEgMTU6MTU6NDQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOiBBZGRlZCBwcm9wZXIgZXZlbnQgaGFuZGxpbmQsIG1hZGUgZG93bnN0cmVhbSBuZXdzZWdtZW50IGV2ZW50IHVzZSBHU1RfRk9STUFUX0JZVEVTIChvdGhlcndpc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfc3RvcF9maWxlKSwKCSAgKGdzdF93YXZlbmNfaW5pdCksIChnc3Rfd2F2ZW5jX2V2ZW50KSwgKGdzdF93YXZlbmNfY2hhaW4pOgoJICBBZGRlZCBwcm9wZXIgZXZlbnQgaGFuZGxpbmQsCgkgIG1hZGUgZG93bnN0cmVhbSBuZXdzZWdtZW50IGV2ZW50IHVzZSBHU1RfRk9STUFUX0JZVEVTIChvdGhlcndpc2UgaXQncwoJICBpZ25vcmVkKSwKCSAgYW5kIGRvbid0IHNldCBhIGR1cmF0aW9uIG9mIDAgZm9yIGJ1ZmZlcnMgb3RoZXJ3aXNlIHRoZXkgYXJlIGRpc2NhcmRlZAoJICBieSBHc3RCYXNlU2luay4KCSAgR3N0V2F2RW5jIG5lZWRzIHNvbWUgc2VyaW91cyBsb3ZpbmcsIGFmdGVyIGdvaW5nIHRocm91Z2ggdGhlIGNvZGUgSSdtCgkgIHJlYWxseSB3b25kZXJpbmcgaG93IHRoaXMgY2FuIHN0YXkgaW4gLWdvb2QgLi4uCgoyMDA1LTExLTAxIDE1OjExOjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEZpeCBsZWFrcyBhbmQgaW52YWxpZCBtZW1vcnkgYWNjZXNzIGFzIHJlcG9ydGVkIGJ5IHZhbGdyaW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6IChzZXR1cF9zcmNfcGFkKSwgKHNldHVwX3NpbmtfcGFkKSwKCSAgKHNldHVwX21hdHJvc2thbXV4KSwgKGNoZWNrX2J1ZmZlcl9kYXRhKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X2ZpbmFsaXplKSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfcmVzZXQpLCAoZ3N0X21hdHJvc2thX211eF9hdWRpb19wYWRfc2V0Y2FwcyksCgkgIChnc3RfbWF0cm9za2FfbXV4X3N0YXJ0KSwgKGdzdF9tYXRyb3NrYV9tdXhfd3JpdGVfZGF0YSksCgkgIChnc3RfbWF0cm9za2FfbXV4X2NvbGxlY3RlZCk6CgkgIEZpeCBsZWFrcyBhbmQgaW52YWxpZCBtZW1vcnkgYWNjZXNzIGFzIHJlcG9ydGVkIGJ5IHZhbGdyaW5kCgoyMDA1LTExLTAxIDE0OjQxOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL21hdHJvc2thbXV4LmM6CgkgIC4uLiBhbmQgYWRkIHRoZSBtaXNzaW5nIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIC4uLiBhbmQgYWRkIHRoZSBtaXNzaW5nIGZpbGUKCjIwMDUtMTEtMDEgMTQ6MzY6MDIgKzAwMDAgIE1pY2hhbCBCZW5lcyA8bWljaGFsLmJlbmVzQHhlcmlzLmN6PgoKCSAgYWRkIGEgdW5pdCB0ZXN0IGZvciBtYXRyb3NrYW11eCBmaXggdGhlIGJ1Z3MgdGhhdCB0aGUgdW5pdCB0ZXN0IGV4cG9zZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNaWNoYWwgQmVuZXMgPG1pY2hhbC5iZW5lc0B4ZXJpcy5jej4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5jOiAoZ3N0X2VibWxfd3JpdGVfc2Vlayk6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfYXVkaW9fcGFkX3NldGNhcHMpLCAoZ3N0X21hdHJvc2thX211eF9zdGFydCk6CgkgIGFkZCBhIHVuaXQgdGVzdCBmb3IgbWF0cm9za2FtdXgKCSAgZml4IHRoZSBidWdzIHRoYXQgdGhlIHVuaXQgdGVzdCBleHBvc2VkCgoyMDA1LTExLTAxIDE0OjM0OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgIGZpeCBNYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IE1ha2VmaWxlLmFtCgoyMDA1LTExLTAxIDEyOjM5OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2F1dG9kZXRlY3QvOiBGaXggc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGFuZCB1c2UgR1NUX0RFQlVHX0ZVTkNQVFIgaW4gY2xhc3NfaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOgoJICAoZ3N0X2F1dG9fYXVkaW9fc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6CgkgIChnc3RfYXV0b192aWRlb19zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2F1dG9fdmlkZW9fc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBGaXggc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGFuZCB1c2UgR1NUX0RFQlVHX0ZVTkNQVFIgaW4KCSAgY2xhc3NfaW5pdC4KCjIwMDUtMTEtMDEgMTI6MzU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvOiBTZXQgdGltZXN0YW1wcyBvbiBvdXRnb2luZyBlYm1sIGhlYWRlcnMgYXMgd2VsbCwgc28gdGhhdCB0aGUgZWxlbWVudCBhZnRlciBtYXRyb3NrYW11eCBjYW4gZ2V0IHRoZSB0aW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzogKGdzdF9lYm1sX3dyaXRlX25ldyksCgkgIChnc3RfZWJtbF93cml0ZV9yZXNldCksIChnc3RfZWJtbF93cml0ZV9lbGVtZW50X25ldyk6CgkgICogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3dyaXRlX2RhdGEpOgoJICBTZXQgdGltZXN0YW1wcyBvbiBvdXRnb2luZyBlYm1sIGhlYWRlcnMgYXMgd2VsbCwgc28gdGhhdCB0aGUKCSAgZWxlbWVudCBhZnRlciBtYXRyb3NrYW11eCBjYW4gZ2V0IHRoZSB0aW1lc3RhbXAgYWxyZWFkeSB3aGVuCgkgIHJlYWRpbmcgdGhlIGZpcnN0IGVibWwgZWxlbWVudCBhbmQgZG9lc24ndCBoYXZlIHRvIHdhaXQgZm9yCgkgIHRoZSBhY3R1YWwgZGF0YSBidWZmZXIgZm9yIHRoYXQgKCMzMjAzMDgpLgoKMjAwNS0xMC0zMSAyMjowODo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6CgkgIGdzdC92aWRlb21peGVyL3ZpZGVvbWl4ZXIuYyAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3VubGluaykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMzEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jIChnc3RfdmlkZW9taXhlcl9wYWRfdW5saW5rKQoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX2xpbmspOiBLaWxsIHNvbWUgbWVtbGVha3MuCgkgIChnc3RfdmlkZW9taXhlcl9wYWRfZ2V0X3Byb3BlcnR5KTogU3R5bGUgZml4LgoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3NldF9wcm9wZXJ0eSk6IFN0eWxlIGZpeC4KCSAgKGdzdF92aWRlb21peGVyX3BhZF9pbml0KTogU3R5bGUgZml4LgoJICAoZ3N0X3ZpZGVvbWl4ZXJfdXBkYXRlX3F1ZXVlcyk6IEtpbGwgbWVtbGVhay4KCSAgKGdzdF92aWRlb21peGVyX2xvb3ApOiBLaWxsIG1lbWxlYWsuCgkgIChnc3RfdmlkZW9taXhlcl9jb2xsZWN0ZWQpOiBLaWxsIG1lbWxlYWsuCgoyMDA1LTEwLTMxIDE5OjA4OjI3ICswMDAwICBFZGdhcmQgTGltYSA8ZWRnYXJkLmxpbWFAaW5kdC5vcmcuYnI+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9hdXBhcnNlL2dzdGF1cGFyc2UuYzoKCSAgSnVzdCBzb21lIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBKdXN0IHNvbWUgY2xlYW51cC4KCjIwMDUtMTAtMzEgMTQ6NDE6MzEgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIEFkZCBjaGVja3MgdG8gR1NUX0ZMT1dfTk9UX0xJTktFRCBmb3IgdmFsdWVzIHJldHVybmVkIGZyb20gZ3N0X3BhZF9wdXNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGNoZWNrcyB0byBHU1RfRkxPV19OT1RfTElOS0VEIGZvciB2YWx1ZXMgcmV0dXJuZWQgZnJvbSBnc3RfcGFkX3B1c2guCgoyMDA1LTEwLTMxIDEyOjAwOjEwICswMDAwICBaZWVzaGFuIEFsaSA8emVlbml4QGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlcGF5LmM6CgkgIFBheWxvYWRlciBub3cgc2V0cyBzb21lIGRlZmF1bHQgY2FwcyBvbiB0aGUgc3JjcGFkIGlmIGNhcHMgb24gdGhlIHNpbmtwYWQgYXJlIG5ldmVyIHNldC4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIHRoZSBnNy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF5bG9hZGVyIG5vdyBzZXRzIHNvbWUgZGVmYXVsdCBjYXBzIG9uIHRoZSBzcmNwYWQgaWYgY2FwcyBvbiB0aGUgc2lua3BhZCBhcmUgbmV2ZXIgc2V0LiBUaGlzIGlzIGltcG9ydGFudCBmb3IgdGhlIGc3MTEgdG8gd29yayB3aXRoIGJ1cmdlcidzIHJ0cGJpbiBlbGVtZW50LgoKMjAwNS0xMC0yOCAxOToxOTo0MCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBBZGQgY2hlY2tzIGZvciByZXR1cm4gdmFsdWVzIGZyb20gZ3N0X3BhZF9wdXNoIGFuZCBnc3RfcGFkX2FsbG9jX2J1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCBjaGVja3MgZm9yIHJldHVybiB2YWx1ZXMgZnJvbSBnc3RfcGFkX3B1c2ggYW5kIGdzdF9wYWRfYWxsb2NfYnVmZmVyLgoKMjAwNS0xMC0yOCAxNTozMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS86IEFkZCBTaW1wbGVCbG9jayBzdXBwb3J0IHRvIG1hdHJvc2thIGRlbXV4ZXIgYW5kIG11eGVyIChwYXJ0IG9mCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2luaXRfc3RyZWFtKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pbmZvKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrKSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9jbHVzdGVyKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOiAoZ3N0X21hdHJvc2thX211eF9jbGFzc19pbml0KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfaW5pdCksIChnc3RfbWF0cm9za2FfbXV4X3N0YXJ0KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfY3JlYXRlX2J1ZmZlcl9oZWFkZXIpLAoJICAoZ3N0X21hdHJvc2thX211eF93cml0ZV9kYXRhKSwgKGdzdF9tYXRyb3NrYV9tdXhfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tYXRyb3NrYV9tdXhfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4Lmg6CgkgIEFkZCBTaW1wbGVCbG9jayBzdXBwb3J0IHRvIG1hdHJvc2thIGRlbXV4ZXIgYW5kIG11eGVyIChwYXJ0IG9mCgkgIE1hdHJvc2thIHYyKS4gKCMzMTk3MzEpCgoyMDA1LTEwLTI4IDEzOjI0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L2pwZWcvZ3N0anBlZ2RlYy4qOiBDbGVhbnVwcy4gRG9uJ3QgY3JlYXRlIGNhcHMgZm9yIGV2ZXJ5IGNoYWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvanBlZy9nc3RqcGVnZGVjLmM6IChnc3RfanBlZ19kZWNfaW5pdCksIChnc3RfanBlZ19kZWNfY2hhaW4pLAoJICAoZ3N0X2pwZWdfZGVjX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2pwZWcvZ3N0anBlZ2RlYy5oOgoJICBDbGVhbnVwcy4gRG9uJ3QgY3JlYXRlIGNhcHMgZm9yIGV2ZXJ5IGNoYWluLgoKMjAwNS0xMC0yNyAxODo0NjozMiArMDAwMCAgRmxhdmlvIE9saXZlaXJhIDxmbGF2aW8ub2xpdmVpcmFAaW5kdC5vcmcuYnI+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9sYXcvYWxhdy1lbmNvZGUuYzoKCSogZ3N0L2xhdy9hbGF3LWVuY29kZS5oOgoJKiBnc3QvbGF3L211bGF3LWVuY29kZS5jOgoJKiBnc3QvbGF3L211bGF3LWVuY29kZS5oOgoJICBGaXggdG8gc2V0IHRpbWVzdGFtcCBvbiBidWZmZXIsIGl0IHdhcyB0ZXN0ZWQgd2l0aCBSVFAgRzcxMSBlbGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB0byBzZXQgdGltZXN0YW1wIG9uIGJ1ZmZlciwgaXQgd2FzIHRlc3RlZCB3aXRoIFJUUCBHNzExIGVsZW1lbnRzLgoKMjAwNS0xMC0yNyAxMToyNzo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguaDogUmVtb3ZlIGdvdF9yZWRpcmVjdCBmcm9tIGNsYXNzIHN0cnVjdHVyZSBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcXRkZW11eC9xdGRlbXV4Lmg6CgkgIFJlbW92ZSBnb3RfcmVkaXJlY3QgZnJvbSBjbGFzcyBzdHJ1Y3R1cmUgYXMgd2VsbC4KCjIwMDUtMTAtMjcgMTE6MjU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcXRkZW11eC9xdGRlbXV4LmM6IFJlbW92ZSAnZ290LXJlZGlyZWN0JyBzaWduYWwgYW5kIHBvc3QgZWxlbWVudCBtZXNzYWdlIG9uIHRoZSBidXMgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCksCgkgIChxdGRlbXV4X3BhcnNlX3RyZWUpOgoJICBSZW1vdmUgJ2dvdC1yZWRpcmVjdCcgc2lnbmFsIGFuZCBwb3N0IGVsZW1lbnQgbWVzc2FnZQoJICBvbiB0aGUgYnVzIGluc3RlYWQuCgoyMDA1LTEwLTI3IDExOjAwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgc3lzL29zcy9nc3Rvc3NzcmMuYzogU2V0IGNvcnJlY3QgZm9ybWF0IG9uIG9zcyBpbnN0ZWFkIG9mIGEgc2lsbHkgdmFsdWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IChnc3Rfb3NzX3NyY19wcmVwYXJlKToKCSAgU2V0IGNvcnJlY3QgZm9ybWF0IG9uIG9zcyBpbnN0ZWFkIG9mIGEgc2lsbHkgdmFsdWUuCgoyMDA1LTEwLTI3IDA5OjUyOjA4ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBVc2UgbGlib2lsIGZvcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yNyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb19ib3hfdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X3ZpZGVvX2JveF9zZXRfY2FwcyksCgkgIChnc3RfdmlkZW9fYm94X2dldF91bml0X3NpemUpLCAoZ3N0X3ZpZGVvX2JveF9jb3B5X3BsYW5lX2k0MjApLAoJICAoZ3N0X3ZpZGVvX2JveF9pNDIwKSwgKGdzdF92aWRlb19ib3hfYXl1dik6IFVzZSBsaWJvaWwgZm9yCgkgIEk0MjAgcmVuZGVyaW5nIGFzIHdlbGwsIGRvZXNuJ3QgYnJpbmcgbXVjaCBmb3IgbXkgcGxhdGZvcm0uCgkgIE1pZ2h0IGhlbHAgb24gc29tZSBvdGhlciBwbGF0Zm9ybXMuCgoyMDA1LTEwLTI2IDIxOjQ3OjM2ICswMDAwICBaZWVzaGFuIEFsaSA8emVlbml4QGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkgIERlY2xhcmluZyB0aGUgcGFkdGVtcGxhdGUgY29ycmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRGVjbGFyaW5nIHRoZSBwYWR0ZW1wbGF0ZSBjb3JyZWN0bHkuCgoyMDA1LTEwLTI2IDIwOjI4OjMyICswMDAwICBaZWVzaGFuIEFsaSA8emVlbml4QGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkgIFNldHRpbmcgdGhlIHByb3BlciBjb3B5cmlnaHQgbm90aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU2V0dGluZyB0aGUgcHJvcGVyIGNvcHlyaWdodCBub3RpY2UuCgoyMDA1LTEwLTI2IDE3OjIzOjA2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9NYWtlZmlsZS5hbTogVXNlIGxpYm9pbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjYgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvdmlkZW9ib3gvTWFrZWZpbGUuYW06IFVzZSBsaWJvaWwuCgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IChnc3RfdmlkZW9fYm94X2NsYXNzX2luaXQpLAoJICAoZ3N0X3ZpZGVvX2JveF9zZXRfcHJvcGVydHkpLCAoZ3N0X3ZpZGVvX2JveF90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfdmlkZW9fYm94X3NldF9jYXBzKSwgKGdzdF92aWRlb19ib3hfZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfdmlkZW9fYm94X2F5dXYpOiBMb3Qgb2Ygb3B0aW1pemF0aW9uIGluIEFZVVYgcmVuZGVyaW5nCgkgIHVzaW5nIGxpYm9pbC4gV2lsbCBkb3QgdGhlIHNhbWUgdG8gSTQyMCBib3JkZXIgZ2VuZXJhdGlvbgoJICB0b21vcnJvdy4KCjIwMDUtMTAtMjYgMTY6MzY6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgZml4IGF1dG9tYWtlIHdhcm5pbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYXV0b21ha2Ugd2FybmluZ3MKCjIwMDUtMTAtMjYgMTQ6NTA6NTkgKzAwMDAgIFplZXNoYW4gQWxpIDx6ZWVuaXhAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVjLmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGFyc2UuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXJzZS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJICBIYWNrZWQgdGhlIEc3MTEgKGRlKXBheWxvYWRlciB0byB0cnkgdG8gbWFrZSB0aGluZ3MgcmlnaHQuIHJ0cGc3MTFkZWMgbm93IGluaGVyaXRzIGZyb20gdGhlIGJhc2VydHBkZXBheWxvYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEhhY2tlZCB0aGUgRzcxMSAoZGUpcGF5bG9hZGVyIHRvIHRyeSB0byBtYWtlIHRoaW5ncyByaWdodC4gcnRwZzcxMWRlYyBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZXJ0cGRlcGF5bG9hZGVyLgoKMjAwNS0xMC0yNiAxNDoyMzo0NSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogUmVtb3ZpbmcgdGhpcyBmb3Jnb3R0ZW4gZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTI2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IChnc3RfdmlkZW9fYm94X2NsYXNzX2luaXQpLAoJICAoZ3N0X3ZpZGVvX2JveF90cmFuc2Zvcm1fY2FwcyksIChnc3RfdmlkZW9fYm94X2dldF91bml0X3NpemUpLAoJICAoZ3N0X3ZpZGVvX2JveF9heXV2KTogUmVtb3ZpbmcgdGhpcyBmb3Jnb3R0ZW4gZGVidWcuCgoyMDA1LTEwLTI2IDE0OjA4OjQ5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBGaXggdGhlIHN0cmlkZSBpc3N1ZSB3aGVuIGJveGluZyB0byBBWVVWLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yNiAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb19ib3hfdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X3ZpZGVvX2JveF9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF92aWRlb19ib3hfYXl1dik6IEZpeCB0aGUgc3RyaWRlIGlzc3VlIHdoZW4gYm94aW5nIHRvIEFZVVYuCgoyMDA1LTEwLTI2IDExOjEyOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL29zcy86IEFjdHVhbGx5IHVzZSB0aGUgJ29zcycgZGVidWcgY2F0ZWdvcnkgd2UgcmVnaXN0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3NzYXVkaW8uYzoKCSAgKiBzeXMvb3NzL2dzdG9zc2RtYWJ1ZmZlci5jOgoJICAqIHN5cy9vc3MvZ3N0b3NzaGVscGVyLmM6CgkgICogc3lzL29zcy9nc3Rvc3NtaXhlci5jOgoJICAqIHN5cy9vc3MvZ3N0b3NzbWl4ZXJlbGVtZW50LmM6CgkgICogc3lzL29zcy9nc3Rvc3NtaXhlcnRyYWNrLmM6CgkgICogc3lzL29zcy9nc3Rvc3NzaW5rLmM6CgkgICogc3lzL29zcy9nc3Rvc3NzcmMuYzoKCSAgQWN0dWFsbHkgdXNlIHRoZSAnb3NzJyBkZWJ1ZyBjYXRlZ29yeSB3ZSByZWdpc3Rlci4KCjIwMDUtMTAtMjYgMTA6Mzg6MTggKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiBVc2UgZ3N0X3BhZF9nZXRfcGFyZW50IGFuZCBkcm9wIHRoZSByZWYgdGhhdCB3YXMgYWRkZWQgdGhyb3VnaCB0aGF0IGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTI2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdmlkZW9taXhlcl9wYWRfc2lua19zZXRjYXBzKSwgKGdzdF92aWRlb21peGVyX2dldGNhcHMpOgoJICBVc2UgZ3N0X3BhZF9nZXRfcGFyZW50IGFuZCBkcm9wIHRoZSByZWYgdGhhdCB3YXMgYWRkZWQgdGhyb3VnaAoJICB0aGF0IGNhbGwuCgoyMDA1LTEwLTI2IDEwOjAzOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9nc3RydHBnc21lbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSAgZml4IGNvbXBpbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggY29tcGlsYXRpb24KCjIwMDUtMTAtMjUgMjE6MDk6MzYgKzAwMDAgIEZsYXZpbyBPbGl2ZWlyYSA8ZmxhdmlvLm9saXZlaXJhQGluZHQub3JnLmJyPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVwYXkuYzoKCSAgSnVzdCByZW1vdmVkIGEgY291cGxlIG9mIGxpbmVzIG9mIHdlaXJkIGNvZGUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQvdGVzdCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgSnVzdCByZW1vdmVkIGEgY291cGxlIG9mIGxpbmVzIG9mIHdlaXJkIGNvZGUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQvdGVzdCB0aW1lLgoKMjAwNS0xMC0yNSAxOToxOTozOCArMDAwMCAgRmxhdmlvIE9saXZlaXJhIDxmbGF2aW8ub2xpdmVpcmFAaW5kdC5vcmcuYnI+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFkZWMuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnNzExZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZzcxMWVuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cGc3MTFwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnNzExcGF5Lmg6CgkgIEc3MTEgcGF5bG9hZGVyIGFuZCBkZXBheWxvYWRlciBjcmVhdGVkIGJ5IEVkZ2FyZCBMaW1hIChpdCBzdXBwb3J0cyBtdWxhdyBhbmQgYWxhdyAoZGVjKWVuY29kZXJzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRzcxMSBwYXlsb2FkZXIgYW5kIGRlcGF5bG9hZGVyIGNyZWF0ZWQgYnkgRWRnYXJkIExpbWEgKGl0IHN1cHBvcnRzCgkgIG11bGF3IGFuZCBhbGF3IChkZWMpZW5jb2RlcnMpCgoyMDA1LTEwLTI1IDE3OjU1OjE5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBEb2ggISBJIGludHJvZHVjZWQgd2luZ28ncyBidWcgYWdhaW4gISBTb3JyeS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiAoZ3N0X3ZpZGVvX2JveF9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb19ib3hfdHJhbnNmb3JtX2NhcHMpLCAoZ3N0X3ZpZGVvX2JveF9nZXRfdW5pdF9zaXplKToKCSAgRG9oICEgSSBpbnRyb2R1Y2VkIHdpbmdvJ3MgYnVnIGFnYWluICEgU29ycnkuLi4KCjIwMDUtMTAtMjUgMTY6MDI6MzggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSAgYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGVzIGZvciBkaXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyBoZWFkZXIgZmlsZXMgZm9yIGRpc3RpbmcKCjIwMDUtMTAtMjUgMTU6MDc6MDIgKzAwMDAgIFplZXNoYW4gQWxpIDx6ZWVuaXhAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZGVwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21lbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21lbmMuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXJzZS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5Lmg6CgkgIEdldHRpbmcgdGhlIEdTTSAoZGUpcGF5bG9hZGVyIHdvcmtpbmcgYW5kIGNvbXBhdGlibGUgd2l0aCBvdXIgcGxhbnMgZm9yIFJUUC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdldHRpbmcgdGhlIEdTTSAoZGUpcGF5bG9hZGVyIHdvcmtpbmcgYW5kIGNvbXBhdGlibGUgd2l0aCBvdXIgcGxhbnMgZm9yIFJUUC4KCjIwMDUtMTAtMjUgMTM6MDM6MDQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkgIGZpeCBtaXN0YWtlbiBjbGFpbSBvbiBHUEwsIGl0cyBMR1BMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbWlzdGFrZW4gY2xhaW0gb24gR1BMLCBpdHMgTEdQTAoKMjAwNS0xMC0yNSAxMDo0NzowOSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiBQdXNoIGEgbmV3c2VnbWVudCBldmVudCwgbW92ZSBzb21lIHJlZHVuZGFudCBjb2RlIGluIGEgc2luZ2xlIHBsYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6ICh1c2VyX2luZm9fY2FsbGJhY2spLAoJICAoZ3N0X3BuZ2RlY19jYXBzX2NyZWF0ZV9hbmRfc2V0KSwgKGdzdF9wbmdkZWNfdGFzayk6IFB1c2gKCSAgYSBuZXdzZWdtZW50IGV2ZW50LCBtb3ZlIHNvbWUgcmVkdW5kYW50IGNvZGUgaW4gYSBzaW5nbGUgcGxhY2UuCgoyMDA1LTEwLTI1IDEwOjIzOjI2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IFRlbXBvcmFyeSBoYWNrIHRvIGdldCBjb3JyZWN0IGNvbG9ycyBvcmRlciB3aGVuIHdlIGhhdmUgYSBwbmcgaW1hZ2Ugd2l0aCBhbHBoYSBjaGFubmVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yNSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6ICh1c2VyX2luZm9fY2FsbGJhY2spLAoJICAoZ3N0X3BuZ2RlY19jYXBzX2NyZWF0ZV9hbmRfc2V0KSwgKGdzdF9wbmdkZWNfdGFzayk6IFRlbXBvcmFyeQoJICBoYWNrIHRvIGdldCBjb3JyZWN0IGNvbG9ycyBvcmRlciB3aGVuIHdlIGhhdmUgYSBwbmcgaW1hZ2Ugd2l0aAoJICBhbHBoYSBjaGFubmVsLgoKMjAwNS0xMC0yNCAxNzoyOTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGV4dC9kdi9nc3RkdmRlbXV4LmM6IENhbGwgZ3N0X2VsZW1lbnRfbm9fbW9yZV9wYWRzIHdoZW4gdGhlcmUgd2lsbCBiZSBubyBtb3JlIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9hZGRfcGFkcyk6CgkgIENhbGwgZ3N0X2VsZW1lbnRfbm9fbW9yZV9wYWRzIHdoZW4gdGhlcmUgd2lsbCBiZSBubyBtb3JlIHBhZHMuCgoyMDA1LTEwLTI0IDE2OjM5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IEFkZGVkIHR3byBuZXcgcGF5bG9hZGVycywgYW4gUkZDIDIxOTAgcGF5bG9hZGVyIGZvciBoMjYzIGFuZCBhIHBheWxvYWQgY29udmVydG9yIGZvciBhbiBhc3RlcmlzayBzZXJ2ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYzogKGdzdF9hc3Rlcmlza2gyNjNfZ2V0X3R5cGUpLAoJICAoZ3N0X2FzdGVyaXNraDI2M19iYXNlX2luaXQpLCAoZ3N0X2FzdGVyaXNraDI2M19jbGFzc19pbml0KSwKCSAgKGdzdF9hc3Rlcmlza2gyNjNfaW5pdCksIChnc3RfYXN0ZXJpc2toMjYzX2ZpbmFsaXplKSwKCSAgKGdzdF9hc3Rlcmlza2gyNjNfY2hhaW4pLCAoZ3N0X2FzdGVyaXNraDI2M19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2FzdGVyaXNraDI2M19nZXRfcHJvcGVydHkpLCAoZ3N0X2FzdGVyaXNraDI2M19jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2FzdGVyaXNraDI2M19wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuaDoKCSAgKiBnc3QvcnRwL2dzdHJ0cC5jOiAocGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2VuYy5jOiAoZ3N0X3J0cGgyNjNlbmNfZ2V0X3R5cGUpLAoJICAoZ3N0X3J0cGgyNjNlbmNfYmFzZV9pbml0KSwgKGdzdF9ydHBoMjYzZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cGgyNjNlbmNfaW5pdCksIChnc3RfcnRwaDI2M2VuY19maW5hbGl6ZSksCgkgIChnc3RfcnRwaDI2M2VuY19zZXRjYXBzKSwgKGdzdF9ydHBoMjYzZW5jX2dvYmZpbmVyKSwKCSAgKGdzdF9ydHBoMjYzZW5jX2ZsdXNoKSwgKGdzdF9ydHBoMjYzZW5jX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cGgyNjNlbmNfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwaDI2M2VuYy5oOgoJICBBZGRlZCB0d28gbmV3IHBheWxvYWRlcnMsIGFuIFJGQyAyMTkwIHBheWxvYWRlciBmb3IgaDI2MyBhbmQKCSAgYSBwYXlsb2FkIGNvbnZlcnRvciBmb3IgYW4gYXN0ZXJpc2sgc2VydmVyLgoKMjAwNS0xMC0yNCAxNTo1NzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IFNldCBieXRlc19wZXJfc2FtcGxlIGNvcnJlY3RseSAoaXMgbm90IGFsd2F5cyA0LCBidXQgZGVwZW5kcyBvbiB3aWR0aCBhbmQgbnVtYmVyIG9mIGNoYW5uZWxzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogc3lzL29zcy9nc3Rvc3NzcmMuYzogKGdzdF9vc3Nfc3JjX3ByZXBhcmUpOgoJICBTZXQgYnl0ZXNfcGVyX3NhbXBsZSBjb3JyZWN0bHkgKGlzIG5vdCBhbHdheXMgNCwgYnV0CgkgIGRlcGVuZHMgb24gd2lkdGggYW5kIG51bWJlciBvZiBjaGFubmVscykuCgoyMDA1LTEwLTI0IDE1OjUwOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2VuYy4qOiBGaXggc2Vla2luZywgc28gdGhhdCBmbGFjZW5jIGNhbiByZXdyaXRlIHRoZSBoZWFkZXIgd2l0aCB0aGUgY29ycmVjdCBkdXJhdGlvbiBhbmQgYW1vdW50IG9mIHNhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogKGdzdF9mbGFjZW5jX2Jhc2VfaW5pdCksCgkgIChnc3RfZmxhY2VuY19pbml0KSwgKGdzdF9mbGFjZW5jX3Npbmtfc2V0Y2FwcyksCgkgIChnc3RfZmxhY2VuY19zZWVrX2NhbGxiYWNrKSwgKGdzdF9mbGFjZW5jX3dyaXRlX2NhbGxiYWNrKSwKCSAgKGdzdF9mbGFjZW5jX3NpbmtfZXZlbnQpLCAoZ3N0X2ZsYWNlbmNfY2hhaW4pLAoJICAoZ3N0X2ZsYWNlbmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mbGFjZW5jX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmxhY2VuY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuaDoKCSAgRml4IHNlZWtpbmcsIHNvIHRoYXQgZmxhY2VuYyBjYW4gcmV3cml0ZSB0aGUgaGVhZGVyIHdpdGggdGhlCgkgIGNvcnJlY3QgZHVyYXRpb24gYW5kIGFtb3VudCBvZiBzYW1wbGVzIGFuZCBhbGwgdGhhdCBhdCBFT1M7CgkgIGFsc28gc2V0IHRpbWVzdGFtcHMgYW5kIGdyYW51bGVwb3Mgb24gb3V0Z29pbmcgYnVmZmVyczsgYWRkCgkgIGRlYnVnIGNhdGVnb3J5OyBmaXggc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoKMjAwNS0xMC0yNCAxMzo0NjowOSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IERvbid0IHJlc3RyaWN0IHZpZGVvIGdlb21ldHJ5IGZyb20gMTYgdG8gNDA5Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvdmlkZW9taXhlci92aWRlb21peGVyLmM6IERvbid0IHJlc3RyaWN0IHZpZGVvIGdlb21ldHJ5CgkgIGZyb20gMTYgdG8gNDA5Ni4KCjIwMDUtMTAtMjQgMTM6MjI6MTQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IEZpeCBjYXBzIG5lZ290aWF0aW9uIGNvcnJlY3RseSwgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMjQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogKGdzdF92aWRlb19ib3hfY2xhc3NfaW5pdCksCgkgIChnc3RfdmlkZW9fYm94X3RyYW5zZm9ybV9jYXBzKSwgKGdzdF92aWRlb19ib3hfZ2V0X3VuaXRfc2l6ZSk6CgkgIEZpeCBjYXBzIG5lZ290aWF0aW9uIGNvcnJlY3RseSwgYWRkIGRlYnVnZ2luZyBjYXRlZ29yeS4KCjIwMDUtMTAtMjQgMTM6MDI6NDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBwb3J0IG92ZXIgcGx1Z2luIGxpc3RpbmcgZnJvbSBiYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwb3J0IG92ZXIgcGx1Z2luIGxpc3RpbmcgZnJvbSBiYXNlCgoyMDA1LTEwLTI0IDA4OjU5OjI0ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IERvbid0IHVzZSBmaXhlZCBjYXBzIG9uIGEgc2luayBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTI0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfaW5pdCk6IERvbid0IHVzZSBmaXhlZAoJICBjYXBzIG9uCgkgIGEgc2luayBwYWQuCgoyMDA1LTEwLTIzIDIzOjA1OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNCA9PT0KCjIwMDUtMTAtMjMgMjI6NDM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYWNvbG9yLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1cGFyc2UueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2Fpcm8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVidWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZlbmNlLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVmZmVjdHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZXNkc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1mbGFjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZseGRlYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tYXRyb3NrYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1uYXZpZ2F0aW9udGVzdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvbWl4ZXIueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4td2F2ZW5jLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICByZWxlYXNpbmcgMC45LjQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjkuNAoKMjAwNS0xMC0yMyAxMTowNzoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogcG8vUE9URklMRVMuaW46CgkgIFNUT1BQRUQtPkZBSUxFRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU1RPUFBFRC0+RkFJTEVECgoyMDA1LTEwLTIxIDE3OjAwOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IEFkZCBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcnksIGZpeCBxdWVyeSB0eXBlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvc3BlZXgvZ3N0c3BlZXhlbmMuYzogKGdzdF9zcGVleGVuY19nZXRfcXVlcnlfdHlwZXMpLAoJICAoZ3N0X3NwZWV4ZW5jX3NyY19xdWVyeSk6CgkgIEFkZCBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcXVlcnksIGZpeCBxdWVyeSB0eXBlIGZ1bmN0aW9uLgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiAoZ3N0X21hdHJvc2thX2RlbXV4X2FkZF9zdHJlYW0pLAoJICAoZ3N0X21hdHJvc2thX2RlbXV4X3ZpZGVvX2NhcHMpLCAoZ3N0X21hdHJvc2thX2RlbXV4X2F1ZGlvX2NhcHMpOgoJICBMZXQncyBub3Qgc2V0IG5vbi1maXhlZCBjYXBzIG9uIHNvdXJjZSBwYWRzLgoKMjAwNS0xMC0yMSAxNjoxNTo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNldCBjb3JyZWN0IHN0cmVhbV90aW1lIGluIG5ld3NlZ21lbnQgZXZlbnQuIGF2aSBjYW4gYWxzbyBoYW5kbGUgYSBkdXJhdGlvbiBxdWVyeSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9kZW11eF9mcmFtZSk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9nZXRfc3JjX3F1ZXJ5X3R5cGVzKSwKCSAgKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspOgoJICBTZXQgY29ycmVjdCBzdHJlYW1fdGltZSBpbiBuZXdzZWdtZW50IGV2ZW50LgoJICBhdmkgY2FuIGFsc28gaGFuZGxlIGEgZHVyYXRpb24gcXVlcnkgbm93LgoKMjAwNS0xMC0yMSAxMDowNjo0MCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJICB1cGRhdGUgZm9yIGxhdGVzdCBhZGRpdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGFkZGl0aW9ucwoKMjAwNS0xMC0yMCAxOToxNDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jOiBGaXggZHVyYXRpb24gcXVlcnk7IGZpeCBiYXNldGltZSBpbiBuZXdzZWdtZW50IGV2ZW50IGFmdGVyIHNlZWs7IGZpeCBkdXJhdGlvbiBpbiBpbml0aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCksCgkgIChnc3RfbWF0cm9za2FfZGVtdXhfbG9vcF9zdHJlYW1fcGFyc2VfaWQpOgoJICBGaXggZHVyYXRpb24gcXVlcnk7IGZpeCBiYXNldGltZSBpbiBuZXdzZWdtZW50IGV2ZW50IGFmdGVyCgkgIHNlZWs7IGZpeCBkdXJhdGlvbiBpbiBpbml0aWFsIG5ld3NlZ21lbnQgZXZlbnQuCgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICAoZ3N0X21hdHJvc2thX211eF9hdWRpb19wYWRfc2V0Y2FwcyksIChnc3RfbWF0cm9za2FfbXV4X3N0YXJ0KToKCSAgRXh0cmFjdCBudW1iZXIgb2YgY2hhbm5lbHMgYW5kIHNhbXBsZXJhdGUgZnJvbSB2b3JiaXMgaGVhZGVyczsKCSAgYWRkIHNvbWUgZGVidWcgbWVzc2FnZXMgd2hlbiBxdWVyeWluZyB0aGUgZHVyYXRpb25zIG9mIHRoZQoJICBpbnB1dCBzdHJlYW1zLgoKMjAwNS0xMC0yMCAxMTo1MDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiBTZXQgc3RyZWFtIHRpbWUgY29ycmVjdGx5IGluIG5ld3NlZ21lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2hhbmRsZV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X3dhdnBhcnNlX3BhZF9jb252ZXJ0KSwgKGdzdF93YXZwYXJzZV9zcmNwYWRfZXZlbnQpOgoJICBTZXQgc3RyZWFtIHRpbWUgY29ycmVjdGx5IGluIG5ld3NlZ21lbnQuCgoyMDA1LTEwLTIwIDExOjM5OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiBDb3JyZWN0bHkgZmlsbCBpbiB0aGUgc3RyZWFtIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfaGFuZGxlX3NlZWspOgoJICBDb3JyZWN0bHkgZmlsbCBpbiB0aGUgc3RyZWFtIHRpbWUuCgoyMDA1LTEwLTE5IDIwOjQ4OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkqIGdzdC9sZXZlbC9sZXZlbC1leGFtcGxlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIHVzZSBFTEVNRU5UIG1lc3NhZ2VzIGluc3RlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVzZSBFTEVNRU5UIG1lc3NhZ2VzIGluc3RlYWQKCjIwMDUtMTAtMTkgMTU6NTg6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBUEkgY2hhbmdlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfZ2V0X3NyY19xdWVyeV90eXBlcyksCgkgIChnc3RfcXRkZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgKiBnc3Qvc3BlZWQvZ3N0c3BlZWQuYzogKHNwZWVkX2dldF9xdWVyeV90eXBlcyksIChzcGVlZF9zcmNfcXVlcnkpOgoJICAqIGdzdC90dGEvZ3N0dHRhcGFyc2UuYzogKGdzdF90dGFfcGFyc2Vfc3JjX2V2ZW50KSwKCSAgKGdzdF90dGFfcGFyc2VfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF90dGFfcGFyc2VfcXVlcnkpOgoJICBBUEkgY2hhbmdlIGZpeC4KCjIwMDUtMTAtMTkgMTU6NTc6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEkgY2hhbmdlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2dldF9zcmNfcXVlcnlfdHlwZXMpLAoJICAoZ3N0X2R2ZGVtdXhfc3JjX3F1ZXJ5KToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY2RlY19sZW5ndGgpLAoJICAoZ3N0X2ZsYWNkZWNfc3JjX3F1ZXJ5KToKCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogKGdzdF9kdjEzOTRzcmNfcXVlcnkpOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGRlYy5jOiAoc3BlZXhfZGVjX3NyY19xdWVyeSk6CgkgICogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOiAoZ3N0X2F2aV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgKiBnc3QvZGVidWcvZ3N0bmF2c2Vlay5jOiAoZ3N0X25hdnNlZWtfc2Vlayk6CgkgICogZ3N0L2RlYnVnL3Byb2dyZXNzcmVwb3J0LmM6IChnc3RfcHJvZ3Jlc3NfcmVwb3J0X3JlcG9ydCk6CgkgICogZ3N0L21hdHJvc2thL2VibWwtcmVhZC5jOiAoZ3N0X2VibWxfcmVhZF9nZXRfbGVuZ3RoKToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzoKCSAgKGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IChnc3RfbWF0cm9za2FfbXV4X3N0YXJ0KToKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9oYW5kbGVfc2VlayksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKSwKCSAgKGdzdF93YXZwYXJzZV9wYWRfY29udmVydCksIChnc3Rfd2F2cGFyc2VfcGFkX3F1ZXJ5KSwKCSAgKGdzdF93YXZwYXJzZV9zcmNwYWRfZXZlbnQpOgoJICBBUEkgY2hhbmdlIGZpeC4KCjIwMDUtMTAtMTkgMTA6NTc6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ29vbS86IE1ha2UgaW5saW5lIGZ1bmN0aW9ucyBlaXRoZXIgJ3N0YXRpYyBpbmxpbmUnIG9yICdleHRlcm4gaW5saW5lJywgb3RoZXJ3aXNlIHRoZSBGb3J0ZSBjb21waWxlciBhcHBhcmVudGx5IHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dvb20vZmlsdGVycy5jOgoJICAqIGdzdC9nb29tL2dyYXBoaWMuaDoKCSAgKiBnc3QvZ29vbS9saW5lcy5jOgoJICBNYWtlIGlubGluZSBmdW5jdGlvbnMgZWl0aGVyICdzdGF0aWMgaW5saW5lJyBvciAnZXh0ZXJuIGlubGluZScsCgkgIG90aGVyd2lzZSB0aGUgRm9ydGUgY29tcGlsZXIgYXBwYXJlbnRseSB3b24ndCBpbmxpbmUgdGhlbSAoIzMxNzMwMCkuCgoyMDA1LTEwLTE4IDIyOjUwOjExICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmM6IGZvcmdvdCB0aGUgYnVmZmVyIHVucmVmIGluIHB1bGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogZm9yZ290IHRoZSBidWZmZXIgdW5yZWYgaW4gcHVsbC4KCjIwMDUtMTAtMTggMjI6NDQ6MTEgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZXh0L2xpYnBuZy9nc3RwbmdkZWMuKjogQ29tcGxldGUgcmV3cml0ZSBvZiBwbmdkZWMuIEl0J3Mgbm93IHZlcnkgbmljZSBhbmQgaGFuZGxlIHB1c2gvcHVsbCBiYXNlZCBtb2RlbC4gaWYgeW91IGhhdmUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfY2xhc3NfaW5pdCksCgkgIChnc3RfcG5nZGVjX2luaXQpLCAodXNlcl9lcnJvcl9mbiksICh1c2VyX3dhcm5pbmdfZm4pLAoJICAodXNlcl9pbmZvX2NhbGxiYWNrKSwgKHVzZXJfZW5kcm93X2NhbGxiYWNrKSwKCSAgKHVzZXJfZW5kX2NhbGxiYWNrKSwKCSAgKHVzZXJfcmVhZF9kYXRhKSwgKGdzdF9wbmdkZWNfY2Fwc19jcmVhdGVfYW5kX3NldCksCgkgIChnc3RfcG5nZGVjX3Rhc2spLCAoZ3N0X3BuZ2RlY19jaGFpbiksIChnc3RfcG5nZGVjX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3BuZ2RlY19saWJwbmdfY2xlYXIpLCAoZ3N0X3BuZ2RlY19saWJwbmdfaW5pdCksCgkgIChnc3RfcG5nZGVjX2NoYW5nZV9zdGF0ZSksIChnc3RfcG5nZGVjX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcG5nZGVjX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfcG5nZGVjX3NpbmtfYWN0aXZhdGUpOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nZGVjLmg6IENvbXBsZXRlIHJld3JpdGUgb2YgcG5nZGVjLiBJdCdzIG5vdwoJICB2ZXJ5IG5pY2UgYW5kIGhhbmRsZSBwdXNoL3B1bGwgYmFzZWQgbW9kZWwuIGlmIHlvdSBoYXZlIGZpbGVzcmMKCSAgY29ubmVjdGVkIHRvIGl0LCBpdCB3aWxsIGRvIHJhbmRvbSBhY2Nlc3MgdG8gbG9hZCB0aGUgcG5nIGZpbGUuCgkgIElmIHlvdSBoYXZlIGEgbmV0d29yayBzb3VyY2UgdGhhdCBjYW4ndCBkbyBfZ2V0cmFuZ2UsIGl0IGRvZXMKCSAgcHJvZ3Jlc3NpdmUgbG9hZGluZyB0aHJvdWdoIHRoZSBjaGFpbiBmdW5jdGlvbi4KCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOiAoZ3N0X2FscGhhX2NvbG9yX3RyYW5zZm9ybV9jYXBzKSwKCSAgKHRyYW5zZm9ybV9yZ2IpLCAodHJhbnNmb3JtX2Jncik6IEZpeCBjYXBzIG5lZ290aWF0aW9uIGNvcnJlY3RseQoJICB0aGFua3MgdG8gTWFzdGVyIFdpbSBUYXltYW5zIDstKQoKMjAwNS0xMC0xOCAxODoxMjozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9tYXRyb3NrYS86IFBvcnRlZCBtYXRyb3NrYSBkZW11eGVyIHRvIDAuOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJICAqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC1yZWFkLmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4Lmg6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLmM6IChwbHVnaW5faW5pdCk6CgkgIFBvcnRlZCBtYXRyb3NrYSBkZW11eGVyIHRvIDAuOS4KCjIwMDUtMTAtMTggMTg6MDY6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6IEZpeCBtcGVnNCBpbnB1dCBoYW5kbGluZyAoIzMxODg0Nyk7IGFsc28sIHdoaWxlIHdlJ3JlIGF0IGl0LCBmaXggbWVkaWEgdHlwZSBmb3IgTW90aW9uLUouLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5jOgoJICAoZ3N0X21hdHJvc2thX211eF92aWRlb19wYWRfc2V0Y2FwcyksCgkgIChnc3RfbWF0cm9za2FfbXV4X2F1ZGlvX3BhZF9zZXRjYXBzKToKCSAgRml4IG1wZWc0IGlucHV0IGhhbmRsaW5nICgjMzE4ODQ3KTsgYWxzbywgd2hpbGUgd2UncmUgYXQgaXQsCgkgIGZpeCBtZWRpYSB0eXBlIGZvciBNb3Rpb24tSlBFRzogc2hvdWxkIGJlIGltYWdlL2pwZWcuCgoyMDA1LTEwLTE4IDEzOjIxOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLmM6IEZpeCBmb3Igc2VnbWVudC1zdGFydC9zdG9wIEFQSSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX2hhbmRsZV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X3dhdnBhcnNlX3BhZF9jb252ZXJ0KSwgKGdzdF93YXZwYXJzZV9zcmNwYWRfZXZlbnQpOgoJICBGaXggZm9yIHNlZ21lbnQtc3RhcnQvc3RvcCBBUEkgY2hhbmdlLgoKMjAwNS0xMC0xNyAxNzoxODo1NiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYWxwaGEvZ3N0YWxwaGFjb2xvci5jOiBIYW5kbGUgY2FwcyBuZWdvdGlhdGlvbiBpbiBhIGJldHRlciB3YXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE3ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2FscGhhL2dzdGFscGhhY29sb3IuYzogKGdzdF9hbHBoYV9jb2xvcl90cmFuc2Zvcm1fY2FwcyksCgkgICh0cmFuc2Zvcm1fcmdiKSwgKHRyYW5zZm9ybV9iZ3IpOiBIYW5kbGUgY2FwcyBuZWdvdGlhdGlvbiBpbiBhCgkgIGJldHRlcgoJICB3YXkuCgoyMDA1LTEwLTE3IDE2OjU5OjIwICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBGaXggY2FwcyBuZWdvIHNvbWUgbW9yZSB0byBnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogKGdzdF92aWRlb19ib3hfdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X3ZpZGVvX2JveF9nZXRfdW5pdF9zaXplKTogRml4IGNhcHMgbmVnbyBzb21lIG1vcmUgdG8gZ2V0CgkgIEFZVVYKCSAgb3V0cHV0IGRlY2xhcmVkIGluIHRyYW5zZm9ybV9jYXBzLgoKMjAwNS0xMC0xNyAxNToyMzoyNCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiBXZSB1c2UgZml4ZWQgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvbGlicG5nL2dzdHBuZ2RlYy5jOiAoZ3N0X3BuZ2RlY19pbml0KTogV2UgdXNlIGZpeGVkIGNhcHMuCgoyMDA1LTEwLTE3IDE1OjE0OjI5ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC92aWRlb2JveC9nc3R2aWRlb2JveC5jOiBGaXggd3Jvbmcgc2l6ZSBjYWxjdWxhdGlvbnMgYW5kIGltcGxlbWVudCBnZXRfdW5pdF9zaXplIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTcgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvdmlkZW9ib3gvZ3N0dmlkZW9ib3guYzogKGdzdF92aWRlb19ib3hfdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X3ZpZGVvX2JveF9nZXRfdW5pdF9zaXplKTogRml4IHdyb25nIHNpemUgY2FsY3VsYXRpb25zIGFuZAoJICBpbXBsZW1lbnQgZ2V0X3VuaXRfc2l6ZSBjb3JyZWN0bHkuCgoyMDA1LTEwLTE3IDE0OjU2OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBFbmFibGUgZmx4IHBsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBFbmFibGUgZmx4IHBsdWdpbi4KCSAgKiBnc3QvZmx4L2dzdGZseGRlYy5jOiAoZmx4X2RlY29kZV9jaHVua3MpOgoJICBGaXggZ2NjNCBzaWduZWRuZXNzIGlzc3VlLgoKMjAwNS0xMC0xNyAwODo0NjozMCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZGluZyB2aWRlb21peGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xNyAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGNvbmZpZ3VyZS5hYzogQWRkaW5nIHZpZGVvbWl4ZXIuCgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfY2xhc3NfaW5pdCksCgkgICh1c2VyX3JlYWRfZGF0YSksIChnc3RfcG5nZGVjX2NoYWluKTogTW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2FscGhhL01ha2VmaWxlLmFtOiBBZGRpbmcgYWxwaGFjb2xvcgoJICAqIGdzdC9hbHBoYS9nc3RhbHBoYWNvbG9yLmM6IChnc3RfYWxwaGFfY29sb3JfYmFzZV9pbml0KSwKCSAgKGdzdF9hbHBoYV9jb2xvcl9jbGFzc19pbml0KSwgKGdzdF9hbHBoYV9jb2xvcl9pbml0KSwKCSAgKGdzdF9hbHBoYV9jb2xvcl90cmFuc2Zvcm1fY2FwcyksIChnc3RfYWxwaGFfY29sb3Jfc2V0X2NhcHMpLAoJICAodHJhbnNmb3JtX3JnYiksICh0cmFuc2Zvcm1fYmdyKSwKCSAgKGdzdF9hbHBoYV9jb2xvcl90cmFuc2Zvcm1faXApLAoJICAocGx1Z2luX2luaXQpOiBQb3J0ZWQgdG8gMC45IHVzaW5nIGluIHBsYWNlIGJhc2UgdHJhbmZvcm0uCgkgICogZ3N0L3ZpZGVvbWl4ZXIvTWFrZWZpbGUuYW06CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX2dldF90eXBlKSwKCSAgKGdzdF92aWRlb21peGVyX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb21peGVyX3BhZF9zaW5rX3NldGNhcHMpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX2xpbmspLCAoZ3N0X3ZpZGVvbWl4ZXJfcGFkX3VubGluayksCgkgIChnc3RfdmlkZW9taXhlcl9wYWRfaW5pdCksIChnc3RfdmlkZW9taXhlcl9jbGFzc19pbml0KSwKCSAgKGdzdF92aWRlb21peGVyX2luaXQpLCAoZ3N0X3ZpZGVvbWl4ZXJfZ2V0Y2FwcyksCgkgIChnc3RfdmlkZW9taXhlcl9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3ZpZGVvbWl4ZXJfZmlsbF9xdWV1ZXMpLAoJICAoZ3N0X3ZpZGVvbWl4ZXJfYmxlbmRfYnVmZmVycyksIChnc3RfdmlkZW9taXhlcl91cGRhdGVfcXVldWVzKSwKCSAgKGdzdF92aWRlb21peGVyX2NvbGxlY3RlZCksIChnc3RfdmlkZW9taXhlcl9jaGFuZ2Vfc3RhdGUpOgoJICBQb3J0ZWQKCSAgdG8gMC45IHVzaW5nIGNvbGxlY3RwYWRzLgoKMjAwNS0xMC0xNiAyMToxOTo0NCArMDAwMCAgWmVlc2hhbiBBbGkgPHplZW5peEBnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZmx4L01ha2VmaWxlLmFtOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5oOgoJICBmbHggcGx1Z2luIHBvcnRlZCB0byAwLjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZseCBwbHVnaW4gcG9ydGVkIHRvIDAuOQoKMjAwNS0xMC0xNiAxNDozMzowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGV4dC9zaG91dDIvZ3N0c2hvdXQyLmM6CgkgIHVzZSBnc3RfdmVyc2lvbl9zdHJpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVzZSBnc3RfdmVyc2lvbl9zdHJpbmcKCjIwMDUtMTAtMTYgMTM6MTc6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogR0xJQl9DSEVDSy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOiBHTElCX0NIRUNLLgoKMjAwNS0xMC0xNSAxNjo0ODo1NSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBleHQvbGlicG5nLzogUG9ydGVkIHBuZ2RlYyB0byAwLjkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTUgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBleHQvbGlicG5nL01ha2VmaWxlLmFtOgoJICAqIGV4dC9saWJwbmcvZ3N0cG5nLmM6IChwbHVnaW5faW5pdCk6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuYzogKGdzdF9wbmdkZWNfY2xhc3NfaW5pdCksCgkgIChnc3RfcG5nZGVjX2luaXQpLCAodXNlcl9yZWFkX2RhdGEpLCAoZ3N0X3BuZ2RlY19jaGFpbik6CgkgICogZXh0L2xpYnBuZy9nc3RwbmdkZWMuaDogUG9ydGVkIHBuZ2RlYyB0byAwLjkKCjIwMDUtMTAtMTQgMTI6NDM6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBQb3J0IG1hdHJvc2thIG11eGVyIHRvIDAuOSAoIzMxODg0NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvbWF0cm9za2EvTWFrZWZpbGUuYW06CgkgICogZ3N0L21hdHJvc2thL2VibWwtaWRzLmg6CgkgICogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSAgKiBnc3QvbWF0cm9za2EvZWJtbC13cml0ZS5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaDoKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtbXV4LmM6CgkgICogZ3N0L21hdHJvc2thL21hdHJvc2thLW11eC5oOgoJICAqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS5jOiAocGx1Z2luX2luaXQpOgoJICBQb3J0IG1hdHJvc2thIG11eGVyIHRvIDAuOSAoIzMxODg0NykuCgoyMDA1LTEwLTEzIDE4OjU5OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IEZpeCBoYW5kbGluZyBvZiBHU1RfVEFHX0RBVEUsIHdoaWNoIGlzIG5vdyBvZiBHU1RfVFlQRV9EQVRFOyB1c2UgR1NUX1JFQURfVUlOVDMyX0xFKCkgYW5kIGZyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiAoZ3N0X3NwZWV4ZW5jX2dldF90YWdfdmFsdWUpLAoJICAoY29tbWVudF9pbml0KSwgKGNvbW1lbnRfYWRkKToKCSAgRml4IGhhbmRsaW5nIG9mIEdTVF9UQUdfREFURSwgd2hpY2ggaXMgbm93IG9mIEdTVF9UWVBFX0RBVEU7CgkgIHVzZSBHU1RfUkVBRF9VSU5UMzJfTEUoKSBhbmQgZnJpZW5kcyByYXRoZXIgdGhhbiB0aGUgcHJpdmF0ZQoJICBpbXBsZW1lbnRhdGlvbiBvZiB0aG9zZSBzYW1lIG1hY3Jvcy4KCjIwMDUtMTAtMTMgMTY6MDE6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJICBmaXggZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3QKCjIwMDUtMTAtMTMgMTU6Mjg6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGV4YW1wbGVzL3N0YXRzL21wMm9nZy5jOiBtb3JlIHR5cG8gZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvc3RhdHMvbXAyb2dnLmM6CgkgIG1vcmUgdHlwbyBmaXhlcwoKMjAwNS0xMC0xMiAxNDoyOTo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVuYW1lZCBHU1RfRkxBR1MgbWFjcm9zIHRvIEdTVF9PQkpFQ1RfRkxBR1MgbW92ZWQgYml0c2hpZnQgZnJvbSBtYWNybyB0byBlbnVtIGRlZmluaXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvaW5kZXhpbmcvaW5kZXhtcGVnLmM6IChtYWluKToKCSAgKiBleHQvYXJ0c2QvZ3N0YXJ0c2RzaW5rLmM6IChnc3RfYXJ0c2RzaW5rX29wZW5fYXVkaW8pLAoJICAoZ3N0X2FydHNkc2lua19jbG9zZV9hdWRpbyksIChnc3RfYXJ0c2RzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2FydHNkL2dzdGFydHNkc2luay5oOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZwYXJzZS5jOiAoZ3N0X2FmcGFyc2Vfb3Blbl9maWxlKSwKCSAgKGdzdF9hZnBhcnNlX2Nsb3NlX2ZpbGUpOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZwYXJzZS5oOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzaW5rLmM6IChnc3RfYWZzaW5rX29wZW5fZmlsZSksCgkgIChnc3RfYWZzaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2Fmc2lua19jaGFpbiksCgkgIChnc3RfYWZzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2F1ZGlvZmlsZS9nc3RhZnNpbmsuaDoKCSAgKiBleHQvYXVkaW9maWxlL2dzdGFmc3JjLmM6IChnc3RfYWZzcmNfb3Blbl9maWxlKSwKCSAgKGdzdF9hZnNyY19jbG9zZV9maWxlKSwgKGdzdF9hZnNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9hdWRpb2ZpbGUvZ3N0YWZzcmMuaDoKCSAgKiBleHQvY2RhdWRpby9nc3RjZGF1ZGlvLmM6IChnc3RfY2RhdWRpb19pbml0KToKCSAgKiBleHQvZGlyZWN0ZmIvZGlyZWN0ZmJ2aWRlb3NpbmsuYzogKGdzdF9kaXJlY3RmYnZpZGVvc2lua19pbml0KToKCSAgKiBleHQvZHRzL2dzdGR0c2RlYy5jOiAoZ3N0X2R0c2RlY19pbml0KToKCSAgKiBleHQvamFjay9nc3RqYWNrLmg6CgkgICogZXh0L2phY2svZ3N0amFja2Jpbi5jOiAoZ3N0X2phY2tfYmluX2luaXQpLAoJICAoZ3N0X2phY2tfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L211c2VwYWNrL2dzdG11c2VwYWNrZGVjLmM6IChnc3RfbXVzZXBhY2tkZWNfaW5pdCk6CgkgICogZXh0L211c2ljYnJhaW56L2dzdHRybS5jOiAoZ3N0X211c2ljYnJhaW56X2luaXQpOgoJICAqIGV4dC9uYXMvbmFzc2luay5jOiAoZ3N0X25hc3Npbmtfb3Blbl9hdWRpbyksCgkgIChnc3RfbmFzc2lua19jbG9zZV9hdWRpbyksIChnc3RfbmFzc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGV4dC9uYXMvbmFzc2luay5oOgoJICAqIGV4dC9wb2x5cC9wb2x5cHNpbmsuYzogKGdzdF9wb2x5cHNpbmtfaW5pdCk6CgkgICogZXh0L3NkbC9zZGx2aWRlb3NpbmsuYzogKGdzdF9zZGx2aWRlb3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBleHQvc2RsL3NkbHZpZGVvc2luay5oOgoJICAqIGV4dC9zbW9vdGh3YXZlL2dzdHNtb290aHdhdmUuYzogKGdzdF9zbW9vdGh3YXZlX2luaXQpOgoJICAqIGV4dC9zbmRmaWxlL2dzdHNmLmM6IChnc3Rfc2Zfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9zZl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3NmX3JlbGVhc2VfcmVxdWVzdF9wYWQpLAoJICAoZ3N0X3NmX29wZW5fZmlsZSksIChnc3Rfc2ZfY2xvc2VfZmlsZSksIChnc3Rfc2ZfbG9vcCk6CgkgICogZXh0L3NuZGZpbGUvZ3N0c2YuaDoKCSAgKiBleHQvc3dmZGVjL2dzdHN3ZmRlYy5jOiAoZ3N0X3N3ZmRlY19pbml0KToKCSAgKiBleHQvdGFya2luL2dzdHRhcmtpbmRlYy5jOiAoZ3N0X3RhcmtpbmRlY19pbml0KToKCSAgKiBnc3QvYXBldGFnL2FwZWRlbXV4LmM6IChnc3RfYXBlX2RlbXV4X2luaXQpOgoJICAqIGdzdC9jZHhhcGFyc2UvZ3N0Y2R4YXBhcnNlLmM6IChnc3RfY2R4YXBhcnNlX2luaXQpOgoJICAqIGdzdC9jZHhhcGFyc2UvZ3N0Y2R4YXN0cmlwLmM6IChnc3RfY2R4YXN0cmlwX2luaXQpOgoJICAqIGdzdC9mZXN0aXZhbC9nc3RmZXN0aXZhbC5jOiAoZ3N0X2Zlc3RpdmFsX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Zlc3RpdmFsL2dzdGZlc3RpdmFsLmg6CgkgICogZ3N0L21wZWcyc3ViL2dzdG1wZWcyc3VidC5jOiAoZ3N0X21wZWcyc3VidF9pbml0KToKCSAgKiBnc3QvbXVsdGlmaWxlc2luay9nc3RtdWx0aWZpbGVzaW5rLmM6IChnc3RfbXVsdGlmaWxlc2lua19pbml0KSwKCSAgKGdzdF9tdWx0aWZpbGVzaW5rX3NldF9sb2NhdGlvbiksIChnc3RfbXVsdGlmaWxlc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X211bHRpZmlsZXNpbmtfY2xvc2VfZmlsZSksIChnc3RfbXVsdGlmaWxlc2lua19uZXh0X2ZpbGUpLAoJICAoZ3N0X211bHRpZmlsZXNpbmtfcGFkX3F1ZXJ5KSwgKGdzdF9tdWx0aWZpbGVzaW5rX2hhbmRsZV9ldmVudCksCgkgIChnc3RfbXVsdGlmaWxlc2lua19jaGFpbiksIChnc3RfbXVsdGlmaWxlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9tdWx0aWZpbGVzaW5rL2dzdG11bHRpZmlsZXNpbmsuaDoKCSAgKiBnc3QvdmlkZW9kcm9wL2dzdHZpZGVvZHJvcC5jOiAoZ3N0X3ZpZGVvZHJvcF9pbml0KToKCSAgKiBzeXMvY2Ryb20vZ3N0Y2RwbGF5ZXIuYzogKGNkcGxheWVyX2luaXQpOgoJICAqIHN5cy9keHIzL2R4cjNhdWRpb3NpbmsuYzogKGR4cjNhdWRpb3NpbmtfaW5pdCksCgkgIChkeHIzYXVkaW9zaW5rX29wZW4pLCAoZHhyM2F1ZGlvc2lua19jbG9zZSksCgkgIChkeHIzYXVkaW9zaW5rX2NoYWluX3BjbSksIChkeHIzYXVkaW9zaW5rX2NoYWluX2FjMyksCgkgIChkeHIzYXVkaW9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogc3lzL2R4cjMvZHhyM2F1ZGlvc2luay5oOgoJICAqIHN5cy9keHIzL2R4cjNzcHVzaW5rLmM6IChkeHIzc3B1c2lua19pbml0KSwgKGR4cjNzcHVzaW5rX29wZW4pLAoJICAoZHhyM3NwdXNpbmtfY2xvc2UpLCAoZHhyM3NwdXNpbmtfY2hhaW4pLAoJICAoZHhyM3NwdXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBzeXMvZHhyMy9keHIzc3B1c2luay5oOgoJICAqIHN5cy9keHIzL2R4cjN2aWRlb3NpbmsuYzogKGR4cjN2aWRlb3NpbmtfaW5pdCksCgkgIChkeHIzdmlkZW9zaW5rX29wZW4pLCAoZHhyM3ZpZGVvc2lua19jbG9zZSksCgkgIChkeHIzdmlkZW9zaW5rX3dyaXRlX2RhdGEpLCAoZHhyM3ZpZGVvc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIHN5cy9keHIzL2R4cjN2aWRlb3NpbmsuaDoKCSAgKiBzeXMvZ2xzaW5rL2dsaW1hZ2VzaW5rLmM6IChnc3RfZ2xpbWFnZXNpbmtfaW5pdCk6CgkgICogc3lzL3FjYW0vZ3N0cWNhbXNyYy5jOiAoZ3N0X3FjYW1zcmNfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9xY2Ftc3JjX29wZW4pLCAoZ3N0X3FjYW1zcmNfY2xvc2UpOgoJICAqIHN5cy9xY2FtL2dzdHFjYW1zcmMuaDoKCSAgKiBzeXMvdjRsMi9nc3R2NGwyc3JjLmM6IChnc3RfdjRsMnNyY19pbml0KToKCSAgKiBzeXMvdmNkL3ZjZHNyYy5jOiAoZ3N0X3ZjZHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X3ZjZHNyY19nZXQpLAoJICAoZ3N0X3ZjZHNyY19vcGVuX2ZpbGUpLCAoZ3N0X3ZjZHNyY19jbG9zZV9maWxlKSwKCSAgKGdzdF92Y2RzcmNfY2hhbmdlX3N0YXRlKSwgKGdzdF92Y2RzcmNfcmVjYWxjdWxhdGUpOgoJICAqIHN5cy92Y2QvdmNkc3JjLmg6CgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTCgkgIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgoyMDA1LTEwLTEyIDE0OjI5OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICByZW5hbWVkIEdTVF9GTEFHUyBtYWNyb3MgdG8gR1NUX09CSkVDVF9GTEFHUyBtb3ZlZCBiaXRzaGlmdCBmcm9tIG1hY3JvIHRvIGVudW0gZGVmaW5pdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9pbmRleGluZy9pbmRleG1wZWcuYzogKG1haW4pOgoJICAqIGV4dC9lc2QvZXNkbW9uLmM6IChnc3RfZXNkbW9uX29wZW5fYXVkaW8pLAoJICAoZ3N0X2VzZG1vbl9jbG9zZV9hdWRpbyksIChnc3RfZXNkbW9uX2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2VzZC9lc2Rtb24uaDoKCSAgKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGtwaXhidWYuYzogKGdzdF9nZGtfcGl4YnVmX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRvdmVybGF5X2luaXQpOgoJICAqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG9hdWRpb3NpbmsuYzogKGdzdF9hdXRvX2F1ZGlvX3NpbmtfaW5pdCk6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b3ZpZGVvc2luay5jOiAoZ3N0X2F1dG9fdmlkZW9fc2lua19pbml0KToKCSAgKiBnc3QvYXZpL2dzdGF2aW11eC5jOiAoZ3N0X2F2aW11eF9pbml0KToKCSAgKiBnc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYzogKGdzdF9tYXRyb3NrYV9kZW11eF9pbml0KToKCSAgKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydGRlbXV4LmM6IChnc3RfbXVsdGlwYXJ0X2RlbXV4X2luaXQpOgoJICAqIGdzdC9tdWx0aXBhcnQvbXVsdGlwYXJ0bXV4LmM6IChnc3RfbXVsdGlwYXJ0X211eF9pbml0KToKCSAgKiBnc3Qvb2xkY29yZS9nc3RtdWx0aWZpbGVzcmMuYzogKGdzdF9tdWx0aWZpbGVzcmNfaW5pdCksCgkgIChnc3RfbXVsdGlmaWxlc3JjX2dldCksIChnc3RfbXVsdGlmaWxlc3JjX29wZW5fZmlsZSksCgkgIChnc3RfbXVsdGlmaWxlc3JjX2Nsb3NlX2ZpbGUpLCAoZ3N0X211bHRpZmlsZXNyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9vbGRjb3JlL2dzdG11bHRpZmlsZXNyYy5oOgoJICAqIGdzdC9vbGRjb3JlL2dzdHBpcGVmaWx0ZXIuYzogKGdzdF9waXBlZmlsdGVyX2luaXQpLAoJICAoZ3N0X3BpcGVmaWx0ZXJfb3Blbl9maWxlKSwgKGdzdF9waXBlZmlsdGVyX2Nsb3NlX2ZpbGUpLAoJICAoZ3N0X3BpcGVmaWx0ZXJfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3Qvb2xkY29yZS9nc3RwaXBlZmlsdGVyLmg6CgkgICogZ3N0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5jOiAoZ3N0X3Ntb290aHdhdmVfaW5pdCk6CgkgICogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOiAoZ3N0X3ZpZGVvbWl4ZXJfaW5pdCk6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc2luay5jOiAoZ3N0X29zeGF1ZGlvc2lua19pbml0KToKCSAgKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9zaW5rLmg6CgkgICogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmg6CgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTCgkgIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgoyMDA1LTEwLTEyIDAzOjE0OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGV4dC9NYWtlZmlsZS5hbToKCSAgZGlzdCBjYWlybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzdCBjYWlybwoKMjAwNS0xMC0xMiAwMzoxMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBleHQvOiB1cGRhdGUgb2YgY2Fpcm8tYmFzZWQgdGltZW92ZXJsYXkgdG8gMS4wIENhaXJvIEFQSSBkb2Vzbid0IHdvcmsgeWV0IGZvciByZXNpemluZyBvZiBvdXRwdXQgc2luawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleHQvTWFrZWZpbGUuYW06CgkgICogZXh0L2NhaXJvL01ha2VmaWxlLmFtOgoJICAqIGV4dC9jYWlyby9nc3RjYWlyby5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRvdmVybGF5X2NoYW5nZV9zdGF0ZSk6CgkgICogZXh0L2NhaXJvL2dzdHRpbWVvdmVybGF5LmM6IChnc3RfdGltZW92ZXJsYXlfdXBkYXRlX2ZvbnRfaGVpZ2h0KSwKCSAgKGdzdF90aW1lb3ZlcmxheV9zZXR1cCksIChnc3RfdGltZW92ZXJsYXlfcGxhbmFyNDExKToKCSAgKiBleHQvY2Fpcm8vZ3N0dGltZW92ZXJsYXkuaDoKCSAgdXBkYXRlIG9mIGNhaXJvLWJhc2VkIHRpbWVvdmVybGF5IHRvIDEuMCBDYWlybyBBUEkKCSAgZG9lc24ndCB3b3JrIHlldCBmb3IgcmVzaXppbmcgb2Ygb3V0cHV0IHNpbmsKCjIwMDUtMTAtMTIgMDM6MDc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBkb24ndCBidWlsZCBjaGVja3MgaWYgd2UgZG9uJ3QgaGF2ZSBjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgYnVpbGQgY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgY2hlY2sKCjIwMDUtMTAtMTIgMDM6MDM6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgZG9uJ3QgYnVpbGQgY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgZ3N0Y2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGJ1aWxkIGNoZWNrcyBpZiB3ZSBkb24ndCBoYXZlIGdzdGNoZWNrCgoyMDA1LTEwLTExIDE3OjM4OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IG5ld3NlZ21lbnQgQVBJIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6IChzcGVleF9kZWNfZXZlbnQpLCAoc3BlZXhfZGVjX2NoYWluKToKCSAgbmV3c2VnbWVudCBBUEkgZml4LgoKMjAwNS0xMC0xMSAxNjozNDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IG5ld3NlZ21lbnQgQVBJIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOiAoZ3N0X3F0ZGVtdXhfbG9vcF9oZWFkZXIpOgoJICAqIGdzdC90dGEvZ3N0dHRhcGFyc2UuYzogKGdzdF90dGFfcGFyc2Vfc3JjX2V2ZW50KSwKCSAgKGdzdF90dGFfcGFyc2VfcGFyc2VfaGVhZGVyKToKCSAgbmV3c2VnbWVudCBBUEkgdXBkYXRlLgoKMjAwNS0xMC0xMSAxNjozMzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIG5ld3NlZ21lbnQgQVBJIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9kdmRlbXV4X2RlbXV4X2ZyYW1lKToKCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmM6IChnc3RfZmxhY2RlY193cml0ZSk6CgkgICogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOiAoZ3N0X2F1cGFyc2VfY2hhaW4pOgoJICAqIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogKGdzdF9hdmlfZGVtdXhfc3RyZWFtX2hlYWRlciksCgkgIChnc3RfYXZpX2RlbXV4X2hhbmRsZV9zZWVrKToKCSAgKiBnc3QvZ29vbS9nc3Rnb29tLmM6IChnc3RfZ29vbV9ldmVudCk6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfc3RvcF9maWxlKToKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzogKGdzdF93YXZwYXJzZV9oYW5kbGVfc2VlayksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2hlYWRlcnMpLCAoZ3N0X3dhdnBhcnNlX3N0cmVhbV9kYXRhKSwKCSAgKGdzdF93YXZwYXJzZV9sb29wKSwgKGdzdF93YXZwYXJzZV9wYWRfY29udmVydCksCgkgIChnc3Rfd2F2cGFyc2Vfc3JjcGFkX2V2ZW50KToKCSAgbmV3c2VnbWVudCBBUEkgdXBkYXRlLgoKMjAwNS0xMC0xMSAxMDowNzozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6IFNpZ25lZG5lc3MgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOiBTaWduZWRuZXNzIGNsZWFudXBzLgoKMjAwNS0xMC0xMCAxOTo1Nzo0MCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogQ2hhbmdlTG9nOgoJKiBQT1JURURfMDk6CgkqIGV4dC9zcGVleC9NYWtlZmlsZS5hbToKCSogZXh0L3NwZWV4L2dzdHNwZWV4LmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJICBTcGVleGVuYyBwb3J0ZWQgdG8gMC45LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU3BlZXhlbmMgcG9ydGVkIHRvIDAuOS4KCjIwMDUtMTAtMTAgMTQ6MTY6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBzeXMvb3NzLzogQ2xlYW51cHMsIG1ha2UgZGV2aWNlIGNvbmZpZ3VyYWJsZSBpbiB0aGUgc2luaywgaGFuZGxlIGFuZCByZXBvcnQgZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBzeXMvb3NzL2dzdG9zc3NpbmsuYzogKGdzdF9vc3Nfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9vc3Nfc2lua19pbml0KSwgKGdzdF9vc3Nfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X29zc19zaW5rX2dldF9wcm9wZXJ0eSksIChnc3Rfb3NzX3Npbmtfb3BlbiksCgkgIChnc3Rfb3NzX3NpbmtfcHJlcGFyZSksIChnc3Rfb3NzX3NpbmtfcmVzZXQpOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5oOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc3JjLmM6IChnc3Rfb3NzX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9vc3Nfc3JjX3NldF9wcm9wZXJ0eSksIChnc3Rfb3NzX3NyY19pbml0KSwgKGdzdF9vc3Nfc3JjX29wZW4pLAoJICAoZ3N0X29zc19zcmNfcHJlcGFyZSk6CgkgIENsZWFudXBzLCBtYWtlIGRldmljZSBjb25maWd1cmFibGUgaW4gdGhlIHNpbmssIGhhbmRsZSBhbmQgcmVwb3J0CgkgIGVycm9ycy4KCjIwMDUtMTAtMTAgMTI6MzE6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBleHQvZ2NvbmYvOiBNYWtlIHN1cmUgZWxlbWVudCBpcyBOVUxMIGJlZm9yZSByZW1vdmluZyBmcm9tIHRoZSBiaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZmF1ZGlvc2luay5jOiAoZ3N0X2djb25mX2F1ZGlvX3NpbmtfcmVzZXQpOgoJICAqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc2luay5jOiAoZ3N0X2djb25mX3ZpZGVvX3NpbmtfcmVzZXQpOgoJICBNYWtlIHN1cmUgZWxlbWVudCBpcyBOVUxMIGJlZm9yZSByZW1vdmluZyBmcm9tIHRoZSBiaW4uCgoyMDA1LTEwLTA3IDE2OjI4OjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOgoJICBEb24ndCB1bnJlZiB0aGUgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIChnc3RfZHYxMzk0c3JjX2J1c19yZXNldCk6IERvbid0IHVucmVmIHRoZSBtZXNzYWdlLgoKMjAwNS0xMC0wNyAxNjoyMjo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSAgUG9zdCBhIG1lc3NhZ2Ugd2hlbiB0aGUgY2FibGUgaXMgdW5wbHVnZ2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKGdzdF9kdjEzOTRzcmNfYnVzX3Jlc2V0KTogUG9zdCBhIG1lc3NhZ2Ugd2hlbiB0aGUgY2FibGUgaXMKCSAgdW5wbHVnZ2VkLgoJICAoZ3N0X2R2MTM5NHNyY19jcmVhdGUsIGdzdF9kdjEzOTRzcmNfdW5sb2NrKTogUmVtb3ZlIHNvbWUgcHJpbnRzLgoKMjAwNS0xMC0wNyAxNToyNDoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IE1ha2UgaW50ZXJydXB0aWJsZSwgc28gaXQgd29uJ3QgYmxvY2sgZm9yZXZlciBpbiBhIHJlYWQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZXh0L3JhdzEzOTQvZ3N0ZHYxMzk0c3JjLmM6IE1ha2UgaW50ZXJydXB0aWJsZSwgc28gaXQgd29uJ3QKCSAgYmxvY2sgZm9yZXZlciBpbiBhIHJlYWQoKS4KCjIwMDUtMTAtMDcgMTM6MTc6NTMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGV4dC9yYXcxMzk0L2dzdGR2MTM5NHNyYy5jOiBDbGVhbiB1cCBmb3Igc3R5bGUgYmVmb3JlIGRvaW5nIHNvbWUgaGFja2luZy4gVGhlIG9ubHkgY2hhbmdlIHNob3VsZCBiZSB0aGF0IHRoZSBzdGF0ZSBjaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzogQ2xlYW4gdXAgZm9yIHN0eWxlIGJlZm9yZSBkb2luZyBzb21lCgkgIGhhY2tpbmcuIFRoZSBvbmx5IGNoYW5nZSBzaG91bGQgYmUgdGhhdCB0aGUgc3RhdGUgY2hhbmdlIHN0dWZmIHdhcwoJICBwdXQgaW50byBiYXNlc3JjJ3Mgc3RhcnQoKSBhbmQgc3RvcCgpIHJvdXRpbmVzLCB3aGljaCBjb2FsZXNjZXMKCSAgc29tZSBzdGVwcy4KCjIwMDUtMTAtMDcgMTE6MzA6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEFkZCBjaGVjayBmb3IgbW1hcAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBjaGVjayBmb3IgbW1hcAoJICAqIGdzdC9kZWJ1Zy9NYWtlZmlsZS5hbToKCSAgT25seSBjb21waWxlIGVmZW5jZSBwbHVnaW4gb24gc3lzdGVtcyB0aGF0IGhhdmUgbW1hcC4KCjIwMDUtMTAtMDUgMTY6MzY6NTcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCBmaWxlcwoKMjAwNS0xMC0wNSAxMTozODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9kZWJ1Zy86IFBvcnQgcHJvZ3Jlc3NyZXBvcnQsIG5hdnNlZWssIG5hdmlnYXRpb250ZXN0LCB0ZXN0c2luayBhbmQgYnJlYWtteWRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9kZWJ1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVidWcvYnJlYWtteWRhdGEuYzoKCSAgKiBnc3QvZGVidWcvZ3N0ZGVidWcuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2aWdhdGlvbnRlc3QuYzoKCSAgKiBnc3QvZGVidWcvZ3N0bmF2c2Vlay5jOgoJICAqIGdzdC9kZWJ1Zy9nc3RuYXZzZWVrLmg6CgkgICogZ3N0L2RlYnVnL3Byb2dyZXNzcmVwb3J0LmM6CgkgICogZ3N0L2RlYnVnL3Rlc3RwbHVnaW4uYzoKCSAgUG9ydCBwcm9ncmVzc3JlcG9ydCwgbmF2c2VlaywgbmF2aWdhdGlvbnRlc3QsIHRlc3RzaW5rIGFuZAoJICBicmVha215ZGF0YS4KCjIwMDUtMTAtMDUgMTE6MTU6MjMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBleHQvZHYvZ3N0ZHZkZW11eC5jOiBGaXhlcyBmb3IgYmV0dGVyIGNvbnZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L2dzdGR2ZGVtdXguYzogKGdzdF9kdmRlbXV4X3NyY19jb252ZXJ0KSwKCSAgKGdzdF9kdmRlbXV4X3NyY19xdWVyeSk6CgkgIEZpeGVzIGZvciBiZXR0ZXIgY29udmVyc2lvbgoKMjAwNS0xMC0wNCAxNzo1ODo0MCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2F1dG9kZXRlY3QvOiBTZXQgc3RhdGUgb2YgZWxlbWVudHMgdG8gTlVMTCBiZWZvcmUgcmVtb3ZpbmcgZnJvbSBiaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6IChnc3RfYXV0b19hdWRpb19zaW5rX3Jlc2V0KSwKCSAgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZmluZF9iZXN0KSwgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZGV0ZWN0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6IChnc3RfYXV0b192aWRlb19zaW5rX3Jlc2V0KSwKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfZmluZF9iZXN0KSwgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfZGV0ZWN0KToKCSAgU2V0IHN0YXRlIG9mIGVsZW1lbnRzIHRvIE5VTEwgYmVmb3JlIHJlbW92aW5nIGZyb20gYmlucy4KCSAgU2V0IHN0YXRlIG9mIHRlc3QgZWxlbWVudCB0byBOVUxMIGlmIHdlIGZhaWxlZCB0byBtb3ZlIGl0IHRvIFJFQURZCgoyMDA1LTEwLTA0IDE3OjQ0OjQzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZXh0L2R2LzogQWRkZWQgREVGQVVMVCA8PT0+IEJZVEVTLCBUSU1FIGNvbnZlcnNpb25zIG9uIHNyY3BhZCwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2R2L01ha2VmaWxlLmFtOgoJICAqIGV4dC9kdi9nc3RkdmRlbXV4LmM6IChnc3RfZHZkZW11eF9zcmNfcXVlcnkpLCAoZ3N0X2R2ZGVtdXhfc3JjX2NvbnZlcik6CgkgIEFkZGVkIERFRkFVTFQgPD09PiBCWVRFUywgVElNRSBjb252ZXJzaW9ucyBvbiBzcmNwYWQsCgkgIENvcnJlY3RlZCB0aGUgcXVlcnkgZnVuY3Rpb24gZm9yIHBvc2l0aW9uIHNvIGl0IGRvZXNuJ3QgZm9yZ2V0IHdoYXQKCSAgZm9ybWF0IHdhcyBhc2tlZCwgYW5kIGNhbGxzIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyBvbiB0aGUgY29ycmVjdCBwYWQuCgoyMDA1LTEwLTAzIDE3OjU5OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjMgPT09CgoyMDA1LTEwLTAzIDE3OjQ4OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY3MucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vb3IucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcmVsZWFzZSB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNlIHRpbWUKCjIwMDUtMTAtMDIgMjM6MDg6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGV4dC9mbGFjL2dzdGZsYWNkZWMuYyAoZ3N0X2ZsYWNkZWNfd3JpdGUpOiBEZWFsIHdpdGggcGFkX2FsbG9jIGVycm9yIHJldHVybnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTAzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYyAoZ3N0X2ZsYWNkZWNfd3JpdGUpOiBEZWFsIHdpdGggcGFkX2FsbG9jCgkgIGVycm9yIHJldHVybnMuCgoyMDA1LTEwLTAyIDE1OjMzOjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWMgKEdTVF9QTFVHSU5fTERGTEFHUyk6IENoYW5nZSB0byBiZSBsaWtlIC1iYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QTFVHSU5fTERGTEFHUyk6IENoYW5nZSB0byBiZSBsaWtlIC1iYXNlLgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzogUG9ydGVkIHRvIDAuOS4KCSAgKiBleHQvZmxhYy9nc3RmbGFjZGVjLmMgKGdzdF9mbGFjZGVjX2xvb3ApOiBIYW5kbGUgZXJyb3JzIGJldHRlci4KCSAgKiBleHQvZmxhYy9NYWtlZmlsZS5hbTogQWRkIHRoZSBHU1RfUExVR0lOU19CQVNFIGNmbGFncyBhbmQgbGlicywKCSAgYW5kIGxpbmsgdG8gZ3N0dGFnZWRpdC4gRW5hYmxlIGZsYWNlbmMuCgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOiBSZS1lbmFibGUgdGFnIHJlYWRpbmcuCgoyMDA1LTA5LTMwIDE2OjM2OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IFZhcmlvdXMgY2xhc3MgYW5kIGNhcHMgZml4ZXMgZnJvbSBBbmRyZSBNYWdhbGhhZXMgKGFuZHJ1bmtvKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmVuYy5jOiAoZ3N0X3J0cGFtcmVuY19zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmM6CgkgICogZ3N0L3J0cC9nc3RydHBoMjYzcGVuYy5jOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmVuYy5jOiAoZ3N0X3J0cG1wNHZlbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwbXA0dmVuY19wYXJzZV9kYXRhKSwgKGdzdF9ydHBtcDR2ZW5jX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X3J0cG1wNHZlbmNfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWVuYy5jOiAoZ3N0X3J0cG1wYWVuY19oYW5kbGVfYnVmZmVyKToKCSAgVmFyaW91cyBjbGFzcyBhbmQgY2FwcyBmaXhlcyBmcm9tIEFuZHJlIE1hZ2FsaGFlcyAoYW5kcnVua28pCgoyMDA1LTA5LTI5IDEzOjA4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2xldmVsL2xldmVsLWV4YW1wbGUuYzogVXBkYXRlIGZvciBuZXcgYnVzIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2xldmVsL2xldmVsLWV4YW1wbGUuYzogKG1haW4pOgoJICBVcGRhdGUgZm9yIG5ldyBidXMgQVBJLgoKMjAwNS0wOS0yOCAxMzozODowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogTm8gbmVlZCB0byB0YWtlIHN0cmVhbSBsb2NrIGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9xdGRlbXV4L3F0ZGVtdXguYzogKGdzdF9xdGRlbXV4X2xvb3BfaGVhZGVyKToKCSAgTm8gbmVlZCB0byB0YWtlIHN0cmVhbSBsb2NrIGhlcmUuCgoyMDA1LTA5LTI4IDA5OjQ1OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggdW5leHBhbmRlZCBhdXRvY29uZiBtYWNybyBHU1RfRE9DLCB3aGljaCBoYXMgYmVlbiByZW5hbWVkIHRvIEdTVF9ET0NCT09LX0NIRUNLIChzZWUgY29tbW9uL200L2dzdC1kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IHVuZXhwYW5kZWQgYXV0b2NvbmYgbWFjcm8gR1NUX0RPQywgd2hpY2ggaGFzIGJlZW4gcmVuYW1lZAoJICB0byBHU1RfRE9DQk9PS19DSEVDSyAoc2VlIGNvbW1vbi9tNC9nc3QtZG9jLm00KSAoIzMxNjIwMikuCgoyMDA1LTA5LTI3IDE1OjEyOjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgc3lzL29zcy9nc3Rvc3NzaW5rLmM6IEZpeCBwbGF5YmFjayBvZiBtb25vIHN0cmVhbXMgKGJ5dGVzX3Blcl9zYW1wbGUgc2hvdWxkIGJlIHNldCBmcm9tIHRoZSBzYW1wbGUgd2lkdGggYW5kIHRoZSBudW1iLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHN5cy9vc3MvZ3N0b3Nzc2luay5jOiAoZ3N0X29zc19zaW5rX3ByZXBhcmUpOgoJICBGaXggcGxheWJhY2sgb2YgbW9ubyBzdHJlYW1zIChieXRlc19wZXJfc2FtcGxlIHNob3VsZCBiZSBzZXQKCSAgZnJvbSB0aGUgc2FtcGxlIHdpZHRoIGFuZCB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIG5lZ290aWF0ZWQsCgkgIGFuZCBub3QganVzdCBiZSBzZXQgdG8gNCkgKCMzMTczMzgpCgoyMDA1LTA5LTI2IDE0OjU5OjEwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIGFkZCBhdXBhcnNlIHRvIHBsdWdpbnMgbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGF1cGFyc2UgdG8gcGx1Z2lucyBsaXN0CgoyMDA1LTA5LTI2IDE0OjQyOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBtcGFlbmMuYzogU2V0IGJ1ZmZlciBkdXJhdGlvbiBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZW5jLmM6IChnc3RfcnRwbXBhZW5jX2ZsdXNoKSwKCSAgKGdzdF9ydHBtcGFlbmNfaGFuZGxlX2J1ZmZlcik6CgkgIFNldCBidWZmZXIgZHVyYXRpb24gY29ycmVjdGx5LgoKMjAwNS0wOS0yNiAxMzowNjoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9hdmkvZ3N0YXZpZGVtdXguYzogRG9uJ3QgY3Jhc2ggd2hlbiBlbmNvdW50ZXJpbmcgYSBzdHJlYW0gd2l0aCBhbiB1bmtub3duIGZvdXJjYyBvciBjb2RlYyBpZC4gSW5zdGVhZCwgY3JlYXRlIGEgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYXZpL2dzdGF2aWRlbXV4LmM6IChnc3RfYXZpX2RlbXV4X2Jhc2VfaW5pdCksCgkgIChnc3RfYXZpX2RlbXV4X2NsYXNzX2luaXQpLCAoZ3N0X2F2aV9kZW11eF9wYXJzZV9zdHJlYW0pLAoJICAoZ3N0X2F2aV9kZW11eF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBjcmFzaCB3aGVuIGVuY291bnRlcmluZyBhIHN0cmVhbSB3aXRoIGFuIHVua25vd24gZm91cmNjIG9yCgkgIGNvZGVjIGlkLiBJbnN0ZWFkLCBjcmVhdGUgYSBwYWQgb2YgdHlwZSB2aWRlby94LWF2aS11bmtub3duIG9yCgkgIGF1ZGlvL3gtYXZpLXVua25vd24sIHdoaWNoIGFzIGEgc2lkZS1lZmZlY3QgYWxzbyByZXN1bHRzIGluIGxlc3MKCSAgY29uZnVzaW5nIGVycm9yIG1lc3NhZ2VzIGluIHBsYXllcnMgKCdubyBkZWNvZGVyJyB2cy4gJ25vIHN0cmVhbXMnKTsKCSAgbWlub3IgZml4ZXMgdG8gc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGFuZCBjbGFzc19pbml0IGZ1bmN0aW9uLgoKMjAwNS0wOS0yNCAxMzozNDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHNldCB1cCBwbHVnaW4gcGF0aHMgcHJvcGVybHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNldCB1cCBwbHVnaW4gcGF0aHMgcHJvcGVybHkKCjIwMDUtMDktMjQgMTM6MTA6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYXV0b2RldGVjdC86IFRoZXNlIGFyZSBzaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jOiAoZ3N0X2F1dG9fYXVkaW9fc2lua19pbml0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmM6IChnc3RfYXV0b192aWRlb19zaW5rX2luaXQpOgoJICBUaGVzZSBhcmUgc2lua3MuCgoyMDA1LTA5LTI0IDEyOjEwOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2VsZW1lbnRzL2xldmVsLmM6IGZpeCB0ZXN0IGZvciBuZXcgR3N0Q2xvY2tUaW1lIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9sZXZlbC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggdGVzdCBmb3IgbmV3IEdzdENsb2NrVGltZSB1c2UKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9pbml0KSwgKGdzdF9sZXZlbF9zZXRfY2FwcyksCgkgIChnc3RfbGV2ZWxfdHJhbnNmb3JtX2lwKToKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSAgZml4IHVwIHRoZSBkZWNheSBwZWFrLCBlbnN1cmluZyB0aGUgZGVjYXkgcGVhayBpcyBuZXZlciBsb3dlcgoJICB0aGFuIHRoZSBwZWFrIGZvciB0aGF0IGludGVydmFsCgoyMDA1LTA5LTIzIDE4OjIzOjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkgIHVwZGF0aW5nIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0aW5nIGRvY3MKCjIwMDUtMDktMjMgMTg6MTU6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSogY29tbW9uOgoJKiBnc3QvbGV2ZWwvTWFrZWZpbGUuYW06CgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuaDoKCSogZ3N0L2xldmVsL2xldmVsLWV4YW1wbGUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSAgY29udmVydCB0byB1c2luZyBHc3RDbG9ja1RpbWUgZm9yIGFsbCB0aW1lIHZhbHVlcywgZmluYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbnZlcnQgdG8gdXNpbmcgR3N0Q2xvY2tUaW1lIGZvciBhbGwgdGltZSB2YWx1ZXMsIGZpbmFsbHkuCgoyMDA1LTA5LTIzIDE1OjAxOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICBmaXggYnVpbGQgb2YgZ29vbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJ1aWxkIG9mIGdvb20KCjIwMDUtMDktMjMgMTQ6MjA6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzoKCSAgd2UgaGFuZGxlIG1vcmUgdGhhbiB0d28gY2hhbm5lbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdlIGhhbmRsZSBtb3JlIHRoYW4gdHdvIGNoYW5uZWxzCgoyMDA1LTA5LTIzIDA0OjIzOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBleHQvY2Fpcm8vTWFrZWZpbGUuYW06CgkqIGV4dC9kdi9NYWtlZmlsZS5hbToKCSogZXh0L2VzZC9NYWtlZmlsZS5hbToKCSogZXh0L2ZsYWMvTWFrZWZpbGUuYW06CgkqIGV4dC9nY29uZi9NYWtlZmlsZS5hbToKCSogZXh0L2dka19waXhidWYvTWFrZWZpbGUuYW06CgkqIGV4dC9qcGVnL01ha2VmaWxlLmFtOgoJKiBleHQvbGFkc3BhL01ha2VmaWxlLmFtOgoJKiBleHQvbGliY2FjYS9NYWtlZmlsZS5hbToKCSogZXh0L2xpYm1uZy9NYWtlZmlsZS5hbToKCSogZXh0L2xpYnBuZy9NYWtlZmlsZS5hbToKCSogZXh0L21pa21vZC9NYWtlZmlsZS5hbToKCSogZXh0L3BhbmdvL01ha2VmaWxlLmFtOgoJKiBleHQvcmF3MTM5NC9NYWtlZmlsZS5hbToKCSogZXh0L3Nob3V0Mi9NYWtlZmlsZS5hbToKCSogZXh0L3NwZWV4L01ha2VmaWxlLmFtOgoJKiBnc3QvYWxwaGEvTWFrZWZpbGUuYW06CgkqIGdzdC9hdXBhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L01ha2VmaWxlLmFtOgoJKiBnc3QvYXZpL01ha2VmaWxlLmFtOgoJKiBnc3QvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkqIGdzdC9lZmZlY3R2L01ha2VmaWxlLmFtOgoJKiBnc3QvZmx4L01ha2VmaWxlLmFtOgoJKiBnc3QvZ29vbS9NYWtlZmlsZS5hbToKCSogZ3N0L2xhdy9NYWtlZmlsZS5hbToKCSogZ3N0L21hdHJvc2thL01ha2VmaWxlLmFtOgoJKiBnc3QvbWVkaWFuL01ha2VmaWxlLmFtOgoJKiBnc3QvbW9ub3Njb3BlL01ha2VmaWxlLmFtOgoJKiBnc3QvbXVsdGlwYXJ0L01ha2VmaWxlLmFtOgoJKiBnc3Qvb2xkY29yZS9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0c3AvTWFrZWZpbGUuYW06CgkqIGdzdC9zbW9vdGh3YXZlL01ha2VmaWxlLmFtOgoJKiBnc3Qvc21wdGUvTWFrZWZpbGUuYW06CgkqIGdzdC92aWRlb2JveC9NYWtlZmlsZS5hbToKCSogZ3N0L3ZpZGVvZmlsdGVyL01ha2VmaWxlLmFtOgoJKiBnc3QvdmlkZW9taXhlci9NYWtlZmlsZS5hbToKCSogZ3N0L3dhdmVuYy9NYWtlZmlsZS5hbToKCSogZ3N0L3dhdnBhcnNlL01ha2VmaWxlLmFtOgoJKiBzeXMvb3NzL01ha2VmaWxlLmFtOgoJKiBzeXMvb3N4YXVkaW8vTWFrZWZpbGUuYW06CgkgIGZpeCBidWlsZCBhbmQgdXNlIG9mIEdTVF9MSUJTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnVpbGQgYW5kIHVzZSBvZiBHU1RfTElCUwoKMjAwNS0wOS0yMiAyMjozODo0OCArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSogQ2hhbmdlTG9nOgoJKiBQT1JURURfMDk6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXVwYXJzZS9nc3RhdXBhcnNlLmg6CgkgIEF1cGFyc2UgcG9ydGVkIHRvIDAuOS4gVGVzdGVkIHdpdGggZmlsZXNyYyAhIGF1cGFyc2UgISBvc3NzaW5rIGFuZCBhbHNhc2luawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQXVwYXJzZSBwb3J0ZWQgdG8gMC45LiBUZXN0ZWQgd2l0aCBmaWxlc3JjICEgYXVwYXJzZSAhIG9zc3NpbmsgYW5kIGFsc2FzaW5rCgoyMDA1LTA5LTIyIDE0OjEzOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IFVzZSBpc19maWxsZWQgdG8gYm90aCBjaGVjayBNVFUgYW5kIG1heC1wdGltZSBvZiBiYXNlIGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL1RPRE86CgkgICogZ3N0L3J0cC9nc3RydHBkZWMuYzogKGdzdF9ydHBkZWNfZ2V0Y2Fwcyk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZW5jLmM6IChnc3RfcnRwbXA0dmVuY19jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBtcDR2ZW5jX3BhcnNlX2RhdGEpLCAoZ3N0X3J0cG1wNHZlbmNfaGFuZGxlX2J1ZmZlciksCgkgIChnc3RfcnRwbXA0dmVuY19zZXRfcHJvcGVydHkpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmVuYy5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZW5jLmM6IChnc3RfcnRwbXBhZW5jX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZW5jLmg6CgkgIFVzZSBpc19maWxsZWQgdG8gYm90aCBjaGVjayBNVFUgYW5kIG1heC1wdGltZSBvZiBiYXNlIGNsYXNzLgoKMjAwNS0wOS0yMiAxMToyODoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwbXA0dmVuYy5jOiBEb24ndCBmcmFnbWVudCBwYWNrZXRzIHdpdGggbXVsdGlwbGUgZnJhbWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZlbmMuYzogKGdzdF9ydHBtcDR2ZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cG1wNHZlbmNfcGFyc2VfZGF0YSksIChnc3RfcnRwbXA0dmVuY19oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9ydHBtcDR2ZW5jX3NldF9wcm9wZXJ0eSk6CgkgIERvbid0IGZyYWdtZW50IHBhY2tldHMgd2l0aCBtdWx0aXBsZSBmcmFtZXMuCgoyMDA1LTA5LTIyIDEwOjM5OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC86IFJlbW92ZSBnX3ByaW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL1RPRE86CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVjLmM6IChnc3RfcnRwbXA0dmRlY19zZXRjYXBzKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZlbmMuYzogKGdzdF9ydHBtcDR2ZW5jX2NsYXNzX2luaXQpLAoJICAoZ3N0X3J0cG1wNHZlbmNfaW5pdCksIChnc3RfcnRwbXA0dmVuY19wYXJzZV9kYXRhKSwKCSAgKGdzdF9ydHBtcDR2ZW5jX2hhbmRsZV9idWZmZXIpLCAoZ3N0X3J0cG1wNHZlbmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9ydHBtcDR2ZW5jX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZW5jLmg6CgkgIFJlbW92ZSBnX3ByaW50LgoJICBVcGRhdGUgVE9ETwoJICBNYWtlIHBheWxvYWQgZW5jb2RlciBhIGJpdCBzbWFydGVyIGFuZCBtb3JlIGNvcnJlY3Qgd2l0aAoJICB0aW1lc3RhbXBzLgoJICBBZGRlZCBvcHRpb24gaW4gcGF5bG9hZGVyIHRvIGluY2x1ZGUgY29uZmlnIHN0cmluZyBpbi1iYW5kLgoKMjAwNS0wOS0yMSAxOTo0MTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogU3RyaXAgc3BhY2VzIGZvciBrZXkvdmFsdWUgcGFpcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX3BhcnNlX3J0cG1hcCksCgkgIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwgKGdzdF9ydHNwc3JjX3N0cmVhbV9zZXR1cF9ydHApLAoJICAoZ3N0X3J0c3BzcmNfc2VuZCk6CgkgIFN0cmlwIHNwYWNlcyBmb3Iga2V5L3ZhbHVlIHBhaXJzLgoKMjAwNS0wOS0yMSAxNzo1MzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogTW9yZSBTRFAgcGFyc2luZyBhbmQgY2FwcyBzZXR0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRzcC9nc3RydHNwc3JjLmM6IChnc3RfcnRzcHNyY19wYXJzZV9ydHBtYXApLAoJICAoZ3N0X3J0c3BzcmNfbWVkaWFfdG9fY2FwcyksIChnc3RfcnRzcHNyY19zdHJlYW1fc2V0dXBfcnRwKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9jb25maWd1cmVfdHJhbnNwb3J0KSwgKGdzdF9ydHNwc3JjX3NlbmQpLAoJICAoZ3N0X3J0c3BzcmNfY2hhbmdlX3N0YXRlKToKCSAgTW9yZSBTRFAgcGFyc2luZyBhbmQgY2FwcyBzZXR0aW5nLgoJICBEbyBOT19QUkVST0xMIGRpZmZlcmVudGx5LgoJICBhZGQgcGFkcyBvbmx5IGFmdGVyIG5lZ290aWF0ZWQuCgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfdWRwc3JjX2dldGNhcHMpOgoJICBJbXBsZW1lbnQgdGhlIGdldGNhcHMgZnVuY3Rpb24uCgoyMDA1LTA5LTIxIDE3OjUwOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0cC9nc3RydHBhbXJkZWMuYzogSGFuZGxlIG11bHRpcGxlIEFNciBwYWNrZXRzIHBlciBwYXlsb2FkLiBIYW5kbGUgQ1JDIGFuZCBwYXJzZSBJTEwvSUxQLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmRlYy5jOiAoZ3N0X3J0cGFtcmRlY19zaW5rX3NldGNhcHMpLAoJICAoZ3N0X3J0cGFtcmRlY19jaGFpbik6CgkgIEhhbmRsZSBtdWx0aXBsZSBBTXIgcGFja2V0cyBwZXIgcGF5bG9hZC4gSGFuZGxlIENSQyBhbmQKCSAgcGFyc2UgSUxML0lMUC4KCSAgKiBnc3QvcnRwL2dzdHJ0cGFtcmVuYy5jOiAoZ3N0X3J0cGFtcmVuY19zZXRjYXBzKToKCSAgTWFrZSBjYXBzIHBhcmFtcyBzdHJpbmdzIGZvciBlYXN5IFNEUCBtYXBwaW5nLgoJICAqIGdzdC9ydHAvZ3N0cnRwZGVjLmM6IChnc3RfcnRwZGVjX2luaXQpLCAoZ3N0X3J0cGRlY19nZXRjYXBzKToKCSAgSGFuZGxlIGNhcHNuZWdvIGJldHRlci4KCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZWMuYzogKGdzdF9ydHBtcDR2ZGVjX3NldGNhcHMpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmVuYy5jOiAoZ3N0X3J0cG1wNHZlbmNfbmV3X2NhcHMpOgoJICBHZW5lcmF0ZSBhbmQgcGFyc2UgY29uZmlnIHN0cmluZyBpbiB0aGUgY2Fwcy4KCjIwMDUtMDktMjEgMTI6MTk6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwL1JFQURNRTogVXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL1JFQURNRToKCSAgVXBkYXRlIFJFQURNRQoJICAqIGdzdC9ydHAvZ3N0cnRwYW1yZGVjLmM6IChnc3RfcnRwYW1yZGVjX3Npbmtfc2V0Y2Fwcyk6CgkgIE1ha2UgZXh0cmEgcGFyYW1zIGFzIHN0cmluZ3MuCgkgICogZ3N0L3J0c3AvZ3N0cnRzcHNyYy5jOiAoZ3N0X3J0c3BzcmNfc2V0X3N0YXRlKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cG1hcCksIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9zZXR1cF9ydHApLCAoZ3N0X3J0c3BzcmNfc2VuZCk6CgkgIE1ha2Ugc3RhdGUgY2hhbmdlIHJldHVybiBOT19QUkVST0xMIGFzIHRoaXMgaXMgYSBsaXZlCgkgIHNvdXJjZS4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19zZXRfcHJvcGVydHkpOgoJICBEb24ndCB1bnJlZiBvbGQgY2FwcyB3aGVuIE5VTEwuCgoyMDA1LTA5LTIwIDE3OjM1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3J0c3AvOiBBZGQgVVJJIGhhbmRsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzogKGdzdF9ydHNwc3JjX2dldF90eXBlKSwKCSAgKGdzdF9ydHNwc3JjX3BhcnNlX3J0cG1hcCksIChnc3RfcnRzcHNyY19tZWRpYV90b19jYXBzKSwKCSAgKGdzdF9ydHNwc3JjX3N0cmVhbV9zZXR1cF9ydHApLCAoZ3N0X3J0c3BzcmNfc2VuZCksCgkgIChnc3RfcnRzcHNyY19vcGVuKSwgKGdzdF9ydHNwc3JjX3VyaV9nZXRfdHlwZSksCgkgIChnc3RfcnRzcHNyY191cmlfZ2V0X3Byb3RvY29scyksIChnc3RfcnRzcHNyY191cmlfZ2V0X3VyaSksCgkgIChnc3RfcnRzcHNyY191cmlfc2V0X3VyaSksIChnc3RfcnRzcHNyY191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBnc3QvcnRzcC9zZHBtZXNzYWdlLmM6IChzZHBfbWVkaWFfZ2V0X2Zvcm1hdCk6CgkgICogZ3N0L3J0c3Avc2RwbWVzc2FnZS5oOgoJICBBZGQgVVJJIGhhbmRsZXIuCgkgIFBhcnNlIFNEUCBhbmQgY3JlYXRlIGNhcHMuCgoyMDA1LTA5LTIwIDE3OjE5OjQzICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIG1vcmUgc3BlYyBmaWxlIGZpeG9yaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIHNwZWMgZmlsZSBmaXhvcmluZwoKMjAwNS0wOS0yMCAxNzowNDozMyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0LXBsdWdpbnMtZ29vZC5zcGVjLmluOgoJKiBnc3QtcGx1Z2lucy5zcGVjLmluOgoJICBmaXggc3BlYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHNwZWMgZmlsZXMKCjIwMDUtMDktMjAgMTA6NTE6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3J0cC9SRUFETUU6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21lbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2cGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFwYXkuYzoKCSAgZG9uJ3QgdXNlIHVuZGVyc2NvcmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB1c2UgdW5kZXJzY29yZXMKCjIwMDUtMDktMjAgMDc6MzA6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9hbHBoYS9nc3RhbHBoYS5jOiBmaXggZWxlbWVudCBkZXNjcmlwdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSAgZml4IGVsZW1lbnQgZGVzY3JpcHRpb24KCjIwMDUtMDktMTkgMTc6NTc6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5wcmVyZXF1aXNpdGVzOgoJICBwcmVyZXFzIGFzIHdlbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlcXMgYXMgd2VsbAoKMjAwNS0wOS0xOSAxNzo1Mzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHM6CgkgIGNvbW1pdCByZXN1bHQgb2Ygc2Nhbm9iaiBzdGVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgcmVzdWx0IG9mIHNjYW5vYmogc3RlcAoKMjAwNS0wOS0xOSAxNzowMzo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZWMuYzogRG9uJ3QgY2hlY2sgcGF5bG9hZCBmb3Igbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVjLmM6IChnc3RfcnRwaDI2M3BkZWNfY2hhaW4pOgoJICBEb24ndCBjaGVjayBwYXlsb2FkIGZvciBub3cuCgoyMDA1LTA5LTE5IDE2OjQzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgY2hlY2stdmFsZ3JpbmQgdGFyZ2V0CgoyMDA1LTA5LTE5IDE2OjI2OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3dhdnBhcnNlL2dzdHdhdnBhcnNlLio6IEZpeCB3YXZwYXJzZSBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC93YXZwYXJzZS9nc3R3YXZwYXJzZS5jOiAoZ3N0X3dhdnBhcnNlX3Jlc2V0KSwKCSAgKGdzdF93YXZwYXJzZV9pbml0KSwgKGdzdF93YXZwYXJzZV9wYXJzZV9maWxlX2hlYWRlciksCgkgIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2luaXQpLCAoZ3N0X3dhdnBhcnNlX2hhbmRsZV9zZWVrKSwKCSAgKGdzdF93YXZwYXJzZV9zdHJlYW1faGVhZGVycyksIChnc3Rfd2F2cGFyc2Vfc3RyZWFtX2RhdGEpLAoJICAoZ3N0X3dhdnBhcnNlX2xvb3ApLCAoZ3N0X3dhdnBhcnNlX3BhZF9jb252ZXJ0KSwKCSAgKGdzdF93YXZwYXJzZV9wYWRfcXVlcnkpLCAoZ3N0X3dhdnBhcnNlX3NyY3BhZF9ldmVudCksCgkgIChnc3Rfd2F2cGFyc2VfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuaDoKCSAgRml4IHdhdnBhcnNlIHNvbWUgbW9yZS4KCjIwMDUtMDktMTkgMTE6NDg6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9lbGVtZW50cy9sZXZlbC5jOiBGaXggZm9yIGJ1cyBBUEkgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9lbGVtZW50cy9sZXZlbC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGaXggZm9yIGJ1cyBBUEkgY2hhbmdlLgoKMjAwNS0wOS0xOSAxMTozODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9sZXZlbC9sZXZlbC1leGFtcGxlLmM6IEZpeCBmb3IgbmV3IGJ1cyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9sZXZlbC9sZXZlbC1leGFtcGxlLmM6IChtYWluKToKCSAgRml4IGZvciBuZXcgYnVzIEFQSS4KCSAgKiBnc3QvdWRwL2dzdHVkcHNyYy5jOiAoZ3N0X3VkcHNyY19zZXRfcHJvcGVydHkpOgoJICBTZXQgY2FwcyBvbiBwYWRzLgoKMjAwNS0wOS0xOSAxMTowNjowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZGVidWcvTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgZmxhZ3MgZm9yIHVuYnVpbHQgcGx1Z2lucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzYWJsZSBmbGFncyBmb3IgdW5idWlsdCBwbHVnaW5zCgoyMDA1LTA5LTE5IDA4OjIxOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9wbHVnaW5zL3NjYW5vYmotYnVpbGQuc3RhbXA6CgkgIG5vcm1hbCBidWlsZHMgc2hvdWxkbid0IHNjYW4gZ29iamVjdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG5vcm1hbCBidWlsZHMgc2hvdWxkbid0IHNjYW4gZ29iamVjdHMKCjIwMDUtMDktMTYgMDA6Mzg6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBnc3QtcmVnaXN0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBnc3QtcmVnaXN0ZXIKCjIwMDUtMDktMTUgMTM6NTc6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZ3N0L3J0cC9NYWtlZmlsZS5hbToKCSogZ3N0L3J0cC9SRUFETUU6CgkqIGdzdC9ydHAvZ3N0cnRwLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJlbmMuaDoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBhbXJwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWRlcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtZW5jLmg6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGFyc2UuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21wYXJzZS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBheS5oOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BlbmMuaDoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGgyNjNwcGF5Lmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dmRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBtcDR2ZW5jLmg6CgkqIGdzdC9ydHAvZ3N0cnRwbXA0dnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wNHZwYXkuaDoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBtcGFkZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWVuYy5oOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYXBheS5oOgoJICBVcGRhdGVzIHRvIHBheWxvYWRlci9kZXBheWxvYWRlcnMsIG1ha2UgcGF5bG9hZGVycyB1c2UgdGhlIGJhc2UgY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZXMgdG8gcGF5bG9hZGVyL2RlcGF5bG9hZGVycywgbWFrZSBwYXlsb2FkZXJzIHVzZQoJICB0aGUgYmFzZSBjbGFzc2VzLgoJICBVcGRhdGVkIFJFQURNRSB3aXRoIHN1Z2dlc3RlZCBSVFAgY2FwcyBhbmQgaG93IHRvIGNvbnZlcnQKCSAgdG8vZnJvbSBTRFAuCgkgIEFkZGVkIGNvbmZpZyBkZXNjcmlwdG9yIGluIG1wNHYgcGF5bG9hZGVyLgoKMjAwNS0wOS0xNSAxMDo0Nzo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2F1dG9kZXRlY3QvZ3N0YXV0b2F1ZGlvc2luay5jIChnc3RfYXV0b19hdWRpb19zaW5rX2ZpbmRfYmVzdCk6IGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmMgKGdzdF9hdXRvX2F1ZGlvX3NpbmtfZmluZF9iZXN0KToKCSAgKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvdmlkZW9zaW5rLmMKCSAgKGdzdF9hdXRvX3ZpZGVvX3NpbmtfZmluZF9iZXN0KTogVXBkYXRlIGZvciBuZXcgcmVnaXN0cnkgQVBJLgoKMjAwNS0wOS0xNCAyMDo1MTo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vOiBhIHNpbXBsZSBweSBzY3JpcHQgdG8gZ2VuZXJhdGUgdmFsaWQgeG1sIGZyb20gYSBDIGV4YW1wbGUgcHJvYmFibHkgYWxzbyBuZWVkIHRvIHN0cmlwIGFuIE1JVCBsaWNlbnNlIHdoZW4gd2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2MtdG8teG1sLnB5OgoJICAqIGNvbW1vbi9ndGstZG9jLXBsdWdpbnMubWFrOgoJICBhIHNpbXBsZSBweSBzY3JpcHQgdG8gZ2VuZXJhdGUgdmFsaWQgeG1sIGZyb20gYSBDIGV4YW1wbGUKCSAgcHJvYmFibHkgYWxzbyBuZWVkIHRvIHN0cmlwIGFuIE1JVCBsaWNlbnNlIHdoZW4gd2UgZGVjaWRlCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGdzdC9sZXZlbC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbGV2ZWwvZ3N0bGV2ZWwuYzogKGdzdF9sZXZlbF9pbml0KToKCSAgKiBnc3QvbGV2ZWwvbGV2ZWwtZXhhbXBsZS5jOiAobWVzc2FnZV9oYW5kbGVyKSwgKG1haW4pOgoJICBhZGQgYW4gZXhhbXBsZSB0byBsZXZlbCB0aGF0IHdpbGwgc2hvdyB1cCBpbiB0aGUgZG9jcwoJICAqIGdzdC9ydHAvVE9ETzoKCSAgYWRkIGEgbm90ZSBmb3IgdGhlIGZ1dHVyZQoKMjAwNS0wOS0xNCAxMTo0NDoxMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogQWN0dWFsbHkgZGVmaW5lIHRoZSBkZWJ1ZyBvYmplY3QgYmVpbmcgdXNlZCBpbiB3YXZlbmMuIEZpeGVzICMzMTYyMDUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3dhdmVuYy9nc3R3YXZlbmMuYzogKGdzdF93YXZlbmNfY2xhc3NfaW5pdCk6CgkgIEFjdHVhbGx5IGRlZmluZSB0aGUgZGVidWcgb2JqZWN0IGJlaW5nIHVzZWQgaW4gd2F2ZW5jLiBGaXhlcyAjMzE2MjA1CgoyMDA1LTA5LTE0IDExOjIzOjQ0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9zbXB0ZS9NYWtlZmlsZS5hbToKCSAgTGluayBzbXB0ZSBwbHVnaW4gYWdhaW5zdCBHU1RfQkFTRV9MSUJTLCB0byBnZXQgbGliZ3N0YmFzZTsgbmVlZGVkIHRvIGJ1aWxkIG9uIHdpbjMyIGFzIHRoaXMgcGx1Z2luIHVzZXMgY29sbGVjdHBhZHMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBMaW5rIHNtcHRlIHBsdWdpbiBhZ2FpbnN0IEdTVF9CQVNFX0xJQlMsIHRvIGdldCBsaWJnc3RiYXNlOyBuZWVkZWQgdG8KCSAgYnVpbGQgb24gd2luMzIgYXMgdGhpcyBwbHVnaW4gdXNlcyBjb2xsZWN0cGFkcyAoYnVnIDMxNjIwNCkKCjIwMDUtMDktMTIgMTY6Mzc6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGaXggdXAgYm9ndXMgQ2hhbmdlTG9nIGVudHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggdXAgYm9ndXMgQ2hhbmdlTG9nIGVudHJ5CgoyMDA1LTA5LTEyIDE2OjE0OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBhdXRvZ2VuLnNoIChwYWNrYWdlKTogTm93IHR5cGUgJ21ha2UnIHRvIGJ1aWxkIGdzdC1wbHVnaW5zLWdvb2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGF1dG9nZW4uc2ggKHBhY2thZ2UpOiBOb3cgdHlwZSAnbWFrZScgdG8gYnVpbGQgZ3N0LXBsdWdpbnMtZ29vZC4KCjIwMDUtMDktMTEgMTc6NTI6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tMTM5NC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hbHBoYS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdXRvZGV0ZWN0LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF2aS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jYWNhc2luay54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1kdi54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lZmZlY3R2LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWVzZHNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmRzcmMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmxhYy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nY29uZmVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdvb20ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tanBlZy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1sZXZlbC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1tdWxhdy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1vc3NhdWRpby54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbmcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcnRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0c3AueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2hvdXQyc2VuZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zbXB0ZS54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zcGVleC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11ZHAueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9ib3gueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdmlkZW9mbGlwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXdhdnBhcnNlLnhtbDoKCSAgYWRkIHNvdXJjZSBtb2R1bGUgdG8gZG9jczsgcmVpbnNwZWN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc291cmNlIG1vZHVsZSB0byBkb2NzOyByZWluc3BlY3QKCjIwMDUtMDktMDkgMTc6NTY6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgTW92ZSBmZHNyYyBiYWNrIGludG8gZ3N0cmVhbWVyIGNvcmUgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZmRzcmMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Zkc3JjL2dzdGZkc3JjLmM6CgkgICogZ3N0L2Zkc3JjL2dzdGZkc3JjLmg6CgkgIE1vdmUgZmRzcmMgYmFjayBpbnRvIGdzdHJlYW1lciBjb3JlIGVsZW1lbnRzLgoJICAqIGdzdC9sZXZlbC9nc3RsZXZlbC5jOiAoZ3N0X2xldmVsX2NsYXNzX2luaXQpLAoJICAoZ3N0X2xldmVsX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L3ZpZGVvYm94L2dzdHZpZGVvYm94LmM6IChnc3RfdmlkZW9fYm94X3NldF9wcm9wZXJ0eSk6CgkgIEJhc2V0cmFuc2Zvcm0gY2hhbmdlcy4KCjIwMDUtMDktMDkgMTY6MTE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBleHQvanBlZy9nc3RzbW9rZWVuYy5jOgoJKiBleHQvanBlZy9zbW9rZWNvZGVjLmM6CgkgIGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA1LTA5LTA5IDExOjA5OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjogc3BlYyBmaWxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgc3BlYyBmaWxlIGZpeGVzCgkgICogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzogKGdzdF9tdWx0aXVkcHNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX3JlbmRlciksIChnc3RfbXVsdGl1ZHBzaW5rX2FkZCksCgkgIChnc3RfbXVsdGl1ZHBzaW5rX2NsZWFyKToKCSAgaXQgYWN0dWFsbHkgaGVscHMgdG8gYWN0dWFsbHkgc3RyZWFtIGlmIHdlIGhvb2sgdXAgdGhlCgkgIGFkZCBzaWduYWwgdG8gYW4gYWN0dWFsIGltcGxlbWVudGF0aW9uCgkgICogZ3N0L3VkcC9nc3R1ZHBzcmMuYzogKGdzdF91ZHBzcmNfc3RhcnQpOgoJICBzb21lIGRlYnVnZ2luZwoKMjAwNS0wOS0wOCAxNjo1ODo0MCArMDAwMCAgRmxhdmlvIE9saXZlaXJhIDxmbGF2aW8ub2xpdmVpcmFAaW5kdC5vcmcuYnI+CgoJKiBleHQvanBlZy9NYWtlZmlsZS5hbToKCSogZXh0L2pwZWcvZ3N0anBlZy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9qcGVnL2dzdHNtb2tlZW5jLmM6CgkgIGpwZ2VuYyBwb3J0ZWQgdG8gR1NUcmVhbWVyIDAuOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAganBnZW5jIHBvcnRlZCB0byBHU1RyZWFtZXIgMC45CgoyMDA1LTA5LTA4IDE2OjI2OjE3ICswMDAwICBGbGF2aW8gT2xpdmVpcmEgPGZsYXZpby5vbGl2ZWlyYUBpbmR0Lm9yZy5icj4KCgkqIENoYW5nZUxvZzoKCSAganBlZ2VuYyBwb3J0ZWQgdG8gR1N0cmVhbWVyIDAuOQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAganBlZ2VuYyBwb3J0ZWQgdG8gR1N0cmVhbWVyIDAuOQoKMjAwNS0wOS0wNyAxMzo0OTozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZXh0LzogZ3N0dGFnaW50ZXJmYWNlLmggLT4gZ3N0dGFnc2V0dGVyLmgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNlbmMuYzoKCSAgKiBleHQvZmxhYy9nc3RmbGFjdGFnLmM6CgkgICogZXh0L3NwZWV4L2dzdHNwZWV4ZW5jLmM6CgkgIGdzdHRhZ2ludGVyZmFjZS5oIC0+IGdzdHRhZ3NldHRlci5oCgoyMDA1LTA5LTA2IDIzOjMwOjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFBvcnQgdG8gMC45IGFuZCByZS1lbmFibGUgZWZlbmNlIHBsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9kZWJ1Zy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZGVidWcvZWZlbmNlLmM6IChnc3RfZWZlbmNlX2NsYXNzX2luaXQpLCAoZ3N0X2VmZW5jZV9pbml0KSwKCSAgKGdzdF9lZmVuY2VfY2hhaW4pLCAoZ3N0X2VmZW5jZV9idWZmZXJfYWxsb2MpLCAocGx1Z2luX2luaXQpLAoJICAoZ3N0X2ZlbmNlZF9idWZmZXJfZmluYWxpemUpLCAoZ3N0X2ZlbmNlZF9idWZmZXJfY29weSksCgkgIChnc3RfZmVuY2VkX2J1ZmZlcl9hbGxvYyksIChnc3RfZmVuY2VkX2J1ZmZlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9mZW5jZWRfYnVmZmVyX2luaXQpLCAoZ3N0X2ZlbmNlZF9idWZmZXJfZ2V0X3R5cGUpOgoJICBQb3J0IHRvIDAuOSBhbmQgcmUtZW5hYmxlIGVmZW5jZSBwbHVnaW4uCgoyMDA1LTA5LTA2IDIxOjMxOjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZXh0L2ZsYWMvZ3N0ZmxhY2RlYy4qOiBBZGQgc3VwcG9ydCBmb3IgZmxhYyBmaWxlcyB3aXRoIDI0LzMyIGJpdHMgcGVyIHNhbXBsZTsgYW5kIG1pc2MuIG1pbm9yIGNsZWFuLXVwcy4gU2Vla2luZyBpcyBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuYzogKGZsYWNfY2Fwc19mYWN0b3J5KSwgKHJhd19jYXBzX2ZhY3RvcnkpLAoJICAoZ3N0X2ZsYWNkZWNfd3JpdGUpLCAoZ3N0X2ZsYWNkZWNfY29udmVydF9zcmMpOgoJICAqIGV4dC9mbGFjL2dzdGZsYWNkZWMuaDoKCSAgQWRkIHN1cHBvcnQgZm9yIGZsYWMgZmlsZXMgd2l0aCAyNC8zMiBiaXRzIHBlciBzYW1wbGU7IGFuZCBtaXNjLgoJICBtaW5vciBjbGVhbi11cHMuIFNlZWtpbmcgaXMgc3RpbGwgcGFydGx5IGJyb2tlbiAoZm9yIG1lIGF0IGxlYXN0KS4KCjIwMDUtMDktMDYgMTU6NTA6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcnRwLzogQWRkZWQgbXBlZzQgdmlkZW8gcGF5bG9hZCBlbmNvZGVyL2RlY29kZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9ydHAvTWFrZWZpbGUuYW06CgkgICogZ3N0L3J0cC9nc3RydHAuYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wNHZkZWMuYzogKGdzdF9ydHBtcDR2ZGVjX2dldF90eXBlKSwKCSAgKGdzdF9ydHBtcDR2ZGVjX2Jhc2VfaW5pdCksIChnc3RfcnRwbXA0dmRlY19jbGFzc19pbml0KSwKCSAgKGdzdF9ydHBtcDR2ZGVjX2luaXQpLCAoZ3N0X3J0cG1wNHZkZWNfc2V0Y2FwcyksCgkgIChnc3RfcnRwbXA0dmRlY19jaGFpbiksIChnc3RfcnRwbXA0dmRlY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3J0cG1wNHZkZWNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBtcDR2ZGVjX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcnRwbXA0dmRlY19wbHVnaW5faW5pdCk6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZGVjLmg6CgkgICogZ3N0L3J0cC9nc3RydHBtcDR2ZW5jLmM6IChnc3RfcnRwbXA0dmVuY19nZXRfdHlwZSksCgkgIChnc3RfcnRwbXA0dmVuY19iYXNlX2luaXQpLCAoZ3N0X3J0cG1wNHZlbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcnRwbXA0dmVuY19pbml0KSwgKGdzdF9ydHBtcDR2ZW5jX3NldGNhcHMpLAoJICAoZ3N0X3J0cG1wNHZlbmNfZmx1c2gpLCAoZ3N0X3J0cG1wNHZlbmNfY2hhaW4pLAoJICAoZ3N0X3J0cG1wNHZlbmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9ydHBtcDR2ZW5jX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfcnRwbXA0dmVuY19jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3J0cG1wNHZlbmNfcGx1Z2luX2luaXQpOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXA0dmVuYy5oOgoJICAqIGdzdC9ydHAvZ3N0cnRwbXBhZGVjLmM6IChnc3RfcnRwbXBhZGVjX2NoYWluKToKCSAgKiBnc3QvcnRwL2dzdHJ0cG1wYWVuYy5jOiAoZ3N0X3J0cG1wYWVuY19mbHVzaCk6CgkgIEFkZGVkIG1wZWc0IHZpZGVvIHBheWxvYWQgZW5jb2Rlci9kZWNvZGVyLgoJICBBZGRlZCBzb21lIGRvY3MgaW4gbXBhIHBheWxvYWRlci4KCjIwMDUtMDktMDYgMTQ6MDY6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjEgPT09CgoyMDA1LTA5LTA2IDE0OjA1OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVBRE1FOgoJKiBSRUxFQVNFOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVsZWFzaW5nIDAuOS4yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjIKCjIwMDUtMDktMDUgMTc6MjA6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZ3N0L3ZpZGVvY3JvcC9nc3R2aWRlb2Nyb3AuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMmVsZW1lbnQuYzoKCSogc3lzL3Y0bDIvZ3N0djRsMnNyYy5jOgoJICBGaXggdXAgYWxsIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHVwIGFsbCB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9ucy4KCjIwMDUtMDktMDUgMTY6Mjg6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGV4dC9kdi9nc3RkdmRlbXV4LmMgKGdzdF9kdmRlbXV4X2NoYWluKTogTW92ZSB0aGUgcGFkIGFkZGluZyBoZXJlIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBoYW5kbGVyLCBzbyB3ZSBmaXJlIHNpZ25hbHMgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBleHQvZHYvZ3N0ZHZkZW11eC5jIChnc3RfZHZkZW11eF9jaGFpbik6IE1vdmUgdGhlIHBhZCBhZGRpbmcKCSAgaGVyZSBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgaGFuZGxlciwgc28gd2UgZmlyZSBzaWduYWxzIHdpdGhvdXQKCSAgaG9sZGluZyB0aGUgc3RhdGUgbG9jay4KCjIwMDUtMDktMDUgMTU6MTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3F0ZGVtdXgvcXRkZW11eC5jOgoJICBjbGVhbmluZyB1cCBiYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuaW5nIHVwIGJhZAoKMjAwNS0wOS0wNSAxMzoxODo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzLy5naXRpZ25vcmU6CgkqIGRvY3MvcGx1Z2lucy8uZ2l0aWdub3JlOgoJICBtYWludGVuYW5jZSBjb21taXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWludGVuYW5jZSBjb21taXRzCgoyMDA1LTA5LTA0IDE1OjA5OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LWJ1aWxkLnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC5zdGFtcDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLTEzOTQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWFzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxwaGEueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYXV0b2RldGVjdC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdmkueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY2FjYXNpbmsueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZHYueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZWZmZWN0di54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1lc2RzaW5rLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZkc3JjLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWZsYWMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZ2NvbmZlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1nb29tLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWpwZWcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGV2ZWwueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbXVsYXcueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb3NzYXVkaW8ueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcG5nLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXJ0cC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1ydHNwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXNob3V0MnNlbmQueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc21wdGUueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3BlZXgueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdWRwLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvYm94LnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvZmxpcC54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi13YXZwYXJzZS54bWw6CgkgIGRpc3RjaGVjayBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGlzdGNoZWNrIGZpeGVzCgoyMDA1LTA5LTA0IDExOjUwOjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTA5LTAyIDE1OjU2OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC1wbHVnaW5zLWdvb2Quc3BlYy5pbjoKCSAgdmFyaW91cyBzcGVjIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIHNwZWMgZml4ZXMKCjIwMDUtMDktMDIgMTU6NDQ6NTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGNoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkqIGV4YW1wbGVzL2dzdHBsYXkvcGxheWVyLmM6CgkqIGV4YW1wbGVzL3N0YXRzL21wMm9nZy5jOgoJKiBleHQvYWFsaWIvZ3N0YWFzaW5rLmM6CgkqIGV4dC9jYWlyby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvZHYvZ3N0ZHZkZWMuYzoKCSogZXh0L2R2L2dzdGR2ZGVtdXguYzoKCSogZXh0L2VzZC9lc2Rtb24uYzoKCSogZXh0L2ZsYWMvZ3N0ZmxhY2RlYy5jOgoJKiBleHQvZmxhYy9nc3RmbGFjZW5jLmM6CgkqIGV4dC9mbGFjL2dzdGZsYWN0YWcuYzoKCSogZXh0L2djb25mL2dzdGdjb25mYXVkaW9zaW5rLmM6CgkqIGV4dC9nY29uZi9nc3RnY29uZnZpZGVvc2luay5jOgoJKiBleHQvZ2RrX3BpeGJ1Zi9nc3RnZGthbmltYXRpb24uYzoKCSogZXh0L2pwZWcvZ3N0anBlZ2RlYy5jOgoJKiBleHQvanBlZy9nc3RqcGVnZW5jLmM6CgkqIGV4dC9sYWRzcGEvZ3N0c2lnbmFscHJvY2Vzc29yLmM6CgkqIGV4dC9saWJjYWNhL2dzdGNhY2FzaW5rLmM6CgkqIGV4dC9saWJtbmcvZ3N0bW5nZGVjLmM6CgkqIGV4dC9taWttb2QvZ3N0bWlrbW9kLmM6CgkqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOgoJKiBleHQvcmF3MTM5NC9nc3RkdjEzOTRzcmMuYzoKCSogZXh0L3Nob3V0Mi9nc3RzaG91dDIuYzoKCSogZXh0L3NwZWV4L2dzdHNwZWV4ZGVjLmM6CgkqIGV4dC9zcGVleC9nc3RzcGVleGVuYy5jOgoJKiBnc3QvYWxwaGEvZ3N0YWxwaGEuYzoKCSogZ3N0L2F1cGFyc2UvZ3N0YXVwYXJzZS5jOgoJKiBnc3QvYXV0b2RldGVjdC9nc3RhdXRvYXVkaW9zaW5rLmM6CgkqIGdzdC9hdXRvZGV0ZWN0L2dzdGF1dG92aWRlb3NpbmsuYzoKCSogZ3N0L2F2aS9nc3RhdmlkZW11eC5jOgoJKiBnc3QvYXZpL2dzdGF2aW11eC5jOgoJKiBnc3QvZGVidWcvYnJlYWtteWRhdGEuYzoKCSogZ3N0L2RlYnVnL2dzdG5hdmlnYXRpb250ZXN0LmM6CgkqIGdzdC9lZmZlY3R2L2dzdHF1YXJrLmM6CgkqIGdzdC9mZHNyYy9nc3RmZHNyYy5jOgoJKiBnc3QvZmx4L2dzdGZseGRlYy5jOgoJKiBnc3QvZ29vbS9nc3Rnb29tLmM6CgkqIGdzdC9tYXRyb3NrYS9lYm1sLXJlYWQuYzoKCSogZ3N0L21hdHJvc2thL2VibWwtd3JpdGUuYzoKCSogZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmM6CgkqIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1tdXguYzoKCSogZ3N0L211bHRpcGFydC9tdWx0aXBhcnRkZW11eC5jOgoJKiBnc3QvbXVsdGlwYXJ0L211bHRpcGFydG11eC5jOgoJKiBnc3Qvb2xkY29yZS9nc3RtZDVzaW5rLmM6CgkqIGdzdC9vbGRjb3JlL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3Qvb2xkY29yZS9nc3RwaXBlZmlsdGVyLmM6CgkqIGdzdC9ydHAvZ3N0cnRwTDE2ZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBMMTZwYXJzZS5jOgoJKiBnc3QvcnRwL2dzdHJ0cEwxNnBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGFtcmRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1yZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwYW1ycGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwZGVjLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZGVwYXkuYzoKCSogZ3N0L3J0cC9nc3RydHBnc21kZXBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbWVuYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cGdzbXBhcnNlLmM6CgkqIGdzdC9ydHAvZ3N0cnRwZ3NtcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BkZWMuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcGRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwaDI2M3BlbmMuYzoKCSogZ3N0L3J0cC9nc3RydHBoMjYzcHBheS5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlYy5jOgoJKiBnc3QvcnRwL2dzdHJ0cG1wYWRlcGF5LmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhZW5jLmM6CgkqIGdzdC9ydHAvZ3N0cnRwbXBhcGF5LmM6CgkqIGdzdC9ydHNwL2dzdHJ0c3BzcmMuYzoKCSogZ3N0L3Ntb290aHdhdmUvZ3N0c21vb3Rod2F2ZS5jOgoJKiBnc3QvdWRwL2dzdGR5bnVkcHNpbmsuYzoKCSogZ3N0L3VkcC9nc3RtdWx0aXVkcHNpbmsuYzoKCSogZ3N0L3ZpZGVvbWl4ZXIvdmlkZW9taXhlci5jOgoJKiBnc3Qvd2F2ZW5jL2dzdHdhdmVuYy5jOgoJKiBnc3Qvd2F2cGFyc2UvZ3N0d2F2cGFyc2UuYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9vci5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBzeXMvb3NzL2dzdG9zc21peGVyZWxlbWVudC5jOgoJKiBzeXMvb3N4YXVkaW8vZ3N0b3N4YXVkaW9lbGVtZW50LmM6CgkqIHN5cy9vc3hhdWRpby9nc3Rvc3hhdWRpb3NpbmsuYzoKCSogc3lzL29zeGF1ZGlvL2dzdG9zeGF1ZGlvc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2xldmVsLmM6CgkgIEFsbCBwbHVnaW5zIHVwZGF0ZWQgZm9yIGVsZW1lbnQgc3RhdGUgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogQWxsIHBsdWdpbnMgdXBkYXRlZCBmb3IgZWxlbWVudCBzdGF0ZSBjaGFuZ2VzLgoKMjAwNS0wOS0wMSAyMToyNDo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleHQvYWFsaWIvTWFrZWZpbGUuYW06CgkgIGZpeCBidWlsZCBhZnRlciBjbGVhbmluZyB1cCBteSB2b21pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJ1aWxkIGFmdGVyIGNsZWFuaW5nIHVwIG15IHZvbWl0CgoyMDA1LTA5LTAxIDIxOjIzOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGV4dC9hYWxpYi9NYWtlZmlsZS5hbToKCSAgZml4IGJ1aWxkIGFmdGVyIGNsZWFuaW5nIHVwIG15IHZvbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnVpbGQgYWZ0ZXIgY2xlYW5pbmcgdXAgbXkgdm9taXQKCjIwMDUtMDktMDEgMjE6MjA6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3NtcHRlL01ha2VmaWxlLmFtOgoJICBmaXggYnVpbGQgYWZ0ZXIgY2xlYW5pbmcgdXAgbXkgdm9taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBidWlsZCBhZnRlciBjbGVhbmluZyB1cCBteSB2b21pdAoKMjAwNS0wOS0wMSAyMToxNTozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3Qvc21wdGUvTWFrZWZpbGUuYW06CgkgIGZpeCBidWlsZCBhZnRlciBjbGVhbmluZyB1cCBteSB2b21pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJ1aWxkIGFmdGVyIGNsZWFuaW5nIHVwIG15IHZvbWl0CgoyMDA1LTA5LTAxIDIwOjIzOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9sZXZlbC5jOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2xldmVsL2dzdGxldmVsLmM6CgkqIGdzdC9sZXZlbC9nc3RsZXZlbC5oOgoJKiB0ZXN0cy9jaGVjay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbGV2ZWwuYzoKCSAgQW5kcmV3aW8gUGF0cmlja29mb3J1cyBXaW5nb255bXVzIC0gNSBhZGRpdGlvbmFsIHRlc3RzIGZvciB5b3VyIHNpbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFuZHJld2lvIFBhdHJpY2tvZm9ydXMgV2luZ29ueW11cyAtIDUgYWRkaXRpb25hbCB0ZXN0cyBmb3IgeW91ciBzaW5zCgkgIEFkZCBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgbGV2ZWwgYW5kIGZpeCBhIGNhc3RpbmcgYnVnIHRoYXQgbWFkZSB0aGUgYWRkaXRpb25hbAoJICBjaGFubmVscyB0dXJuIG91dCB3cm9uZwoKMjAwNS0wOS0wMSAxNzo1NToxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgZG9jcyB0byBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWM6CgkgIGFkZCBkb2NzIHRvIGJ1aWxkCgkgICogY29tbW9uL3BsdWdpbnMueHNsOgoJICB3cmFwIERlc2NyaXB0aW9uIGludG8gYSByZWZzZWN0MgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nb29tL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nb29tL2dzdGdvb20uYzogKGdzdF9nb29tX2dldF90eXBlKSwgKGdzdF9nb29tX2Jhc2VfaW5pdCksCgkgIChnc3RfZ29vbV9jbGFzc19pbml0KSwgKGdzdF9nb29tX2luaXQpLCAoZ3N0X2dvb21fZGlzcG9zZSksCgkgIChnc3RfZ29vbV9zaW5rX3NldGNhcHMpLCAoZ3N0X2dvb21fc3JjX3NldGNhcHMpLAoJICAoZ3N0X2dvb21fc3JjX25lZ290aWF0ZSksIChnc3RfZ29vbV9ldmVudCksIChnc3RfZ29vbV9jaGFpbiksCgkgIChnc3RfZ29vbV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nb29tL2dzdGdvb20uaDoKCSAgR3N0R09PTSAtPiBHc3RHb29tCgkgIGFkZCBhbiBleGFtcGxlIGxhdW5jaCBsaW5lCgkgICogZ3N0L2xldmVsL2dzdGxldmVsLmg6CgkgICogZ3N0L21vbm9zY29wZS9nc3Rtb25vc2NvcGUuYzoKCSAgY2xlYW51cHMKCjIwMDUtMDgtMzEgMTY6Mjg6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2R2ZGxwY21kZWMvLmdpdGlnbm9yZToKCSogZ3N0L2R2ZGxwY21kZWMvTWFrZWZpbGUuYW06CgkqIGdzdC9kdmRscGNtZGVjL2dzdGR2ZGxwY21kZWMuYzoKCSogZ3N0L2R2ZGxwY21kZWMvZ3N0ZHZkbHBjbWRlYy5oOgoJICByZW1vdmUgZHZkbHBjbWRlYywgaXQncyBkdmQgc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkdmRscGNtZGVjLCBpdCdzIGR2ZCBzdHVmZgoKMjAwNS0wOC0zMCAxOTo0MToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0LWxpYnMvZ3N0L2dldHRleHQuaDoKCSogZ3N0LWxpYnMvZ3N0L2dzdC1pMThuLXBsdWdpbi5oOgoJICBhZGQgc29tZSBpMThuIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGkxOG4gaGVhZGVycwoKMjAwNS0wOC0zMCAxOToyNDozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA4LTMwIDE5OjI0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvTWFrZWZpbGUuYW06CgkgIE1ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNYWtlZmlsZS5hbQoKMjAwNS0wOC0zMCAxOToyMDowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSAgY29tbWl0IG5ldyBzdHVmZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IG5ldyBzdHVmZgoKMjAwNS0wOC0zMCAxOTowMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy50eXBlczoKCSAgZG9jdW1lbnQgZWxlbWVudHMgYW5kIHBsdWdpbnMuICBTaGF6YW0gIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9jdW1lbnQgZWxlbWVudHMgYW5kIHBsdWdpbnMuICBTaGF6YW0gIQoKMjAwNS0wOC0zMCAxNzozNzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiAuZ2l0aWdub3JlOgoJKiBDT1BZSU5HOgoJKiBSRUxFQVNFOgoJKiBnc3QtcGx1Z2lucy1nb29kLnNwZWMuaW46CgkgIGFkZCBzb21lIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc29tZSBmaWxlcwoK